Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Функции Azure предоставляют два способа размещения удаленных серверов MCP:
- Серверы MCP, созданные с расширением Functions MCP
- Серверы MCP, созданные с использованием официальных SDK для MCP
При первом подходе можно использовать модель программирования Функций Azure с триггерами и привязками для создания сервера MCP. Затем вы можете удаленно разместить сервер, разместив его в приложении типа Function.
Если у вас уже есть сервер MCP, созданный с помощью официальных пакетов SDK MCP и просто хотите разместить его удаленно, второй подход, скорее всего, соответствует вашим потребностям. Вам не нужно вносить изменения кода на сервер, чтобы разместить его в Функциях Azure. Вместо этого можно добавить необходимые функциональные артефакты, а сервер будет готов к развертыванию. Таким образом, эти серверы называются локальными серверами MCP.
В этой статье представлен обзор локальных серверов MCP и ссылки на соответствующие статьи и примеры.
Пользовательские обработчики
Локальные серверы MCP развертываются на платформе Функций Azure в качестве пользовательских обработчиков. Пользовательские обработчики — это упрощенные веб-серверы, получающие события от узла функций. Они предоставляют способ запуска на платформе Functions приложений, созданных с использованием фреймворков, отличных от модели программирования Functions, или на языках, не поддерживаемых по умолчанию. Дополнительные сведения см. в статье Пользовательские обработчики Функций Azure.
При развертывании сервера на основе пакета SDK MCP в Функции Azure необходимо включить в проект host.json . Минимальный host.json выглядит следующим образом:
{
"version": "2.0",
"configurationProfile": "mcp-custom-handler",
"customHandler": {
"description": {
"defaultExecutablePath": "python",
"arguments": ["Path to main script file, e.g. hello_world.py"]
},
"port": "<MCP server port>"
}
}
{
"version": "2.0",
"configurationProfile": "mcp-custom-handler",
"customHandler": {
"description": {
"defaultExecutablePath": "npm",
"arguments": ["run", "start"]
},
"port": "<MCP server port>"
}
}
{
"version": "2.0",
"configurationProfile": "mcp-custom-handler",
"customHandler": {
"description": {
"defaultExecutablePath": "dotnet",
"arguments": ["Path to the compiled DLL, e.g. HelloWorld.dll"]
},
"port": "<MCP server port>"
}
}
Замечание
Так как полезная нагрузка, размещенная в Azure Functions, — это содержимое каталога bin/output, путь к скомпилированной библиотеке DLL отсчитывается относительно этого каталога, а не от корневого каталога проекта.
Пример еще недоступен.
configuration Profile При использовании значения mcp-custom-handler автоматически настраиваются следующие параметры узла функций, необходимые для запуска сервера MCP в Функциях Azure:
-
http.enableProxyingдоtrue -
http.routesдо[{ "route": "{*route}" }] -
extensions.http.routePrefixдо""
В этом примере показан файл host.json с дополнительными свойствами настраиваемых обработчиков, эквивалентными использованию mcp-custom-handler профиля:
{
"version": "2.0",
"extensions": {
"http": {
"routePrefix": ""
}
},
"customHandler": {
"description": {
"defaultExecutablePath": "",
"arguments": [""]
},
"http": {
"enableProxying": true,
"defaultAuthorizationLevel": "anonymous",
"routes": [
{
"route": "{*route}",
// Default authorization level is `defaultAuthorizationLevel`
},
{
"route": "admin/{*route}",
"authorizationLevel": "admin"
}
]
}
}
}
В этой таблице описываются свойства customHandler.http, а также значения по умолчанию:
| Недвижимость | Что он делает | Значение по умолчанию |
|---|---|---|
enableProxying |
Управляет тем, как среда выполнения Azure Functions обрабатывает HTTP-запросы к пользовательским обработчикам. Если enableProxying задано значение true, хост функций работает в качестве обратного прокси и пересылает весь HTTP-запрос (включая заголовки, тело, параметры запроса) непосредственно в пользовательский обработчик. Этот параметр предоставляет пользовательскому обработчику полный доступ к исходным сведениям HTTP-запроса. Когда enableProxying это false, то хост функций сначала обрабатывает запрос и преобразует его в формат запроса/ответа функций Azure перед передачей в пользовательский обработчик. |
false |
defaultAuthorizationLevel |
Управляет требованием проверки подлинности для доступа к конечным точкам пользовательского обработчика. Например, function для доступа требуется ключ API для конкретной функции. Дополнительные сведения см. в разделе "Уровни авторизации". |
function |
route |
Указывает шаблон URL-пути, на который отвечает индивидуальный обработчик.
{*route} соответствует любому URL-пути (например, /, /mcp, /api/tools или /anything/nested/path) и перенаправляет запрос в пользовательский обработчик. |
{*route} |
Встроенная проверка подлинности сервера
Проверка подлинности и авторизация на основе OAuth, предоставляемые платформой службы приложений, реализует требования спецификации авторизации MCP, такие как выдача 401 запроса и предоставление документа "Защищенные метаданные ресурсов" (PRM). При включении встроенной проверки подлинности клиенты, пытающиеся получить доступ к серверу, перенаправляются поставщикам удостоверений, таким как Идентификатор Microsoft Entra для проверки подлинности перед подключением.
Дополнительные сведения см. в статье "Настройка встроенной авторизации сервера (предварительная версия) и размещение серверов MCP в Функциях Azure.
Интеграции агентов Azure AI Foundry
Агенты в Azure AI Foundry можно настроить для использования средств на серверах MCP, размещенных в Функциях Azure.
Регистрация сервера в Центре API Azure
При регистрации сервера MCP в Центре API Azure создается частный каталог средств организации. Этот подход рекомендуется для совместного использования серверов MCP в вашей организации с единообразным управлением и обнаруживаемостью. Дополнительные сведения см. в статье Регистрация серверов MCP, размещенных в Функциях Azure в Центре API Azure.
Поддержка общедоступной предварительной версии
Возможность размещения собственных серверов MCP на основе пакета SDK в Функциях в настоящее время доступна в предварительной версии и поддерживает следующие функции:
- Серверы стейтлесс, использующие транспорт streamable-http. Если вам нужно, чтобы сервер был с отслеживанием состояния, рассмотрите возможность использования расширения Functions MCP.
- Серверы, реализованные с помощью пакетов SDK для Python, TypeScript, C# или Java MCP.
- При локальном запуске проекта необходимо использовать команду Azure Functions Core Tools (
func startcommand). В настоящее время нельзя использоватьF5для запуска с отладчиком. - Серверы должны размещаться как приложения плана Flex Consumption.
Samples
Пока недоступно.