Existe uma crítica comum — “MCP não tem autenticação” — que era verdadeira e hoje não é mais. A especificação tem um modelo de autorização definido. O problema mudou de “não existe” para “existe e quase ninguém implementa”, que é um problema diferente e mais tratável.
O modelo, em três obrigações
A revisão de junho de 2025 reclassificou o servidor MCP como resource server OAuth puro — ele não autentica usuário, não emite token, não gerencia login. Sobram três tarefas:
- Responder 401 com header
WWW-Authenticateapontando para o documento de metadados do recurso. - Publicar esse documento conforme a RFC 9728, indicando qual authorization server ele confia e quais escopos existem.
- Rejeitar todo token que não tenha sido emitido para ele — validação de audiência. É o único item realmente crítico e o mais pulado.
O cliente atua como cliente OAuth 2.1, com PKCE obrigatório no método S256, e descobre o authorization server pela cadeia de metadados. Revisões posteriores apertaram validação de issuer e registro de cliente.
A distância entre especificação e realidade
A auditoria da Astrix em mais de 5.200 servidores encontrou 88% exigindo credencial de algum tipo, 53% apoiados em chave estática ou token de acesso pessoal, e apenas 8,5% usando OAuth. Setenta e nove por cento passavam a chave por variável de ambiente.
Não é lacuna de especificação. É lacuna de adoção — que é exatamente onde a função de segurança tem alguma coisa a fazer.
O que fazer se você não pode reescrever o servidor
Boa parte dos servidores em produção é código de terceiro que você não controla. Trate como serviço legado sem autenticação — um problema que a indústria já resolveu:
- Coloque um gateway na frente que faça validação de token e terminação mTLS, e restrinja o servidor a aceitar conexão só do gateway.
- Troque chave estática por credencial de vida curta sempre que o serviço de destino permitir.
- Tire o segredo da variável de ambiente e injete via arquivo montado com permissão restrita ou provedor de secrets — variável de ambiente vaza em dump de processo, em log de crash e em qualquer ferramenta que liste o ambiente.
- Se o servidor não valida audiência, garanta que ele só receba tokens de um emissor único e que esse emissor não sirva outros públicos.
Nenhuma dessas medidas é nova. Elas são o mesmo playbook de colocar um serviço interno antigo atrás de controle moderno — só que aplicado a um componente que a organização ainda não classificou como serviço.