Reescreveram o MCP: o protocolo dos seus agentes virou stateless
O MCP é o padrão aberto que liga assistentes de IA às suas ferramentas: banco de dados, navegador, agenda, o que for. Em 28 de julho de 2026 saiu a revisão 2026-07-28 da especificação, e ela mexe na espinha do protocolo: acabou a sessão, acabou o aperto de mão inicial, e três recursos conhecidos entraram na fila de aposentadoria. Aqui a gente explica o que mudou, como uma conversa entre cliente e servidor funciona agora, quem precisa agir e quem pode ficar tranquilo.
A régua desta página, antes de tudo. Nada aqui é opinião sobre rumor. Tudo vem do changelog oficial e do texto publicado da especificação, com os links no fim da página. Onde a spec deixa escolha em aberto, a gente diz que está em aberto.
A mudança de espinha: cada pedido agora se apresenta sozinho
Até a versão anterior, cliente e servidor começavam com um ritual: o cliente chamava initialize, os dois negociavam versão e capacidades, nascia uma sessão com identidade própria, e todo o resto da conversa dependia desse estado guardado dos dois lados.
A revisão 2026-07-28 apaga esse ritual. Não existe mais sessão no protocolo nem o cabeçalho que a identificava. Cada pedido carrega consigo a versão do protocolo e as capacidades do cliente, dentro do campo _meta. O servidor responde e pronto: nenhum dos dois precisa lembrar do outro entre um pedido e o próximo.
Pra descoberta, nasceu o server/discover: um chamado que todo servidor passa a responder informando quais versões aceita, o que sabe fazer e quem ele é. O cliente pode chamar antes de tudo, ou usar como sonda de compatibilidade.
O motivo é prático. Servidor sem estado escala melhor: dá pra rodar atrás de balanceador de carga ou em função serverless sem truque de sessão grudenta. E as listas de ferramentas param de variar por conexão, o que abre caminho pra cache de verdade.
Como funciona uma conversa agora, passo a passo
- Descoberta (opcional). O cliente chama
server/discovere recebe versões aceitas, capacidades e identidade do servidor. - O pedido. Toda chamada leva no
_metaa versão do protocolo e as capacidades do cliente. Se a versão não servir, o servidor devolve um erro específico de versão, sem adivinhação. - A resposta. Todo resultado agora traz um campo
resultType. O valor"complete"encerra o pedido. O valor"input_required"significa que o servidor precisa de mais informação antes de concluir. - A volta. Quando recebe
input_required, o cliente junta as respostas pedidas e refaz o pedido original com elas anexadas. Esse vai e volta tem nome: MRTR, de Multi Round-Trip Requests. Ele substitui o modelo antigo em que o servidor abria pedidos na direção do cliente. - Notificações. Quem quiser saber de mudanças no servidor abre um canal único, o
subscriptions/listen, e escolhe os tipos que quer ouvir. Esse canal substitui o endpoint GET com SSE e os antigosresources/subscribeeresources/unsubscribe. - Se a linha cair. A retomada automática de stream foi removida. Stream quebrado perde o pedido em andamento, e o cliente refaz do zero com um identificador novo. Simples e previsível.
O que foi aposentado, e o que usar no lugar
Três recursos conhecidos entraram em depreciação formal, e outras peças do protocolo trocaram de endereço. Nada disso para de funcionar agora, e implementação nova não deve adotar o que está na coluna da esquerda.
| saiu de cena | use no lugar |
|---|---|
| Roots | Passar diretórios e arquivos por parâmetro de ferramenta, URI de recurso ou configuração do servidor |
| Sampling | Chamar a API do provedor de modelo diretamente |
| Logging | Escrever no stderr (stdio) ou usar OpenTelemetry |
| Transporte HTTP+SSE antigo | Streamable HTTP |
| Registro dinâmico de cliente OAuth (RFC 7591) | Client ID Metadata Documents |
| Tasks no núcleo do protocolo | Extensão oficial io.modelcontextprotocol/tasks, com consulta por tasks/get |
Também foram removidos o ping, o logging/setLevel e a notificação de mudança de roots. O nível de log agora vai pedido a pedido, dentro do _meta.
Prazos: o que quebra amanhã? Nada
A revisão veio junto com uma política formal de ciclo de vida: recurso depreciado fica funcional por uma janela mínima de 12 meses antes de qualquer remoção, e existe um registro público do que está em cada estado.
Servidor que fala a versão anterior continua atendido. A spec manda inclusive que clientes tratem resposta sem o campo novo resultType como resposta completa, exatamente pra conversa antiga seguir de pé. Quem só usa cliente pronto, como o Claude Code ou outro assistente, recebe tudo isso via atualização normal da ferramenta.
Regra prática pra quem mantém servidor MCP: audite hoje o que você usa de Roots, Sampling e Logging. É esse inventário que diz o tamanho da sua migração. O resto tem 12 meses de estrada e adaptador de compatibilidade.
Os detalhes que valem dinheiro
Dois pontos da revisão mexem direto no custo de operar agente, e quase ninguém comentou.
Primeiro: a spec agora recomenda que tools/list devolva as ferramentas sempre na mesma ordem. Parece detalhe cosmético e mexe no bolso, porque ordem estável aumenta o acerto do cache de prompt do modelo. Cache de prompt acertando é token que você não paga de novo.
Segundo: as respostas de listagem e leitura de recursos passam a declarar ttlMs e cacheScope, dizendo por quanto tempo o cliente pode guardar aquela resposta e quem pode guardar. Menos consulta repetida, menos tráfego, menos latência.
Quem ganha o quê com isso
Vale a mesma leitura de sempre. O MCP é um projeto aberto criado pela Anthropic e hoje evolui por propostas públicas da comunidade, cada uma com número e discussão aberta no repositório. O desenho novo favorece quem hospeda servidor em infraestrutura elástica, serverless e edge, porque servidor sem estado é o formato natural dessas plataformas.
Isso não invalida a mudança. Ajuda a entender a direção: o protocolo está sendo preparado pra rodar em escala de produção, não só no computador do desenvolvedor.
O que fazer com essa informação
- Se você usa MCP pronto no seu assistente: nada muda na sua rotina. A ferramenta atualiza sozinha e a compatibilidade está garantida pela janela de 12 meses.
- Se você mantém um servidor MCP: comece pelo inventário de Roots, Sampling e Logging. Depois planeje a troca do GET/SSE pelo
subscriptions/listene implemente oserver/discover, que virou obrigatório na versão nova. - Se você paga a conta de tokens: ordem estável no
tools/liste os campos de cache são dinheiro na mesa. Cobre isso dos servidores que você usa.
Fontes
- Changelog oficial da revisão 2026-07-28. Model Context Protocol, 28/07/2026.
- Texto completo da especificação 2026-07-28. Model Context Protocol.
- Política de ciclo de vida e depreciação. Janela mínima de 12 meses e registro público de estados.
Achou imprecisão? Fala com a gente que a gente corrige e registra a correção nesta página.
Toda mudança grande de IA, revisada assim.
Sem hype, com as fontes na mesa. Chega no seu e-mail: os próximos reviews, o aviso quando um curso gratuito novo entra no ar, e prioridade na fila da primeira Formação.
Seu e-mail é usado só pra isso. Dá pra sair em um clique em qualquer mensagem, como está na política de privacidade.
Curso livre de qualificação profissional (formação inicial e continuada), nos termos do art. 42 da LDB. Certificado de conclusão emitido pela Xentory. Não é curso técnico, graduação ou pós-graduação. Não confere diploma, registro profissional nem validade nacional.