Voltar as noticias
Autenticação de Servidor MCP: O que a Especificação de 28-07-2026 Quebrou
MCP ProtocolAltaEN

Autenticação de Servidor MCP: O que a Especificação de 28-07-2026 Quebrou

Dev.to - MCP·9 de setembro de 2026

Publicado originalmente em DevToolHub.

A autenticação do servidor MCP deixou de ser opcional há um mês. A maior revisão da especificação do Protocolo de Contexto do Modelo desde o lançamento finalizada conforme o cronograma em 28 de julho de 2026 e agora é a versão atual do protocolo. Isso transforma cada servidor MCP remoto em um servidor de recursos OAuth 2.1 formal. Não há mais trazer seu próprio token. Não há mais pular a autenticação porque seu servidor só se comunica com agentes internos.

Essa não é a única mudança drástica. As sessões foram eliminadas. O handshake initialize foi removido. O recurso de Tarefas foi movido do núcleo para uma extensão. Aqui está exatamente o que mudou, o que você precisa corrigir e o que ainda tem um período de carência de 12 meses.

O Que Realmente Mudou na Especificação MCP 2026-07-28

O candidato a lançamento foi bloqueado em 21 de maio de 2026, dando aos mantenedores do SDK uma janela de validação de 10 semanas, e a especificação final foi publicada em 28 de julho, conforme planejado. De acordo com o blog oficial da especificação, esta é a maior reescrita desde o lançamento do MCP — o protocolo passa de bidirecional e com estado para solicitação/resposta e sem estado — e toca quatro áreas ao mesmo tempo:

  • Transporte — sessões a nível de protocolo e o cabeçalho Mcp-Session-Id foram removidos do HTTP Streamable
  • Ciclo de Vida — o handshake initialize/initialized foi completamente removido
  • Tarefas — o recurso de tarefa assíncrona passou de experimental no núcleo para uma extensão oficial, com uma API diferente
  • Autorização — os servidores MCP agora são servidores de recursos OAuth 2.1, ponto final

Nada disso foi um lançamento suave. Servidores na revisão de 28 de julho de 2026 não funcionarão necessariamente com clientes mais antigos, e o inverso também é verdadeiro. Se você mantém um servidor MCP público ou interno e ainda não fez uma auditoria contra a especificação final, você já está um mês atrasado em relação aos clientes e SDKs que já o fizeram.

A Autenticação do Servidor MCP Torna-se OAuth 2.1 Obrigatória

Esta é a mudança com o maior volume de busca real por trás dela. Isso faz sentido — toca todos os servidores que aceitam conexões remotas. De acordo com a especificação final de autorização e a análise da WorkOS, a especificação agora exige coisas que seu servidor não precisava antes:

Metadados de Recursos Protegidos (RFC 9728). Seu servidor deve expor um endpoint .well-known/oauth-protected-resource. Ou pode incluir resource_metadata em seu cabeçalho WWW-Authenticate em vez disso. De qualquer forma, os clientes podem descobrir seu servidor de autorização automaticamente:

WWW-Authenticate: Bearer resource_metadata="https://api.example.com/.well-known/oauth-protected-resource"

Indicadores de Recursos (RFC 8707). Os clientes agora devem nomear o servidor MCP específico para o qual um token é destinado ao solicitá-lo. Isso fecha uma lacuna real. Sem um indicador de recurso, um token emitido para um servidor MCP poderia ser reproduzido contra outro. Com isso, o servidor de autorização vincula o token a um único público.

Verificação do Emissor (RFC 9207). Os servidores de autorização devem incluir o parâmetro iss, e os clientes devem validá-lo sempre que estiver presente — a especificação final suavizou isso da exigência obrigatória do candidato a lançamento e diz que uma revisão futura deve tornar a inclusão uma exigência rígida. De qualquer forma, se você migrar seu servidor MCP para um provedor de autenticação diferente, os clientes existentes precisarão se registrar novamente. Não há transferência silenciosa.

Além disso, a especificação descontinuou o Registro Dinâmico de Clientes (RFC 7591) em favor de Documentos de Metadados de ID do Cliente (CIMD). O DCR continua funcionando por enquanto, mas o CIMD é o caminho de registro preferido daqui para frente. Os clientes que ainda se registram através do DCR também devem declarar um application_type do OpenID Connect — algo que a especificação antiga nunca pediu.

Isso ocorre três meses após os pesquisadores de segurança da OX Security divulgarem uma falha de design no transporte STDIO do SDK do MCP que permitiu a execução de comandos arbitrários em mais de 7.000 servidores públicos. Essa RCE foi um transporte diferente e um bug diferente. Esta atualização da especificação não o corrige. O que ela faz é corrigir uma lacuna que a questão do STDIO nunca tocou: uma maneira padrão para um servidor confirmar que um token pertence a ele, e não a um callback destinado a outra pessoa. Se você já executa ferramentas de segurança em tempo de execução como Falco no Kubernetes para capturar execuções de processos anômalos, trate isso como a mesma categoria de lacuna, fechada em um nível diferente.

Sessões e o Handshake de Inicialização Foram Removidos

Se seu servidor rastreia estado usando Mcp-Session-Id, esse cabeçalho não existe mais no HTTP Streamable. As informações do cliente que costumavam viajar através da troca initialize/initialized agora são transportadas em _meta em cada solicitação. Procure campos como io.modelcontextprotocol/protocolVersion, /clientInfo, e /clientCapabilities.

Praticamente, isso significa:

  • Substitua qualquer estado baseado em sessão por um identificador emitido pelo servidor passado de volta como um argumento de ferramenta regular
  • Implemente o novo endpoint RPC server/discover para negociação de capacidade
  • Espere um UnsupportedProtocolVersionError em vez de uma falha de handshake quando a versão de um cliente não corresponder

Isso elimina completamente os requisitos de roteamento de sessão fixa. Um servidor MCP sem estado atrás de um balanceador de carga simples se torna uma implantação normal em vez de um caso especial. Você não precisa mais de afinidade de sessão apenas para manter um cliente se comunicando com a mesma instância de backend.

Migrando a Extensão de Tarefas

Se seu servidor usa Tarefas para operações de longa duração, a especificação substitui a API experimental 2025-11-25. Ela remove tasks/list completamente. Agora você controla o ciclo de vida com tasks/get, tasks/update, e tasks/cancel. Os servidores podem devolver um identificador de tarefa sem que o cliente opte por isso primeiro.

A mesma revisão introduz um padrão de protocolo central (separado da extensão de tarefas) para qualquer coisa que costumava manter uma conexão aberta aguardando o cliente. Em vez de um callback iniciado pelo servidor, uma chamada retorna um InputRequiredResult carregando inputRequests e um requestState opaco. O cliente coleta o que precisa e reemite a chamada original com inputResponses e o requestState ecoado. Todo o estado vive na carga útil em vez de em uma conexão aberta. Isso significa que qualquer instância de servidor pode processar a nova tentativa — o mesmo princípio sem estado que impulsiona a remoção da sessão. Uma adição que surgiu entre o candidato a lançamento e a especificação final suporta isso: cada resultado agora carrega um campo resultType obrigatório, "complete" ou "input_required", para que os clientes possam distinguir uma chamada finalizada de uma que está aguardando entrada sem adivinhar a partir da forma da carga útil.

[IMAGEM: articles/images/2026-07-25-mcp-server-authentication-spec-update-d

Contexto Triplo Up

As mudanças na especificação do MCP impactam diretamente empresas que utilizam servidores MCP, exigindo atualizações em suas infraestruturas. A transição para OAuth 2.1 pode melhorar a segurança, mas requer adaptações rápidas para evitar interrupções nos serviços. Empresas que não se adaptarem podem enfrentar problemas de compatibilidade com clientes e SDKs.

Noticias relacionadas

Gostou do conteudo?

Receba toda semana as principais novidades sobre WebMCP.