MCP Security Guard について
MCP Security Guardは、開発者やチーム向けにMCP設定とエージェントのコンテキストをローカル監査するサーバーです。検出結果をOWASP MCP Top 10に対応付け、ハッシュによる固定で変更も監視します。
主な機能
- 01ツールポイズニングと隠しテキストの検出
- 02シークレットとサプライチェーンリスクの確認
- 03ツールやエージェントファイルの固定と変更検出
- 04検出結果をOWASP MCP Top 10に対応付け
- 05ランタイムフックとCI向けSARIF出力
活用シーン
- 01MCPサーバーの導入前後の監査
- 02セッション中のツール定義変更の検出
- 03プルリクエスト内の危険なサーバーやスキルの検査
- 04コンプライアンス向けMCP一覧の確認
MCP 対応
MCPクライアントにセキュリティ監査機能を提供し、サーバーのツール、指示、プロンプト、リソース、設定を検査します。ランタイムフックでMCP呼び出しも確認できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
17掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| project_dir | string | いいえ | プロジェクトディレクトリ。デフォルトは現在のプロジェクトです。 |
詳細
MCP Security Guard

インストールした MCP サーバーが、AI に嘘をついていないか確認できます。
ツールポイズニング、ラグプル、ツールシャドーイング、隠された Unicode、漏えいしたシークレットをローカルで監査し、OWASP MCP Top 10 に対応付けます。オプトインしない限り、データがマシンの外に送信されることはありません。
🚀 クイックインストール
Cursor
上のボタンをクリックするか、次のディープリンクを使用してください:cursor://anysphere.cursor-deeplink/mcp/install?name=mcp-security-guard&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIm1jcC1zZWN1cml0eS1ndWFyZCJdfQ==
または、.cursor/mcp.json に手動で追加してください:
{
"mcpServers": {
"mcp-security-guard": {
"command": "npx",
"args": ["-y", "mcp-security-guard"]
}
}
}
Claude Code
プラグイン経由(推奨)
/plugin marketplace add petrovicistefan/mcp-security-guard
/plugin install mcp-security-guard@mcp-security-guard
その後、/mcp-audit を実行するか、Claude に 「自分の MCP サーバーは安全ですか?」 と尋ねてください。
CLI 経由
claude mcp add mcp-security-guard -- npx -y mcp-security-guard
Claude Desktop
Claude Desktop の設定に追加してください(macOS では ~/Library/Application Support/Claude/claude_desktop_config.json、Windows では %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"mcp-security-guard": {
"command": "npx",
"args": ["-y", "mcp-security-guard"]
}
}
}
VS Code
上のボタンをクリックするか、.vscode/mcp.json に手動で追加してください:
{
"mcpServers": {
"mcp-security-guard": {
"command": "npx",
"args": ["-y", "mcp-security-guard"]
}
}
}
コマンドライン
npx -y mcp-security-guard audit --project-only
⭐ このプロジェクトを応援し、最新情報を受け取るには、このリポジトリにスターを付けてください! → スターを付ける
📋 目次
- MCP Security Guard を使う理由
- ユースケース
- チェック内容
- OWASP MCP Top 10 のカバー範囲
- クイックデモ(1 分)
- ツール
- CI/GitHub Action
- インタラクティブダッシュボード
- ランタイムフック
- チームプラン
- ベンチマーク結果
- 開発
- コントリビューション
- セキュリティとプライバシー
- 作者について
MCP Security Guard を使う理由
コードはほかのツールで保護されています。このツールは、AI のコンテキストにテキストを挿入する MCP サーバーをチェックします。
MCP Security Guard は、Claude(およびほかの AI クライアント)がアクセスできるすべての MCP サーバーを監査します。自分で設定したサーバー、プラグインが追加するサーバー、マシン上の Claude Desktop など、ほかのクライアントから利用できるサーバーが対象です。
比較
2026年10月時点。修正提案を歓迎します。
| 機能 | MCP Security Guard | snyk/agent-scan | cisco-ai-defense/mcp-scanner | riseandignite/mcp-shield |
|---|---|---|---|---|
| Claude Code ネイティブプラグイン | ✅ | ❌ | ❌ | ❌ |
| ランタイムフック(ツール使用前後) | ✅ | ❌ | ❌ | ❌ |
| ラグプル対策の固定(SHA-256) | ✅ ツール、スキル、CLAUDE.md | 限定的 | ❌ | ❌ |
| OWASP MCP Top 10 との対応付け | ✅ すべての検出結果 | ❌ | ❌ | ❌ |
| SARIF 出力 | ✅ GitHub Action | ❌ | ❌ | ❌ |
| CycloneDX BOM エクスポート | ✅ エージェントのインベントリ | ❌ | ❌ | ❌ |
| 完全ローカル(ネットワーク接続なし) | ✅ デフォルト | さまざま | さまざま | さまざま |
| サプライチェーンチェック | ✅ OSV、npm、PyPI | さまざま | さまざま | さまざま |
| ツールポイズニングの検出 | ✅ 26/27 件の攻撃 | さまざま | さまざま | さまざま |
| ライセンス | MIT | Apache 2.0 | MIT | MIT |
当プロジェクトの差別化要因:
/mcp-auditスラッシュコマンドとランタイム保護による Claude Code とのネイティブ統合- 包括的なラグプル対策:ツール定義、スキル、コマンド、サブエージェント、CLAUDE.md ファイルを固定し、検証します
- コンプライアンスと修正ガイダンスのため、すべての検出結果を OWASP MCP Top 10 に対応付け
- プルリクエストでのコードスキャンアラートに対応する、SARIF を利用した GitHub Action
- 監査とコンプライアンスのための、CycloneDX 1.6 形式の エージェント部品表(BOM)
- プライバシー優先:デフォルトではすべてローカルで実行され、ネットワークアクセスは明示的なオプトインが必要です
ユースケース
1. 個人開発者
ローカルの AI 環境を保護します。
- MCP サーバーのインストール前後に監査します
- サーバーのツール定義が変更された場合(ラグプル)、警告を受け取ります
- ランタイム保護:認証情報の送信をブロックし、ポイズニングされた出力を検出します
- 信頼できるサーバーとスキルを固定し、継続的に検証します
# Scan before installing a new server
npx mcp-security-guard scan server-config.json --confirm-launch
# Pin your reviewed servers
npx mcp-security-guard pin
# Check everything is still safe
npx mcp-security-guard audit
2. プルリクエストの CI チェック
コードレビューでリスクの高い MCP サーバーやポイズニングされたスキルをブロックします。
次の項目を追加する PR を失敗させます:
- ツールポイズニング、未固定のパッケージ、または特権付き Docker イメージを含む MCP サーバー
- 指示の上書きや認証情報の外部流出を含むスキルまたは CLAUDE.md ファイル
- 脆弱な依存関係またはタイポスクワッティングされたパッケージ
検出結果は、OWASP MCP Top 10 への参照とともに GitHub のコードスキャンインターフェースに表示されます。
- uses: petrovicistefan/mcp-security-guard@main
with:
fail-on: high
3. チームとエンタープライズ
組織全体に適用するセキュリティポリシーを一元管理します。
チームプランでは:
- 管理者が単一のポリシー(許可/ブロックするサーバー、プラグイン、固定バージョン)を公開します
- オフラインでも、全員のプラグインがポリシーを自動的に適用します
- 承認フロー:開発者がリクエストし、管理者が承認します
- フリートインベントリ:チームで稼働中の MCP サーバーを確認できます(同意のもとでオプトイン)
- コンプライアンスの証跡:監査向けの OWASP MCP Top 10 対応状況レポート
チェック項目
MCP Security Guard は、AI クライアントが設定を読み込むあらゆる場所からサーバーを検出します。ユーザー、ローカル、プロジェクトの各スコープ、インストール済みプラグインに同梱されたサーバー、claude_desktop_config.json、Claude Desktop の拡張機能、組織管理の managed-mcp.json、マシン上のその他のクライアント(Cursor、VS Code、Windsurf)、これまでに使用した claude.ai コネクターが対象です。
サーバーが AI のコンテキストに追加するすべてのものをスキャンします。ツール、サーバーの指示、プロンプト、リソース、リソーステンプレートが対象です。
| チェック項目 | 検出対象 |
|---|---|
| ツールポイズニング | 指示の上書き、「ユーザーに伝えないで」という文言、<IMPORTANT> タグ、秘密情報(~/.ssh、.env)を読む指示、会話の収集、URL/パラメーター/Markdown 画像を介した外部送信、HTML コメント、エンコードされたペイロード |
| フルスキーマポイズニング | パラメーター名、説明、デフォルト値、列挙値、required に対する同様のチェックに加え、type 内のスキーマ外テキスト |
| 隠しテキスト | ゼロ幅文字、双方向制御文字、Unicode タグ文字、ANSI ターミナルエスケープ、ホモグリフを使ったツール名 |
| ツールのなりすまし | 他のサーバーのツールを参照するサーバーの説明、サーバー間でのツール名の衝突 |
| ラグプル | 固定後に変更されたツール定義や起動コマンド(ツールごとの SHA-256)。固定後に変更されたプラグインの Skills、コマンド、サブエージェント、CLAUDE.md、フック。同じバージョンのままファイルを変更するプラグインには high のフラグが付けられます。セッション開始時に自動で再チェックされます |
| 機能とスコア | ツールごとの分類(実行、削除、書き込み、外部送信)、認証なしでのリモート書き込みアクセス、サーバーごとの 0~100 のスコアと A~F の評価、推奨権限ルール |
| サプライチェーン | OSV の脆弱性と悪意のあるバージョン、タイポスクワッティング、欠落パッケージや新規パッケージ、インストールスクリプト、公開元の変更(ネットワークチェックをオプトインした場合) |
| ランタイム | すべての MCP 呼び出し時のフック:認証情報の送信前に確認を求める、出力内の注入された指示や認証情報を警告する、コンテンツを記録しない監査ログ |
| ポリシー | 承認/ブロックするサーバーとホストを .mcp-security.json で指定し、監査、CI、セッション開始時に適用 |
| 有害なフロー | 「致命的な三要素」(信頼できない入力、プライベートデータ、外部送信機能)をすべて備えるサーバーを単独または組み合わせて検出。欠陥ではなく、セキュリティ態勢に関する注記(low または info)です |
| エージェントのコンテキスト | Skills とそのスクリプト、スラッシュコマンド、サブエージェント、ルール、CLAUDE.md、プラグインのフック:指示の上書き、「ユーザーに伝えないで」という文言、不可視テキスト、モデル宛ての HTML コメント、認証情報ファイルを読む指示、認証情報をアップロードするコマンド、ダウンロードして実行する処理、エンコードされた実行処理、情報窃取スクリプト、事前承認された制限のない Bash |
| 設定 | env/ヘッダー/引数/URL 内の平文の秘密情報、平文 HTTP のリモートサーバー、バージョンが固定されていない npx/uvx パッケージ、特権付きまたはバージョンが固定されていない Docker イメージ、パイプ経由のシェル起動、スコープをまたぐ名前の重複 |
すべてローカルで実行されます。オプトインしない限り、情報が外部に送信されることはありません。
OWASP MCP Top 10 の対応状況
すべての検出結果には、レポートと SARIF の両方で、OWASP MCP Top 10 の ID が付与されます。
| ID | リスク | 対応状況 |
|---|---|---|
| MCP01 | トークンの管理不備とシークレットの漏えい | ✅ 環境変数、ヘッダー、引数、URL 内の平文シークレットを検出します。実行時には、認証情報を MCP サーバーへ送信する前に確認し、認証情報が返された場合は警告します |
| MCP02 | 権限の範囲拡大による権限昇格 | ✅ 機能の一覧(実行、削除、書き込み、外部への送信)、そのまま貼り付けて使える permissions.ask ルール、特権付きまたは広範にマウントされたコンテナー |
| MCP03 | ツールポイズニング | ✅ 公開されている 27 種の手法のうち 26 種を検出します。スキーマ全体のポイズニング、シャドーイング、名前の衝突、ラグプルを防ぐための固定化などが含まれます |
| MCP04 | サプライチェーン攻撃 | ✅ バージョンが固定されていないパッケージ、イメージ、Git ソース、OSV の脆弱性と悪意のあるバージョン、タイポスクワッティング、新しいパッケージ、インストールスクリプト、公開者の変更 |
| MCP05 | コマンドインジェクションと実行 | ✅ コマンドを実行できるツールにフラグを付けます。adversarial_test は、所有するサーバー内でインジェクション可能なパラメーターを検出します |
| MCP06 | コンテキストペイロード経由のプロンプトインジェクション | ✅ ツールのメタデータ内、および実行時のツール出力内(英語のパターン)で検出します |
| MCP07 | 認証・認可の不備 | ✅ 平文 HTTP のリモートサーバー、認証なしで書き込みまたは実行ツールを公開するリモートサーバー、OAuth の検出 |
| MCP08 | 監査とテレメトリーの欠如 | ✅ すべての MCP 呼び出しを記録する、内容を含まないローカル監査ログと query_audit_log |
| MCP09 | シャドー MCP サーバー | ✅ ユーザー、プロジェクト、ローカル、プラグイン、Claude Desktop の設定を横断して検出します。監査、CI、セッション開始時に承認済みサーバーのポリシーを適用します |
| MCP10 | コンテキストの注入と過剰な共有 | ✅ 会話とシステムプロンプトの収集、Markdown 画像による情報流出、出力内の認証情報、ネットワークへの送信状況の一覧 |
ローカルツールで対応できないこと(ホスト型 Team プランで提供予定):組織全体の検出と監査の集約、OAuth スコープの確認。
クイックデモ(1 分)
依存関係、アカウント、API キーなしで、オフラインの合成データ比較をお試しいただけます。
git clone https://github.com/petrovicistefan/mcp-security-guard.git
cd mcp-security-guard
node scripts/offline-demo.mjs
このデモでは、保存された 2 つのツールの説明をチェックします。一方では指示の上書きと機密パスの検出結果が出て、もう一方の問題のない説明では検出結果が出ません。スキャンを実行して HTML レポートを生成する。
ツール
| ツール | ネットワーク | 起動 | 説明 |
|---|---|---|---|
list_mcp_servers | ❌ | ❌ | このプロジェクトに設定されているすべての MCP サーバー(Claude Code のユーザー、ローカル、プロジェクトの各スコープ、および Claude Desktop)をトランスポートとともに一覧表示します。読み取り専用で、何も起動しません。 |
audit_mcp_config | ❌ | ❌ | MCP サーバー設定を静的に監査します。env/ヘッダー/引数/URL 内の平文シークレット、平文 HTTP のリモートサーバー、バージョンが固定されていない npx/uvx パッケージ、バージョンが固定されていない、または特権付きの Docker コンテナ、パイプ経由でシェルに渡す起動コマンド、重複するサーバー名を検出します。読み取り専用で、何も起動しません。 |
audit_server_tools | ❌ | ✅ 要確認 | 選択した MCP サーバーに接続してツールを一覧表示し、すべての名前、説明、スキーマについて、ツールポイズニング、サーバー間のツールのシャドーイング、ラグプルを確認します。スキャン対象のツールは呼び出しません。confirm_launch: true が必要です。 |
pin_tools | ❌ | ✅ 要確認 | ラグプル検出のため、すべてのツール定義の SHA-256 ハッシュを ~/.claude/mcp-security/pins.json に記録します。監査を確認してから固定してください。confirm_launch: true が必要です。 |
audit_agent_context | ❌ | ❌ | CLAUDE.md、スキル、スラッシュコマンド、サブエージェント、ルール、プラグインフックをスキャンし、指示の上書き、ユーザーに情報を隠す要求、不可視テキスト、認証情報の流出、エンコードされた実行コードを検出します。読み取り専用で、何も起動しません。 |
pin_context | ❌ | ❌ | プラグインのラグプル検出のため、すべてのスキル、コマンド、サブエージェント、ルール、CLAUDE.md、プラグインフック設定の SHA-256 を ~/.claude/mcp-security/context-pins.json に記録します。監査を確認してから固定してください。 |
analyze_tool_definitions | ❌ | ❌ | 指定したツール定義(開発中のサーバーからの tools/list 出力など)をオフラインで分析します。CI や公開前の確認に役立ちます。何にも接続しません。 |
check_supply_chain | ✅ 要確認 | ❌ | npx/uvx サーバーについて、npm/PyPI のパッケージと OSV データベースを確認し、脆弱性、悪意のあるバージョン、タイポスクワッティング、インストールスクリプト、非推奨化、公開者の変更を調べます。送信するのはパッケージ名とバージョンのみです。confirm_network: true が必要です。 |
apply_fixes | 条件付き | 条件付き | プロジェクトファイル内の検出事項を修正します。permissions.ask ルールの追加(confirm_launch が必要)、固定されていないパッケージのバージョン固定(confirm_network が必要)、またはリテラルのシークレットを ${VAR} 参照に置き換えます。デフォルトではドライランを実行し、書き込み前にファイルをバックアップします。 |
security_dashboard | ❌ | 条件付き | スコア、評価、深刻度別の検出事項、OWASP MCP Top 10 の内訳、固定ボタンを含むインタラクティブなダッシュボードを開きます。scan="config" は読み取り専用です。scan="full" には confirm_launch: true が必要です。MCP App ホストではインライン表示されます。 |
generate_policy | ❌ | ❌ | 現在設定されているサーバーのみを承認する .mcp-security.json ポリシーを返します。CI や監査でシャドーサーバーを検出できるよう、これをコミットしてください。読み取り専用で、ファイルには書き込みません。 |
team_status | ✅ 要確認 | ❌ | チームのバックエンドから組織のポリシーを同期し、組織名、ロール、ポリシーバージョン、フリート報告のステータスを表示します。チーム API キーと confirm_network: true が必要です。 |
request_approval | ✅ 要確認 | ❌ | チームポリシーで承認が必要な場合、ブロックされたサーバーまたはプラグインの承認リクエストを作成します。管理者は CLI で判断します。confirm_network: true が必要です。 |
team_report | ✅ 要確認 | ❌ | フリートレポートで送信される情報(サーバー/プラグイン名、バージョン、トランスポート。パス、引数、env、シークレットは含みません)を表示します。confirm_send: true を指定すると、管理者がフリートの可視化を有効にしている場合にレポートを送信します。 |
export_bom | ❌ | ❌ | エージェントの部品表:MCP サーバー、プラグイン、スキル、コマンド、サブエージェント、CLAUDE.md、フックのインベントリを、SHA-256、固定ステータス、スコア、OWASP の証拠とともに出力します。CycloneDX 1.6 の JSON または Markdown の概要を生成します。静的に実行され、何も起動しません。 |
query_audit_log | ❌ | ❌ | ローカルのランタイム監査ログを要約します。サーバー/ツールごとの MCP ツール呼び出し、および認証情報が送信/返却された呼び出しや、出力に注入された指示が含まれていた呼び出しを示します。ログに保存されるのはハッシュとサイズのみで、引数や出力は保存されません。 |
adversarial_test | ❌ | ✅ 要確認 | コマンドインジェクションやパストラバーサルのペイロードでツールを呼び出し、脆弱なパラメーターを検出します。所有または運用するサーバーに限って使用してください。i_own_this_server: true と confirm_launch: true が必要です。破壊的なツールはデフォルトでスキップされます。 |
CI / GitHub Action
.mcp.json にリスクのある MCP サーバーを追加したプルリクエストを失敗させ、GitHub のコードスキャンに検出結果を表示します。
name: MCP security
on: [pull_request]
permissions:
contents: read
security-events: write
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: petrovicistefan/mcp-security-guard@main
id: mcp
with:
fail-on: high # critical | high | medium | low | info | none
- uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: ${{ steps.mcp.outputs.sarif-file }}
汚染されたスキル、コマンド、または CLAUDE.md を追加した PR も失敗させるには、context: true を設定します(2 つ目の SARIF ファイルは context-sarif-file に指定します)。
コマンドライン:
# Audit project-level MCP servers
npx mcp-security-guard audit --project-only --format sarif --output mcp.sarif
# For MCP server authors: analyze a saved tools/list result
npx mcp-security-guard analyze-tools tools.json --name my-server
# Scan skills, commands, subagents and CLAUDE.md
npx mcp-security-guard audit-context --project-only --fail-on high
# Pin what you've reviewed
npx mcp-security-guard pin-context
# Scan a server before installing it
npx mcp-security-guard scan server-config.json --confirm-launch
# Test your own server for command injection (calls tools)
npx mcp-security-guard adversarial my-server.mcp.json --server my-server --i-own-this-server --confirm-launch
# Fix what the audit found
npx mcp-security-guard fix --pin-versions # npx pkg → [email protected]
npx mcp-security-guard fix --env-refs --write # secrets → ${VAR} references
npx mcp-security-guard fix --permissions --confirm-launch --write
# Generate a team policy from current configuration
npx mcp-security-guard policy-init && git add .mcp-security.json
出力形式: --format markdown|json|sarif|html(HTML は自己完結型のレポートファイルです)。
終了コード: 0 問題なし、1 --fail-on 以上の検出結果あり、2 使用方法エラー。
インタラクティブダッシュボード
security_dashboard は、対応する MCP Apps(Claude Desktop、claude.ai、VS Code Copilot)がインラインでレンダリングする MCP App です。
すべてのサーバーについて、スコアとグレード、重大度とサーバーで絞り込める検出結果、OWASP MCP Top 10 の内訳、推奨される権限ルールを表示します。また、Full scan ボタンと Pin ボタンもあります。
Claude Desktop で使用するには:
{
"mcpServers": {
"mcp-security-guard": {
"command": "node",
"args": ["/path/to/mcp-security-guard/plugin/dist/index.mjs"]
}
}
}
Claude に 「MCP セキュリティダッシュボードを開いて」 と頼みます。
ローカルで開発するには:npm run dashboard:dev -- /path/to/project
ランタイムフック
| フック | 動作 | 設定 |
|---|---|---|
PreToolUse on mcp__* | 引数に認証情報が含まれている場合、確認を求めます | MCP_SECURITY_SECRET_GUARD=ask(デフォルト)、deny、または off |
PostToolUse on mcp__* | 出力に注入された指示、不可視文字、情報窃取用マークアップ、または認証情報が含まれている場合に警告します | 常に有効 |
| 監査ログ | ~/.claude/mcp-security/audit.jsonl:サーバー、ツール、時刻、入力のハッシュとサイズを記録します。引数や出力は記録しません。10 MB でローテーションします | 無効にするには MCP_SECURITY_AUDIT_LOG=off |
フックによる MCP 呼び出しごとの遅延は約 40 ms です。
セッション開始時のチェックでは、ピン留めされたサーバーを再検証します。変更がない限り、何も表示しません。
MCP_SECURITY_SESSION_CHECK=full(デフォルト):設定を比較し、ツールを再一覧表示しますMCP_SECURITY_SESSION_CHECK=config:設定のみを比較し、何も起動しませんMCP_SECURITY_SESSION_CHECK=off:無効にします
チームプラン(有料、オプトイン)
チームキーは現在、手動で発行しています:お問い合わせ。
チーム API キー(MCP_SECURITY_API_KEY またはプラグインのキー設定)を使用すると、次の機能を利用できます。
- 一元管理ポリシー:管理者が適用し、ユーザー/プロジェクトのポリシーと並行して強制します(リポジトリ側から緩和することはできません)
- 承認済みプラグイン(
allowedPlugins、blockedPlugins):監査、CI、セッション開始時に適用します - フリートインベントリ(同意の上でオプトイン):名前、バージョン、スコープ、トランスポート、パッケージ/ホスト名を収集します。パス、引数、環境変数、シークレットは収集しません
- 承認フロー:
team request、team approve、Slack 互換の Webhook アラート - キーとシート:管理者は開発者ごとのキーを作成/取り消せます。購入時にシート数の上限が設定されます
- Web ダッシュボード:
/v1/team/dashboardでフリート、承認、ポリシー、キー、設定を確認できます - メールアラート:Webhook に加えて、組織ごとに最大 20 件/時間
- コンプライアンス証跡:
team complianceにより、OWASP MCP Top 10 の管理策、証跡、違反、保留中の承認を含む Markdown レポートを作成します
管理者操作は CLI のみで実行でき(MCP ツールではありません)、注入されたテキストから実行されることはありません。
mcp-security-guard team status
mcp-security-guard team report --dry-run
mcp-security-guard team request plugin some-plugin --note "for docs site"
mcp-security-guard team approvals --status pending # admin
mcp-security-guard team approve apr_… --note ok # admin
mcp-security-guard team policy-push policy.json # admin
mcp-security-guard team keys create ana # admin
mcp-security-guard team settings --fleet on --webhook https://hooks.slack.com/… --email [email protected]
上記の機能はすべて無料です。無料プラグインは完全に機能します。送信されるデータについては PRIVACY.md をご覧ください。
ベンチマーク結果
測定結果: 公開文書に記載された手法のコーパスに含まれる攻撃 27 件中 26 件を検出し、誤検知は難易度の高い良性サンプル 13 件と実際のサーバー 17 件(ツール 83 件)で 0 件でした。
対象となる手法:ツールポイズニングと <IMPORTANT> タグ(Invariant Labs)、行ジャンプと ANSI エスケープによる偽装(Trail of Bits)、フルスキーマポイズニング(CyberArk)、ツールのシャドーイング、名前の衝突、ゼロ幅文字/Unicode タグ/双方向テキストの偽装、同形異字の名前、Base64 ペイロード、HTML コメント、URL/パラメーター/Markdown 画像を介した情報窃取。
手法と結果の詳細は bench/RESULTS.md をご覧ください。
開発
npm install
npm run build # bundles to plugin/dist/ (committed, so plugin runs without npm install)
npm test
npm run bench # false-positive gate on real servers (network; Docker images optional)
test/fixtures/poisoned-server.mjs は、エンドツーエンドテストで使用する、意図的に悪意のあるサーバーです。
貢献
小規模で再現可能な貢献を歓迎します。無害な回帰テスト用サンプル、合成検出ケース、クライアント設定テスト、より分かりやすい例などをお寄せください。
ガイドラインについては、CONTRIBUTING.mdをご覧ください。
セキュリティとプライバシー
- 脆弱性を発見しましたか? SECURITY.mdをご覧ください
- 読み取り、書き込み、送信されるデータ: PRIVACY.md
- 変更内容: CHANGELOG.md
信頼モデル:
- 読み取り専用(ピン留めファイル、監査ログ、policy-initを除く)
- ネットワークへの接続は明示的にオプトインした場合のみ
- すべての出力でシークレットをマスキング
- 静的チェックはリスクを軽減しますが、サーバーの安全性を証明するものではありません
ライセンス
MIT License
Copyright (c) 2026 Stefan Petrovici
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
上記の著作権表示および本許諾表示は、本ソフトウェアのすべての複製または実質的な部分に記載するものとします。
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
ライセンスの全文については、LICENSEをご覧ください。
制限事項
OAuthを必要とするリモートサーバー(ホスト型MCPサーバーの大半)は、ツールレベルでスキャンできません。スキャナーはClaude Codeのトークンを再利用できないためです。ただし、設定は引き続き監査されます。
作者について
私はStefan Petroviciです。ITに情熱を持ち、夫であり父親でもあります。MCP Security Guardは一人で開発しました。現在、仕事を探しています。
フロントエンド、バックエンド、API、デプロイまで、Webアプリケーションを一貫して開発しています。また、開発が必要なものであれば、ほかのどのような仕事にも喜んで取り組みます。このリポジトリには、テスト、CI、丁寧なドキュメント、セキュリティへの配慮など、私の仕事の進め方が表れています。
WordPressおよびWooCommerceのプラグインも開発しており、pluginsforstores.comで公開しています。
採用を検討されているチームの方は、[email protected]までご連絡ください。
⭐ このプロジェクトを応援する
役に立ったと思ったら、このリポジトリにスターを付けてください!
GitHubのスターが付くと、ほかの開発者がこのプロジェクトを見つけやすくなり、後で見返すために保存できます。オープンソースへのご支援、ありがとうございます!
MCP Security Guardは、本ドキュメントで言及されているAnthropic、Snyk、Cisco、その他のセキュリティベンダーとは提携していません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。