
MCPサーバーをラップするプロキシサーバーで、行動プロファイリング、セキュリティスキャン、リスクゲーティング、安全な実行を提供します。プロンプトインジェクション、悪意のあるツールメタデータ、引数インジェクション、ソースコードリスク、認証情報の露出を検出します。
MCP Safety Wardenは、任意のMCPサーバーをラップし、動作プロファイリング、セキュリティスキャン、リスクゲーティング、安全な実行をそのツールに追加するプロキシサーバーです。
[!IMPORTANT] MCPセキュリティは活発な研究分野です。最近の調査では、ツールポイズニング、プロンプトインジェクション、ラグプル攻撃、サプライチェーン侵害、資格情報の流出、サーバーライフサイクル全体にわたる構成攻撃など、多くのプロトコル固有の脅威カテゴリがカタログ化されています。詳細はSecuring the MCP (OpenReview)、Landscape & Threats (arXiv)、When MCP Servers Attack (arXiv)、MCP-38 Taxonomy (arXiv)を参照してください。
任意のMCPサーバーにセーフティゲートを追加するプロキシとして使用するか、所有していないサーバーを指定してツールコールを一切行わずに完全なセキュリティ監査を実行できます。
図1. 2つの動作モード:プロキシと監査
動作プロファイリング:エフェクトクラス、リトライ安全性、破壊性。LLM支援型(Anthropic、OpenAI、Gemini、Ollama)で、ルールベースのフォールバックあり。プロキシ呼び出しごとに観測統計(レイテンシp50/p95、障害率、出力サイズ)を更新。
セキュリティスキャン:mcpsafety+ 5段階パイプライン(Recon、Planner、Hacker、Auditor、Supervisor)。Cisco AI Defense(AST/YARA)。Snyk(メタデータ分析)。KaliおよびBurp Suite連携により、実際のネットワークデータとHTTP層プローブでパイプラインを強化。GitHubからのソースコードスキャン(エントロピー、AST、テイントフロー、ラグプル検出)。
図2. mcpsafety+5段階パイプライン。任意のMCPサーバーで完全なセキュリティ監査を実行すると起動します。
安全な実行:引数スキャン(20以上の攻撃カテゴリ、LLMによる二次パス)。2層の出力インジェクションスキャン。リスクゲーティング(代替案とツールごとのポリシー)。呼び出しごとのドリフト検出とスタンドアロンチェック。
図3. 安全実行パイプライン:プロキシされるすべてのツール呼び出しが通過する5つのチェック
CLI:24のサブコマンド、対話型リスクメニュー、すべてのコマンドに--jsonフラグ、CI用の--yes。
検出内容
キーがない場合、ラッパーはルールベースのみのモードで動作します:ツール分類の信頼度低下、正規表現のみのインジェクションスキャン、リスクゲートに代替案なし、mcpsafety+パイプラインなし。完全にローカルなセットアップを行うには、Ollamaを実行し、OLLAMA_MODELを設定し、--provider ollamaを明示的に指定してください(Ollamaは自動検出されません)。
[!NOTE] ローカルセットアップが必要なstdioサーバー(設定ファイル、資格情報、データディレクトリ、OS固有の依存関係が不足しているために起動前にローカル設定が必要なstdioサーバー)はラッパーで検査できません。ツール検出に失敗し、0個のツールが保存されます。サーバーを起動せずに完全なソースコードセキュリティスキャンを実行するには、
scan/onboardに--github-urlを、またはsecurity_scan_serverにgithub_urlパラメータを渡してください。mcpsafety+パイプラインはGitHubから直接ソースを取得して分析します。sseおよびstreamable_httpサーバーは影響を受けません。
pip install mcpsafetywarden
すべてのオプションエクストラを含める場合:
pip install "mcpsafetywarden[all]"
または特定のエクストラのみ:
pip install "mcpsafetywarden[anthropic,snyk]"
ソースから:
git clone https://github.com/gautamvarmadatla/mcpsafetywarden
cd mcpsafetywarden
pip install .
SQLiteデータベースは初回実行時にプラットフォームのユーザーデータディレクトリ(Linuxでは~/.local/share/mcpsafetywarden/、macOSでは~/Library/Application Support/mcpsafetywarden/、Windowsでは%APPDATA%\mcpsafetywarden\)に自動的に作成されます。MCP_DB_PATHで上書き可能。
資格情報保護(自動、操作不要)
register_serverやonboard_serverに渡される秘密の値(Bearerトークン、headersまたはenv内のAPIキー)は、モデルコンテキストに触れる前に自動的に検出され、不透明なcref_識別子に置き換えられます。実際の資格情報はデータベースに暗号化されて保存され、接続時に自動的に解決されます。モデル、会話履歴、ログにはcref_<id>のみが表示されます。
オプション:保存資格情報の保存時暗号化
pip install cryptography
python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
サーバー起動前に表示されたキーをMCP_DB_ENCRYPTION_KEYとして設定します。これにより、サーバー資格情報とcref_値の両方が保存時に暗号化されます。
すべての設定は環境変数を介して行います。