
AIエージェント、MCPサーバー、エージェントスキル向けのセキュリティスキャナー。
マシン上のエージェントコンポーネントを検出し、プロンプトインジェクションや脆弱性(エージェント、MCPサーバー、スキルを含む)をスキャンします。
注: CLI出力は試験的なものであり、予告なく変更されることがあります
Agent Scan v0.5.x(廃止予定)
このCLIの生の出力(issueコード、フィールド名、重大度ラベル、レスポンス構造を含む)は試験的なものであり、リリース間で予告なく変更される可能性があります。特定のCLI出力フィールドやissueコードに依存する本番ワークフローを構築することはお勧めしません。
Agent Scan v0.6以降
このCLIの生の出力(リスクインジケーター名、スコア、フィールド名、レスポンス構造を含む)は試験的なものであり、リリース間で予告なく変更される可能性があります。特定のCLI出力フィールドやリスク名に依存する本番ワークフローを構築することはお勧めしません。
Snykを使用してエージェントセキュリティリスクを大規模に管理しているエンタープライズ顧客の場合、CLI出力はEvoプラットフォームに送信・表示される内容を反映していない可能性があります。エンタープライズデプロイメントを支える基盤となる統合、検出、リスク評価は安定しておりサポートされています。変更がある場合は、標準的なSnyk製品慣行に沿って通知されます。デプロイメントのガイダンスについては、担当のアカウントチームにお問い合わせください。
新着 Agent Scan 0.4 とともに公開された、エージェントスキルエコシステムの新たな脅威に関するテクニカルレポート をお読みください。Agent Scan 0.4 ではエージェントスキルのスキャンに対応しています。
[!WARNING] Agent Scan v0.5.x は issue-code 出力を使用します。このCLIラインは廃止予定です。
Agent Scan は、インストール済みのすべてのエージェントコンポーネント(ハーネス、MCPサーバー、スキル)を検出し、プロンプトインジェクション、機密データの取り扱い、自然言語に隠れたマルウェアペイロードなどの一般的な脅威をスキャンします。--no-skills を使用すると、スキルの分析を無視できます。
⚠️ 重要: MCP設定をスキャンすると、設定内で定義されたコマンドが実行されます。
Agent Scan が MCP 設定ファイルをスキャンするとき、設定で指定されたコマンドと引数を実行して stdio MCP サーバーを起動します。これはツールの説明を取得し、セキュリティ分析を実行するために必要です。
推奨事項:
- サンドボックス内でスキャンを実行してください(Docker コンテナ、VM、使い捨て環境など)信頼できない MCP 設定やサードパーティ製の MCP 設定を評価する場合
- 対話型スキャン中は同意プロンプトを注意深く確認してください。各サーバーで実行される正確なコマンドと引数が表示されます
--dangerously-run-mcp-serversは、すべての MCP サーバーコマンドを検証した信頼できる環境でのみ使用してくださいデフォルトでは、Agent Scan は対話型実行中に各 stdio MCP サーバーを起動する前に、明示的なユーザー同意(y/n)を要求します。これにより、システム上で実行される内容を制御できます。
Agent Scan を実行するには、次の2つの方法のいずれかを選択します:
uvx で Python パッケージを実行します。どちらかのオプションを使用する前に:
uvx で実行システムに uv がインストールされている必要があります。お使いのCLIバージョンに応じた手順を選択してください。
例では、具体的なv0.5.xリリースとしてv0.5.17を固定しています。```bash
uvx [email protected] ~/.vscode/mcp.json
uvx [email protected] ~/path/to/my/SKILL.md
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 生成のソースコードアーカイブも用意されています。ダウンロードを検証するには、スタンドアロンバイナリの検証 を参照してください。
v0.6 のリスクベース出力については、この README の上部にある v0.6 の画像を参照してください。
Agent Scan は、インストールパスが存在する場合、エージェントとその機能(MCP サーバーまたはスキル)を自動検出します。以下の表は、各エージェントがどのオペレーティングシステムでスキャンされるかを示しています。
--no-skills を使用すると無視できます上の表は、各エージェントがどのオペレーティングシステムでスキャンされるかを示しています。この表は、オペレーティングシステムを横断して集計し、設定スコープとコンポーネントタイプ(スキル vs MCP サーバー)で検出を分類したものです。「サーバー」は MCP サーバーを意味します。
4 つのスコープ:
managed-mcp.json、/etc、/Library/Application Support、ProgramData 配下のファイル)。凡例: ✓ 検出される · ✗ エージェントは対応しているが Agent Scan はまだスキャンしない · N/A そのスコープにはそのようなコンポーネントがない
† OpenClaw には開いているプロジェクトの列挙がありません。プロジェクト/ワークスペーススキルは固定の ~/.openclaw/workspace/skills でのみ検出されます
‡ Amp はプロジェクト/ワークスペーススキルを .agents/skills(および .claude/skills 互換パス)に保存します。現在検出されるのはユーザースコープの ~/.config/agents/skills のみであるため、プロジェクトスコープのスキルはサポートされていますが、まだスキャンされません。
配布の整合性と信頼性を保証するため、リリースのチェックサムファイルに GPG 署名を使用しています。
リリースアセットをダウンロード:
お使いのプラットフォーム用のバイナリ(例: agent-scan-<version>-<os>-<arch>)と署名付きチェックサムファイル(sha256sums.txt.asc)を GitHub Releases ページから同じディレクトリにダウンロードします。
チェックサムファイルの GPG 署名を検証: GPG 公開鍵を同じディレクトリにダウンロードし、次を実行します: ```bash gpg --import snyk-code-signing-public.pgp gpg --verify sha256sums.txt.asc
出力に gpg: Good signature from "Snyk Limited <[email protected]>" という行が表示されることを確認します。
coreutils を使用する macOS) の場合:
grep agent-scan-<version>-<os>-<arch> sha256sums.txt.asc | sha256sum -c -
shasum を使用する場合):
grep agent-scan-<version>-<os>-<arch> sha256sums.txt.asc | shasum -a 256 -c -
agent-scan-<version>-<os>-<arch>: OK と出力されます。Agent Scan は、マシン上のエージェントコンポーネントのサプライチェーンをスキャンおよび検査するセキュリティスキャンツールです。プロンプトインジェクション、ツールポイズニング、トキシックフロー、エージェントスキルの脆弱性など、一般的なセキュリティ脆弱性をスキャンします。
Agent Scan は、プロンプトインジェクション、信頼できないデータやプライベートデータへの露出、破壊的な機能、悪意のあるエージェントスキルなどの脅威について、スコア化されたリスク指標を報告します。
Agent Scan は、併用または単独で使用できる2つの主要モードで動作します:
スキャンモード: CLIコマンド snyk-agent-scan は、現在のマシン上のエージェントおよびスキルやMCPサーバーなどのエージェントコンポーネントをスキャンします。完了すると、ユーザーが確認できる包括的なレポートを出力します。
バックグラウンドモード(MDM)。Agent Scan はバックグラウンドで定期的にマシンをスキャンし、その結果を Snyk Evo インスタンスに報告します。これは、セキュリティチームが企業全体のエージェントサプライチェーンを一元管理して監視するために使用できます。設定を行うには、お問い合わせ ください。
Agent Scan は、ローカルエージェントの設定ファイルを検索して、エージェント、スキル、MCPサーバーを見つけます。MCPについては、サーバーに接続してツールの説明を取得します。
⚠️ セキュリティ上の注意: MCP設定をスキャンすると、その中で定義されたコマンドが実行されます。承認する前に、実行される内容を必ず確認してください。
デフォルトでは、Agent Scan は対話実行中に各 stdio MCPサーバーを起動する前にユーザーの同意を求めます。この同意フローでは:
user_declined エラーとして記録します(これらのサーバーは起動されません)ベストプラクティス:
非対話環境(例: CI/CD パイプライン)では、同意プロンプトをバイパスしてすべてのサーバーを自動的に起動するには、--dangerously-run-mcp-servers フラグを使用する必要があります。このフラグは、すべてのMCPサーバーコマンドが検証済みの信頼できる環境でのみ使用してください。
Agent Scan は、ローカルチェックと Agent Scan API を使用して、検出されたコンポーネントを検証します。分析に必要なコンポーネント情報(エージェントアプリケーションの詳細、MCPサーバーの設定と署名、ツール名と説明、スキルコンテンツ)を送信します。設定値とテキスト内のシークレットは、送信前に秘匿化されます。
Agent Scan を使用することで、Snyk の Agent Scan 利用規約 に同意したことになります。
Agent Scan は、使用データ(つまり MCPツールコールの内容と結果)を保存または記録しません。
完全なフラグリファレンスは docs/cli-reference.md にあります。ほとんどのコマンドとフラグは v0.5.x と v0.6 以降で共通です。
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
--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 は非推奨となる予定です。例では具体的な 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/HEAD/docs/cli-reference.md#agent-scan-v05x) と [issue-code リファレンス](https://github.com/snyk/agent-scan/blob/HEAD/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-and-later CLIリファレンス、リスクリファレンス、障害コードリファレンス を参照してください。
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
## Demo
このリポジトリには、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"],
},
},
}
適切なバージョンを実行します:
uvx --python 3.13 [email protected] scan mcp.jsonuvx --python 3.13 snyk-agent-scan@latest scan mcp.json注意: mcp.json 設定ファイルのパスを別の場所に置く場合は、MCP サーバー設定内の args パスを MCP サーバー(demoserver/server.py)のパスに合わせて調整し、正しい mcp.json のファイルパスで Agent Scan を実行する uvx コマンドも調整してください。
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/HEAD/docs/README.md) — 両方のCLI系列向けのバージョン管理されたドキュメント。
- [CLIリファレンス](https://github.com/snyk/agent-scan/blob/HEAD/docs/cli-reference.md) — v0.5.xおよびv0.6以降のコマンド、フラグ、オプション、環境変数。
- [スキャン](https://github.com/snyk/agent-scan/blob/HEAD/docs/scanning.md) — v0.5.xおよびv0.6以降のスキャン動作と例。
- [JSON出力](https://github.com/snyk/agent-scan/blob/HEAD/docs/json-output.md) — v0.5.xのパスキー付き出力とv0.6のレスポンススキーマ。
- [イシューコード](https://github.com/snyk/agent-scan/blob/HEAD/docs/issue-codes.md) — v0.5.xの`E*`および`W*`セキュリティ検出結果リファレンス。
- [リスクリファレンス](https://github.com/snyk/agent-scan/blob/HEAD/docs/risks.md) — v0.6のセキュリティリスク指標、スコア、証拠フィールド。
- [障害コード](https://github.com/snyk/agent-scan/blob/HEAD/docs/failure-codes.md) — v0.6の運用における検出、検査、分析の失敗。
## 関連資料
- [MCP-Scanの紹介](https://invariantlabs.ai/blog/introducing-mcp-scan)
- [MCPセキュリティ通知のツールポイズニング攻撃](https://invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks)
- [WhatsApp MCPの悪用](https://invariantlabs.ai/blog/whatsapp-mcp-exploited)
- [MCPプロンプトインジェクション](https://simonwillison.net/2025/Apr/9/mcp-prompt-injection/)
- [Toxic Flow分析](https://invariantlabs.ai/blog/toxic-flow-analysis)
- [スキルレポート](https://github.com/snyk/agent-scan/blob/HEAD/.github/reports/skills-report.pdf)
## 変更履歴
[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 | 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 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 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 |