>_toolkitbox

~/ / Artículos de IA / 2.117 secretos válidos en archivos de configuración MCP públicos: qué encontró GitGuardian y cómo revisar los tuyos

2.117 secretos válidos en archivos de configuración MCP públicos: qué encontró GitGuardian y cómo revisar los tuyos

Un archivo de configuración que le dice a una aplicación de IA qué servidores MCP debe ejecutar suele necesitar una clave. El informe State of Secrets Sprawl 2026 de GitGuardian contó 24.008 secretos únicos en archivos de configuración relacionados con MCP en GitHub público, y 2.117 de ellos eran credenciales válidas. Este artículo resume el informe, explica qué dice la documentación de Claude Code sobre los archivos de configuración de proyecto y te permite revisar el tuyo.

Publicado: · Contrastado con las fuentes oficiales el 2026-10-24. Este artículo las resume y no las sustituye.

Qué encontró el informe

  • GitGuardian publicó su informe State of Secrets Sprawl 2026 el 17 de marzo de 2026. Sus datos corresponden a 2025.
  • Contó 24.008 secretos únicos expuestos en archivos de configuración relacionados con MCP en GitHub público, entre ellos 2.117 credenciales válidas únicas.
  • Solo en 2025 se añadieron 28,65 millones de secretos nuevos escritos directamente en el código a commits de GitHub público, lo que el informe describe como un aumento del 34 % interanual.
  • Los secretos de servicios de IA llegaron a 1.275.105, un 81 % más que el año anterior.
  • El informe dice que el problema suele deberse a la propia documentación, que fomenta patrones inseguros: poner las claves de API directamente en archivos de configuración, en argumentos de línea de comandos o en cadenas de conexión incrustadas.

Por qué el archivo MCP de un proyecto se filtra con facilidad

Claude Code guarda los servidores MCP de ámbito de proyecto en un archivo .mcp.json en el directorio raíz del proyecto, y su documentación describe ese archivo como compartido mediante el control de versiones. Una clave escrita en él es visible para todos los que pueden leer el repositorio.

ÁmbitoDónde se guardaQuién lo ve
Local~/.claude.json, bajo la ruta del proyectoEl proyecto actual, privado para ti
Proyecto.mcp.json en la raíz del proyectoEl proyecto actual, compartido mediante el control de versiones
Usuario~/.claude.jsonTodos tus proyectos

Mantén la clave fuera del archivo

  • Claude Code expande ${VAR} y ${VAR:-default} en command, args, env, url y headers, de modo que el archivo puede nombrar una variable en lugar de contener el valor. El propio ejemplo de la documentación escribe una cabecera como Authorization: Bearer ${API_KEY}.
  • Si una variable no está definida y no tiene valor por defecto, la configuración se carga igualmente. Claude Code muestra una advertencia y usa el texto ${VAR} tal como está escrito.
  • En url y headers de un servidor remoto, algunas variables de credenciales se leen como vacías aunque estén definidas. La documentación cita como ejemplos ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, AWS_BEARER_TOKEN_BEDROCK, HTTPS_PROXY y NPM_TOKEN, y dice que una variable llamada API_KEY se expande tal como está escrita.
  • Un valor escrito en args o url también se guarda en el archivo, así que la advertencia del informe sobre los argumentos de línea de comandos y las cadenas de conexión incrustadas se aplica también ahí.

Revisa tu archivo

El verificador de abajo lee un .mcp.json o un claude_desktop_config.json en tu navegador. Señala los valores que parecen secretos escritos en args, env y headers, con los mismos detectores que el Prompt Redactor, y las referencias a variables que Claude Code lee como vacías. La detección es heurística, así que puede pasar por alto un secreto o señalar un valor inofensivo.

Pruébalo: MCP Config Checker

Reglas comprobadas con la documentación el 2026-10-23.

Documentación: Claude Code / Model Context Protocol / VS Code

No se comprueba: si un comando existe, si un paquete se instala, si un servidor remoto responde ni los ajustes que otras aplicaciones leen de forma distinta.

Todo se ejecuta en tu navegador. La configuración no se sube.

Antes de pegar una configuración en un chat de IA

Es habitual pegar un archivo de configuración en un chat de IA para preguntar por qué un servidor no arranca. El Prompt Redactor enmascara claves de API, tokens, contraseñas y datos personales del texto, y puede restaurarlos en la respuesta, todo en tu navegador.

Pruébalo: Prompt Redactor

Qué ocultar

Formatos documentados — publicados por el proveedor o en un RFC

Patrones que parecen secretos — deducidos por la forma o por el nombre; pueden pasar por alto algo o coincidir de más

Datos personales y de red — encontrados por patrón

Texto enmascarado

El texto enmascarado aparece aquí.

Esto encuentra texto con una forma reconocible. No puede encontrar información confidencial escrita en frases corrientes, así que no encontrar algo no significa que sea seguro.

Lee el texto enmascarado antes de enviarlo.

Los formatos de claves se comprobaron con la documentación de los proveedores y con los RFC el 2026-10-23.

Todo se ejecuta en tu navegador. Ni tu texto ni la tabla de restauración se suben.

Si un secreto ya se subió en un commit

  • La documentación de GitHub dice que el primer paso es revocar o rotar el secreto, para que ya no pueda usarse para acceder.
  • Tras rotarlo, puede que no esté justificado reescribir el historial del repositorio, porque revocar el secreto puede bastar para resolver el problema.
  • Si el commit existe en forks, sigue siendo accesible allí. GitHub no puede darte los datos de contacto de los propietarios de los forks.
  • Los commits pueden seguir siendo accesibles por sus hashes SHA-1 en vistas en caché de GitHub. El soporte de GitHub puede eliminar vistas en caché y referencias de datos sensibles cuyo riesgo no se puede reducir rotando credenciales.

Fuentes