Detectar secretos embebidos en texto plano (credenciales hardcodeadas)
detect_hardcoded_secrets_riskAnaliza código fuente o un archivo de configuración (incluido el bloque "env" de un servidor en la config de mcpServers, o un archivo ".env") en busca de credenciales escritas tal cual en texto plano, en vez de venir de una variable de entorno o un gestor de secretos: (1) cadenas con el formato reconocible de una credencial real (llaves de OpenAI, AWS, GitHub, Slack, Google, o el encabezado de una llave privada PEM); (2) una variable o llave de configuración con nombre de credencial (api_key, secret, token, password…) con un valor literal en el propio código; (3) una línea al estilo ".env" que asigna un valor literal a una variable de entorno cuyo nombre indica una credencial; y (4) una variable de entorno con un valor de reserva ("fallback") hardcodeado — si la variable de entorno no está definida, el código sigue funcionando igual con el secreto embebido, lo que anula el propósito de usar una variable de entorno. Motivada por un reporte real de Hush Security (septiembre 2026) que escaneó ~82.000 archivos de configuración MCP públicos en GitHub: el 12% de los espacios de credenciales tenía un secreto literal embebido, el 53% de esos con acceso a nivel de toda la organización, y el 55% sin ningún formato de token conocido. También documentado por Trend Micro (48% de 19.402 servidores MCP con almacenamiento inseguro de secretos) y catalogado como MCP01 en el OWASP MCP Top 10. Reconoce placeholders/ejemplos comunes ("your-api-key-here", "changeme", la llave de ejemplo oficial de AWS) para no marcarlos como riesgo. Es un análisis estático por patrones de texto (no ejecuta el código ni revisa el historial de git) — mismo enfoque que detect_ssrf_risk, detect_path_traversal_risk, detect_command_injection_risk, detect_sql_injection_risk y detect_token_passthrough_risk. Requiere una llave de acceso válida (usos gratis o créditos) — ver POST /crear-llave.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"codigo": "<codigo>"
},
"name": "detect_hardcoded_secrets_risk"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| codigo | Yes | El código fuente o archivo de configuración a revisar, en texto plano. | |
| lenguaje | No | Solo informativo (ej. "javascript", "python", "json", "env") — la detección ya cubre varios formatos a la vez, este campo no cambia el resultado. |