
Os rótulos de segurança do servidor MCP são honestos? Uma verificação com um comando (e o que foi encontrado em 31 servidores populares)
Você escreveu isso uma vez, no dia em que a ferramenta nasceu:
{
"name": "search_docs",
"annotations": {
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": false
}
}
Então a ferramenta continuou mudando. Um parâmetro foi adicionado. Uma chamada de backend foi conectada. O esquema cresceu.
O bloco de anotações permaneceu exatamente como você o deixou.
Por que a divergência importa
A especificação do MCP chama essas anotações de dicas e diz aos clientes para não confiar nelas cegamente. Muitos clientes as usam de qualquer maneira, porque elas chegam na hora da lista de ferramentas e são baratas para agir. Um padrão comum: readOnlyHint: true significa pular o prompt de confirmação.
Portanto, um rótulo desatualizado custa mais do que um revisor confuso. Ele pode remover silenciosamente uma etapa de segurança que, de outra forma, teria sido acionada.
O protocolo não tem uma etapa que re-verifica o rótulo em relação ao esquema à medida que a ferramenta evolui. Essa é a lacuna que actlint preenche. Ele lê o que um servidor anuncia sobre tools/list, descobre o que cada ferramenta provavelmente faz a partir do nome, descrição e esquema de entrada, e relata onde isso discorda do que a ferramenta declara. Ele nunca chama uma ferramenta.
Nós o direcionamos a 541 ferramentas em 31 servidores amplamente utilizados, incluindo oficiais da Stripe, GitHub, Microsoft, Google, MongoDB e PayPal. Onze voltaram completamente limpas. Quatro carregam um rótulo que nega algo que o próprio esquema da ferramenta diz que ela pode fazer. Cartão de pontuação completo, notas por servidor, metodologia e as duas descobertas que não sobreviveram à nossa própria revisão: Rótulos de Segurança MCP Funcionam no Sistema de Honra.
Este post é sobre executá-lo no seu.
Formas de apontá-lo para um servidor
Servidor stdio local, lançado pelo actlint:
npx actlint npx -y @modelcontextprotocol/server-filesystem .
Servidor hospedado via HTTP, com uma credencial se precisar de uma para listar suas ferramentas:
npx actlint --http https://mcp.example.com/mcp --header "Authorization: Bearer ${MCP_TOKEN}"
Servidor que precisa de uma variável de ambiente para iniciar.
npx actlint --env STRIPE_SECRET_KEY npx -y @stripe/mcp --tools=all
Capturar uma vez, verificar muitas vezes
Conversar com o servidor é a única etapa que toca a rede. Tudo depois disso é puro, então você pode salvar o manifesto e reproduzi-lo quantas vezes quiser com resultados idênticos:
# Uma vez, onde a credencial vive
npx actlint --capture tools.json --http https://mcp.example.com/mcp --header "Authorization: Bearer ${MCP_TOKEN}"
# Cada execução após isso, offline, sem credencial, sem socket
npx actlint --manifest tools.json --fail-on high
npx actlint --manifest tools.json --json -o report.json
npx actlint --manifest tools.json --sarif -o results.sarif
Essa divisão também é a forma certa para CI: capturar em um trabalho com acesso à rede, controlar em um sem.
No GitHub Actions
- uses: formael/actlint/packages/github-action@df516d81ba3719687d1d72227737887c3534e1db # v0.1.0
with:
args: --manifest manifest.json --fail-on high
Ativando-o para um servidor que já tem descobertas, sem uma construção vermelha no primeiro dia:
npx actlint --manifest tools.json --write-baseline baseline.json
npx actlint --manifest tools.json --baseline baseline.json --fail-on low
As entradas de linha de base são indexadas por impressão digital, para que sobrevivam a reordenações e edições não relacionadas.
Lendo o cartão de pontuação
actlint ▸ servidor stdio nota de honestidade: A
──────────────────────────────────────────────────────────────────────────────
14 ferramentas escaneadas · 0 subdeclarações · 0 não declaradas · 0 superdeclarações
avisos — higiene de capacidade, não veredictos de honestidade
◐ ADV move_file sem-restrição-de-escopo
Esta é uma ação sensível cujo esquema de entrada não possui restrição de estreitamento …
↳ OWASP ASI02:2026 · OWASP MCP02:2025 · CoSAI MCP-T3 · Ato de IA da UE Art.15 · NIST …
Três veredictos, em ordem de quão preocupantes eles devem ser para você:
| Veredicto | Significado |
|---|---|
| subdeclarado | A ferramenta afirma menos risco do que realmente tem. Este é o que importa. |
| não declarado | Não diz nada de um jeito ou de outro. O padrão da especificação já protege o cliente, então isso é um empurrão. |
| superdeclarado | Cautela excessiva honesta, paga com fadiga de alarme. |
Os avisos são notas de capacidade, em vez de veredictos de honestidade, portanto, nunca movem a nota e nunca falham uma construção.
A nota é uma nota de honestidade, não uma pontuação de segurança. Um servidor cheio de ferramentas destrutivas honestamente declaradas ganha um A. Qualquer descoberta subdeclarada limita isso a B.
Cada descoberta carrega uma justificativa em inglês simples e um mapeamento para OWASP ASI, o Top 10 do OWASP MCP, CoSAI, o Ato de IA da UE e NIST. Qualquer ID de regra se explica offline:
npx actlint explain wriAs empresas brasileiras que utilizam servidores MCP devem estar atentas à integridade dos rótulos de segurança, pois rótulos desatualizados podem levar a ações inseguras. A ferramenta actlint pode ajudar a garantir que os rótulos reflitam com precisão as capacidades dos servidores, aumentando a segurança operacional.
Noticias relacionadas
Servidor MCP 1.1.0 da endoflife.ai: Exposição KEV, verificações SBOM e dispositivos de borda para agentes de IA
O servidor MCP da endoflife.ai agora possui dez ferramentas de leitura. Novas funcionalidades incluem exposição a vulnerabilidades conhecidas e status de dispositivos de borda, essenciais para a segurança de versões de software.

O que os agentes de IA realmente veem ao buscar seu Ator Apify
O artigo explora como os agentes de IA interagem com o servidor MCP da Apify, destacando a importância da descrição e otimização dos Ators para serem encontrados. Inclui uma análise de como os resultados de busca diferem entre humanos e agentes.
Como o Protocolo de Contexto do Modelo (MCP) muda para sempre o lançamento de recursos em SaaS
O Protocolo de Contexto do Modelo (MCP) é mais do que leitura de dados; sua aplicação mais poderosa é a orquestração de aplicativos em tempo de execução, permitindo que agentes de IA gerenciem anúncios e guias de onboarding sem código efêmero.
Gostou do conteudo?
Receba toda semana as principais novidades sobre WebMCP.