← Reviews // lançamentos de IA · review

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

  1. Descoberta (opcional). O cliente chama server/discover e recebe versões aceitas, capacidades e identidade do servidor.
  2. O pedido. Toda chamada leva no _meta a 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.
  3. 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.
  4. 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.
  5. 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 antigos resources/subscribe e resources/unsubscribe.
  6. 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 cenause no lugar
RootsPassar diretórios e arquivos por parâmetro de ferramenta, URI de recurso ou configuração do servidor
SamplingChamar a API do provedor de modelo diretamente
LoggingEscrever no stderr (stdio) ou usar OpenTelemetry
Transporte HTTP+SSE antigoStreamable HTTP
Registro dinâmico de cliente OAuth (RFC 7591)Client ID Metadata Documents
Tasks no núcleo do protocoloExtensã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/listen e implemente o server/discover, que virou obrigatório na versão nova.
  • Se você paga a conta de tokens: ordem estável no tools/list e os campos de cache são dinheiro na mesa. Cobre isso dos servidores que você usa.

Fontes

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.