
agent-scan v0.6.0
Scanner di sicurezza per agenti AI, server MCP e abilità degli agenti.
Snyk Agent Scan
Scopri e analizza i componenti degli agent sulla tua macchina per individuare injection di prompt
e vulnerabilità (incluse agent, server MCP e skill).
Nota: l'output della CLI è sperimentale e soggetto a modifiche
Agent Scan v0.5.x (previsto per la rimozione)
L'output grezzo di questa CLI — inclusi codici di problema, nomi dei campi, etichette di gravità e struttura della risposta — è sperimentale e può cambiare senza preavviso tra le release. Non consigliamo di creare workflow di produzione che dipendano da specifici campi di output o codici di problema della CLI.
Agent Scan v0.6 e versioni successive
L'output grezzo di questa CLI — inclusi nomi degli indicatori di rischio, punteggi, nomi dei campi e struttura della risposta — è sperimentale e può cambiare senza preavviso tra le release. Non consigliamo di creare workflow di produzione che dipendano da specifici campi di output o nomi di rischio della CLI.
Se sei un cliente enterprise che usa Snyk per gestire il rischio di sicurezza degli agent su larga scala, l'output della CLI potrebbe non riflettere ciò che viene inviato e mostrato nella piattaforma Evo. L'integrazione, l'individuazione e la valutazione del rischio sottostanti che alimentano le distribuzioni enterprise sono stabili e supportate — qualsiasi modifica verrà comunicata in linea con le pratiche standard dei prodotti Snyk. Contatta il tuo team di riferimento per una guida alla distribuzione.
NUOVO Leggi il nostro rapporto tecnico sulle minacce emergenti dell'ecosistema delle skill degli agent pubblicato insieme a Agent Scan 0.4, che aggiunge il supporto per l'analisi delle skill degli agent.
Output di Agent Scan v0.5.x
[!WARNING] Agent Scan v0.5.x usa output basato su codici di problema. Questa linea di CLI è prevista per la rimozione.
Output di Agent Scan v0.6 e versioni successive
Agent Scan ti aiuta a scoprire tutti i componenti dei tuoi agent installati (harness, server MCP e skill) e li analizza alla ricerca di minacce comuni come injection di prompt, gestione di dati sensibili o payload malware nascosti nel linguaggio naturale. Ignora l'analisi delle skill usando --no-skills.
Avviso di sicurezza
⚠️ IMPORTANTE: l'analisi delle configurazioni MCP eseguirà i comandi definiti al loro interno.
Quando Agent Scan analizza un file di configurazione MCP, avvia i server MCP stdio eseguendo i comandi e gli argomenti specificati nella configurazione. Questo è necessario per recuperare le descrizioni degli strumenti ed eseguire l'analisi di sicurezza.
Raccomandazioni:
- Esegui le analisi in una sandbox (contenitore Docker, VM o ambiente usa-e-getta) quando valuti configurazioni MCP non attendibili o di terze parti
- Esamina attentamente il prompt di consenso durante le analisi interattive, mostra il comando e gli argomenti esatti che verranno eseguiti per ogni server
- Usa
--dangerously-run-mcp-serverssolo in ambienti attendibili in cui hai verificato tutti i comandi dei server MCPPer impostazione predefinita, Agent Scan richiede il consenso esplicito dell'utente (s/n) prima di avviare ogni server MCP stdio durante le esecuzioni interattive. Questo ti dà il controllo su ciò che viene eseguito sul tuo sistema.
Avvio rapido
Scegli uno dei due modi per eseguire Agent Scan:
- Esegui il pacchetto Python con
uvxutilizzando le istruzioni seguenti. - Scarica un binario standalone per la tua piattaforma da GitHub Releases. Le release includono anche la SBOM, i checksum, i checksum firmati e gli archivi del codice sorgente.
Prima di usare una delle due opzioni:
- Registrati su Snyk e ottieni un token API da https://app.snyk.io/account (API Token → KEY → clicca per mostrare).
- Imposta il token come variabile d'ambiente prima di eseguire qualsiasi analisi: ```bash
export SNYK_TOKEN=your-api-token-here
Esegui con uvx
Assicurati di avere uv installato sul tuo sistema. Scegli le istruzioni per la tua versione della CLI.
Agent Scan v0.5.x
Gli esempi fissano la v0.5.17 come versione concreta della serie 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 usa l'output issue-code e l'API di analisi `2025-09-02`. Questa CLI è prevista per la deprecazione.
#### Agent Scan v0.6 e versioni successive```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 e versioni successive usano l'output basato sul rischio e l'API di analisi 2026-07-10.
Entrambe le versioni eseguono la scansione di server MCP, strumenti, prompt, risorse e skill, e scoprono automaticamente le configurazioni degli agenti supportate come Claude Code/Desktop, Cursor, Gemini CLI e Windsurf.
Esecuzione con un binario standalone
Scarica il binario per il tuo sistema operativo e la tua architettura dall'ultima release di GitHub. La pagina della release fornisce anche un SBOM (sbom-<version>.json), file di checksum e archivi del codice sorgente generati da GitHub. Consulta Verifica dei binari standalone per verificare il download.
Esempio di esecuzione di Agent Scan v0.5.x
Per l'output basato sul rischio della v0.6, consulta l'immagine della v0.6 in cima a questo README.
Punti salienti
- Scoperta automatica di configurazioni MCP, strumenti degli agenti e skill
- Scansione di Claude, Cursor, Windsurf, Gemini CLI, Amp, Amazon Q e altri agenti.
Agent Scan v0.5.x
- Rileva 15+ rischi di sicurezza distinti tra server MCP e skill degli agenti:
Agent Scan v0.6 e versioni successive
- Rileva 15 rischi di sicurezza distinti tra server MCP e skill degli agenti:
Agenti supportati e funzionalità
Agent Scan scopre automaticamente gli agenti e le loro funzionalità (server MCP o skill) quando esistono i relativi percorsi di installazione. La tabella seguente mostra su quali sistemi operativi viene eseguita la scansione di ciascun agente.
- ✓: è definito almeno un percorso per quella funzionalità.
- ✗: l'agente è elencato per quel sistema operativo ma non ha percorsi per quella funzionalità.
- —: l'agente non è incluso per quel sistema operativo.
- Skill Le skill possono essere ignorate usando
--no-skills
| Agente | macOS MCP | macOS Skill | Linux MCP | Linux Skill | Windows MCP | Windows Skill |
|---|---|---|---|---|---|---|
| Windsurf | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Cursor | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| VS Code | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Claude Desktop | ✓ | ✗ | — | — | ✓ | ✗ |
| Claude Code | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Gemini CLI | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| OpenClaw | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ |
| Amp | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ |
| Kiro | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| OpenCode | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Antigravity | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Codex | ✓ | ✓ | ✓ | ✓ | — | — |
| Amazon Q | ✓ | ✗ | ✓ | ✗ | ✓ (WSL) | ✗ |
Copertura del rilevamento per ambito
La matrice precedente mostra su quali sistemi operativi viene eseguita la scansione di ciascun agente. Questa invece suddivide il rilevamento per ambito di configurazione e tipo di componente (skill vs server MCP), combinando i sistemi operativi. Con "server" si intendono i server MCP.
I quattro ambiti:
- Sistema — configurazione a livello di macchina / gestita dall'amministratore / aziendale che si applica a tutti gli utenti (ad es.
managed-mcp.json, file in/etc,/Library/Application SupportoProgramData). - Utente — configurazione nella directory home dell'utente (si applica a tutti i suoi progetti).
- Progetto / workspace — configurazione limitata a un progetto o workspace aperto.
- Estensione / plugin — componenti inclusi all'interno di estensioni o plugin installati.
Legenda: ✓ rilevato · ✗ l'agente supporta questa funzionalità ma Agent Scan non la scansiona ancora · N/A l'agente non dispone di tale componente in questo ambito.
| Agente | Sistema skill | Sistema server | Utente skill | Utente server | Progetto / WS skill | Progetto / WS server | Ext / plugin skill | Ext / plugin server |
|---|---|---|---|---|---|---|---|---|
| Windsurf | ✓ | N/A | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Cursor | N/A | N/A | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| VS Code | 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 non dispone di enumerazione dei progetti aperti: le sue skill di progetto/workspace si trovano solo nel percorso fisso ~/.openclaw/workspace/skills
‡ Amp memorizza le skill di progetto/workspace in .agents/skills (e nel percorso di compatibilità .claude/skills); al momento viene rilevato solo ~/.config/agents/skills a livello utente, quindi le skill a livello di progetto sono supportate ma non ancora scansionate.
Verifica dei binari standalone
Usiamo la firma GPG sul file dei checksum della release per garantire l'integrità e l'autenticità della distribuzione.
Guida alla verifica passo passo
-
Scarica gli asset della release: Scarica il binario per la tua piattaforma (ad es.
agent-scan-<version>-<os>-<arch>) e il file dei checksum firmato (sha256sums.txt.asc) dalla pagina GitHub Releases nella stessa directory. -
Verifica la firma GPG del file dei checksum: Scarica la chiave pubblica GPG nella stessa directory, quindi esegui: ```bash gpg --import snyk-code-signing-public.pgp gpg --verify sha256sums.txt.asc
Cerca una riga nell'output che riporti gpg: Good signature from "Snyk Limited <[email protected]>".
- Verifica l'integrità del binario:
Dopo aver confermato che la firma è valida, controlla che il binario scaricato corrisponda al checksum:
- Su Linux (o su macOS con
coreutils):grep agent-scan-<version>-<os>-<arch> sha256sums.txt.asc | sha256sum -c - - Su macOS (usando
shasumpredefinito):grep agent-scan-<version>-<os>-<arch> sha256sums.txt.asc | shasum -a 256 -c -
agent-scan-<version>-<os>-<arch>: OK. - Su Linux (o su macOS con
Funzionalità dello Scanner
Agent Scan v0.5.x
Agent Scan è uno strumento di scansione di sicurezza che consente di scansionare e ispezionare la supply chain dei componenti degli agenti sulla tua macchina. Rileva vulnerabilità di sicurezza comuni come iniezioni di prompt, avvelenamento degli strumenti, flussi tossici o vulnerabilità nelle skill degli agenti.
Agent Scan v0.6 e versioni successive
Agent Scan riporta indicatori di rischio con punteggio per minacce come iniezione di prompt, esposizione a dati non attendibili o privati, capacità distruttive e skill degli agenti dannose.
Agent Scan opera in due modalità principali che possono essere utilizzate congiuntamente o separatamente:
-
Modalità di scansione: Il comando CLI
snyk-agent-scanesegue la scansione della macchina corrente alla ricerca di agenti e componenti degli agenti come skill e server MCP. Al termine, genera un report completo che l'utente può esaminare. -
Modalità in background (MDM). Agent Scan scansiona la macchina a intervalli regolari in background e invia i risultati a un'istanza di Snyk Evo. Questa modalità può essere utilizzata dai team di sicurezza per monitorare la supply chain degli agenti a livello aziendale in una posizione centrale. Per configurarla, contattaci.
Come Funziona
Scansione
Agent Scan esamina i file di configurazione degli agenti locali per individuare agenti, skill e server MCP. Per MCP, si connette ai server e recupera le descrizioni degli strumenti.
Consenso interattivo per i server MCP
⚠️ Nota di sicurezza: La scansione di una configurazione MCP esegue i comandi in essa definiti. Prima di approvare, esamina sempre ciò che verrà eseguito.
Per impostazione predefinita, Agent Scan richiede il consenso dell'utente prima di avviare ogni server MCP stdio durante le esecuzioni interattive. Questo flusso di consenso:
- Mostra il nome del server, il comando e le variabili d'ambiente (in forma oscurata) che verranno eseguiti
- Consente di approvare o rifiutare ogni singolo server
- Impedisce che server potenzialmente non attendibili vengano eseguiti senza il tuo permesso esplicito
- Registra i server rifiutati con un errore
user_declined(non vengono mai avviati)
Best practice:
- Esamina attentamente il comando e gli argomenti prima di approvare
- Quando scansioni configurazioni MCP non attendibili o di terze parti, esegui Agent Scan all'interno di una sandbox (Docker, VM o ambiente usa e getta)
- Rifiuta qualsiasi server con comandi sconosciuti o sospetti
Per gli ambienti non interattivi (ad es. pipeline CI/CD), è necessario utilizzare il flag --dangerously-run-mcp-servers per bypassare la richiesta di consenso e avviare automaticamente tutti i server. Usa questo flag solo in ambienti attendibili in cui tutti i comandi dei server MCP sono stati verificati.
Analisi e convalida
Agent Scan convalida i componenti individuati con controlli locali e l'API Agent Scan. Invia le informazioni sui componenti necessarie per l'analisi, inclusi i dettagli dell'applicazione dell'agente, le configurazioni e le firme dei server MCP, i nomi e le descrizioni degli strumenti e il contenuto delle skill. I segreti presenti nei valori di configurazione e nel testo vengono oscurati prima della trasmissione.
Utilizzando Agent Scan, accetti i termini di utilizzo per Agent Scan di Snyk.
Agent Scan non memorizza né registra alcun dato di utilizzo, ovvero i contenuti e i risultati delle tue chiamate agli strumenti MCP.
Parametri CLI
Il riferimento completo ai flag è disponibile in docs/cli-reference.md. La maggior parte dei comandi e dei flag è condivisa tra v0.5.x e v0.6 e versioni successive.
Comandi condivisi```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
### Opzioni condivise da entrambe le linee di versione
Queste opzioni esistono sia in v0.5.x che in v0.6 e versioni successive. La loro applicabilità ai comandi è dettagliata nel riferimento completo della 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
--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] È prevista la deprecazione di v0.5.x. Gli esempi fissano v0.5.17 come release concreta di 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 emette segnalazioni con issue-code e JSON `ScanPathResult` con chiave basata sul percorso. Vedi il [riferimento CLI v0.5.x](https://github.com/snyk/agent-scan/blob/HEAD/docs/cli-reference.md#agent-scan-v05x) e il [riferimento issue-code](https://github.com/snyk/agent-scan/blob/HEAD/docs/issue-codes.md).
### Agent Scan v0.6 e versioni successive```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 e versioni successive emettono indicatori di rischio con punteggio e JSON scan_path_responses. L'output di scansione leggibile da umani è compatto per impostazione predefinita; --show-full-discovery lo espande senza modificare l'output JSON o inspect. Vedi il riferimento CLI v0.6 e successive, il riferimento ai rischi e il riferimento ai codici di errore.
Esempi```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
Questo repository include un server MCP vulnerabile che dimostra i riscontri di sicurezza del Model Context Protocol riportati da Agent Scan.
Come fare la demo dei riscontri di sicurezza MCP?
1. Clona questo repository
2. Crea un file di configurazione `mcp.json` nella directory principale del repository git clonato con il seguente contenuto:```jsonc
{
"mcpServers": {
"Demo MCP Server": {
"type": "stdio",
"command": "uv",
"args": ["run", "mcp", "run", "demoserver/server.py"],
},
},
}
-
Esegui la versione appropriata:
- Agent Scan v0.5.x (output issue-code):
uvx --python 3.13 [email protected] scan mcp.json - Agent Scan v0.6 e successive (output basato sul rischio):
uvx --python 3.13 snyk-agent-scan@latest scan mcp.json
- Agent Scan v0.5.x (output issue-code):
Nota: se collochi il percorso del file di configurazione mcp.json altrove, regola il percorso args all'interno della configurazione del server MCP per riflettere il percorso del server MCP (demoserver/server.py) e il comando uvx che esegue Agent Scan con il percorso corretto di mcp.json.
Agent Scan è chiuso ai contributi
Agent Scan non accetta contributi esterni al momento.
Accogliamo con piacere suggerimenti, segnalazioni di bug o richieste di funzionalità come issue GitHub.
Configurazione di sviluppo
Per eseguire Agent Scan dal sorgente, segui questi passaggi:```bash uv run pip install -e . uv run -m src.agent_scan.cli
## Includere i risultati di Agent Scan nel proprio progetto / registry
Se desideri includere i risultati di Agent Scan nel tuo progetto o registry, [contattaci](https://evo.ai.snyk.io/#contact-us). Esistono API dedicate a questo scopo. L'utilizzo dell'API standard di Agent Scan per scansioni su larga scala è considerato un abuso e comporterà il blocco del tuo account.
## Documentazione
- [Indice della documentazione](https://github.com/snyk/agent-scan/blob/HEAD/docs/README.md) — Documentazione versionata per entrambe le linee CLI.
- [Riferimento CLI](https://github.com/snyk/agent-scan/blob/HEAD/docs/cli-reference.md) — Comandi, flag, opzioni e variabili d'ambiente per v0.5.x e v0.6 e versioni successive.
- [Scansione](https://github.com/snyk/agent-scan/blob/HEAD/docs/scanning.md) — Comportamento di scansione ed esempi per v0.5.x e v0.6 e versioni successive.
- [Output JSON](https://github.com/snyk/agent-scan/blob/HEAD/docs/json-output.md) — L'output con chiavi di percorso di v0.5.x e lo schema di risposta di v0.6.
- [Codici di problema](https://github.com/snyk/agent-scan/blob/HEAD/docs/issue-codes.md) — Riferimento per i rilevamenti di sicurezza `E*` e `W*` di v0.5.x.
- [Riferimento ai rischi](https://github.com/snyk/agent-scan/blob/HEAD/docs/risks.md) — Indicatori di rischio di sicurezza, punteggi e campi di evidenza di v0.6.
- [Codici di errore](https://github.com/snyk/agent-scan/blob/HEAD/docs/failure-codes.md) — Errori operativi di discovery, ispezione e analisi di v0.6.
## Ulteriori letture
- [Introduzione a MCP-Scan](https://invariantlabs.ai/blog/introducing-mcp-scan)
- [Attacchi di tool poisoning alle notifiche di sicurezza MCP](https://invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks)
- [WhatsApp MCP sfruttato](https://invariantlabs.ai/blog/whatsapp-mcp-exploited)
- [Iniezione di prompt MCP](https://simonwillison.net/2025/Apr/9/mcp-prompt-injection/)
- [Analisi dei flussi tossici](https://invariantlabs.ai/blog/toxic-flow-analysis)
- [Report sulle competenze](https://github.com/snyk/agent-scan/blob/HEAD/.github/reports/skills-report.pdf)
## Registro delle modifiche
Vedi [CHANGELOG.md](https://github.com/snyk/agent-scan/blob/HEAD/CHANGELOG.md).