
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 サーバー (起動前にローカル設定を必要とする
stdioサーバー - 設定ファイル、認証情報、データディレクトリ、または OS 固有の依存関係の欠如) は、ラッパーが検査できません - ツール検出が失敗し、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_ 値の両方が保存時に暗号化されます。
すべての設定は環境変数を介して行います。