MCP Blast-Radius Auditor について
MCPサーバーがアクセスし得るファイル、ネットワーク、環境変数、サブプロセスなどを静的解析するツールです。MCPサーバーの保守担当者やレビュー担当者向けに、検出したアクセス範囲を宣言済みマニフェストと照合します。
主な機能
- 01能力と依存関係の静的スキャン
- 02マニフェストとアクセスの差異検出
- 03助言・ブロッキングのゲートモード
- 04JSONレポートの信頼度ラベル
- 05リポジトリ全体の任意スキャン
活用シーン
- 01インストール前のMCPサーバー審査
- 02マニフェスト超過時にCIを失敗させる
- 03宣言済み能力と検出能力の確認
MCP 対応
MCPクライアントに `aos_compliance_validate` と `aos_compliance_self_test` を提供します。stdioサーバーが対象のMCPサーバーディレクトリをスキャンし、静的な能力範囲とマニフェストとの差異を報告します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| mock | boolean | いいえ | |
| tool_id | any | いいえ | |
| gate_mode | enum | いいえ | advisory | blocking |
| target_dir | any | いいえ |
詳細
MCP Blast-Radius Auditor
MCP サーバーが実際にアクセスできる範囲を、エージェントに追加する前に確認できます。
マニフェストがなくても、完全な影響範囲レポートを取得できます。マニフェストを追加すると、相違点も検出できます。
また、サーバーがマニフェストを宣言している場合:MCP サーバーがアクセスしないと宣言したファイルにアクセスしていることを検出し、CI でマージをブロックできます。
サードパーティの MCP サーバーが到達できる範囲(ファイル、ネットワーク、サブプロセス、環境変数)を、表層的な分析によって静的に抽出します。マニフェストがある場合は、宣言された境界と比較します。
スキャン範囲(デフォルト): 本番パッケージのみです。tests/、docs/、examples/、scripts/、benchmarks/、.github/、および test_*.py パターンは除外されます。JSON 出力には scan_scope と excluded_file_count が含まれます。リポジトリ全体をスキャンするには --include-peripheral を指定してください。
3 ステップで試す
① 1 つのコマンドでサーバーをスキャンする
pip install mcp-blast-radius==0.2.5
mcp-blast-radius-gate --gate-mode advisory --target-dir /path/to/your-mcp-server
--target-dir に、出荷するパッケージのルート(例:src/)を指定します。デフォルトではテスト、ドキュメント、スクリプトが除外されます。
② JSON を読む
| フィールド | 意味 |
|---|---|
gate_pass | スキャンが完了しました(advisory = どちらの場合もレポートを出力、blocking = 相違点がある場合に終了コード 1) |
blocking_reasons | DIVERGENCE: で始まる行 = 宣言内容と観測内容の不一致(マニフェストを同梱している場合) |
blast_radius | 静的な機能の範囲(ネットワーク、サブプロセス、環境変数、ファイルシステム) |
confidence labels | declared / observed-static / cannot-determine — 静的解析のみ、上限値 |
宣言されていない機能は、通常、悪意ではなくドリフトです。ネットワークとサブプロセスの数は、確認済みの通信ではなく上限値として扱ってください。
③ 監査バッジを申請する(任意、希望者のみ)
スキャンが問題なく完了し、署名済みの README バッジをご希望ですか?バッジ申請を作成して、コマンドと JSON を貼り付けてください。無料で、90 日間有効な証明が発行され、外部への情報送信はありません。基準:BADGE_CRITERIA.md。
公開済みの証明を独立して検証するには、pip install cryptography を実行してから packaging/scripts/verify_attestation.py を実行してください(ローカルパスまたは HTTPS URL を受け付けます)。BADGE_CRITERIA.md §Verifyを参照してください。
機械可読メタデータ
- エージェントカード(機能、制限、料金):agent_card.json
- カタログエントリー(料金、インストール、MCP エンドポイント):aos-standard/catalog
- 仕様:AOS-v0.1
使用例のウォークスルー
git clone --depth 1 https://github.com/oraios/serena.git /tmp/serena
mcp-blast-radius-gate --gate-mode advisory --target-dir /tmp/serena
blast_radius と blocking_reasons 内の DIVERGENCE: 行を確認してください。
スキャンに関する質問を報告する
GitHub の issue を作成し、JSON 出力を添付してください(構造化テンプレートが自動で読み込まれます)。
30 秒でスキャン
pip install mcp-blast-radius
mcp-blast-radius-gate --gate-mode blocking --target-dir /path/to/mcp-server
pipx run mcp-blast-radius は MCP stdio サーバー(Claude Desktop / Cursor 用)を起動します。CLI でスキャンするには、上記のように mcp-blast-radius-gate を使用してください。
- 赤(ブロック): 相違点が検出されました。コードがマニフェストで宣言されていないパスまたは機能にアクセスしています。
- 緑: 相違点はありません(またはマニフェストがなく、影響範囲レポートのみを出力するアドバイザリーパスです)。
インストール
python3 -m venv .venv
source .venv/bin/activate
pip install .
CLI エントリーポイント
mcp-blast-radius # MCP stdio server
mcp-blast-radius-gate # CI gate (default blocking, exit 1 on fail)
CI ブロッキングゲート
mcp-blast-radius-gate --gate-mode blocking --target-dir .
# no divergences → exit 0 / divergences or declaration violations → exit 1
MCP ツール
aos_compliance_validate— 1 つの MCP サーバーディレクトリをスキャンします(target_dirは必須、tool_idは任意のラベル)aos_compliance_self_test— 配線のスモークテスト
デフォルトの gate_mode=advisory を使用します。CI で相違点がある場合に失敗させるには、gate_mode=blocking を使用してください。
抽出される内容
| レイヤー | 対象範囲 | 信頼度 |
|---|---|---|
| 依存関係 | requirements.txt、pyproject.toml、package.json | declared |
| Python AST | インポート、ファイル I/O、ネットワーク、環境変数、サブプロセス、MCP ツールの帰属 | observed-static / cannot-determine |
| 相違点 | マニフェストの permitted_output_paths / oracle_paths と観測されたアクセスの比較 | 不一致がある場合はブロッキング |
制限事項: 静的解析のみです。動的インポート、getattr / eval、難読化、ネイティブ拡張によって、機能が隠されている可能性があります。完全な網羅性は保証されません。各検出結果には confidence ラベルが含まれます。
環境
| 変数 | 用途 |
|---|---|
AOS_VALIDATOR_TARGET_DIR | target_dir が省略された場合のデフォルトのスキャンルート |
AOS_VALIDATOR_MCP_LOG | ローカルのツール呼び出しログ用 JSONL パス(外部には送信されません) |
AOS_VALIDATOR_CALLER | 呼び出し元のラベル(ci、smoke_self_call など) |
例
aos_compliance_validate target_dir=/path/to/my-mcp-server gate_mode=blocking
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。