Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O PROTOCOLO MCP (Model Context Protocol) é um padrão aberto que conecta aplicativos de IA a fontes de dados e ferramentas externas. Usando o MCP, clientes de IA como o GitHub Copilot podem descobrir e invocar recursos que você expõe, transformando suas APIs, bancos de dados e lógica de negócios em ferramentas que um agente de IA pode usar por meio de linguagem natural.
Os Aplicativos de Contêiner do Azure dão suporte a dois modelos de hospedagem para servidores MCP:
| Modelo de hospedagem | DESCRIÇÃO |
|---|---|
| Aplicativo de contêiner autônomo | Implante qualquer servidor MCP que você compilar como um contêiner com entrada HTTP. |
| Sessões dinâmicas | Utilize pools de sessão gerenciados pela plataforma com ferramentas MCP integradas para execução de código em sandbox. |
O que é o Protocolo de Contexto de Modelo (MCP)?
Um servidor MCP expõe três tipos de recursos aos clientes:
| Capability | DESCRIÇÃO | Example |
|---|---|---|
| Ferramentas | Funções que o modelo de IA pode invocar (com aprovação do usuário) |
createTask
listTasks
deleteTask
|
| Recursos | Dados somente leitura que o cliente pode buscar | Arquivos de configuração, esquemas de banco de dados |
| Prompts | Modelos pré-escritos para tarefas comuns | "Resumir todas as tarefas abertas" |
Os clientes se comunicam com servidores MCP por HTTP usando o transporte HTTP que pode ser transmitido. O cliente envia solicitações JSON-RPC 2.0. O servidor responde com os resultados da ferramenta, o conteúdo do recurso ou os modelos de prompt.
O fluxo de solicitação segue este padrão:
O cliente MCP (GitHub Copilot, Claude ou um cliente personalizado) envia uma solicitação HTTPS contendo uma mensagem JSON-RPC 2.0 para o servidor.
O servidor MCP (seu aplicativo de contêiner) processa a solicitação e chama todos os serviços de back-end necessários, como um banco de dados ou uma API.
O servidor retorna uma resposta JSON-RPC 2.0 com resultados da ferramenta, conteúdo do recurso ou modelos de prompt.
Aplicativo de contêiner autônomo
Você cria um servidor MCP usando um SDK oficial do MCP (disponível para .NET, Python, TypeScript, Java, Go, Kotlin e outros) e, em seguida, o contêiner e o implanta em aplicativos de contêiner do Azure.
Neste modelo, os Aplicativos de Contêiner não têm reconhecimento específico do MCP. A plataforma fornece:
- Entrada HTTPS com terminação TLS automática
- Dimensionamento automático, incluindo escalonamento para zero (no mínimo uma réplica é recomendada para uso interativo do MCP)
- Política CORS para permitir solicitações entre origens do VS Code e de clientes baseados em navegador
- Autenticação interna com a ID do Microsoft Entra (opcional)
- Domínios personalizados, divisão de tráfego, Dapr, rede serviço a serviço, identidade gerenciada e todos os outros recursos padrão de Aplicativos de Contêiner
Fluxo de solicitação
Quando você implanta um servidor MCP como um aplicativo de contêiner independente, as solicitações do cliente fluem através do ingresso dos Aplicativos de Contêiner para o seu contêiner, onde o endpoint MCP processa a mensagem JSON-RPC e retorna os resultados.
- Um cliente MCP envia uma solicitação HTTPS para o FQDN do aplicativo de contêiner.
- A entrada nos Aplicativos de Contêiner encerra o TLS e encaminha a solicitação para o seu contêiner na porta de destino configurada (por exemplo, 8080).
- Sua estrutura da Web (ASP.NET, FastAPI, Express, Spring Boot) roteia a solicitação para o ponto de extremidade MCP (normalmente
/mcp). - O servidor MCP processa a solicitação, chama todos os serviços de back-end e retorna uma resposta JSON-RPC 2.0.
Quando usar
Use um aplicativo de contêiner autônomo se quiser criar ferramentas MCP personalizadas em qualquer idioma, integrar com serviços de back-end e usar recursos padrão de Aplicativos de Contêiner.
- Você deseja ter controle total sobre definições de ferramenta, middleware e lógica de negócios.
- O servidor MCP é escrito em qualquer idioma com um SDK do MCP.
- Você precisa se conectar a bancos de dados de back-end, APIs ou serviços do Azure.
- Você deseja usar recursos de Aplicativos de Contêiner, como Dapr, rede de serviço a serviço ou identidade gerenciada.
Sessões dinâmicas (MCP gerenciado pela plataforma)
As sessões dinâmicas dos Aplicativos de Contêiner do Azure fornecem ambientes em área restrita para executar código isoladamente. Quando você habilita o MCP em um pool de sessão, a plataforma expõe um ponto de extremidade JSON-RPC que os clientes podem usar para iniciar ambientes de shell ou Python e executar comandos remotamente.
Nesse modelo, a plataforma gerencia o servidor MCP. Você não escreve nem implanta o código do servidor MCP. A plataforma fornece as seguintes ferramentas predefinidas:
| Tool | DESCRIÇÃO |
|---|---|
launchShell |
Cria um novo ambiente e retorna um environmentId |
runShellCommandInRemoteEnvironment |
Executa um comando shell em um ambiente existente |
runPythonCodeInRemoteEnvironment |
Executa código Python em um ambiente existente |
Observação
O servidor MCP gerenciado pela plataforma expõe as três ferramentas, independentemente do containerType do pool de sessões. Use launchShell para criar um ambiente para pools de Shell e Python.
Fluxo de solicitação
Quando você implanta um servidor MCP usando sessões dinâmicas, a plataforma gerencia o servidor e fornece um ponto de extremidade JSON-RPC que os clientes usam para executar o shell ou o código Python em ambientes em área restrita.
- Um cliente MCP envia uma solicitação HTTPS para o ponto de extremidade
/mcpdo pool de sessões com um cabeçalhox-ms-apikeypara autenticação. - O proxy reverso da plataforma valida a chave de API e encaminha a solicitação para a sessão de área restrita Hyper-V apropriada.
- A sessão executa o comando de shell solicitado ou o código Python dentro da área restrita.
- A plataforma retorna uma resposta JSON-RPC 2.0 contendo resultados de execução.
Quando usar
- Você precisa de execução de código em sandbox para códigos não confiáveis ou gerados por LLM.
- Seu caso de uso é Python ou shell script e nenhuma ferramenta personalizada é necessária.
- Você deseja isolamento de Hyper-V entre sessões para segurança.
- Você não deseja criar ou manter um aplicativo de servidor MCP.
Autenticação
O MCP de sessões dinâmicas usa a autenticação de chave de API por meio do cabeçalho x-ms-apikey. Esse mecanismo é diferente da autenticação de token de portador usada por APIs do pool de sessões padrão.
Recupere a chave de API usando a CLI do Azure:
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
Detalhes do protocolo
O servidor MCP gerenciado pela plataforma para sessões dinâmicas implementa as seguintes especificações de protocolo:
| Propriedade | Valor |
|---|---|
| Versão do protocolo MCP | 2025-03-26 |
| Nome do servidor | Microsoft Container Apps MCP Server |
| Transport | JSON-RPC 2.0 sobre HTTP |
| Versão da API | 2025-02-02-preview |
| Métodos com suporte |
initialize
tools/list
tools/call
|
Importante
O recurso MCP gerenciado pela plataforma para sessões dinâmicas está em versão prévia. A versão 2025-02-02-preview da API e mcpServerSettings as propriedades do ARM (Azure Resource Manager) estão sujeitas a alterações.
Entrada e rede
O campo de entrada de aplicativos de contêiner transport oferece suporte a auto, http, http2 e tcp. O transporte HTTP transmissível do MCP é executado dentro do contêiner via HTTP padrão, então defina transport como auto ou http (o padrão). Não há nenhum valor de transporte MCP especial.
Você deve configurar uma política CORS se o VS Code ou clientes baseados em navegador acessarem seu servidor MCP. No mínimo, permita as origens, os métodos e os cabeçalhos exigidos pelo cliente MCP.
Comparar opções de hospedagem
A tabela a seguir compara os dois modelos de hospedagem.
| Consideração | Aplicativo de contêiner autônomo | Sessões dinâmicas (MCP gerenciado) |
|---|---|---|
| Ferramentas personalizadas | Sim, defina as ferramentas desejadas | Não, somente ferramentas definidas pela plataforma |
| Languages | Qualquer idioma com um SDK do MCP | Somente execução de Python e shell |
| Transporte MCP | HTTP transmitido em fluxo (dentro do contêiner) | JSON-RPC por HTTP (gerenciado pela plataforma) |
| Autenticação | Autenticação interna integrada (Microsoft Entra ID) | Chave de API (x-ms-apikey) |
| Isolamento | Nível de contêiner | Hyper-V por sessão |
| Scaling | Escala automática baseada em revisão | Por sessão, gerenciado pelo pool |
| Caso de uso | Servidores MCP de uso geral | Execução de código em área restrita |
Para obter uma comparação mais ampla que inclua o Serviço de Aplicativo e o Azure Functions, consulte Escolhendo um serviço do Azure para seu servidor MCP.