
agent-scan v0.6.0
Scanner de sécurité pour agents IA, serveurs MCP et compétences d'agents.
Snyk Agent Scan
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.
Sortie d'Agent Scan v0.5.x
[!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.
Sortie d'Agent Scan v0.6 et versions ultérieures
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.
Avertissement de sécurité
⚠️ 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.
Démarrage rapide
Choisissez l'une des deux façons d'exécuter Agent Scan :
- Exécutez le package Python avec
uvxen suivant les instructions ci-dessous. - Téléchargez un binaire autonome pour votre plateforme depuis GitHub Releases. Les versions incluent également le SBOM, les sommes de contrôle, les sommes de contrôle signées et les archives du code source.
Avant d'utiliser l'une ou l'autre option :
- Inscrivez-vous sur Snyk et obtenez un jeton API depuis https://app.snyk.io/account (API Token → KEY → cliquer pour afficher).
- Définissez le jeton comme variable d'environnement avant d'exécuter toute analyse : ```bash
export SNYK_TOKEN=your-api-token-here
Exécuter avec uvx
Assurez-vous d'avoir uv installé sur votre système. Choisissez les instructions correspondant à votre version de CLI.
Agent Scan v0.5.x
Les exemples épinglent la version v0.5.17 comme version concrète de la série 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 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.
Exécuter avec un binaire autonome
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.
Exemple d'exécution d'Agent Scan v0.5.x
Pour la sortie basée sur les risques de v0.6, voir l'image v0.6 en haut de ce README.
Points forts
- Découverte automatique des configurations MCP, des outils d'agent et des skills
- Analyse de Claude, Cursor, Windsurf, Gemini CLI, Amp, Amazon Q et d'autres agents.
Agent Scan v0.5.x
- Détecte 15+ risques de sécurité distincts dans les serveurs MCP et les skills d'agents :
Agent Scan v0.6 et versions ultérieures
- Détecte 15 risques de sécurité distincts dans les serveurs MCP et les skills d'agents :
- MCP: injection de prompt, mots dangereux, contenu non fiable, données privées et capacités destructives
- Skills: injection de prompt, téléchargements suspects, code malveillant, gestion des identifiants, détection de secrets, et plus encore
Agents et capacités pris en charge
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é.
- ✓ : au moins un chemin est défini pour cette capacité.
- ✗ : l'agent est listé pour ce système d'exploitation mais n'a aucun chemin pour cette capacité.
- — : cet agent n'est pas inclus pour ce système d'exploitation.
- Skills : les skills peuvent être ignorés en utilisant
--no-skills
| 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) | ✗ |
Couverture de détection par portée
Le 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 :
- Système — configuration à l'échelle de la machine / gérée par l'administrateur / d'entreprise qui s'applique à tous les utilisateurs (par ex.
managed-mcp.json, fichiers sous/etc,/Library/Application SupportouProgramData). - Utilisateur — configuration du répertoire personnel de l'utilisateur (s'applique à tous ses projets).
- Projet / espace de travail — configuration limitée à un projet ou un espace de travail ouvert.
- Extension / plugin — composants inclus dans les extensions ou plugins installés.
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.
| 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 |
† 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.
Vérification des binaires autonomes
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.
Guide de vérification étape par étape
-
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]>".
- Vérifiez l'intégrité du binaire :
Après avoir confirmé que la signature est valide, vérifiez que votre binaire téléchargé correspond au checksum :
- Sur Linux (ou macOS avec
coreutils) :grep agent-scan-<version>-<os>-<arch> sha256sums.txt.asc | sha256sum -c - - Sur macOS (avec
shasumpar défaut) :grep agent-scan-<version>-<os>-<arch> sha256sums.txt.asc | shasum -a 256 -c -
agent-scan-<version>-<os>-<arch>: OK. - Sur Linux (ou macOS avec
Capacités du scanner
Agent Scan v0.5.x
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 v0.6 et versions ultérieures
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-scananalyse 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.
Comment ça fonctionne
Analyse
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.
Consentement interactif pour les serveurs MCP
⚠️ 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 :
- Affiche le nom du serveur, la commande et les variables d'environnement (masquées) qui seront exécutés
- Vous permet d'approuver ou de refuser chaque serveur individuellement
- Empêche l'exécution de serveurs potentiellement non fiables sans votre autorisation explicite
- Enregistre les serveurs refusés avec une erreur
user_declined(ils ne sont jamais démarrés)
Bonnes pratiques :
- Examinez attentivement la commande et les arguments avant d'approuver
- Lorsque vous analysez des configurations MCP non fiables ou tierces, exécutez Agent Scan dans un bac à sable (Docker, VM ou environnement jetable)
- Refusez tout serveur présentant des commandes inconnues ou suspectes
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.
Analyse et validation
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.
Paramètres de la CLI
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.
Commandes partagées```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
### 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
Agent Scan v0.5.x
[!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.
Exemples```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
## 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 :
- Agent Scan v0.5.x (sortie issue-code) :
uvx --python 3.13 [email protected] scan mcp.json - Agent Scan v0.6 et versions ultérieures (sortie basée sur les risques) :
uvx --python 3.13 snyk-agent-scan@latest scan mcp.json
- Agent Scan v0.5.x (sortie issue-code) :
Remarque : 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 est fermé aux contributions
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.
Configuration de développement
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).