MCP Shield について
MCP Shield は、MCP サーバーのコードやプロジェクトのセキュリティ問題を調べるオープンソースのスキャナーです。20 のルールで検査し、CWE 参照と修正案を含む結果、および A〜F の評価を提示します。
主な機能
- 0120 項目のセキュリティルール
- 02SSRF とパストラバーサル検査
- 03インジェクションと認証の検査
- 04CWE 参照付きの検出結果
- 05修正案の提示
- 06A〜F のセキュリティ評価
活用シーン
- 01MCP サーバーのソースファイルをスキャン
- 02プロジェクトのセキュリティリスクを確認
- 03検出結果と修正手順を確認
MCP 対応
MCP Shield は、ファイル、ディレクトリ、コードをスキャンする MCP ツールを提供します。CLI としても実行できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Shield
MCP サーバー向けのオープンソースセキュリティスキャナーです。 6 カテゴリーにわたる 20 のルールで、あらゆるサーバーを数秒でスキャンし、A から F までの評価を取得できます。
MCP サーバーの 36.7%に SSRF の脆弱性があります(BlueRock、2026)。82%にパストラバーサルの欠陥があります。本番環境に対応できるのは、わずか 17%です。MCP Shield は、攻撃者より先に脆弱性を発見します。
クイックスタート
git clone https://github.com/sophiacave/mcp-shield
cd mcp-shield
# Scan a file
python3 src/cli.py scan path/to/mcp_server.py
# Scan a project
python3 src/cli.py scan path/to/mcp-project/
チェック項目(20 のルール)
| ルール | 深刻度 | 検出内容 |
|---|---|---|
| SSRF-01 | Critical | HTTP リクエスト URL に含まれるユーザー入力 |
| SSRF-02 | Medium | 検証されていない動的 URL |
| SSRF-03 | Medium | DNS リバインディング(URL は検証されているが、IP が固定されていない) |
| PATH-01 | High | ファイルパスに含まれるユーザー入力 |
| PATH-02 | Medium | パストラバーサル対策がない |
| PATH-03 | Medium | 確認なしでシンボリックリンクをたどる |
| INJ-01 | Critical | ユーザー入力に対する eval/exec |
| INJ-02 | Critical | SQL 文字列への値の埋め込み |
| INJ-03 | High | shell=True を指定した subprocess |
| INJ-04 | High | .format() によるテンプレートインジェクション |
| INJ-05 | Critical | 安全でないデシリアライズ(pickle/yaml) |
| AUTH-01 | Medium | ツールハンドラーに認証がない |
| AUTH-02 | Critical | ハードコードされたシークレット/API キー(OpenAI、Stripe、GitHub、AWS) |
| AUTH-03 | Low | ツールエンドポイントにレート制限がない |
| SEC-01 | High | SSL 検証が無効 |
| SEC-02 | Medium | ワイルドカード CORS |
| SEC-03 | Medium | クライアントにスタックトレース/エラーの詳細を公開 |
| SEC-04 | Low | 入力長の検証がない(DoS のリスク) |
| LOG-01 | Low | ツール呼び出しのログ/監査証跡がない |
テスト
python3 tests/test_integration.py
# 28 tests, 0 failures
MCP サーバーとの統合
~/.claude/mcp.json に追加します。
{
"mcpServers": {
"mcp-shield": {
"command": "python3",
"args": ["/path/to/mcp-shield/src/mcp_server.py"]
}
}
}
Claude Code ツール:shield_scan_file、shield_scan_directory、shield_scan_code
出力例
MCP Shield: my-server/ — 3 finding(s)
[CRIT] SSRF-01: Potential SSRF: Dynamic URL from user input
requests call with dynamic URL that may include user input
Location: server.py:45
Fix: Validate URL against allowlist. Block internal IPs.
CWE: CWE-918
[HIGH] INJ-03: Command injection: subprocess with shell=True
subprocess called with shell=True. User input in args = RCE.
Location: tools.py:112
Fix: Use subprocess with shell=False and pass args as list.
CWE: CWE-78
[MED] AUTH-01: No authentication detected on tool handlers
MCP tool handlers found but no auth logic detected
Fix: Add authentication middleware.
CWE: CWE-306
Grade: F | 1 critical, 1 high, 1 medium
特長
- 依存関係ゼロ — 純粋な Python で、pip のインストールは不要です
- 20 のセキュリティルール — SSRF、パストラバーサル、インジェクション、認証、設定、ロギングを対象とします
- CWE 参照 — 各検出結果を Common Weakness Enumeration ID に対応付けます
- 実用的な修正方法 — 各検出結果に具体的な修正手順が含まれます
- A~F の評価 — セキュリティ態勢を即座に評価します
- デュアルモード — CLI として、または Claude Code 内の MCP サーバーとして実行できます
- 高速 — 一般的な MCP サーバーを 1 秒未満でスキャンします
開発の背景
MCP エコシステムには 9,400 以上のサーバーがあり、SDK の月間ダウンロード数は 9,700 万回に達しています。セキュリティツールはその進化に追いついていません。セキュリティスキャンなしでデプロイされるすべての MCP サーバーがリスクとなるため、MCP Shield を開発しました。
Like One が開発しました。同団体は 501(c)(3) 非営利団体です。セキュリティツールは無料であるべきです。
ライセンス
MIT — Like One
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。