A Anthropic anunciou recentemente uma grande inovação tecnológica em seu Protocolo de Contexto do Modelo (MCP) e lançou o novo protocolo de transmissão "HTTP Streamable". Essa solução inovadora alterará completamente o método de transmissão de dados remotos do MCP. O novo protocolo não apenas resolve as principais limitações da solução HTTP+SSE existente, mas também mantém as vantagens tecnológicas originais do MCP, trazendo um avanço revolucionário à comunicação entre os modelos e aplicações de IA.
Do ponto de vista da arquitetura técnica, esta atualização é uma reconstrução abrangente do mecanismo de transmissão de dados do MCP. O novo protocolo adota um conceito de design mais flexível, fácil de usar e mais compatível. Comparado com as longas conexões SSE que tiveram que ser mantidas on -line, a nova solução permite que os clientes enviem mensagens e aguardam a resposta a qualquer momento. Esse método semelhante às solicitações HTTP comuns, mas suporta o streaming, melhora bastante a flexibilidade e a usabilidade do sistema.
Essa atualização de tecnologia inclui principalmente cinco melhorias principais: primeiro, o endpoint dedicado /SSE foi removido, simplificando a arquitetura do servidor; Segundo, todas as mensagens de clientes para servidor são transmitidas por meio de um ponto de extremidade unificado /de mensagem, percebendo a padronização da interface; Terceiro, o servidor pode atualizar dinamicamente solicitações HTTP para fluxos SSE de acordo com as necessidades reais, proporcionando maior flexibilidade; Quarto, o cliente fornece MCP-session-ID através do cabeçalho, permitindo que o servidor gerencie as informações da sessão com mais flexibilidade; Finalmente, ele suporta um modo de operação de servidor completamente apátrida, melhorando significativamente a escalabilidade do sistema.
A principal razão para promover essa inovação tecnológica é que existem muitos gargalos técnicos nas soluções de transmissão HTTP+SSE existentes: a falta de função de recuperação após a conexão estiver desconectada, resultando no cliente ter que reiniciar toda a sessão; O servidor precisa manter alta disponibilidade para suportar conexões SSE contínuas; E o SSE suporta apenas a comunicação unidirecional, que não pode obter interação flexível de dados bidirecionais. O novo método de transmissão "HTTP transmissível" resolveu com sucesso esses problemas, melhorando significativamente o desempenho geral e a escalabilidade do sistema.
Para os desenvolvedores, esta atualização traz muitas conveniências: é mais fácil implementar um servidor MCP e apenas um servidor HTTP normal pode suportar o MCP, não precisa mais criar um servidor SSE dedicado; É mais fácil implantar em plataformas em nuvem, como Vercel, Cloudflare, AWS Lambda, etc. que não suportam conexões longas; A compatibilidade foi bastante aprimorada e a nova solução, como HTTP padrão, pode ser perfeitamente integrada com CDN, gateway da API e balanceamento de carga; Ele aprimorou significativamente a escalabilidade, suporta a operação de modo sem estado e pode ser atualizado dinamicamente para o SSE quando necessário.
Em termos de infraestrutura e arquitetura do servidor, a nova solução também traz alterações revolucionárias: os servidores sem estado são possíveis e os servidores não precisam mais armazenar continuamente as informações da sessão do cliente; Eles são mais adequados para arquiteturas de microsserviço e podem se integrar facilmente à API REST, grafQL, balanceamento de carga, CDN e outros sistemas; A utilização de recursos do servidor é maior e os recursos podem ser lançados após as solicitações de processamento, adequadas para cenários de alta concorrência.
Vale a pena notar que, apesar dos muitos problemas com a SSE, o Antrópico não escolheu o WebSocket como uma alternativa. Isso se baseia principalmente nas seguintes considerações técnicas: o WebSocket precisa manter conexões longas, enquanto o MCP adota principalmente um modo semelhante ao RPC, e cada solicitação é executada de forma independente; O WebSocket não pode transmitir informações de cabeçalho HTTP, resultando no processo de autenticação se tornar complicado; O WebSocket suporta apenas as atualizações Get, em vez de postar, o que é incompatível com as solicitações de postagem usadas principalmente pelo MCP. Portanto, finalmente decidiu continuar usando o HTTP, mas dê ao servidor a capacidade de atualizar para o SSE, conforme necessário, em vez de forçar o SSE ou o WebSocket.
No geral, esta atualização torna o MCP mais leve e flexível, e o servidor pode decidir independentemente se deve suportar o streaming; O processo de implantação é significativamente simplificado e é adequado para a arquitetura sem servidor; A compatibilidade é bastante aprimorada e pode funcionar perfeitamente com várias infraestruturas de rede; A taxa de utilização de recursos do servidor é maior e suporta solicitações simultâneas de maior escala.
Essa mudança inovadora torna os servidores MCP mais simples, mais eficientes e flexíveis, capazes de suportar implantações distribuídas em maior escala, rompendo completamente as limitações do SSE e abrindo um novo capítulo para comunicação entre modelos e aplicativos de IA. Endereço do projeto: https://github.com/modelcontextprotocol/specification/pull/206