
agent-scan v0.6.4-snapshot-6e2d290-1638
Escáner de seguridad para agentes de IA, servidores MCP y habilidades de agentes.
Snyk Agent Scan
Descubre y escanea los componentes de agentes en tu máquina en busca de inyecciones de prompts
y vulnerabilidades (incluyendo agentes, servidores MCP, skills).
Nota: No publicamos un paquete npm para Agent Scan. Instálalo mediante
uvxo como un binario independiente.
Nota: La salida de la CLI es experimental y está sujeta a cambios
Agent Scan v0.5.x (con deprecación planificada)
La salida sin procesar de esta CLI — incluyendo códigos de incidencia, nombres de campos, etiquetas de severidad y estructura de respuesta — es experimental y puede cambiar sin previo aviso entre versiones. No recomendamos crear flujos de trabajo de producción que dependan de campos de salida específicos de la CLI o códigos de incidencia.
Agent Scan v0.6 y posteriores
La salida sin procesar de esta CLI — incluyendo nombres de indicadores de riesgo, puntuaciones, nombres de campos y estructura de respuesta — es experimental y puede cambiar sin previo aviso entre versiones. No recomendamos crear flujos de trabajo de producción que dependan de campos de salida específicos de la CLI o nombres de riesgo.
Si eres un cliente empresarial que usa Snyk para gestionar el riesgo de seguridad de agentes a escala, la salida de la CLI puede no reflejar lo que se envía y se muestra en la plataforma Evo. La integración subyacente, el descubrimiento y la evaluación de riesgos que impulsan los despliegues empresariales son estables y cuentan con soporte — cualquier cambio se comunicará conforme a las prácticas estándar de productos de Snyk. Contacta con tu equipo de cuentas para obtener orientación sobre el despliegue.
NUEVO Lee nuestro informe técnico sobre las amenazas emergentes del ecosistema de skills de agentes publicado junto con Agent Scan 0.4, que añade soporte para escanear skills de agentes.
Salida de Agent Scan v0.5.x
[!WARNING] Agent Scan v0.5.x usa salida con códigos de incidencia. Esta línea de la CLI tiene deprecación planificada.
Salida de Agent Scan v0.6 y posteriores
Agent Scan te ayuda a descubrir todos los componentes de agentes instalados (harnesses, servidores MCP y skills) y los escanea en busca de amenazas comunes como inyecciones de prompts, manejo de datos sensibles o cargas maliciosas ocultas en lenguaje natural. Omite el análisis de skills usando --no-skills.
Advertencia de seguridad
⚠️ IMPORTANTE: Escanear configuraciones de MCP ejecutará los comandos definidos en ellas.
Cuando Agent Scan escanea un archivo de configuración de MCP, inicia los servidores MCP de stdio ejecutando los comandos y argumentos especificados en la configuración. Esto es necesario para recuperar las descripciones de las herramientas y realizar el análisis de seguridad.
Recomendaciones:
- Ejecuta los escaneos dentro de un sandbox (contenedor Docker, VM o entorno desechable) al evaluar configuraciones de MCP no confiables o de terceros
- Revisa cuidadosamente el aviso de consentimiento durante los escaneos interactivos, muestra el comando y los argumentos exactos que se ejecutarán para cada servidor
- Usa
--dangerously-run-mcp-serverssolo en entornos de confianza donde hayas verificado todos los comandos de los servidores MCPPor defecto, Agent Scan requiere el consentimiento explícito del usuario (s/n) antes de iniciar cada servidor MCP de stdio durante las ejecuciones interactivas. Esto te da control sobre lo que se ejecuta en tu sistema.
Inicio rápido
Elige una de las dos formas de ejecutar Agent Scan:
- Ejecuta el paquete de Python con
uvxsiguiendo las instrucciones a continuación. - Descarga un binario independiente para tu plataforma desde GitHub Releases. Las versiones también incluyen el SBOM, sumas de verificación, sumas de verificación firmadas y archivos de código fuente.
Antes de usar cualquiera de las dos opciones:
- Regístrate en Snyk y obtén un token de API desde https://app.snyk.io/account (API Token → KEY → haz clic para mostrar).
- Establece el token como variable de entorno antes de ejecutar cualquier escaneo: ```bash
export SNYK_TOKEN=your-api-token-here
Ejecutar con uvx
Ten uv instalado en tu sistema. Elige las instrucciones para tu versión de CLI.
Agent Scan v0.5.x
Los ejemplos fijan v0.5.17 como una versión concreta de v0.5.x:```bash
Scan the whole machine
Scan a specific MCP configuration
uvx [email protected] ~/.vscode/mcp.json
Scan a single agent skill
uvx [email protected] ~/path/to/my/SKILL.md
Scan all Claude skills
uvx [email protected] ~/.claude/skills
> [!WARNING]
> v0.5.x utiliza salida de código de problema y la API de análisis `2025-09-02`. Esta línea de CLI está planificada para su deprecación.
#### Agent Scan v0.6 y posteriores```bash
# Scan the whole machine
uvx snyk-agent-scan@latest
# Scan a specific MCP configuration
uvx snyk-agent-scan@latest ~/.vscode/mcp.json
# Scan a single agent skill
uvx snyk-agent-scan@latest ~/path/to/my/SKILL.md
# Scan all Claude skills
uvx snyk-agent-scan@latest ~/.claude/skills
v0.6 y posteriores utilizan la salida basada en riesgos y la API de análisis 2026-07-10.
Ambas versiones escanean servidores MCP, herramientas, prompts, recursos y skills, y descubren automáticamente configuraciones de agentes compatibles como Claude Code/Desktop, Cursor, Gemini CLI y Windsurf.
Ejecutar con un binario independiente
Descarga el binario para tu sistema operativo y arquitectura desde la última versión de GitHub. La página de la versión también proporciona un SBOM (sbom-<version>.json), archivos de checksum y archivos de código fuente generados por GitHub. Consulta Verificación de binarios independientes para verificar tu descarga.
Aspectos destacados
- Descubrimiento automático de configuraciones MCP, herramientas de agentes, skills
- Escaneo de Claude, Cursor, GitHub Copilot, Windsurf, Gemini CLI, Amp, Amazon Q y otros agentes.
Agent Scan v0.5.x
- Detecta más de 15 riesgos de seguridad distintos en servidores MCP y skills de agentes:
Agent Scan v0.6 y posteriores
- Detecta 14 riesgos de seguridad distintos en servidores MCP y skills de agentes:
Agentes y capacidades compatibles
Agent Scan descubre automáticamente los agentes y sus capacidades (servidores MCP o skills) cuando existen sus rutas de instalación. La siguiente tabla muestra en qué sistemas operativos se escanea cada agente.
- ✓: al menos una ruta está definida para esa capacidad.
- ✗: el agente está listado para ese SO pero no tiene rutas para esa capacidad.
- —: ese agente no está incluido para ese SO.
- Skills Las skills se pueden ignorar usando
--no-skills
| Agent | macOS MCP | macOS Skills | Linux MCP | Linux Skills | Windows MCP | Windows Skills |
|---|---|---|---|---|---|---|
| Windsurf | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Cursor | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| VS Code | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| GitHub Copilot | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Claude Desktop | ✓ | ✗ | — | — | ✓ | ✗ |
| Claude Code | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Gemini CLI | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| OpenClaw | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ |
| Amp | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ |
| Kiro | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| OpenCode | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Antigravity | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Codex | ✓ | ✓ | ✓ | ✓ | — | — |
| Amazon Q | ✓ | ✗ | ✓ | ✗ | ✓ (WSL) | ✗ |
Cobertura de detección por ámbito
La matriz anterior muestra en qué sistemas operativos se escanea cada agente. Esta desglosa la detección por ámbito de configuración y tipo de componente (skills vs servidores MCP), combinados entre sistemas operativos. "Servers" significa servidores MCP.
Los cuatro ámbitos:
- System — configuración de toda la máquina / gestionada por el administrador / empresarial que se aplica a todos los usuarios (p. ej.
managed-mcp.json, archivos bajo/etc,/Library/Application SupportoProgramData). - User — la configuración del directorio home del usuario (se aplica a todos sus proyectos).
- Project / workspace — configuración limitada a un proyecto o workspace abierto.
- Extension / plugin — componentes incluidos dentro de extensiones o plugins instalados.
Leyenda: ✓ detectado · ✗ el agente lo soporta pero Agent Scan aún no lo escanea · N/A el agente no tiene dicho componente en este ámbito.
| Agent | System skills | System servers | User skills | User servers | Project / WS skills | Project / WS servers | Ext / plugin skills | Ext / plugin servers |
|---|---|---|---|---|---|---|---|---|
| Windsurf | ✓ | N/A | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Cursor | N/A | N/A | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| VS Code | N/A | N/A | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| GitHub Copilot § | N/A | N/A | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Claude Desktop | N/A | N/A | ✗ | ✓ | N/A | N/A | N/A | ✗ |
| Claude Code | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Gemini CLI | N/A | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ |
| OpenClaw | N/A | N/A | ✓ | ✗ | ✓ † | N/A | ✗ | ✗ |
| Amp | N/A | ✗ | ✓ | ✗ | ✗ ‡ | ✗ | ✗ | ✗ |
| Kiro | N/A | N/A | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| OpenCode | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | N/A | N/A |
| Antigravity | N/A | N/A | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Codex | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Amazon Q | N/A | N/A | N/A | ✓ | N/A | ✗ | N/A | N/A |
† OpenClaw no tiene enumeración de proyectos abiertos: sus skills de proyecto/workspace solo se encuentran en la ruta fija ~/.openclaw/workspace/skills
‡ Amp almacena las skills de proyecto/workspace en .agents/skills (y la ruta de compatibilidad .claude/skills); hoy solo se detecta el ámbito de usuario ~/.config/agents/skills, por lo que las skills de ámbito de proyecto están soportadas pero aún no se escanean.
§ GitHub Copilot cubre la CLI y la aplicación de escritorio, que comparten el home ~/.copilot con Copilot en VS Code, y se detecta desde ese home en lugar de desde una instalación de VS Code. Las reubicaciones de COPILOT_HOME se respetan al escanear tu propio home. El ámbito de proyecto cubre los archivos .mcp.json / .github/mcp.json relativos al repositorio y los directorios .github/skills, .claude/skills y .agents/skills, para las carpetas pasadas al escaneo y los directorios que Copilot ha registrado en permissions-config.json, más sus ancestros. El ámbito de plugin cubre ~/.copilot/installed-plugins, incluidos los manifiestos plugin.json que reubican su configuración MCP o declaran raíces de skills adicionales. No se escanean: las raíces de proyecto por sesión en session-state/*/workspace.yaml. Las rutas de nivel de usuario de Copilot también se listan bajo VS Code, que lee los mismos archivos.
Verificación de binarios independientes
Usamos firma GPG en el archivo de checksums de la versión para garantizar la integridad y autenticidad de la distribución.
Guía de verificación paso a paso
-
Descarga los recursos de la versión: Descarga el binario para tu plataforma (p. ej.,
agent-scan-<version>-<os>-<arch>) y el archivo de checksums firmado (sha256sums.txt.asc) desde la página de GitHub Releases en el mismo directorio. -
Verifica la firma GPG del archivo de checksums: Descarga la clave pública GPG en el mismo directorio, luego ejecuta: ```bash gpg --import snyk-code-signing-public.pgp gpg --verify sha256sums.txt.asc
Busca una línea en la salida que diga gpg: Good signature from "Snyk Limited <[email protected]>".
- Verificar la integridad del binario:
Después de confirmar que la firma es válida, comprueba que el binario descargado coincide con la suma de verificación:
- En Linux (o macOS con
coreutils):grep agent-scan-<version>-<os>-<arch> sha256sums.txt.asc | sha256sum -c - - En macOS (usando
shasumpor defecto):grep agent-scan-<version>-<os>-<arch> sha256sums.txt.asc | shasum -a 256 -c -
agent-scan-<version>-<os>-<arch>: OK. - En Linux (o macOS con
Capacidades del escáner
Agent Scan v0.5.x
Agent Scan es una herramienta de escaneo de seguridad que permite tanto escanear como inspeccionar la cadena de suministro de los componentes de agentes en tu máquina. Escanea en busca de vulnerabilidades de seguridad comunes como inyecciones de prompts, envenenamiento de herramientas, flujos tóxicos o vulnerabilidades en las habilidades de los agentes.
Agent Scan v0.6 y posteriores
Agent Scan informa de indicadores de riesgo puntuados para amenazas como la inyección de prompts, la exposición a datos no confiables o privados, capacidades destructivas y habilidades de agentes maliciosas.
Agent Scan opera en dos modos principales que pueden usarse conjuntamente o por separado:
-
Modo de escaneo: El comando CLI
snyk-agent-scanescanea la máquina actual en busca de agentes y componentes de agentes como habilidades y servidores MCP. Al finalizar, mostrará un informe completo para que el usuario lo revise. -
Modo en segundo plano (MDM). Agent Scan escanea la máquina a intervalos regulares en segundo plano y reporta los resultados a una instancia de Snyk Evo. Esto puede ser utilizado por los equipos de seguridad para monitorear la cadena de suministro de agentes de toda la empresa en una ubicación central. Para configurar esto, por favor contáctanos.
Cómo funciona
Escaneo
Agent Scan busca a través de los archivos de configuración de tu agente local para encontrar agentes, habilidades y servidores MCP. Para MCP, se conecta a los servidores y recupera las descripciones de las herramientas.
Consentimiento interactivo para servidores MCP
⚠️ Nota de seguridad: Escanear una configuración MCP ejecuta los comandos definidos en ella. Revisa siempre lo que se va a ejecutar antes de aprobar.
Por defecto, Agent Scan solicita el consentimiento del usuario antes de iniciar cada servidor MCP stdio durante las ejecuciones interactivas. Este flujo de consentimiento:
- Muestra el nombre del servidor, el comando y las variables de entorno (redactadas) que se ejecutarán
- Te permite aprobar o rechazar cada servidor individualmente
- Evita que servidores potencialmente no confiables se ejecuten sin tu permiso explícito
- Registra los servidores rechazados con un error
user_declined(nunca se inician)
Buenas prácticas:
- Revisa el comando y los argumentos cuidadosamente antes de aprobar
- Al escanear configuraciones MCP no confiables o de terceros, ejecuta Agent Scan dentro de un sandbox (Docker, VM o entorno desechable)
- Rechaza cualquier servidor con comandos desconocidos o sospechosos
Para entornos no interactivos (por ejemplo, pipelines de CI/CD), debes usar el flag --dangerously-run-mcp-servers para omitir el aviso de consentimiento e iniciar todos los servidores automáticamente. Usa este flag solo en entornos confiables donde se hayan verificado todos los comandos de los servidores MCP.
Análisis y validación
Agent Scan valida los componentes descubiertos con comprobaciones locales y la API de Agent Scan. Envía la información del componente necesaria para el análisis, incluidos los detalles de la aplicación del agente, las configuraciones y firmas de los servidores MCP, los nombres y descripciones de las herramientas y el contenido de las habilidades. Los secretos en los valores de configuración y el texto se redactan antes de la transmisión.
Al usar Agent Scan, aceptas los términos de uso de Snyk para Agent Scan.
Agent Scan no almacena ni registra ningún dato de uso, es decir, el contenido y los resultados de tus llamadas a herramientas MCP.
Parámetros de la CLI
La referencia completa de flags está en docs/cli-reference.md. La mayoría de los comandos y flags son compartidos entre v0.5.x y v0.6 y posteriores.
Comandos compartidos```text
snyk-agent-scan scan [CONFIG_FILE...] Scan MCP servers and skills (default) snyk-agent-scan inspect [CONFIG_FILE...] Inspect components without analysis snyk-agent-scan help Display help
### Opciones compartidas por ambas líneas de versión
Estas opciones existen tanto en v0.5.x como en v0.6 y posteriores. Su aplicabilidad de comandos se detalla en la referencia completa de la CLI.```text
--storage-file FILE Path to store scan state (default: ~/.mcp-scan)
--analysis-url URL Analysis endpoint; the default API version depends on the CLI version
--verification-H HEADER Additional analysis request header (repeatable)
--mcp-oauth-tokens-path PATH OAuth tokens for protected remote MCP servers
--verbose Enable detailed logging
--print-errors Show error details and tracebacks
--print-full-descriptions Show full entity descriptions without truncation
--json Emit JSON; the response schema depends on the CLI version
--skip-ssl-verify Disable TLS certificate verification
--skills / --no-skills Include skills (default) or skip them
--scan-all-users Scan all readable user home directories
--show-analysis-results Force synchronous analysis so results display for push-key scans
--ci Exit non-zero when findings or operational failures remain
--server-timeout SECONDS MCP connection timeout (default: 10)
--suppress-mcpserver-io BOOL Suppress stdio MCP server stderr
--dangerously-run-mcp-servers Skip consent and start configured stdio MCP servers
--control-server URL Upload destination (repeatable)
--control-server-H HEADER Header for the current control-server block
--control-identifier ID Identifier for the current control-server block
--no-bootstrap Accepted compatibility no-op; does not change behavior
--checks-per-server NUM Accepted compatibility no-op; does not change behavior
Agent Scan v0.5.x
[!WARNING] La versión v0.5.x está planificada para su descontinuación. Los ejemplos fijan la v0.5.17 como una versión concreta de la v0.5.x.```text --analysis-url URL Defaults to the 2025-09-02 analysis API --ignore-issues-codes CODES Comma-separated E/W security finding codes and X failure codes to ignore in CI
v0.5.x emite hallazgos de códigos de problema y JSON de `ScanPathResult` con clave de ruta. Consulte la [referencia de CLI de v0.5.x](https://github.com/snyk/agent-scan/blob/main/docs/cli-reference.md#agent-scan-v05x) y la [referencia de códigos de problema](https://github.com/snyk/agent-scan/blob/main/docs/issue-codes.md).
### Agent Scan v0.6 y posteriores```text
--analysis-url URL Defaults to the 2026-07-10 analysis API
--ignore-risks NAMES Comma-separated risk names to omit from output and CI evaluation
--ignore-failure-codes CODES Comma-separated X codes to omit from CI evaluation
--show-full-discovery List every MCP entity and skill file instead of compact scan summaries
v0.6 y posteriores emiten indicadores de riesgo puntuados y JSON de scan_path_responses. La salida de escaneo legible por humanos es compacta por defecto; --show-full-discovery la expande sin cambiar el JSON ni la salida de inspect. Consulte la referencia de CLI de v0.6 y posteriores, la referencia de riesgos y la referencia de códigos de fallo.
Ejemplos```bash
Scan all known MCP configs and agent skills
snyk-agent-scan
Scan a specific config file or skill
snyk-agent-scan ~/custom/config.json snyk-agent-scan ~/path/to/my/SKILL.md
Inspect without security analysis
snyk-agent-scan inspect
CI mode
snyk-agent-scan --ci --dangerously-run-mcp-servers
## Demo
Este repositorio incluye un servidor MCP vulnerable que demuestra los hallazgos de seguridad del Protocolo de Contexto de Modelo que Agent Scan reporta.
¿Cómo demostrar los hallazgos de seguridad de MCP?
1. Clona este repositorio
2. Crea un archivo de configuración `mcp.json` en el directorio raíz del repositorio git clonado con el siguiente contenido:```jsonc
{
"mcpServers": {
"Demo MCP Server": {
"type": "stdio",
"command": "uv",
"args": ["run", "mcp", "run", "demoserver/server.py"],
},
},
}
-
Ejecuta la versión adecuada:
- Agent Scan v0.5.x (salida de código de problema):
uvx --python 3.13 [email protected] scan mcp.json - Agent Scan v0.6 y posteriores (salida basada en riesgo):
uvx --python 3.13 snyk-agent-scan@latest scan mcp.json
- Agent Scan v0.5.x (salida de código de problema):
Nota: si colocas el archivo de configuración mcp.json en otra ubicación, ajusta la ruta de args dentro de la configuración del servidor MCP para reflejar la ruta al servidor MCP (demoserver/server.py), así como el comando uvx que ejecuta Agent Scan con la ruta correcta a mcp.json.
Agent Scan está cerrado a contribuciones
Agent Scan no acepta contribuciones externas en este momento.
Agradecemos sugerencias, informes de errores o solicitudes de funciones como issues de GitHub.
Configuración de desarrollo
Para ejecutar Agent Scan desde el código fuente, sigue estos pasos:```bash uv run pip install -e . uv run -m src.agent_scan.cli
## Incluir los resultados de Agent Scan en tu propio proyecto / registro
Si deseas incluir los resultados de Agent Scan en tu propio proyecto o registro, por favor [contáctanos](https://evo.ai.snyk.io/#contact-us). Existen APIs designadas para este propósito. El uso de la API estándar de Agent Scan para escaneos a gran escala se considera abuso y resultará en el bloqueo de tu cuenta.
## Documentación
- [Índice de documentación](https://github.com/snyk/agent-scan/blob/main/docs/README.md) — Documentación versionada para ambas líneas de CLI.
- [Referencia de CLI](https://github.com/snyk/agent-scan/blob/main/docs/cli-reference.md) — Comandos, flags, opciones y variables de entorno de v0.5.x y v0.6-and-later.
- [Escaneo](https://github.com/snyk/agent-scan/blob/main/docs/scanning.md) — Comportamiento y ejemplos de escaneo de v0.5.x y v0.6-and-later.
- [Salida JSON](https://github.com/snyk/agent-scan/blob/main/docs/json-output.md) — La salida con claves de ruta de v0.5.x y el esquema de respuesta de v0.6.
- [Códigos de problema](https://github.com/snyk/agent-scan/blob/main/docs/issue-codes.md) — Referencia de hallazgos de seguridad `E*` y `W*` de v0.5.x.
- [Referencia de riesgos](https://github.com/snyk/agent-scan/blob/main/docs/risks.md) — Indicadores de riesgo de seguridad, puntuaciones y campos de evidencia de v0.6.
- [Códigos de fallo](https://github.com/snyk/agent-scan/blob/main/docs/failure-codes.md) — Fallos operativos de descubrimiento, inspección y análisis de v0.6.
## Lecturas adicionales
- [Introducing MCP-Scan](https://invariantlabs.ai/blog/introducing-mcp-scan)
- [MCP Security Notification Tool Poisoning Attacks](https://invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks)
- [WhatsApp MCP Exploited](https://invariantlabs.ai/blog/whatsapp-mcp-exploited)
- [MCP Prompt Injection](https://simonwillison.net/2025/Apr/9/mcp-prompt-injection/)
- [Toxic Flow Analysis](https://invariantlabs.ai/blog/toxic-flow-analysis)
- [Skills Report](https://github.com/snyk/agent-scan/blob/main/.github/reports/skills-report.pdf)
## Registro de cambios
Consulta [CHANGELOG.md](https://github.com/snyk/agent-scan/blob/main/CHANGELOG.md).