Resumo: MCP 2026-07-28 remove sessões no nível do protocolo e o handshake de inicialização obrigatório. As equipes de produção devem localizar dependências ocultas de sessão, adotar metadados por solicitação, implementar MRTR (Multi Round-Trip Requests), atualizar políticas do gateway e fazer canary do novo protocolo antes de aposentar o comportamento legado.
A especificação do Model Context Protocol lançada em 28 de julho de 2026 introduz a maior mudança arquitetural no MCP desde a adição do suporte a transporte remoto.
O protocolo agora usa um núcleo sem estado de solicitação e resposta. A troca obrigatória de initialize e notifications/initialized foi removida, Mcp-Session-Id foi retirado e cada solicitação carrega as informações de protocolo necessárias para processá-la.
A versão também introduz Multi Round-Trip Requests, cabeçalhos de roteamento HTTP, respostas de listas cacheáveis, comportamento de autorização mais rigoroso, uma estrutura de extensões e um ciclo de vida formal de desativação. Consulte o comunicado oficial do MCP 2026-07-28 e o changelog completo da especificação para detalhes no nível do protocolo.
Essas mudanças tornam servidores MCP remotos mais fáceis de escalar por trás de infraestrutura HTTP padrão. Elas não tornam automaticamente um aplicativo existente sem estado.
Um servidor de produção ainda pode depender de workspaces em memória, roteamento sticky, credenciais vinculadas à sessão, streams de longa duração ou interações iniciadas pelo servidor. Este guia foca em encontrar e substituir essas dependências.
Para um passo a passo mais introdutório de implementação, leia How to Create an MCP Server for Claude Code antes de iniciar a migração.
Quem precisa migrar?
O nível de esforço depende de como o MCP é usado no seu sistema.
| Implementação atual | Risco de migração | Ação principal |
|---|---|---|
| Servidor local stdio com ferramentas one-shot | Baixo | Atualize o SDK e teste a negociação de protocolo |
| Servidor HTTP remoto sem estado entre solicitações | Médio | Adicione metadados modernos, discovery e cabeçalhos HTTP |
| Servidor usando Mcp-Session-Id para estado de negócio | Alto | Substitua estado oculto por identificadores explícitos ou armazenamento compartilhado |
| Gateway analisando corpos JSON-RPC para roteamento | Médio a alto | Adicione e valide cabeçalhos de roteamento MCP |
| Ferramentas solicitando informação ou aprovação durante a chamada | Alto | Migre a interação para MRTR |
| Cliente usando Dynamic Client Registration | Alto | Reforce o tratamento de issuer e prepare-se para CIMD |
| Servidor usando HTTP+SSE legado | Alto | Migre para HTTP com streaming |
| Workflow usando Tasks experimentais | Alto | Adote a extensão oficial Tasks |
Um servidor local que não preserva estado entre solicitações pode exigir apenas uma atualização do SDK e testes de compatibilidade.
Uma implantação remota usando sessões, OAuth, streaming ou solicitações iniciadas pelo servidor requer uma migração em etapas.
O que mudou no MCP 2026-07-28?
| Área | Comportamento anterior | MCP 2026-07-28 | Ação de migração |
|---|---|---|---|
| Inicialização | Handshake de initialize obrigatório | Sem handshake obrigatório | Remover gates de inicialização de solicitações modernas |
| Sessões | Mcp-Session-Id | Sem sessão no nível do protocolo | Tornar o estado necessário explícito |
| Discovery | Negociado durante a inicialização | Chamada opcional server/discover | Implementar discovery e negociação de versão |
| Contexto de solicitação | Armazenado na conexão | Incluído em _meta da solicitação | Enviar metadados de protocolo por solicitação |
| Roteamento HTTP | Gateway analisa o corpo JSON | Cabeçalhos Mcp-Method e Mcp-Name | Atualizar roteamento, política e observabilidade |
| Interação mid-call | Solicitações JSON-RPC iniciadas pelo servidor | Multi Round-Trip Requests | Tratar input_required e novas tentativas |
| Cache de listas | Catálogos buscados repetidamente | ttlMs, cacheScope, ordenação determinística | Adicionar cache ciente de autorização |
| Notificações | Stream GET e assinaturas de recurso | subscriptions/listen | Mover notificações de mudança para o novo stream |
| Autorização | Registro centrado em DCR | Regras de issuer mais fortes e direção a CIMD | Auditar clientes OAuth e armazenamento de credenciais |
| Trabalho de longa duração | Tasks experimentais no core | Extensão io.modelcontextprotocol/tasks | Migrar para o contrato de extensão |
| Recursos antigos | Roots, Sampling, Logging, HTTP+SSE | Obsoletos | Parar novas adoções e medir uso existente |
1. Audite a implementação existente
Antes de atualizar, procure no cliente, servidor, gateway e configuração de implantação por suposições do protocolo antigo.
Mcp-Session-Id
initialize
notifications/initialized
sessionId
ctx.sessionId
extra.sessionId
sticky_session
sticky-session
elicitation/create
sampling/createMessage
roots/list
resources/subscribe
resources/unsubscribe
logging/setLevel
tasks/result
tasks/list
Last-Event-ID
Em seguida, responda às seguintes perguntas:
- O servidor rejeita chamadas até a inicialização ser concluída?
- Um ID de sessão seleciona um usuário, credencial, workspace ou conversa?
- Outra instância do servidor consegue continuar um workflow iniciado pela primeira?
- O balanceador de carga exige afinidade de sessão?
- Uma ferramenta executa um efeito colateral antes de solicitar confirmação?
- O gateway analisa o corpo para identificar o método ou ferramenta?
- As credenciais OAuth são armazenadas sem o authorization server emissor?
- O cliente depende de reconexão SSE ou redelivery de mensagens?
- As listas de ferramentas ou recursos variam por conexão?
- Quais recursos obsoletos ainda recebem tráfego de produção?
Não remova Mcp-Session-Id até entender o que o aplicativo armazena por trás dele.
Um servidor que remove o cabeçalho, mas mantém o estado na memória local pode funcionar durante o desenvolvimento e falhar intermitentemente quando as solicitações forem distribuídas por várias instâncias.
2. Substitua o estado oculto de sessão
O MCP 2026-07-28 remove sessões no nível do protocolo, não o estado do aplicativo.
O estado necessário entre chamadas deve usar um dos três padrões.
Identificadores explícitos
Retorne um identificador emitido pelo servidor a partir de uma ferramenta e exija-o em chamadas posteriores.
{
"resultType": "complete",
"content": [
{
"type": "text",
"text": "Workspace created."
}
],
"structuredContent": {
"workspaceHandle": "ws_7f93a2"
}
}
Uma solicitação posterior passa o identificador como argumento comum:
{
"name": "update_workspace",
"arguments": {
"workspaceHandle": "ws_7f93a2",
"status": "approved"
}
}
Isso torna a dependência visível no contrato da ferramenta e permite que qualquer instância compatível do servidor processe a solicitação.
Armazenamento compartilhado
Use um banco de dados, cache distribuído, object store ou sistema de tarefas duráveis quando:
- vários workers precisarem do mesmo estado;
- o workflow deva sobreviver a uma reinicialização;
- o estado seja grande demais para um identificador;
- o workflow dure mais do que uma única solicitação;
- comportamento transacional ou de uso único seja necessário.
requestState protegido
MRTR pode retornar um valor opaco requestState que o cliente ecoa ao repetir a solicitação original.
Como o valor passa pelo cliente, proteja-o com um HMAC ou criptografia autenticada. Vincule-o ao principal autenticado, à operação original, a parâmetros importantes, ao tempo de expiração e a um nonce quando precisar de proteção contra replay.
Nunca confie em um valor requestState não assinado apenas porque o cliente o devolveu sem alterações.
3. Adote solicitações auto-contidas e discovery
As solicitações modernas MCP incluem contexto do protocolo em _meta.
Uma chamada de ferramenta via HTTP com streaming pode ser assim:
POST /mcp HTTP/1.1
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: search
Content-Type: application/json
Authorization: Bearer <token>
{
"jsonrpc": "2.0",
"id": "req-101",
"method": "tools/call",
"params": {
"name": "search",
"arguments": {
"query": "stateless MCP migration"
},
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientInfo": {
"name": "example-client",
"version": "2.0.0"
},
"io.modelcontextprotocol/clientCapabilities": {
"elicitation": {}
}
}
}
}
Servidores voltados ao novo protocolo devem implementar server/discover, que divulga versões suportadas, capacidades e identidade do servidor. Clientes podem chamá-lo antes de outra operação ou usá-lo para determinar se um fallback legado é necessário.
Leia a documentação oficial de server/discover para o contrato de resposta.
Negociação de versão no SDK TypeScript
Atualizar o SDK TypeScript por si só não muda automaticamente um cliente para o novo protocolo.
Um cliente usando o SDK v2 deve optar explicitamente:
const client = new Client(
{
name: "my-client",
version: "1.0.0"
},
{
versionNegotiation: {
mode: "auto"
}
}
);
await client.connect(transport);
No modo automático, o SDK sonda com server/discover e pode fazer fallback para o fluxo de inicialização antigo quando alcançar um servidor legado.
Equipes ainda usando @modelcontextprotocol/sdk v1 devem primeiro seguir o guia de migração do SDK TypeScript v1 para v2. Equipes já usando v2 devem usar o guia de suporte ao protocolo 2026-07-28.
4. Substitua solicitações iniciadas pelo servidor por MRTR
Implementações anteriores do MCP podiam enviar solicitações como elicitation/create, sampling/createMessage ou roots/list do servidor para o cliente.
O novo protocolo substitui esse modelo por Multi Round-Trip Requests.
O fluxo é:
- O cliente envia a solicitação original.
- O servidor retorna
resultType: "input_required". - O cliente coleta as informações ou aprovações solicitadas.
- O cliente repete a operação original usando um novo ID JSON-RPC.
- A nova tentativa inclui
inputResponsese orequestStateoriginal. - O servidor conclui a solicitação ou inicia outra rodada.
Exemplo de resposta:
{
"jsonrpc": "2.0",
"id": "delete-1",
"result": {
"resultType": "input_required",
"inputRequests": {
"confirm_delete": {
"method": "elicitation/create",
"params": {
"mode": "form",
"message": "Delete project project_123?",
"requestedSchema": {
"type": "object",
"properties": {
"confirmed": {
"type": "boolean"
}
},
"required": ["confirmed"]
}
}
}
},
"requestState": "protected-expiring-state"
}
}
O cliente repete a operação original:
{
"jsonrpc": "2.0",
"id": "delete-2",
"method": "tools/call",
"params": {
"name": "delete_project",
"arguments": {
"projectId": "project_123"
},
"inputResponses": {
"confirm_delete": {
"action": "accept",
"content": {
"confirmed": true
}
}
},
"requestState": "protected-expiring-state"
}
}
Uma implementação MRTR de produção deve definir:
- número máximo de rodadas;
- expiração de request-state;
- comportamento de cancelamento e rejeição;
- validação do schema de resposta;
- verificações de autorização em cada nova tentativa;
- proteção contra replay;
- idempotência para efeitos colaterais;
- comportamento quando um cliente não suporta a capacidade solicitada.
Evite concluir uma compra, exclusão, débito de crédito ou escrita externa antes de retornar input_required.
Use uma operação em estágios ou uma chave de idempotência para que novas tentativas não dupliquem a ação. Consulte a especificação MRTR oficial para o modelo completo de interação.
5. Atualize gateways, cache e autorização
As mudanças de infraestrutura são estreitamente relacionadas e devem ser testadas em conjunto.
Valide cabeçalhos de roteamento MCP
Solicitações POST via HTTP com streaming agora incluem:
MCP-Protocol-VersionMcp-MethodMcp-Name
Esses cabeçalhos permitem que gateways roteiem, meçam, autorizem e apliquem rate limit ao tráfego sem analisar cada corpo JSON.
Eles podem dar suporte a controles como:
- limites de taxa específicos por ferramenta;
- políticas separadas para métodos de listagem e de execução;
- pools de workers dedicados para ferramentas caras;
- acesso restrito a operações de alto risco;
- métricas de latência e erro por ferramenta;
- atribuição de custos de infraestrutura.
Os valores ainda são fornecidos pelo cliente. Compare-os com o corpo JSON-RPC antes de aplicar a política.
Uma solicitação não deve poder declarar uma ferramenta de baixo risco em Mcp-Name ao invocar uma ferramenta diferente no corpo. Inconsistências entre cabeçalho e corpo devem ser rejeitadas e registradas.
Use chaves de cache cientes de autorização
O novo protocolo adiciona ttlMs e cacheScope a resultados cacheáveis incluindo:
tools/listprompts/listresources/listresources/templates/listresources/read
Uma chave de cache normalmente deve incluir:
protocol version
server identity
method
request parameters
authenticated principal or tenant
authorization scope
cacheScope
server configuration version
Não reutilize uma entrada de cache privada entre usuários ou locatários apenas porque o TTL não expirou.
A ordenação determinística de ferramentas também importa. Um catálogo estável evita misses de cache desnecessários e pode melhorar o reaproveitamento de cache de prompt do modelo quando definições de ferramentas são inseridas nos prompts.
Reforce o tratamento do emissor (issuer) no OAuth
Durante a migração de autorização:
- valide um valor
issretornado contra o emissor registrado para o fluxo; - indexe as credenciais do cliente armazenadas pelo emissor;
- nunca reutilize credenciais com outro authorization server;
- defina um
application_typeapropriado durante o DCR; - prepare novas integrações para Client ID Metadata Documents.
Dynamic Client Registration permanece disponível para compatibilidade retroativa, mas está obsoleto como abordagem preferida de registro.
6. Migre notificações, Tasks e recursos obsoletos
O caminho antigo de notificações via HTTP GET e o fluxo resources/subscribe ou resources/unsubscribe foram substituídos por subscriptions/listen.
Clientes abrem um stream de resposta POST de longa duração e optam pelas categorias de notificação necessárias. Notificações de progresso e log específicas por solicitação permanecem anexadas ao stream de resposta da solicitação que descrevem.
Para implantações com múltiplas instâncias, use um barramento de eventos compartilhado quando notificações geradas em uma instância precisarem alcançar uma assinatura conectada a outra.
Extensão Tasks
O trabalho de longa duração saiu do protocolo core experimental e foi para:
io.modelcontextprotocol/tasks
A extensão usa:
tasks/getpara polling;tasks/updatepara atualizações de cliente para servidor;- identificadores de tarefas duráveis;
subscriptions/listenpara atualizações opt-in.
Os padrões antigos tasks/result e tasks/list não devem ser carregados para uma nova implementação.
Recursos obsoletos
Os seguintes recursos estão obsoletos:
| Recurso | Direção recomendada | MCP 2026-07-28 | Ação de migração |
|---|---|---|---|
| Roots | Passe diretórios por argumentos de ferramenta, URIs de recurso ou configuração | Sem handshake obrigatório | Remover gates de inicialização de solicitações modernas |
| Sampling | Integre diretamente com APIs do provedor de modelo | Sem sessão no nível do protocolo | Tornar o estado necessário explícito |
| Logging | Use stderr para stdio ou OpenTelemetry em produção | Chamada opcional server/discover | Implementar discovery e negociação de versão |
| Dynamic Client Registration | Migre para Client ID Metadata Documents | Incluído em _meta da solicitação | Enviar metadados de protocolo por solicitação |
| HTTP+SSE legado | Migrar para HTTP com streaming | Cabeçalhos Mcp-Method e Mcp-Name | Atualizar roteamento, política e observabilidade |
| Valores includeContext obsoletos | Omitir o campo ou usar "none" | Multi Round-Trip Requests | Tratar input_required e novas tentativas |
| Cache de listas | Catálogos buscados repetidamente | ttlMs, cacheScope, ordenação determinística | Adicionar cache ciente de autorização |
| Notificações | Stream GET e assinaturas de recurso | subscriptions/listen | Mover notificações de mudança para o novo stream |
| Autorização | Registro centrado em DCR | Regras de issuer mais fortes e direção a CIMD | Auditar clientes OAuth e armazenamento de credenciais |
| Trabalho de longa duração | Tasks experimentais no core | Extensão io.modelcontextprotocol/tasks | Migrar para o contrato de extensão |
| Recursos antigos | Roots, Sampling, Logging, HTTP+SSE | Obsoletos | Parar novas adoções e medir uso existente |
A funcionalidade obsoleta permanece disponível durante o período de desativação, mas novas implementações não devem adotá-la. A política de ciclo de vida do MCP prevê um período mínimo de doze meses; isso não significa que cada recurso tenha a mesma data de remoção confirmada.
Revise o registro de recursos obsoletos oficial antes de definir um prazo de aposentadoria.
7. Execute a migração com segurança
Não altere clientes, servidores, gateways, cache e autorização em uma única versão sem observabilidade.
Ordem de migração recomendada
- Levante inventário de versões de protocolo, SDKs, sessões, tráfego SSE, clientes DCR e métodos obsoletos.
- Atualize SDKs em ambientes não produtivos.
- Adicione
server/discovere negociação de versão. - Substitua dependências ocultas de sessão.
- Implemente e proteja MRTR.
- Adicione cabeçalhos de roteamento validados e caches com escopo.
- Teste limites de emissor na autorização.
- Faça canary do protocolo moderno ao lado do caminho legado.
- Aposente o comportamento antigo somente após revisar a telemetria.
Compatibilidade durante o canary
Modern client + modern server
→ Use MCP 2026-07-28
Modern client + legacy server
→ Probe and fall back when supported
Legacy client + dual-version server
→ Continue on the legacy path
Unsupported combination
→ Return a clear protocol-version error
O lançamento de uma nova especificação MCP não é uma troca de toda a comunidade. Clientes, servidores, SDKs e plataformas hospedadas migrarão em velocidades diferentes.
Telemetria a registrar
| Sinal | O que revela |
|---|---|
| Versão do protocolo por solicitação | Adoção e combinações incompatíveis |
| Sucesso do discovery e taxa de fallback | Comportamento de negociação de versão |
| Cabeçalhos MCP ausentes ou inválidos | Clientes desatualizados ou erros no gateway |
| Inconsistências entre cabeçalho/corpo | Bugs no cliente ou tentativas de burlar políticas |
| MRTR solicitado e concluído | Confiabilidade de workflows interativos |
| MRTR rejeitado ou com timeout | Caminhos de falha de usuário e cliente |
| Falhas na verificação de request-state | Violação, replay ou expiração |
| Prevenção de operações duplicadas | Eficácia dos controles de idempotência |
| Taxa de acerto de cache por escopo | Redução segura de tráfego |
| Falhas de validação de emissor | Problemas de configuração OAuth |
| Tráfego HTTP+SSE | Trabalho restante de migração de transporte |
| Tráfego de métodos obsoletos | Evidências para planejamento de aposentadoria |
| Latência de ferramenta e taxa de tarefas aceitas | Confiabilidade visível ao usuário |
Solicitações bem-sucedidas one-shot de tools/call não bastam para medir a migração. Um workflow que expira repetidamente, solicita entrada desnecessária ou duplica uma escrita externa continua sendo uma falha em produção.
Como a CometAPI se encaixa em uma arquitetura MCP
MCP não substitui uma API de modelo. As duas camadas resolvem problemas de integração diferentes.
| Camada | Responsabilidade primária |
|---|---|
| MCP | Conectar agentes a ferramentas, recursos, prompts, aprovações e tarefas |
| API unificada de modelos | Conectar aplicativos a modelos, credenciais, uso e faturamento |
| Orquestração do aplicativo | Decidir quando e como chamar modelos e ferramentas |
Uma arquitetura de produção típica se parece com isto:
Application or agent
↓
MCP clients and servers
Tools, resources, approvals, tasks
↓
Unified model API
GPT, Claude, Gemini, DeepSeek, and other models
MCP padroniza como agentes interagem com ferramentas e contexto. Ele não padroniza preços de modelos, credenciais de provedores, endpoints de inferência ou failover de provedores.
Essa separação torna-se especialmente útil ao migrar do recurso obsoleto Sampling. Se um servidor MCP ou o agente que o consome ainda precisar de inferência de modelo, o aplicativo pode chamar uma API de modelo diretamente em vez de depender do antigo fluxo MCP Sampling.
Quando um gateway unificado de modelos ajuda
Um gateway de modelos unificado pode reduzir o trabalho operacional quando:
- vários servidores MCP precisarem acessar diferentes provedores de modelo;
- diferentes ferramentas exigirem modelos distintos;
- equipes quiserem trocar modelos sem reescrever integrações específicas de provedor;
- credenciais, uso e faturamento precisarem ser gerenciados centralmente;
- o acesso ao modelo deva permanecer independente de mudanças no transporte MCP.
A CometAPI fornece um endpoint compatível com OpenAI que pode ser usado como a camada de acesso a modelos por trás de aplicativos MCP. Isso mantém a lógica de provedores de modelo separada das ferramentas, recursos e orquestração de tarefas do MCP.
Por exemplo, uma ferramenta MCP pode chamar um modelo através do mesmo cliente compatível com OpenAI usado em outras partes do aplicativo:
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.COMETAPI_KEY,
baseURL: "https://api.cometapi.com/v1"
});
export async function summarizeResource(content: string) {
const response = await client.chat.completions.create({
model: "your-selected-model",
messages: [
{
role: "system",
content: "Summarize the supplied resource clearly and concisely."
},
{
role: "user",
content
}
]
});
return response.choices[0]?.message?.content ?? "";
}
O servidor MCP permanece responsável pelo contrato da ferramenta, autorização, estado e tratamento do resultado. O gateway de modelos lida com seleção de modelo, acesso ao provedor e respostas de inferência.
Manter essas camadas separadas oferece dois benefícios práticos:
- Clientes e servidores MCP podem migrar para o novo protocolo sem alterar a camada de integração de modelos.
- Provedores de modelo podem ser trocados sem redesenhar ferramentas MCP ou o comportamento de transporte.
Para mais detalhes de implementação, consulte o Quickstart da CometAPI, a documentação da API e o guia de aplicações de IA multi-modelo.
Checklist de migração do MCP 2026-07-28
Cliente
- Atualize para um SDK compatível.
- Habilite a negociação de versão moderna.
- Suporte
server/discover. - Inclua metadados de protocolo em cada solicitação.
- Trate
resultType. - Suporte ou rejeite explicitamente MRTR.
- Use um novo ID JSON-RPC para novas tentativas.
- Preserve e retorne
requestState. - Valide emissores OAuth.
- Armazene credenciais por emissor.
- Respeite dicas de cache.
- Suporte
subscriptions/listenquando necessário.
Servidor
- Remova gates de inicialização de solicitações modernas.
- Remova dependências de
Mcp-Session-Id. - Implemente
server/discover. - Substitua estado oculto por identificadores ou armazenamento compartilhado.
- Retorne
resultType. - Substitua solicitações iniciadas pelo servidor por MRTR.
- Proteja
requestState. - Valide todos os
inputResponses. - Adicione idempotência para efeitos colaterais.
- Retorne listas determinísticas.
- Publique dicas de cache conservadoras.
- Migre trabalhos de longa duração para a extensão Tasks.
Gateway e infraestrutura
- Valide cabeçalhos de solicitação MCP.
- Compare cabeçalhos com o corpo da solicitação.
- Remova roteamento sticky desnecessário.
- Teste solicitações em várias instâncias.
- Partitione caches por limite de autorização.
- Adicione um barramento de notificações compartilhado quando necessário.
- Acompanhe tráfego legado e obsoleto.
- Mantenha um caminho de rollback durante o canary.
FAQ
O que é o MCP 2026-07-28?
MCP 2026-07-28 é a especificação do Model Context Protocol lançada em 28 de julho de 2026. Ela introduz um núcleo sem estado, Multi Round-Trip Requests, cabeçalhos de roteamento HTTP, resultados cacheáveis, mudanças de autorização, extensões e um ciclo de vida formal de desativação.
Mcp-Session-Id foi removido?
Sim. O novo protocolo HTTP com streaming não usa Mcp-Session-Id.
Aplicações ainda podem preservar estado através de identificadores explícitos, armazenamento compartilhado, tarefas duráveis ou valores de request-state protegidos.
O handshake de inicialização do MCP foi removido?
Sim. Solicitações modernas não exigem a troca initialize e notifications/initialized.
Servidores devem implementar server/discover, embora clientes não precisem chamá-lo antes de cada operação.
MCP sem estado significa que ferramentas não podem preservar estado?
Não. Sem estado refere-se à camada de protocolo.
Uma ferramenta ainda pode armazenar estado, mas o processamento da solicitação não deve depender de afinidade de transporte oculta ou de um processo específico do servidor.
O que é MRTR?
Multi Round-Trip Requests permitem que um servidor solicite entrada adicional do cliente ou usuário sem enviar uma solicitação iniciada pelo servidor por uma conexão bidirecional continuamente aberta.
O servidor retorna input_required, e o cliente repete a operação original com as respostas solicitadas.
HTTP+SSE foi removido imediatamente?
Não. Está obsoleto, mas não removido imediatamente.
Novos servidores devem usar HTTP com streaming, enquanto sistemas existentes devem medir e migrar o tráfego HTTP+SSE remanescente.
Clientes do SDK TypeScript v2 usam MCP 2026-07-28 automaticamente?
Não. O SDK v2 de TypeScript exige uma configuração explícita de negociação de versão para usar o protocolo moderno.
Use negociação automática quando o cliente precisar funcionar com servidores modernos e legados.
Recomendações finais
MCP 2026-07-28 torna a infraestrutura MCP remota mais fácil de escalar, rotear, armazenar em cache e observar. O principal risco de migração não é simplesmente a remoção de um cabeçalho ou handshake. É o estado de aplicativo oculto e a lógica de interação que ainda podem depender deles.
Antes de implantar o novo protocolo:
Encontre toda dependência de inicialização e Mcp-Session-Id.
- Passe o estado necessário para identificadores explícitos ou armazenamento compartilhado.
- Implemente MRTR com expiração, proteção contra replay e idempotência.
- Valide cabeçalhos MCP contra o corpo JSON-RPC.
- Partitione caches por locatário e escopo de autorização.
- Reforce a validação do emissor no OAuth.
- Meça métodos obsoletos e tráfego de transporte legado.
- Faça canary dos caminhos de protocolo moderno e legado antes da aposentadoria.
Trate a migração como uma mudança de infraestrutura, não como uma simples atualização de SDK.
Uma vez que a camada MCP esteja sem estado e observável, mantenha o acesso a modelos por trás de uma interface separada. Isso permite que o protocolo de ferramentas e a camada de provedores de modelo evoluam de forma independente.
