
agent-scan v0.6.4-snapshot-6e2d290-1638
AIエージェント、MCPサーバー、エージェントスキル向けのセキュリティスキャナー。
Snyk Agent Scan
マシン上のエージェントコンポーネントを検出し、プロンプトインジェクションや
脆弱性をスキャンします(エージェント、MCPサーバー、スキルを含む)。
注: Agent Scanのnpmパッケージは公開していません。
uvxまたはスタンドアロンバイナリとしてインストールしてください。
注: CLI出力は実験的であり、変更される可能性があります
Agent Scan v0.5.x(非推奨予定)
このCLIの生出力(イシューコード、フィールド名、重大度ラベル、レスポンス構造を含む)は実験的であり、リリース間で予告なく変更される可能性があります。特定のCLI出力フィールドやイシューコードに依存する本番ワークフローの構築は推奨しません。
Agent Scan v0.6以降
このCLIの生出力(リスク指標名、スコア、フィールド名、レスポンス構造を含む)は実験的であり、リリース間で予告なく変更される可能性があります。特定のCLI出力フィールドやリスク名に依存する本番ワークフローの構築は推奨しません。
エージェントのセキュリティリスクを大規模に管理するためにSnykを利用しているエンタープライズ顧客の場合、CLI出力はEvoプラットフォームに送信・表示される内容を反映していない可能性があります。エンタープライズ展開を支える基盤となる統合、検出、リスク評価は安定しておりサポートされています。変更がある場合は、標準的なSnyk製品プラクティスに沿って通知されます。展開に関するガイダンスについては、アカウントチームにお問い合わせください。
新着情報 Agent Scan 0.4と同時に公開されたエージェントスキルエコシステムの新たな脅威に関する技術レポートをご覧ください。このバージョンではエージェントスキルのスキャンサポートが追加されています。
Agent Scan v0.5.xの出力
[!WARNING] Agent Scan v0.5.xはイシューコード出力を使用します。このCLIラインは非推奨が予定されています。
Agent Scan v0.6以降の出力
Agent Scanは、インストールされているすべてのエージェントコンポーネント(ハーネス、MCPサーバー、スキル)を検出し、プロンプトインジェクション、機密データの取り扱い、自然言語に隠されたマルウェアペイロードなどの一般的な脅威をスキャンするのに役立ちます。スキルの分析を無視するには--no-skillsを使用します。
セキュリティ警告
⚠️ 重要: MCP設定をスキャンすると、そこに定義されたコマンドが実行されます。
Agent ScanがMCP設定ファイルをスキャンすると、設定で指定されたコマンドと引数を実行してstdio MCPサーバーを起動します。これはツールの説明を取得し、セキュリティ分析を実行するために必要です。
推奨事項:
- 信頼できない、またはサードパーティのMCP設定を評価する場合は、サンドボックス(Dockerコンテナ、VM、または使い捨て環境)内でスキャンを実行する
- 対話型スキャン中は同意プロンプトを注意深く確認する。各サーバーで実行される正確なコマンドと引数が表示されます
--dangerously-run-mcp-serversは、すべてのMCPサーバーコマンドを検証済みの信頼できる環境でのみ使用するデフォルトでは、Agent Scanは対話型実行中に各stdio MCPサーバーを起動する前に、明示的なユーザーの同意(y/n)を要求します。これにより、システム上で何が実行されるかを制御できます。
クイックスタート
Agent Scanを実行するには、次の2つの方法のいずれかを選択します:
- 以下の手順に従って
uvxでPythonパッケージを実行する。 - GitHub Releasesからプラットフォーム用のスタンドアロンバイナリをダウンロードする。リリースにはSBOM、チェックサム、署名済みチェックサム、ソースコードアーカイブも含まれます。
いずれかのオプションを使用する前に:
- Snykでサインアップし、https://app.snyk.io/accountからAPIトークンを取得します(API Token → KEY → クリックして表示)。
- スキャンを実行する前に、トークンを環境変数として設定します: ```bash
export SNYK_TOKEN=your-api-token-here
uvx で実行
システムに uv がインストールされている必要があります。お使いの CLI バージョンに応じた手順を選択してください。
Agent Scan v0.5.x
以下の例では、具体的な v0.5.x リリースとして v0.5.17 を固定しています:```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 は issue-code 出力と `2025-09-02` 分析 API を使用しています。この CLI ラインは非推奨が予定されています。
#### Agent Scan v0.6 以降```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 以降ではリスクベースの出力と 2026-07-10 分析 API を使用します。
どちらのバージョンも MCP サーバー、ツール、プロンプト、リソース、スキルをスキャンし、Claude Code/Desktop、Cursor、Gemini CLI、Windsurf などのサポート対象エージェント設定を自動検出します。
スタンドアロンバイナリで実行する
最新の GitHub Release から、お使いのオペレーティングシステムとアーキテクチャに対応するバイナリをダウンロードしてください。リリースページでは SBOM (sbom-<version>.json)、チェックサムファイル、GitHub が生成したソースコードアーカイブも提供されています。ダウンロードの検証方法については スタンドアロンバイナリの検証 を参照してください。
ハイライト
- MCP 設定、エージェントツール、スキルを自動検出
- Claude、Cursor、GitHub Copilot、Windsurf、Gemini CLI、Amp、Amazon Q、その他のエージェントのスキャン。
Agent Scan v0.5.x
- MCP サーバーとエージェントスキル全体で 15 種類以上の異なるセキュリティリスク を検出:
Agent Scan v0.6 以降
- MCP サーバーとエージェントスキル全体で 14 種類の異なるセキュリティリスク を検出:
- MCP: プロンプトインジェクション、信頼できないコンテンツ、プライベートデータ、破壊的な機能
- スキル: プロンプトインジェクション、疑わしいダウンロード、悪意のあるコード、認証情報の取り扱い、シークレット検出、その他
サポート対象のエージェントと機能
Agent Scan は、エージェントのインストールパスが存在する場合、エージェントとその機能 (MCP サーバーまたはスキル) を自動検出します。以下の表は、各エージェントがどのオペレーティングシステムでスキャンされるかを示しています。
- ✓: その機能に対して少なくとも 1 つのパスが定義されている。
- ✗: そのエージェントはその OS 向けにリストされているが、その機能のパスがない。
- —: そのエージェントはその OS には含まれていない。
- スキル スキルは
--no-skillsを使用することで無視できます。
| エージェント | macOS MCP | macOS スキル | Linux MCP | Linux スキル | Windows MCP | Windows スキル |
|---|---|---|---|---|---|---|
| Windsurf | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Cursor | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| VS Code | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| GitHub Copilot | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Claude Desktop | ✓ | ✗ | — | — | ✓ | ✗ |
| Claude Code | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Gemini CLI | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| OpenClaw | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ |
| Amp | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ |
| Kiro | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| OpenCode | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Antigravity | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Codex | ✓ | ✓ | ✓ | ✓ | — | — |
| Amazon Q | ✓ | ✗ | ✓ | ✗ | ✓ (WSL) | ✗ |
スコープ別の検出カバレッジ
上のマトリクスは、各エージェントがどのオペレーティングシステムでスキャンされるかを示しています。こちらは、設定スコープとコンポーネント種別 (スキル対 MCP サーバー) 別に検出を分解し、オペレーティングシステムをまたいで統合したものです。「サーバー」は MCP サーバーを意味します。
4 つのスコープ:
- システム — すべてのユーザーに適用されるマシン全体 / 管理者管理 / エンタープライズ設定 (例:
managed-mcp.json、/etc、/Library/Application Support、またはProgramData配下のファイル)。 - ユーザー — ユーザーのホームディレクトリ設定 (そのユーザーのすべてのプロジェクトに適用)。
- プロジェクト / ワークスペース — 開かれたプロジェクトまたはワークスペースにスコープされた設定。
- 拡張機能 / プラグイン — インストールされた拡張機能またはプラグイン内にバンドルされたコンポーネント。
凡例: ✓ 検出済み · ✗ エージェントはこれをサポートしているが Agent Scan はまだスキャンしていない · N/A エージェントはこのスコープにそのようなコンポーネントを持たない。
| エージェント | システム スキル | システム サーバー | ユーザー スキル | ユーザー サーバー | プロジェクト / WS スキル | プロジェクト / WS サーバー | 拡張 / プラグイン スキル | 拡張 / プラグイン サーバー |
|---|---|---|---|---|---|---|---|---|
| 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 には開かれたプロジェクトの列挙がありません。そのプロジェクト / ワークスペーススキルは固定の ~/.openclaw/workspace/skills でのみ検出されます。
‡ Amp はプロジェクト / ワークスペーススキルを .agents/skills (および互換パスである .claude/skills) に保存しますが、現在検出されるのはユーザースコープの ~/.config/agents/skills のみであるため、プロジェクトスコープのスキルはサポートされていますがまだスキャンされていません。
§ GitHub Copilot は CLI とデスクトップアプリを対象とし、これらは VS Code の Copilot と ~/.copilot ホームを共有しており、VS Code のインストールからではなくそのホームから検出されます。COPILOT_HOME による移行は、自身のホームをスキャンする際に尊重されます。プロジェクトスコープは、リポジトリ相対の .mcp.json / .github/mcp.json ファイルと、.github/skills、.claude/skills、.agents/skills ディレクトリを対象とし、スキャンに渡されたフォルダーと Copilot が permissions-config.json に記録したディレクトリ、およびそれらの祖先を対象とします。プラグインスコープは ~/.copilot/installed-plugins を対象とし、MCP 設定を移行したり追加のスキルルートを宣言したりする plugin.json マニフェストも含みます。スキャンされないもの: session-state/*/workspace.yaml 内のセッションごとのプロジェクトルート。Copilot のユーザーレベルのパスは VS Code の下にも記載されており、同じファイルを読み取ります。
スタンドアロンバイナリの検証
配布の完全性と真正性を確保するため、リリースのチェックサムファイルに GPG 署名を使用しています。
ステップバイステップの検証ガイド
-
リリースアセットをダウンロードする: GitHub Releases ページから、お使いのプラットフォーム用のバイナリ (例:
agent-scan-<version>-<os>-<arch>) と署名済みチェックサムファイル (sha256sums.txt.asc) を同じディレクトリにダウンロードします。 -
チェックサムファイルの GPG 署名を検証する: GPG 公開鍵 を同じディレクトリにダウンロードし、次を実行します: ```bash gpg --import snyk-code-signing-public.pgp gpg --verify sha256sums.txt.asc
gpg: Good signature from "Snyk Limited <[email protected]>" と出力される行を探します。
- バイナリの整合性を検証する:
署名が有効であることを確認したら、ダウンロードしたバイナリがチェックサムと一致することを確認します:
- Linux (または
coreutilsを導入した macOS) の場合:grep agent-scan-<version>-<os>-<arch> sha256sums.txt.asc | sha256sum -c - - macOS (デフォルトの
shasumを使用) の場合:grep agent-scan-<version>-<os>-<arch> sha256sums.txt.asc | shasum -a 256 -c -
agent-scan-<version>-<os>-<arch>: OKと出力します。 - Linux (または
スキャナーの機能
Agent Scan v0.5.x
Agent Scan は、マシン上のエージェントコンポーネントをスキャンし、そのサプライチェーンを検査するためのセキュリティスキャンツールです。プロンプトインジェクション、ツールポイズニング、トキシックフロー、エージェントスキルの脆弱性など、一般的なセキュリティ脆弱性をスキャンします。
Agent Scan v0.6 以降
Agent Scan は、プロンプトインジェクション、信頼できないデータやプライベートデータへの露出、破壊的な機能、悪意のあるエージェントスキルなどの脅威について、スコア付けされたリスク指標を報告します。
Agent Scan は、併用または個別に使用できる 2 つの主要なモードで動作します:
-
スキャンモード: CLI コマンド
snyk-agent-scanは、現在のマシンをスキャンして、エージェントや、スキルや MCP サーバーなどのエージェントコンポーネントを検出します。完了すると、ユーザーが確認できる包括的なレポートを出力します。 -
バックグラウンドモード (MDM)。Agent Scan は、バックグラウンドで定期的にマシンをスキャンし、その結果を Snyk Evo インスタンスに報告します。これは、セキュリティチームが全社のエージェントサプライチェーンを一元管理された場所で監視するために使用できます。これを設定するには、お問い合わせください。
仕組み
スキャン
Agent Scan は、ローカルエージェントの設定ファイルを検索して、エージェント、スキル、MCP サーバーを見つけます。MCP については、サーバーに接続してツールの説明を取得します。
MCP サーバーに対する対話的な同意
⚠️ セキュリティに関する注意: MCP 設定をスキャンすると、そこに定義されたコマンドが実行されます。承認する前に、何が実行されるかを必ず確認してください。
デフォルトでは、Agent Scan は対話的な実行中に各 stdio MCP サーバーを起動する前に、ユーザーの同意を求めます。この同意フローは:
- 実行されるサーバー名、コマンド、環境変数 (マスク済み) を表示します
- 各サーバーを個別に承認または拒否できます
- 潜在的に信頼できないサーバーが、あなたの明示的な許可なく実行されるのを防ぎます
- 拒否されたサーバーは
user_declinedエラーとして記録されます (それらは決して起動されません)
ベストプラクティス:
- 承認する前に、コマンドと引数を注意深く確認してください
- 信頼できない、またはサードパーティの MCP 設定をスキャンする場合は、サンドボックス (Docker、VM、または使い捨て環境) 内で Agent Scan を実行してください
- なじみのない、または疑わしいコマンドを持つサーバーは拒否してください
非対話的な環境 (例: CI/CD パイプライン) では、同意プロンプトをバイパスしてすべてのサーバーを自動的に起動するために、--dangerously-run-mcp-servers フラグを使用する必要があります。このフラグは、すべての MCP サーバーコマンドが検証済みである信頼できる環境でのみ使用してください。
分析と検証
Agent Scan は、検出されたコンポーネントをローカルチェックと Agent Scan API で検証します。分析に必要なコンポーネント情報 (エージェントアプリケーションの詳細、MCP サーバーの設定と署名、ツール名と説明、スキルの内容など) を送信します。設定値やテキスト内のシークレットは、送信前にマスクされます。
Agent Scan を使用することで、Snyk の Agent Scan 利用規約 に同意したことになります。
Agent Scan は、使用状況データ、つまり MCP ツール呼び出しの内容と結果を保存または記録しません。
CLI パラメータ
完全なフラグのリファレンスは docs/cli-reference.md にあります。ほとんどのコマンドとフラグは、v0.5.x と v0.6 以降で共通です。
共通コマンド```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
### 両方のバージョン系列で共通のオプション
これらのオプションは v0.5.x と v0.6 以降の両方に存在します。コマンドへの適用可否は、完全な 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] v0.5.x は非推奨化が予定されています。例では、具体的な v0.5.x リリースとして v0.5.17 を固定しています。```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 は issue-code の検出結果とパスをキーとする `ScanPathResult` JSON を出力します。[v0.5.x CLI リファレンス](https://github.com/snyk/agent-scan/blob/main/docs/cli-reference.md#agent-scan-v05x) と [issue-code リファレンス](https://github.com/snyk/agent-scan/blob/main/docs/issue-codes.md) を参照してください。
### Agent Scan v0.6 以降```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以降はスコア付きリスク指標と scan_path_responses JSON を出力します。人間が読めるスキャン出力はデフォルトでコンパクトです。--show-full-discovery は JSON や inspect 出力を変更せずにこれを展開します。詳細は v0.6以降のCLIリファレンス、リスクリファレンス、失敗コードリファレンス を参照してください。
例```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
## デモ
このリポジトリには、Agent Scan が報告する Model Context Protocol のセキュリティ知見を実証する脆弱な MCP サーバーが含まれています。
MCP のセキュリティ知見をどのようにデモするか?
1. このリポジトリをクローンする
2. クローンした git リポジトリのルートディレクトリに、以下の内容で `mcp.json` 設定ファイルを作成する:```jsonc
{
"mcpServers": {
"Demo MCP Server": {
"type": "stdio",
"command": "uv",
"args": ["run", "mcp", "run", "demoserver/server.py"],
},
},
}
-
適切なバージョンを実行します:
- Agent Scan v0.5.x(issue-code 出力):
uvx --python 3.13 [email protected] scan mcp.json - Agent Scan v0.6 以降(リスクベース出力):
uvx --python 3.13 snyk-agent-scan@latest scan mcp.json
- Agent Scan v0.5.x(issue-code 出力):
注:mcp.json 設定ファイルを別の場所に配置する場合は、MCP サーバー設定内の args パスを、MCP サーバー(demoserver/server.py)へのパスを反映するように調整し、さらに mcp.json への正しいファイルパスを指定して Agent Scan を実行する uvx コマンドも調整してください。
Agent Scan はコントリビューションを受け付けていません
Agent Scan は現在、外部からのコントリビューションを受け付けていません。
提案、バグ報告、機能リクエストは GitHub issue として歓迎します。
開発環境のセットアップ
ソースから Agent Scan を実行するには、次の手順に従ってください:```bash uv run pip install -e . uv run -m src.agent_scan.cli
## Agent Scan の結果を自分のプロジェクト / レジストリに含める
Agent Scan の結果を自分のプロジェクトやレジストリに含めたい場合は、[お問い合わせ](https://evo.ai.snyk.io/#contact-us)ください。この目的のために専用の API が用意されています。大規模スキャンに標準の Agent Scan API を使用することは不正利用とみなされ、アカウントがブロックされます。
## ドキュメント
- [ドキュメント索引](https://github.com/snyk/agent-scan/blob/main/docs/README.md) — 両方の CLI ラインのバージョン別ドキュメント。
- [CLI リファレンス](https://github.com/snyk/agent-scan/blob/main/docs/cli-reference.md) — v0.5.x および v0.6 以降のコマンド、フラグ、オプション、環境変数。
- [スキャン](https://github.com/snyk/agent-scan/blob/main/docs/scanning.md) — v0.5.x および v0.6 以降のスキャン動作と例。
- [JSON 出力](https://github.com/snyk/agent-scan/blob/main/docs/json-output.md) — v0.5.x のパスキー形式出力と v0.6 のレスポンススキーマ。
- [Issue Codes](https://github.com/snyk/agent-scan/blob/main/docs/issue-codes.md) — v0.5.x の `E*` および `W*` セキュリティ検出事項リファレンス。
- [リスクリファレンス](https://github.com/snyk/agent-scan/blob/main/docs/risks.md) — v0.6 のセキュリティリスク指標、スコア、エビデンスフィールド。
- [失敗コード](https://github.com/snyk/agent-scan/blob/main/docs/failure-codes.md) — v0.6 の運用上のディスカバリ、インスペクション、分析の失敗。
## 参考資料
- [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)
## 変更履歴
[CHANGELOG.md](https://github.com/snyk/agent-scan/blob/main/CHANGELOG.md) を参照してください。