A Anthropic anunciou hoje uma atualização significativa no Model Context Protocol (MCP), introduzindo uma nova forma de transmissão "Streamable HTTP" para substituir a solução HTTP+SSE existente. Esta inovação resolve completamente as restrições-chave da transmissão remota do MCP, mantendo ao mesmo tempo suas vantagens originais.

Esta atualização é essencialmente uma reconstrução do mecanismo de transferência de dados do MCP, tornando o protocolo mais flexível, fácil de usar e compatível. Para ilustrar, a forma de transmissão MCP anterior era como uma ligação telefônica com um serviço de atendimento ao cliente onde era necessário manter-se conectado continuamente (SSE requer conexão persistente), enquanto a nova solução é semelhante a enviar mensagens e aguardar respostas a qualquer momento (solicitação HTTP comum, mas com streaming opcional).

Esta atualização inclui cinco mudanças principais: primeiro, o ponto de extremidade /sse dedicado foi removido, e o servidor não mais mantém o ponto de extremidade SSE (Server-Sent Events); segundo, todas as mensagens do cliente para o servidor são transmitidas através do ponto de extremidade unificado /message, sem depender de /sse; terceiro, o servidor pode dinamicamente atualizar a solicitação HTTP para um fluxo SSE, conforme necessário, para enviar notificações ou solicitações; quarto, o cliente fornece o Mcp-Session-Id via Header, e o servidor pode decidir se armazena ou não as informações da sessão; finalmente, é suportado o funcionamento de servidor completamente sem estado, sem necessidade de manter conexões de longa duração.

A principal razão para esta mudança é que a transmissão HTTP+SSE atual apresenta várias falhas: não suporta a recuperação após a interrupção da conexão, forçando o cliente a reiniciar toda a sessão; o servidor precisa manter alta disponibilidade para suportar conexões SSE contínuas; e o SSE suporta apenas comunicação unidirecional (servidor para cliente), impossibilitando uma comunicação bidirecional flexível. A nova forma de transmissão "Streamable HTTP" resolve esses problemas, melhorando significativamente a escalabilidade e flexibilidade do sistema.

Para os desenvolvedores, esta atualização traz muitas vantagens: a implementação de servidores MCP tornou-se mais simples, bastando um servidor HTTP comum para suportar MCP, sem necessidade de configurar um servidor SSE específico; a implantação em plataformas em nuvem que não suportam conexões persistentes, como Vercel, Cloudflare e AWS Lambda, tornou-se mais fácil; a compatibilidade melhorou significativamente, pois a nova solução, como HTTP padrão, pode ser integrada perfeitamente com CDN, gateway de API e balanceamento de carga; a escalabilidade aumentou significativamente, suportando modo sem estado e podendo ser atualizada dinamicamente para SSE quando necessário.

Em termos de infraestrutura e arquitetura de servidor, a nova solução também trouxe mudanças revolucionárias: servidores sem estado tornaram-se possíveis, e os servidores não precisam mais armazenar continuamente informações de sessão do cliente; é mais adequado para arquitetura de microsserviços, podendo ser facilmente integrado com REST API, GraphQL, balanceamento de carga e CDN; a utilização de recursos do servidor é maior, liberando recursos após o processamento da solicitação, adequado para cenários de alta concorrência.

Curiosamente, apesar dos problemas com o SSE, a Anthropic não optou pelo WebSocket como solução alternativa. A razão é que: o WebSocket precisa manter conexões persistentes, enquanto o MCP usa principalmente um modelo semelhante a RPC, com cada solicitação executada independentemente; o WebSocket não pode transmitir informações de cabeçalho HTTP, tornando o processo de autenticação complexo; o WebSocket suporta apenas upgrade GET, não POST, incompatível com as solicitações POST usadas principalmente pelo MCP. Portanto, foi decidido continuar usando HTTP, mas dando ao servidor a capacidade de atualizar para SSE conforme necessário, em vez de usar obrigatoriamente SSE ou WebSocket.

Em resumo, esta atualização torna o MCP mais leve e flexível, permitindo que o servidor decida autonomamente se suporta streaming; o processo de implantação é significativamente simplificado, adequado para arquiteturas Serverless; a compatibilidade melhorou significativamente, podendo ser integrada perfeitamente com várias infraestruturas de rede; a utilização de recursos do servidor é maior, suportando um maior número de solicitações simultâneas.

Esta mudança inovadora torna os servidores MCP mais simples, eficientes e flexíveis, permitindo implantações distribuídas em maior escala, eliminando completamente as restrições do SSE e abrindo um novo capítulo para a comunicação entre modelos de IA e aplicativos.

Endereço do projeto: https://github.com/modelcontextprotocol/specification/pull/206