
Scanner de sécurité pour agents IA, serveurs MCP et compétences d'agents.
Découvrez et analysez les composants agents installés sur votre machine pour détecter les injections de prompts
et les vulnérabilités (y compris les agents, les serveurs MCP et les compétences).
Remarque : la sortie CLI est expérimentale et susceptible de changer
Agent Scan v0.5.x (prévu pour dépréciation)
La sortie brute de cette CLI — y compris les codes de problème, les noms de champs, les libellés de sévérité et la structure de réponse — est expérimentale et peut changer sans préavis entre les versions. Nous déconseillons de créer des workflows de production qui dépendent de champs de sortie ou de codes de problème spécifiques de la CLI.
Agent Scan v0.6 et versions ultérieures
La sortie brute de cette CLI — y compris les noms des indicateurs de risque, les scores, les noms de champs et la structure de réponse — est expérimentale et peut changer sans préavis entre les versions. Nous déconseillons de créer des workflows de production qui dépendent de champs de sortie ou de noms de risque spécifiques de la CLI.
Si vous êtes un client enterprise utilisant Snyk pour gérer le risque de sécurité des agents à grande échelle, la sortie CLI peut ne pas refléter ce qui est envoyé et affiché dans la plateforme Evo. L'intégration, la découverte et l'évaluation des risques sous-jacentes qui alimentent les déploiements enterprise sont stables et prises en charge — tout changement sera communiqué conformément aux pratiques produit standard de Snyk. Contactez votre équipe de compte pour obtenir des conseils de déploiement.
NOUVEAU Lisez notre rapport technique sur les menaces émergentes de l'écosystème des compétences d'agents publié avec Agent Scan 0.4, qui ajoute la prise en charge de l'analyse des compétences d'agents.
[!WARNING] Agent Scan v0.5.x utilise une sortie basée sur les codes de problème. Cette ligne de CLI est prévue pour la dépréciation.
Agent Scan vous aide à découvrir tous vos composants agents installés (harnesses, serveurs MCP et compétences) et les analyse pour détecter les menaces courantes comme les injections de prompts, la gestion de données sensibles ou les charges utiles de malware cachées dans le langage naturel. Ignorez l'analyse des compétences en utilisant --no-skills.
⚠️ IMPORTANT : l'analyse des configurations MCP exécutera les commandes qui y sont définies.
Lorsqu'Agent Scan analyse un fichier de configuration MCP, il démarre les serveurs MCP stdio en exécutant les commandes et arguments spécifiés dans la configuration. Cela est nécessaire pour récupérer les descriptions des outils et effectuer l'analyse de sécurité.
Recommandations :
- Exécutez les analyses dans un environnement sandbox (conteneur Docker, VM ou environnement jetable) lors de l'évaluation de configurations MCP non fiables ou tierces
- Examinez attentivement l'invite de consentement lors des analyses interactives ; elle affiche la commande et les arguments exacts qui seront exécutés pour chaque serveur
- Utilisez
--dangerously-run-mcp-serversuniquement dans des environnements de confiance où vous avez vérifié toutes les commandes de serveurs MCPPar défaut, Agent Scan exige un consentement explicite de l'utilisateur (o/n) avant de démarrer chaque serveur MCP stdio lors des exécutions interactives. Cela vous donne le contrôle sur ce qui est exécuté sur votre système.
Choisissez l'une des deux façons d'exécuter Agent Scan :
uvx en suivant les instructions ci-dessous.Avant d'utiliser l'une ou l'autre option :
uvxAssurez-vous d'avoir uv installé sur votre système. Choisissez les instructions correspondant à votre version de CLI.
Les exemples épinglent la version v0.5.17 comme version concrète de la série v0.5.x :```bash
uvx [email protected] ~/.vscode/mcp.json
uvx [email protected] ~/path/to/my/SKILL.md
uvx [email protected] ~/.claude/skills
> [!WARNING]
> v0.5.x utilise la sortie issue-code et l'API d'analyse `2025-09-02`. Cette ligne CLI est prévue pour être dépréciée.
#### Agent Scan v0.6 et versions ultérieures```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 et versions ultérieures utilisent la sortie basée sur les risques et l'API d'analyse 2026-07-10.
Les deux versions analysent les serveurs MCP, les outils, les prompts, les ressources et les skills, et découvrent automatiquement les configurations d'agents prises en charge telles que Claude Code/Desktop, Cursor, Gemini CLI et Windsurf.
Téléchargez le binaire correspondant à votre système d'exploitation et à votre architecture depuis la dernière version GitHub. La page de version fournit également un SBOM (sbom-<version>.json), des fichiers de somme de contrôle et des archives de code source générées par GitHub. Consultez Vérification des binaires autonomes pour vérifier votre téléchargement.
Pour la sortie basée sur les risques de v0.6, voir l'image v0.6 en haut de ce README.
Agent Scan découvre automatiquement les agents et leurs capacités (serveurs MCP ou skills) lorsque leurs chemins d'installation existent. Le tableau ci-dessous indique sur quels systèmes d'exploitation chaque agent est analysé.
--no-skillsLe tableau ci-dessus montre sur quels systèmes d'exploitation chaque agent est analysé. Celui-ci détaille la détection par portée de configuration et type de composant (skills vs serveurs MCP), combinés sur tous les systèmes d'exploitation. « Servers » signifie serveurs MCP.
Les quatre portées :
managed-mcp.json, fichiers sous /etc, /Library/Application Support ou ProgramData).Légende : ✓ détecté · ✗ l'agent prend en charge cette fonctionnalité mais Agent Scan ne l'analyse pas encore · N/A l'agent ne possède aucun composant de ce type à cette portée.
† OpenClaw n'a pas d'énumération de projets ouverts : ses skills de projet/espace de travail ne sont trouvés qu'à l'emplacement fixe ~/.openclaw/workspace/skills
‡ Amp stocke les skills de projet/espace de travail dans .agents/skills (et le chemin de compatibilité .claude/skills) ; seul ~/.config/agents/skills au niveau utilisateur est détecté aujourd'hui, donc les skills au niveau projet sont pris en charge mais pas encore analysés.
Nous utilisons la signature GPG sur le fichier de sommes de contrôle des versions pour garantir l'intégrité et l'authenticité de la distribution.
Téléchargez les artefacts de la version :
Téléchargez le binaire de votre plateforme (par ex., agent-scan-<version>-<os>-<arch>) et le fichier de sommes de contrôle signé (sha256sums.txt.asc) depuis la page GitHub Releases dans le même répertoire.
Vérifiez la signature GPG du fichier de sommes de contrôle : Téléchargez la clé publique GPG dans le même répertoire, puis exécutez : ```bash gpg --import snyk-code-signing-public.pgp gpg --verify sha256sums.txt.asc
Recherchez une ligne dans la sortie indiquant gpg: Good signature from "Snyk Limited <[email protected]>".
coreutils) :
grep agent-scan-<version>-<os>-<arch> sha256sums.txt.asc | sha256sum -c -
shasum par défaut) :
grep agent-scan-<version>-<os>-<arch> sha256sums.txt.asc | shasum -a 256 -c -
agent-scan-<version>-<os>-<arch>: OK.Agent Scan est un outil de sécurité qui analyse et inspecte la chaîne d'approvisionnement des composants d'agents sur votre machine. Il recherche les vulnérabilités de sécurité courantes telles que les injections de prompt, l'empoisonnement d'outils, les flux toxiques ou les vulnérabilités dans les compétences des agents.
Agent Scan rapporte des indicateurs de risque notés pour des menaces telles que l'injection de prompt, l'exposition à des données non fiables ou privées, les capacités destructrices et les compétences d'agents malveillantes.
Agent Scan fonctionne selon deux modes principaux qui peuvent être utilisés conjointement ou séparément :
Mode Scan : La commande CLI snyk-agent-scan analyse la machine actuelle à la recherche d'agents et de composants d'agents tels que les compétences et les serveurs MCP. À la fin, il génère un rapport complet que l'utilisateur peut consulter.
Mode arrière-plan (MDM). Agent Scan analyse la machine à intervalles réguliers en arrière-plan et transmet les résultats à une instance Snyk Evo. Cette fonctionnalité peut être utilisée par les équipes de sécurité pour surveiller la chaîne d'approvisionnement des agents à l'échelle de l'entreprise depuis un emplacement central. Pour la configurer, veuillez nous contacter.
Agent Scan parcourt les fichiers de configuration de votre agent local pour trouver les agents, les compétences et les serveurs MCP. Pour MCP, il se connecte aux serveurs et récupère les descriptions des outils.
⚠️ Note de sécurité : L'analyse d'une configuration MCP exécute les commandes qui y sont définies. Examinez toujours ce qui sera exécuté avant d'approuver.
Par défaut, Agent Scan demande le consentement de l'utilisateur avant de démarrer chaque serveur MCP stdio lors des exécutions interactives. Ce flux de consentement :
user_declined (ils ne sont jamais démarrés)Bonnes pratiques :
Pour les environnements non interactifs (par exemple, les pipelines CI/CD), vous devez utiliser l'option --dangerously-run-mcp-servers pour contourner l'invite de consentement et démarrer automatiquement tous les serveurs. N'utilisez cette option que dans des environnements de confiance où toutes les commandes des serveurs MCP ont été vérifiées.
Agent Scan valide les composants découverts à l'aide de vérifications locales et de l'API Agent Scan. Il envoie les informations sur les composants nécessaires à l'analyse, notamment les détails de l'application d'agent, les configurations et signatures des serveurs MCP, les noms et descriptions des outils, ainsi que le contenu des compétences. Les secrets présents dans les valeurs de configuration et le texte sont masqués avant la transmission.
En utilisant Agent Scan, vous acceptez les conditions d'utilisation d'Agent Scan de Snyk.
Agent Scan ne stocke ni ne journalise aucune donnée d'utilisation, c'est-à-dire le contenu et les résultats de vos appels d'outils MCP.
La référence complète des options se trouve dans docs/cli-reference.md. La plupart des commandes et options sont partagées entre la v0.5.x et la v0.6 et les versions ultérieures.
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
### Options partagées par les deux lignes de versions
Ces options existent à la fois dans v0.5.x et v0.6 et versions ultérieures. Leur applicabilité aux commandes est détaillée dans la référence complète du 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
[!WARNING] v0.5.x est prévue pour être dépréciée. Les exemples épinglent v0.5.17 comme version concrète de la série 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 émet des constatations avec codes d'issue et du JSON `ScanPathResult` indexé par chemin. Voir la [référence CLI v0.5.x](https://github.com/snyk/agent-scan/blob/HEAD/docs/cli-reference.md#agent-scan-v05x) et la [référence des codes d'issue](https://github.com/snyk/agent-scan/blob/HEAD/docs/issue-codes.md).
### Agent Scan v0.6 et versions ultérieures```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 et versions ultérieures émettent des indicateurs de risque scorés et le JSON scan_path_responses. La sortie d'analyse lisible par l'humain est compacte par défaut ; --show-full-discovery la développe sans modifier la sortie JSON ni celle de inspect. Voir la référence CLI v0.6-and-later, la référence des risques et la référence des codes d'échec.
snyk-agent-scan
snyk-agent-scan ~/custom/config.json snyk-agent-scan ~/path/to/my/SKILL.md
snyk-agent-scan inspect
snyk-agent-scan --ci --dangerously-run-mcp-servers
## Démo
Ce dépôt contient un serveur MCP vulnérable qui illustre les résultats de sécurité du Model Context Protocol signalés par Agent Scan.
Comment démontrer les résultats de sécurité MCP ?
1. Clonez ce dépôt
2. Créez un fichier de configuration `mcp.json` dans le répertoire racine du dépôt git cloné avec le contenu suivant :
``````jsonc
{
"mcpServers": {
"Demo MCP Server": {
"type": "stdio",
"command": "uv",
"args": ["run", "mcp", "run", "demoserver/server.py"],
},
},
}
Exécutez la version appropriée :
uvx --python 3.13 [email protected] scan mcp.jsonuvx --python 3.13 snyk-agent-scan@latest scan mcp.jsonRemarque : si vous placez le chemin du fichier de configuration mcp.json ailleurs, ajustez le chemin args dans la configuration du serveur MCP pour refléter le chemin vers le serveur MCP (demoserver/server.py) ainsi que la commande uvx qui exécute Agent Scan avec le chemin correct vers mcp.json.
Agent Scan n'accepte actuellement pas de contributions externes.
Nous accueillons volontiers les suggestions, rapports de bugs ou demandes de fonctionnalités sous forme d'issues GitHub.
Pour exécuter Agent Scan à partir des sources, suivez ces étapes :```bash uv run pip install -e . uv run -m src.agent_scan.cli
## Inclure les résultats d'Agent Scan dans votre propre projet / registre
Si vous souhaitez inclure les résultats d'Agent Scan dans votre propre projet ou registre, veuillez [nous contacter](https://evo.ai.snyk.io/#contact-us). Des API dédiées existent à cet effet. L'utilisation de l'API standard d'Agent Scan pour des analyses à grande échelle est considérée comme un abus et entraînera le blocage de votre compte.
## Documentation
- [Index de la documentation](https://github.com/snyk/agent-scan/blob/HEAD/docs/README.md) — Documentation versionnée pour les deux gammes de CLI.
- [Référence CLI](https://github.com/snyk/agent-scan/blob/HEAD/docs/cli-reference.md) — Commandes, drapeaux, options et variables d'environnement pour v0.5.x et v0.6 et versions ultérieures.
- [Analyse](https://github.com/snyk/agent-scan/blob/HEAD/docs/scanning.md) — Comportement et exemples d'analyse pour v0.5.x et v0.6 et versions ultérieures.
- [Sortie JSON](https://github.com/snyk/agent-scan/blob/HEAD/docs/json-output.md) — La sortie indexée par chemin v0.5.x et le schéma de réponse v0.6.
- [Codes d'anomalie](https://github.com/snyk/agent-scan/blob/HEAD/docs/issue-codes.md) — Référence des constats de sécurité `E*` et `W*` pour v0.5.x.
- [Référence des risques](https://github.com/snyk/agent-scan/blob/HEAD/docs/risks.md) — Indicateurs de risque de sécurité, scores et champs de preuve pour v0.6.
- [Codes d'échec](https://github.com/snyk/agent-scan/blob/HEAD/docs/failure-codes.md) — Échecs opérationnels de découverte, d'inspection et d'analyse pour v0.6.
## Pour aller plus loin
- [Présentation de MCP-Scan](https://invariantlabs.ai/blog/introducing-mcp-scan)
- [Notification de sécurité MCP : attaques d'empoisonnement d'outils](https://invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks)
- [WhatsApp MCP exploité](https://invariantlabs.ai/blog/whatsapp-mcp-exploited)
- [Injection de prompt MCP](https://simonwillison.net/2025/Apr/9/mcp-prompt-injection/)
- [Analyse de flux toxique](https://invariantlabs.ai/blog/toxic-flow-analysis)
- [Rapport de compétences](https://github.com/snyk/agent-scan/blob/HEAD/.github/reports/skills-report.pdf)
## Journal des modifications
Voir [CHANGELOG.md](https://github.com/snyk/agent-scan/blob/HEAD/CHANGELOG.md).
| Agent | macOS MCP | macOS Skills | Linux MCP | Linux Skills | Windows MCP | Windows Skills |
|---|
| Windsurf | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Cursor | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| VS Code | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Claude Desktop | ✓ | ✗ | — | — | ✓ | ✗ |
| Claude Code | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Gemini CLI | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| OpenClaw | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ |
| Amp | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ |
| Kiro | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| OpenCode | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Antigravity | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Codex | ✓ | ✓ | ✓ | ✓ | — | — |
| Amazon Q | ✓ | ✗ | ✓ | ✗ | ✓ (WSL) | ✗ |
| Agent | Système skills | Système servers | Utilisateur skills | Utilisateur servers | Projet / WS skills | Projet / WS servers | Ext / plugin skills | Ext / plugin servers |
|---|
| 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 |