Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Функции 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
Пока недоступно.