
AIエージェント、MCPサーバー、エージェントスキル向けのセキュリティスキャナー。
<p align="center"> <h1 align="center"> Snyk Agent Scan </h1> </p> <p align="center"> マシン上のエージェントコンポーネントを検出してスキャンし、プロンプトインジェクション<br/> や脆弱性を検出します(エージェント、MCP サーバー、スキルを含む)。 </p> > **注:** Agent Scan の npm パッケージは公開していません。[`uvx`](#run-with-uvx) または[スタンドアロンバイナリ](#run-with-a-standalone-binary)としてインストールしてください。 > **注: CLI 出力は実験的であり、変更される可能性があります** > > **Agent Scan v0.5.x(非推奨予定)** > > この CLI の生出力 — 問題コード、フィールド名、重大度ラベル、レスポンス構造を含む — は実験的であり、リリース間で予告なく変更される可能性があります。特定の CLI 出力フィールドや問題コードに依存する本番ワークフローの構築は推奨しません。 > > **Agent Scan v0.6 以降** > > この CLI の生出力 — リスク指標名、スコア、フィールド名、レスポンス構造を含む — は実験的であり、リリース間で予告なく変更される可能性があります。特定の CLI 出力フィールドやリスク名に依存する本番ワークフローの構築は推奨しません。 > > Snyk を使用してエージェントのセキュリティリスクを大規模に管理しているエンタープライズのお客様の場合、CLI 出力は Evo プラットフォームに送信・表示される内容を反映していない可能性があります。エンタープライズ展開を支える基盤となる統合、検出、リスク評価は安定しておりサポートされています — 変更がある場合は標準的な Snyk 製品慣行に沿って通知されます。展開に関するガイダンスについてはアカウントチームにお問い合わせください。 > **NEW** エージェントスキルエコシステムの新たな脅威に関する[テクニカルレポート](https://github.com/snyk/agent-scan/blob/main/.github/reports/skills-report.pdf)を公開しました。これは Agent Scan 0.4 と同時に公開され、エージェントスキルのスキャンサポートが追加されています。 <p align="center"> <a href="https://pypi.python.org/pypi/snyk-agent-scan"><img src="https://img.shields.io/pypi/v/snyk-agent-scan.svg" alt="snyk-agent-scan"/></a> <a href="https://pypi.python.org/pypi/snyk-agent-scan"><img src="https://img.shields.io/pypi/l/snyk-agent-scan.svg" alt="snyk-agent-scan license"/></a> <a href="https://pypi.python.org/pypi/snyk-agent-scan"><img src="https://img.shields.io/pypi/pyversions/snyk-agent-scan.svg" alt="snyk-agent-scan python version requirements"/></a> </p> ### Agent Scan v0.5.x の出力 > [!WARNING] > Agent Scan v0.5.x は問題コード出力を使用します。この CLI ラインは非推奨が予定されています。 <div align="center"> <img width="1304" height="976" alt="agent-scan-pretty" src="https://assets.kitploit.com/production/public/readmes/721/98fbbb9009fa00bb52906b85514664b3d4834bd558b2b9fb3bce959cfa87a4e8.png" /> </div> ### Agent Scan v0.6 以降の出力 <div align="center"> <img width="1000" alt="Agent Scan v0.6 and later report showing scored MCP server and skill risks" src="https://raw.githubusercontent.com/snyk/agent-scan/HEAD/demo-v0.6.svg" /> </div> <br> Agent Scan は、インストールされているすべてのエージェントコンポーネント(ハーネス、MCP サーバー、スキル)を検出し、プロンプトインジェクション、機密データの取り扱い、自然言語に隠されたマルウェアペイロードなどの一般的な脅威をスキャンするのに役立ちます。スキルの分析を無視するには `--no-skills` を使用します。 ## セキュリティ警告 > **⚠️ 重要: MCP 設定のスキャンはコマンドを実行したり、外部へのネットワークリクエストを行ったりする可能性があります。** > > ツールの説明を取得するために、Agent Scan は設定内のコマンドを実行して stdio MCP サーバーを起動し、設定されたヘッダーを使用して設定済みのリモート MCP サーバー URL に接続します。 > > **推奨事項:** > - **信頼できない、またはサードパーティの MCP 設定を評価する場合は、サンドボックス内でスキャンを実行する**(Docker コンテナ、VM、または使い捨て環境) > - **対話型スキャン中は同意プロンプトを注意深く確認する**。各サーバーのコマンドまたはリモート URL が表示されます > - **`--dangerously-run-mcp-servers` は、すべての MCP サーバーコマンドとリモート URL を検証済みの信頼できる環境でのみ使用する** > > リモート MCP リクエストは、リンクローカルアドレスまたは既知のクラウドメタデータエンドポイント(`169.254.0.0/16`、`fe80::/10`、`fd00:ec2::254`、および `100.100.100.200`)に解決される宛先を拒否します。ループバックおよびプライベートアドレスは、ローカルおよび内部 MCP サーバー用に引き続き許可されます。HTTP リダイレクトはフォローされません。DNS は各リクエストの前に検証されますが、接続時に再度解決されるため、DNS リバインディングのウィンドウが残ります。 > > デフォルトでは、Agent Scan はフォアグラウンドの対話型実行中に、検出された各 MCP サーバーに接続する前に明示的なユーザーの同意(y/n)を要求します。バックグラウンドおよびプッシュキースキャンは、フリートカバレッジのためにリモートサーバーの検査を自動的に継続しますが、`--dangerously-run-mcp-servers` が設定されていない限り stdio サーバーは起動しません。 ## クイックスタート Agent Scan を実行するには、次の 2 つの方法のいずれかを選択します: 1. **以下の手順に従って `uvx` で Python パッケージを実行する**。 2. **[GitHub Releases](https://github.com/snyk/agent-scan/releases) からお使いのプラットフォーム用のスタンドアロンバイナリをダウンロードする**。リリースには SBOM、チェックサム、署名済みチェックサム、ソースコードアーカイブも含まれます。 いずれかのオプションを使用する前に: 1. **[Snyk](https://snyk.io) にサインアップ**し、[https://app.snyk.io/account](https://app.snyk.io/account) から API トークンを取得します(API Token → KEY → クリックして表示)。 2. **スキャンを実行する前にトークンを環境変数として設定します**: ```bash export SNYK_TOKEN=your-api-token-here ``` ### `uvx` で実行 システムに [uv](https://docs.astral.sh/uv/getting-started/installation/) がインストールされている必要があります。お使いの CLI バージョンに応じた手順を選択してください。 #### Agent Scan v0.5.x 以下の例では、具体的な v0.5.x リリースとして v0.5.17 を固定しています: ```bash # Scan the whole machine uvx [email protected] # 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](https://github.com/snyk/agent-scan/releases/latest)から、お使いのオペレーティングシステムとアーキテクチャ用のバイナリをダウンロードしてください。リリースページでは、SBOM(`sbom-<version>.json`)、チェックサムファイル、GitHubが生成したソースコードアーカイブも提供されています。ダウンロードの検証方法については[スタンドアロンバイナリの検証](#verifying-standalone-binaries)を参照してください。 ## ハイライト - MCP設定、エージェントツール、スキルの自動検出 - Claude、Cursor、GitHub Copilot、Windsurf、Gemini CLI、Amp、Amazon Q、その他のエージェントのスキャン。 ### Agent Scan v0.5.x - MCPサーバーとエージェントスキル全体で[15種類以上の異なるセキュリティリスク](https://github.com/snyk/agent-scan/blob/main/docs/issue-codes.md)を検出: - MCP: [プロンプトインジェクション](https://github.com/snyk/agent-scan/blob/main/docs/issue-codes.md#E001)、[ツールポイズニング](https://github.com/snyk/agent-scan/blob/main/docs/issue-codes.md#E001)、[ツールシャドウイング](https://github.com/snyk/agent-scan/blob/main/docs/issue-codes.md#E002)、[有害なフロー](https://github.com/snyk/agent-scan/blob/main/docs/issue-codes.md#ToxicFlows) - スキル: [プロンプトインジェクション](https://github.com/snyk/agent-scan/blob/main/docs/issue-codes.md#E004)、[マルウェアペイロード](https://github.com/snyk/agent-scan/blob/main/docs/issue-codes.md#E006)、[信頼できないコンテンツ](https://github.com/snyk/agent-scan/blob/main/docs/issue-codes.md#W011)、[認証情報の取り扱い](https://github.com/snyk/agent-scan/blob/main/docs/issue-codes.md#W007)、[ハードコードされたシークレット](https://github.com/snyk/agent-scan/blob/main/docs/issue-codes.md#W008) ### Agent Scan v0.6以降 - MCPサーバーとエージェントスキル全体で[14種類の異なるセキュリティリスク](https://github.com/snyk/agent-scan/blob/main/docs/risks.md)を検出: - MCP: [プロンプトインジェクション](https://github.com/snyk/agent-scan/blob/main/docs/risks.md#prompt_injection_tool_desc)、[信頼できないコンテンツ](https://github.com/snyk/agent-scan/blob/main/docs/risks.md#untrusted_content)、[プライベートデータ](https://github.com/snyk/agent-scan/blob/main/docs/risks.md#private_data)、[破壊的な機能](https://github.com/snyk/agent-scan/blob/main/docs/risks.md#destructive_capabilities) - スキル: [プロンプトインジェクション](https://github.com/snyk/agent-scan/blob/main/docs/risks.md#prompt_injection_skill_instructions)、[疑わしいダウンロード](https://github.com/snyk/agent-scan/blob/main/docs/risks.md#suspicious_download_url)、[悪意のあるコード](https://github.com/snyk/agent-scan/blob/main/docs/risks.md#malicious_code)、[認証情報の取り扱い](https://github.com/snyk/agent-scan/blob/main/docs/risks.md#insecure_credential_handling)、[シークレット検出](https://github.com/snyk/agent-scan/blob/main/docs/risks.md#secret_detection)、その他 ## サポート対象エージェントと機能 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** エージェントはこのスコープにそのようなコンポーネントを持たない。 | エージェント | システム<br>スキル | システム<br>サーバー | ユーザー<br>スキル | ユーザー<br>サーバー | プロジェクト / WS<br>スキル | プロジェクト / WS<br>サーバー | 拡張 / プラグイン<br>スキル | 拡張 / プラグイン<br>サーバー | | --- | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | | 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 | ✓ | ✓ | | 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の下にも記載されています。 Claude Desktopのプラグイン検出はmacOSとLinuxでサポートされています。Claude Codeの場合、Guardのインストールおよびセッション開始時の検出イベントは、`claude-code-sessions/*/*/local_*.json` および `local-agent-mode-sessions/*/*/local_*.json` からログに記録されたコネクタも報告し、組織ごとにグループ化され、最新のセッションメタデータを使用してコネクタUUIDで重複排除されます。送信されるのは各コネクタのUUID、名前、URL、ツール定義、および指示のみです。ヘッダーなどの他のフィールドは破棄され、URLクエリの値は秘匿化されます。Windowsでは、コネクタ検出は `~/AppData/Roaming/Claude` を使用し、同じセッションレイアウトを想定していますが、これはWindowsマシンではまだ検証されていません。Windowsのプラグイン検出は引き続きサポートされていません。 ## スタンドアロンバイナリの検証 配布の完全性と真正性を確保するため、リリースチェックサムファイルにGPG署名を使用しています。 ### ステップバイステップの検証ガイド 1. **リリースアセットをダウンロードする:** [GitHub Releases](https://github.com/snyk/agent-scan/releases)ページから、お使いのプラットフォーム用のバイナリ(例: `agent-scan-<version>-<os>-<arch>`)と署名済みチェックサムファイル(`sha256sums.txt.asc`)を同じディレクトリにダウンロードします。 2. **チェックサムファイルのGPG署名を検証する:** [GPG公開鍵](https://github.com/snyk/agent-scan/blob/main/help/_about-this-project/snyk-code-signing-public.pgp)を同じディレクトリにダウンロードし、次を実行します: ```bash gpg --import snyk-code-signing-public.pgp gpg --verify sha256sums.txt.asc ``` `gpg: Good signature from "Snyk Limited <[email protected]>"` と出力される行を探してください。 3. **バイナリの整合性を検証する:** 署名が有効であることを確認したら、ダウンロードしたバイナリがチェックサムと一致するか確認します: * **Linux (または `coreutils` を備えた macOS) の場合:** ```bash grep agent-scan-<version>-<os>-<arch> sha256sums.txt.asc | sha256sum -c - ``` * **macOS (デフォルトの `shasum` を使用) の場合:** ```bash grep agent-scan-<version>-<os>-<arch> sha256sums.txt.asc | shasum -a 256 -c - ``` これにより `agent-scan-<version>-<os>-<arch>: OK` と出力されます。 ## スキャナーの機能 ### Agent Scan v0.5.x Agent Scan は、マシン上のエージェントコンポーネントをスキャンし、そのサプライチェーンを検査するためのセキュリティスキャンツールです。プロンプトインジェクション、ツールポイズニング、トキシックフロー、エージェントスキルの脆弱性など、一般的なセキュリティ脆弱性をスキャンします。 ### Agent Scan v0.6 以降 Agent Scan は、プロンプトインジェクション、信頼できないデータやプライベートデータへの露出、破壊的な機能、悪意のあるエージェントスキルなどの脅威について、スコアリングされたリスク指標を報告します。 Agent Scan は主に2つのモードで動作し、これらは併用または個別に使用できます: 1. **スキャンモード**: CLI コマンド `snyk-agent-scan` は、現在のマシン上のエージェントおよびスキルや MCP サーバーなどのエージェントコンポーネントをスキャンします。完了すると、ユーザーが確認できる包括的なレポートを出力します。 2. **バックグラウンドモード** (MDM)。Agent Scan は定期的にバックグラウンドでマシンをスキャンし、その結果を [Snyk Evo](https://evo.ai.snyk.io) インスタンスに報告します。これは、セキュリティチームが全社のエージェントサプライチェーンを一元管理された場所で監視するために使用できます。これを設定するには、[お問い合わせください](https://evo.ai.snyk.io/#contact-us)。 ## 仕組み ### スキャン Agent Scan は、ローカルエージェントの設定ファイルを検索して、エージェント、スキル、MCP サーバーを見つけます。MCP については、サーバーに接続してツールの説明を取得します。 #### MCP サーバーに対するインタラクティブな同意 > **⚠️ セキュリティに関する注意**: MCP 設定をスキャンすると、その stdio コマンドが実行されたり、リモート URL への外部リクエストが発生したりする可能性があります。承認する前に、何にアクセスするかを必ず確認してください。 デフォルトでは、Agent Scan はインタラクティブ実行中に、検出された各 MCP サーバーへアクセスする前にユーザーの同意を求めます。この同意フローは: - サーバー名とそのコマンドまたはリモート URL を表示します。環境変数とヘッダーは伏せ字化されます - 各サーバーを個別に承認または拒否できます - 信頼できない可能性のあるサーバーが、あなたの明示的な許可なくアクセスされることを防ぎます - 拒否されたサーバーは `user_declined` エラーとして記録されます (それらにアクセスすることはありません) **ベストプラクティス:** - 承認する前に、コマンド、引数、リモート URL を注意深く確認してください - 信頼できない、またはサードパーティの MCP 設定をスキャンする場合は、サンドボックス (Docker、VM、または使い捨て環境) 内で Agent Scan を実行してください - なじみのない、または疑わしいコマンドを持つサーバーは拒否してください 非インタラクティブ環境 (例: バックグラウンドスキャンや push-key スキャン) では、リモート MCP サーバーを自動的に検査します。`--dangerously-run-mcp-servers` が設定されていない限り、stdio サーバーは起動しません。**このフラグは、すべての MCP サーバーコマンドとリモート URL が検証済みである信頼できる環境でのみ使用してください。** #### 分析と検証 Agent Scan は、検出されたコンポーネントをローカルチェックと Agent Scan API で検証します。分析に必要なコンポーネント情報 (エージェントアプリケーションの詳細、MCP サーバーの設定と署名、ツール名と説明、スキルコンテンツなど) を送信します。設定値やテキスト内のシークレットは、送信前に伏せ字化されます。 Agent Scan を使用することで、Snyk の [Agent Scan 利用規約](https://github.com/snyk/agent-scan/blob/main/TERMS.md) に同意したことになります。 Agent Scan は、使用状況データ (つまり、MCP ツール呼び出しの内容と結果) を保存または記録しません。 ## CLI パラメータ 完全なフラグリファレンスは [docs/cli-reference.md](https://github.com/snyk/agent-scan/blob/main/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 contact all configured 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リファレンス](https://github.com/snyk/agent-scan/blob/main/docs/cli-reference.md#agent-scan-v06-and-later)、[リスクリファレンス](https://github.com/snyk/agent-scan/blob/main/docs/risks.md)、[失敗コードリファレンス](https://github.com/snyk/agent-scan/blob/main/docs/failure-codes.md) を参照してください。 ### 例 ```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"], }, }, } ``` 3. 適切なバージョンを実行します: - 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` 注:`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) を参照してください。