Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Протокол контекста модели (MCP) — это открытый стандарт, который подключает приложения ИИ к внешним источникам данных и средствам. С помощью MCP клиенты ИИ, такие как GitHub Copilot, могут обнаруживать и вызывать возможности, которые вы предоставляете, превращая API, базы данных и бизнес-логику в средства, которые агент ИИ может использовать с помощью естественного языка.
Приложения контейнеров Azure поддерживают две модели размещения для серверов MCP:
| Модель размещения | Description |
|---|---|
| Автономное контейнерное приложение | Разверните любой создаваемый вами сервер MCP в виде контейнера с входом через HTTP. |
| Динамические сеансы | Используйте пулы сеансов, управляемые платформой, с встроенными средствами MCP для изолированного выполнения кода. |
Что такое протокол контекста модели (MCP)?
Сервер MCP предоставляет три типа возможностей клиентам:
| Capability | Description | Пример |
|---|---|---|
| Инструменты | Функции, которые модель ИИ может вызывать (с разрешением пользователя) |
createTask, listTasks, deleteTask |
| Ресурсы | Данные только для чтения, которые клиент может получить | Файлы конфигурации, схемы базы данных |
| запросы | Предзаписанные шаблоны для распространенных задач | Суммировать все открытые задачи |
Клиенты взаимодействуют с серверами MCP по протоколу HTTP с помощью потокового транспорта HTTP. Клиент отправляет запросы JSON-RPC версии 2.0. Сервер отвечает результатами работы инструмента, содержимым ресурсов или шаблонами подсказок.
Поток запросов следует этому шаблону:
Клиент MCP (GitHub Copilot, Claude или пользовательский клиент) отправляет HTTPS-запрос, содержащий сообщение JSON-RPC 2.0 на сервер.
Сервер MCP (приложение контейнера) обрабатывает запрос и вызывает все необходимые серверные службы, например базу данных или API.
Сервер возвращает ответ JSON-RPC 2.0 с результатами инструментов, содержимым ресурсов или шаблонами запросов.
Независимое контейнерное приложение
Вы создаете сервер MCP с помощью официального пакета SDK MCP (доступно для .NET, Python, TypeScript, Java, Go, Kotlin и других), а затем контейнеризируйте и разверните его в приложениях контейнеров Azure.
В этой модели контейнерные приложения не имеют специфической осведомленности о MCP. Платформа предоставляет следующие возможности:
- HTTPS-вход с автоматическим завершением TLS
- Автоматическое масштабирование, включая масштабирование до нуля (для интерактивного использования MCP рекомендуется не менее одной реплики).
- Политика CORS для разрешения кросс-доменных запросов от клиентов VS Code и веб-клиентов
- Встроенная проверка подлинности с помощью идентификатора Microsoft Entra (необязательно)
- Пользовательские домены, разделение трафика, Dapr, сеть между службами, управляемое удостоверение и все остальные стандартные функции контейнерных приложений
Поток запросов
При развертывании сервера MCP в качестве автономного приложения контейнера клиентские запросы передаются через входящий трафик приложений-контейнеров в контейнер, где конечная точка MCP обрабатывает сообщение JSON-RPC и возвращает результаты.
- Клиент MCP отправляет HTTPS-запрос к полному доменному имени (FQDN) приложения контейнера.
- Входящий трафик в Container Apps выполняет завершение TLS и перенаправляет запрос в ваш контейнер на указанный порт назначения (например, 8080).
- Веб-платформа (ASP.NET, FastAPI, Express, Spring Boot) направляет запрос к конечной точке MCP (обычно
/mcp). - Сервер MCP обрабатывает запрос, вызывает все внутренние службы и возвращает ответ JSON-RPC 2.0.
Когда следует использовать
Используйте автономное приложение контейнера, если вы хотите создавать пользовательские средства MCP на любом языке, интегрироваться с внутренними службами и использовать стандартные функции контейнерных приложений.
- Требуется полный контроль над определениями инструментов, бизнес-логикой и промежуточным слоем.
- Сервер MCP написан на любом языке с помощью пакета SDK ДЛЯ MCP.
- Необходимо подключиться к серверным базам данных, API или службам Azure.
- Вы хотите использовать такие функции контейнерных приложений, как Dapr, сеть между службами или управляемое удостоверение.
Динамические сеансы (управляемые платформой MCP)
Динамические сеансы приложений контейнеров Azure предоставляют изолированные среды для выполнения кода в изоляции. При включении MCP в пуле сеансов платформа предоставляет конечную точку JSON-RPC, которую клиенты могут использовать для запуска оболочки или сред Python и удаленного выполнения команд.
В этой модели платформа управляет сервером MCP. Вы не записываете или развертываете код сервера MCP. Платформа предоставляет следующие предопределенные средства:
| Инструмент | Description |
|---|---|
launchShell |
Создает новую среду и возвращает environmentId |
runShellCommandInRemoteEnvironment |
Выполняет команду оболочки в существующей среде |
runPythonCodeInRemoteEnvironment |
Выполняет код Python в существующей среде |
Замечание
Сервер MCP, управляемый платформой, предоставляет все три средства независимо от пула сеансов containerType. Используйте launchShell для создания среды как для оболочных, так и для Python-пулов.
Поток запросов
При развертывании сервера MCP с помощью динамических сеансов платформа управляет сервером и предоставляет конечную точку JSON-RPC, которую клиенты используют для выполнения оболочки или кода Python в изолированных средах.
- Клиент MCP отправляет HTTPS-запрос в конечную точку пула
/mcpсеансов с заголовкомx-ms-apikeyдля проверки подлинности. - Обратный прокси-сервер платформы проверяет ключ API и направляет запрос на соответствующий Hyper-V изолированный сеанс.
- Сеанс выполняет запрошенную команду оболочки или код Python в песочнице.
- Платформа возвращает ответ JSON-RPC 2.0, содержащий результаты выполнения.
Когда следует использовать
- Требуется изолированное выполнение кода для ненадежного или созданного LLM кода.
- Ваше использование — это скрипты Python или командной оболочки, а пользовательские средства не требуются.
- Вы хотите Hyper-V изоляцию между сеансами для обеспечения безопасности.
- Вы не хотите создавать или поддерживать серверное приложение MCP.
Authentication
Динамические сеансы MCP используют проверку подлинности ключа API через x-ms-apikey заголовок. Этот механизм отличается от аутентификации с использованием токенов носителя, применяемой API-интерфейсами стандартного пула сеансов.
Получите ключ API с помощью Azure CLI:
az rest --method POST \
--uri "https://management.azure.com/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.App/sessionPools/<POOL_NAME>/fetchMCPServerCredentials" \
--uri-parameters api-version=2025-02-02-preview \
--query "apiKey" -o tsv
Сведения о протоколе
Сервер MCP, управляемый платформой для динамических сеансов, реализует следующие спецификации протокола:
| Недвижимость | Ценность |
|---|---|
| Версия протокола MCP | 2025-03-26 |
| Имя сервера | Microsoft Container Apps MCP Server |
| Транспорт | JSON-RPC 2.0 по протоколу HTTP |
| Версия API | 2025-02-02-preview |
| Поддерживаемые методы |
initialize, tools/list, tools/call |
Это важно
Функция MCP под управлением платформы для динамических сеансов доступна в предварительной версии. Версия 2025-02-02-preview API и mcpServerSettings свойства Azure Resource Manager (ARM) могут изменяться.
Вход в сеть и сетевые соединения
Поле "Входящий трафик приложений контейнеров" transport поддерживает auto, http, http2 и tcp. Потоковый HTTP-транспорт MCP выполняется внутри вашего контейнера по стандартному HTTP, поэтому установите transport в auto или http (по умолчанию). Нет специального значения транспорта MCP.
Необходимо настроить политику CORS , если клиенты VS Code или браузеры обращаются к серверу MCP. Как минимум, разрешайте источники, методы и заголовки, необходимые клиенту MCP.
Сравнение параметров размещения
В следующей таблице сравниваются две модели размещения.
| Рассмотрение | Независимое контейнерное приложение | Динамические сеансы (управляемые MCP) |
|---|---|---|
| Пользовательские инструменты | Да, определите все необходимые инструменты | Нет, только инструменты, определяемые платформой |
| Languages | Любой язык с пакетом SDK MCP | Выполнение только для Python и командной строки |
| Транспорт MCP | Потоковая передача HTTP (внутри контейнера) | JSON-RPC по протоколу HTTP (управляемый платформой) |
| Authentication | Встроенная аутентификация (Microsoft Entra ID) | Ключ API (x-ms-apikey) |
| Изоляция | Уровень контейнера | Hyper-V на сеанс |
| Масштабирование | Автомасштабирование на основе изменений | Для каждого сеанса, управляемого с использованием пула |
| Сценарий использования | Серверы MCP общего назначения | Изолированное выполнение кода |
Более широкое сравнение, включающее службу приложений и функции Azure, см. в статье "Выбор службы Azure для сервера MCP".