A equipe do protocolo MCP lançou uma nova versão em 28 de julho de 2026 que remove a sessão ao nível do protocolo e força cada requisição a ser stateless. Se você executa clientes, servidores ou agentes MCP, deverá reescrever o código que assume uma sessão persistente — ou enfrentará problemas de roteamento, falhas de cache (cache misses) e trabalhos de segundo plano descontrolados.
Por que essa mudança é importante
O MCP costumava exigir um handshake que gerava um identificador de sessão. Os serviços downstream dependiam desse ID para assumir que uma série de requisições atingiria o mesmo processo, para permitir que os balanceadores de carga utilizassem roteamento sticky e para armazenar dados por sessão na memória. O lançamento de julho substitui esse modelo por um fluxo puro de requisição-resposta. Um servidor agora pode ser adicionado ou removido sem preocupações com sessões perdidas. O protocolo não preserva mais o contexto; a aplicação deve fazê-lo.
Equipes que mantiverem códigos antigos centrados em sessão verão requisições sendo direcionadas para a instância errada, falhas de cache e acúmulo de tarefas de segundo plano. Equipes que adotarem o padrão stateless poderão executar o MCP atrás de balanceadores de carga não-sticky e obter uma observabilidade mais rigorosa em toda a cadeia de requisições.
O que realmente mudou
- Ciclo de vida do protocolo – O handshake e o ID de sessão desaparecem. Cada requisição deve carregar todas as informações de que o servidor precisa; não há garantia de que uma requisição de acompanhamento caia no mesmo processo.
- Roteamento HTTP – Os gateways agora leem dois novos cabeçalhos,
Mcp-MethodeMcp-Name, para decidir para onde encaminhar uma requisição. O roteamento por cookie de sessão não funciona mais. - Cache – A especificação adiciona os campos
ttlMs(tempo de vida em milissegundos) ecacheScopepara leituras. Você decide se dados obsoletos são aceitáveis e configura o cache de acordo. - Observabilidade – Um bloco
_metaagora espera um payload de W3C Trace Context, permitindo que sistemas de rastreamento conectem gateways de borda, ferramentas e trabalho de backend em um único rastreamento de ponta a ponta. - Composição – As extensões foram formalizadas; novas capacidades podem ser adicionadas sem tocar na especificação principal, incentivando uma arquitetura de estilo plug-in.
- Trabalhos de longa duração – O simples modelo requisição/resposta não é mais suficiente para tarefas que duram minutos ou horas. O protocolo agora define um objeto
Taskpara trabalho assíncrono, completo com controles de ciclo de vida.
Riscos ocultos em código legado
Uma auditoria rápida geralmente revela padrões que assumem a existência de estado (statefulness):
- Mapas em memória indexados por IDs de sessão.
- Balanceadores de carga configurados para sessões sticky.
- Rotinas de inicialização que pré-carregam dados por sessão na memória local.
- Lógica de limpeza que exclui dados de negócio quando uma sessão termina.
Se qualquer um desses padrões sobreviver à migração, o sistema perderá dados ou vazará recursos sob carga.
Um checklist de migração concreto
1. Inventarie as premissas atuais
Mapeie todos os lugares onde seu código toca em um ID de sessão, uma regra de roteamento sticky ou um cache local de processo. Documente quais componentes dependem de cada um.
2. Torne a identidade explícita
Adicione IDs de tenant, IDs de execução (run IDs) e IDs de usuário a cada payload ou cabeçalho de requisição. Trate esses identificadores como a fonte da verdade para autorização e particionamento de dados.
3. Atualize a configuração de roteamento
Substitua o roteamento baseado em sessão por regras que leiam Mcp-Method e Mcp-Name. Teste a nova lógica do gateway com uma implantação mínima de duas instâncias atrás de um balanceador de carga não-sticky.
4. Refatore a lógica de cache
Mude para os novos campos ttlMs e cacheScope. Execute testes de desempenho para ver como diferentes valores de TTL afetam as taxas de acerto (hit rates) e os requisitos de atualização (freshness).
5. Habilite o rastreamento de ponta a ponta
Preencha o bloco _meta com um cabeçalho W3C Trace Context. Verifique se os rastreamentos agora fluem do gateway de borda através dos seus serviços de backend sem lacunas.
6. Adote o modelo Task para trabalho assíncrono
Defina quem pode criar uma tarefa, estabeleça tempos máximos de execução e aplique limites de fila. Adicione políticas explícitas de cancelamento e retentativa, e restrinja o que um agente pode fazer enquanto uma tarefa está pendente.
7. Revise as notas de lançamento do SDK e das bibliotecas de cliente
Faça isso antes de 28 de julho.
8. Execute suítes de regressão focadas em caminhos de falha
Além dos testes de "caminho feliz" (happy-path), injete cabeçalhos ausentes, tarefas expiradas e diretivas de cache malformadas. Confirme que o sistema degrada graciosamente.
O que observar a seguir
As equipes que migrarem com segurança testarão os limites, não apenas o caminho feliz. Qualquer implantação em produção que ainda espere um ID de sessão após 28 de julho pode falhar ao interoperar com os novos servidores MCP.
