TL;DR: O Azure App Service agora permite transformar automaticamente qualquer REST API hospedada em um servidor MCP (Model Context Protocol) sem escrever código. Basta fornecer um arquivo OpenAPI 3.x e o App Service gera tools para agentes de IA como GitHub Copilot, Cursor e Claude Desktop. A configuração é feita via portal, CLI ou Bicep, e funciona com os planos Basic ou superiores. Segurança nativa com App Service Authentication.
O que o MCP integrado faz?
Você fornece uma especificação OpenAPI 3.x (JSON ou YAML) descrevendo as operações que deseja expor. A plataforma lê a spec e gera uma tool MCP para cada operação, servindo o endpoint MCP via HTTP streamable no caminho de sua escolha (padrão: /mcp). O App Service cuida de toda a complexidade: negociação do protocolo MCP, descoberta de tools, hot reload da spec quando alterada e cancelamento de requisições pelo cliente. Qualquer cliente compatível com MCP pode se conectar, incluindo GitHub Copilot Chat, Cursor, Windsurf e Claude Desktop.
Por que isso importa?
Muitos times já têm a API que o ecossistema de agentes deseja consumir. O que falta é tempo para criar um servidor MCP dedicado, mantê-lo sincronizado com a API e operá-lo. O MCP integrado elimina esse trabalho. Se sua REST API roda no App Service e você consegue gerar uma especificação OpenAPI (a maioria dos frameworks web já faz isso automaticamente), você está a uma configuração de distância de um endpoint pronto para agentes.
MCP integrado ou customizado?
O MCP integrado é o caminho mais rápido quando suas tools mapeiam diretamente para operações REST. Se você precisa de comportamentos mais complexos — workflows multi-etapa, agregação em memória, recursos MCP ou prompts, ou mais de um servidor MCP em uma mesma aplicação — ainda vale a pena construir um servidor MCP customizado com SDK e implantá-lo como código da aplicação. As duas abordagens se complementam.
Como fica a segurança?
O MCP integrado funciona com o App Service Authentication. As requisições MCP passam pelas mesmas verificações de identidade que qualquer outra rota da sua aplicação, usando Microsoft Entra ID ou qualquer provedor OpenID Connect configurado. Quando a autenticação está ativada, a plataforma também publica metadados de recurso protegido OAuth, permitindo que clientes MCP completem o fluxo automaticamente. Seu código ainda é responsável por validar o bearer token em cada requisição — e você nunca deve expor um servidor MCP publicamente sem autenticação, pois toda tool publicada se torna chamável assim que um cliente se conecta.
Como começar?
O MCP integrado é configurado através da propriedade aiIntegration no seu App Service. O preview suporta três formas de configurar: portal do Azure, Azure CLI (az rest) e Bicep. Funciona em planos dedicados (Basic ou superior) — não é suportado nos planos Free, Shared, Consumption ou Flex Consumption. Para ativar no seu app e conectar um cliente MCP, acesse a documentação oficial.
Perguntas Frequentes
-
O que é o Model Context Protocol (MCP)?
MCP é um protocolo aberto que padroniza como aplicações (como agentes de IA) expõem dados e funcionalidades para assistentes e ferramentas. Ele permite que clientes MCP descubram e chamem tools automaticamente. -
Preciso escrever código para usar o MCP integrado?
Não. Basta fornecer uma especificação OpenAPI 3.x da sua REST API. O Azure App Service gera automaticamente o servidor MCP e gerencia o protocolo, descoberta de tools e hot reload. -
Quais clientes MCP são compatíveis?
Qualquer cliente que implemente o protocolo MCP pode se conectar, incluindo GitHub Copilot Chat, Cursor, Windsurf e Claude Desktop. -
Posso usar o MCP integrado em planos gratuitos do App Service?
Não. O preview requer planos dedicados (Basic ou superior). Planos Free, Shared, Consumption e Flex Consumption não são suportados. -
Como garantir a segurança do meu servidor MCP?
Utilize o App Service Authentication com Microsoft Entra ID ou OpenID Connect. Isso garante que as requisições passem pela mesma autenticação das demais rotas. Nunca exponha o endpoint MCP sem autenticação.
Artigo originalmente publicado por jordanselig em Azure Updates - Latest from Azure Charts.