~/ / Artigos sobre IA / 2,117 segredos válidos em arquivos de configuração MCP públicos: o que a GitGuardian encontrou e como verificar o seu
2,117 segredos válidos em arquivos de configuração MCP públicos: o que a GitGuardian encontrou e como verificar o seu
Um arquivo de configuração que diz a um aplicativo de IA quais servidores MCP executar costuma precisar de uma chave. O relatório State of Secrets Sprawl 2026 da GitGuardian contou 24,008 segredos únicos em arquivos de configuração relacionados ao MCP no GitHub público, e 2,117 deles eram credenciais válidas. Este artigo resume o relatório, explica o que a documentação do Claude Code diz sobre os arquivos de configuração de projeto e permite que você verifique o seu.
Publicado: · Conferido com as fontes oficiais em 2026-10-24. Este artigo as resume e não as substitui.
O que o relatório encontrou
- A GitGuardian publicou seu relatório State of Secrets Sprawl 2026 em 17 de março de 2026. Os dados cobrem 2025.
- Ele contou 24,008 segredos únicos expostos em arquivos de configuração relacionados ao MCP no GitHub público, incluindo 2,117 credenciais válidas únicas.
- Só em 2025, 28.65 milhões de novos segredos fixos no código foram adicionados a commits do GitHub público, o que o relatório chama de um aumento de 34% em relação ao ano anterior.
- Os segredos de serviços de IA chegaram a 1,275,105, um aumento de 81% em relação ao ano anterior.
- O relatório diz que o problema muitas vezes é impulsionado pela própria documentação, que incentiva padrões inseguros: colocar chaves de API diretamente em arquivos de configuração, argumentos de linha de comando ou strings de conexão embutidas.
Por que o arquivo MCP de um projeto vaza com facilidade
O Claude Code guarda os servidores MCP de escopo de projeto em um arquivo .mcp.json no diretório raiz do projeto, e sua documentação descreve esse arquivo como compartilhado por meio do controle de versão. Uma chave digitada nele fica visível para todos que podem ler o repositório.
| Escopo | Onde é armazenado | Quem vê |
|---|---|---|
| Local | ~/.claude.json, sob o caminho do projeto | O projeto atual, privado para você |
| Projeto | .mcp.json na raiz do projeto | O projeto atual, compartilhado por meio do controle de versão |
| Usuário | ~/.claude.json | Todos os seus projetos |
Mantenha a chave fora do arquivo
- O Claude Code expande ${VAR} e ${VAR:-default} em command, args, env, url e headers, de modo que o arquivo pode citar uma variável em vez de guardar o valor. O exemplo da própria documentação escreve um cabeçalho como Authorization: Bearer ${API_KEY}.
- Se uma variável não estiver definida e não tiver valor padrão, a configuração ainda assim é carregada. O Claude Code mostra um aviso e usa o texto ${VAR} como foi escrito.
- Em url e headers de um servidor remoto, algumas variáveis de credencial são lidas como vazias mesmo quando estão definidas. A documentação cita ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, AWS_BEARER_TOKEN_BEDROCK, HTTPS_PROXY e NPM_TOKEN como exemplos, e diz que uma variável chamada API_KEY é expandida como foi escrita.
- Um valor escrito em args ou url também fica guardado no arquivo, então o alerta do relatório sobre argumentos de linha de comando e strings de conexão embutidas vale também aí.
Verifique o seu arquivo
O verificador abaixo lê um .mcp.json ou claude_desktop_config.json no seu navegador. Ele aponta valores que parecem segredos escritos em args, env e headers, usando os mesmos detectores do Prompt Redactor, e referências a variáveis que o Claude Code lê como vazias. A detecção é heurística, então pode deixar passar um segredo ou apontar um valor inofensivo.
Experimente: MCP Config Checker
Regras conferidas com a documentação em 2026-10-23.
Documentação: Claude Code / Model Context Protocol / VS Code
Não verificado: se um comando existe, se um pacote é instalado, se um servidor remoto responde e configurações que outros aplicativos leem de outra forma.
Tudo roda no seu navegador. A configuração não é enviada.
Antes de colar uma configuração em um chat de IA
As pessoas costumam colar um arquivo de configuração em um chat de IA para perguntar por que um servidor não inicia. O Prompt Redactor mascara chaves de API, tokens, senhas e dados pessoais no texto, e pode restaurá-los na resposta, tudo no seu navegador.
Experimente: Prompt Redactor
Texto mascarado
O texto mascarado aparece aqui.
Esta ferramenta encontra texto com um formato reconhecível. Ela não encontra informações confidenciais escritas em frases comuns, então não encontrar algo não significa que esteja seguro.
Leia o texto mascarado antes de enviá-lo.
Os formatos de chave foram conferidos com a documentação dos fornecedores e com as RFCs em 2026-10-23.
Tudo roda no seu navegador. Nem o seu texto nem a tabela de restauração são enviados.
Se um segredo já foi enviado em um commit
- A documentação do GitHub diz que o primeiro passo é revogar ou trocar o segredo, para que ele não possa mais ser usado para acesso.
- Depois da troca, reescrever o histórico do repositório pode não ser justificado, porque revogar o segredo pode bastar para resolver o problema.
- Se o commit existir em forks, ele continua acessível lá. O GitHub não pode fornecer os dados de contato dos donos dos forks.
- Os commits podem continuar acessíveis por seus hashes SHA-1 em visualizações em cache no GitHub. O Suporte do GitHub pode remover visualizações em cache e referências de dados sensíveis cujo risco não pode ser reduzido trocando as credenciais.