mcp-config-auditor について
mcp-config-auditorは、MCPクライアントの設定ファイルとインストール済みサーバー一覧を監査するMCPサーバーです。バージョン未固定、秘密情報、安全でない承認設定、サーバーやスキルの競合を検査し、既定ではサーバーを起動せず設定も送信しません。
主な機能
- 01Cursor、Claude Desktop、Windsurf、VS Codeの設定を監査
- 02未固定のパッケージとコンテナイメージを検出
- 03秘密情報と安全でない承認設定を検出
- 04リモート接続とサーバー間のツール競合を検査
- 05エージェントスキルの危険な権限や指示をスキャン
- 06インストール済みサーバーを検出し許可リストと照合
活用シーン
- 01MCPクライアント設定の認証情報露出を確認
- 02実行前にMCPサーバーパッケージを確認
- 03インストール済みサーバーを組織の許可リストと照合
- 04スキルファイルの危険な権限を監査
MCP 対応
MCPクライアントにMCP設定の監査機能を提供します。コマンドラインでは設定ファイルのスキャンや、インストール済みサーバーの検出と許可リストとの照合ができ、サーバーは起動しません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
6掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| label | string | いいえ | 検出結果に表示する任意のファイル名 |
| content | string | はい | JSON 設定の生データ |
詳細
@guardbee/mcp-config-auditor
🇬🇧 English | 🇹🇷 Türkçe | 🇨🇳 中文 | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇧🇷 Português | 🇪🇸 Español | 🇩🇪 Deutsch
マシン上のMCPクライアント設定を監査するMCPサーバーです。Cursorのmcp.json、Claude Desktopのclaude_desktop_config.json、Windsurfのmcp_config.json、VS Codeのmcp.jsonを対象とします。
mcp-server-auditorはMCPサーバーのソースを読み取ります。このパッケージは、エージェントが実行するサーバーを決定する設定を読み取ります。これらのサーバーを起動したり、設定を外部に送信したりすることはありません。
テレメトリーはデフォルトでオフです。
GUARDBEE_TELEMETRY=1を設定すると、サーバー、ツール、成功の有無、処理時間、およびファイルパスなどの短いパラメーター値が送信されます。長い文字列や、content、token、passwordなどのフィールドはプレースホルダーに置き換えられます。@guardbee/mcp-telemetryをご覧ください。
Claude ──► mcp-config-auditor ──► mcp.json (or host-wide discover)
│
├─ Unpinned package (npx -y pkg, @latest)
├─ Typosquat (one edit from a known server package)
├─ Secret in env/args
├─ autoApprove "*"
├─ Remote HTTP without auth
├─ Cross-server shadowing (when you pass a tool inventory)
├─ Agent SKILL.md (allowed-tools, body, lookalike names)
└─ Shadow MCP discover (OWASP MCP09 — host paths + org allowlist)
チェック項目
| パターン | 重大度 | OWASP | 意味 |
|---|---|---|---|
unpinned_package | 高 | MCP04:2025 | ランチャー(npx、uvx、pnpm、yarn、bunx、pipx)が、major.minor.patch で固定されていないパッケージを実行します |
unpinned_container_image | 高 | MCP04:2025 | docker run / podman run が、@sha256: ダイジェストではなくタグを指定してイメージを起動します |
typosquat_package | 致命的 | MCP04:2025 | パッケージ名が、既知の MCP サーバーパッケージ名と1文字の編集で一致します |
secret_in_env | 致命的 | MCP01:2025 | 認証情報のような値、または長いリテラルを含む機密キーです |
secret_in_args | 致命的 | MCP01:2025 | コマンドライン上のトークンです |
auto_approve_wildcard | 致命的 | MCP02:2025 | autoApprove / alwaysAllow が * または true です |
cleartext_remote | 高 | MCP07:2025 | ループバック以外の http:// URL です |
unauthenticated_remote | 高/中 | MCP07:2025 | Authorization / API キーヘッダーもトークン環境変数もない、ループバック以外の URL です |
cross_server_tool_shadow | 高 | MCP03:2025 | 2つのサーバーで同じツール名が使われています |
confusable_tool_name | 致命的 | MCP03:2025 | サーバー間で、同形異字または1文字違いのツール名が使われています |
cross_server_tool_redirect | 高 | MCP03:2025 | 説明文が、モデルに別のサーバーのツールを呼び出すよう指示しています |
skill_unrestricted_shell | 致命的 | MCP02:2025 | allowed-tools に制限のない Bash、shell、または * が含まれています |
skill_unrestricted_write | 高 | MCP02:2025 | allowed-tools にパス制限のない Write または Edit が含まれています |
skill_instruction_override | 致命的 | MCP06:2025 | スキルが、以前の指示を無視するようモデルに指示しています |
skill_covert_instruction | 致命的 | MCP06:2025 | スキルが、ユーザーに動作を隠すようモデルに指示しています |
skill_secret_file_read | 致命的 | MCP01:2025 | スキルが、.ssh、.env、または類似のファイルを読み取るようモデルに指示しています |
skill_at_secret_ref | 致命的 | MCP01:2025 | @ 参照によって認証情報のパスをインライン展開しています |
secret_in_skill | 致命的 | MCP01:2025 | スキルファイルにリテラルトークンが記述されています |
skill_name_shadow | 高 | MCP03:2025 | 2つの SKILL.md ファイルで同じ名前が使われています |
skill_confusable_name | 致命的 | MCP03:2025 | 2つのスキル名が、見た目の似た文字だけで異なります |
shadow_mcp_server | 高 | MCP09:2025 | discover — ホストにインストールされているものの、組織の許可リストにないサーバーです |
allowlist_not_configured | 中 | MCP09:2025 | discover が許可リストなしで実行されました |
unreviewed_mcp_server | 低 | MCP09:2025 | 許可リストがまだない状態で、discover 中に確認されたサーバーです |
mcp_server_drift_across_clients | 中 | MCP09:2025 | 2つのクライアントで、同じサーバーキーが異なるパッケージ/URLに対応しています |
ループバック URL(localhost、127.0.0.1、::1)は、リモートに関する検出項目ではありません。プレースホルダー値(${API_KEY}、changeme)はシークレットではありません。検出されたシークレットの一致箇所はマスキングされます。Bash(git diff:*) はコマンド許可リストであり、制限のないシェルではありません。Read 単独では警告されません。
クイックスタート
{
"mcpServers": {
"guardbee-mcp-config-auditor": {
"command": "npx",
"args": ["-y", "@guardbee/mcp-config-auditor"]
}
}
}
npx @guardbee/mcp-config-auditor scan .cursor/mcp.json --fail-on=high --format=sarif > results.sarif
npx @guardbee/mcp-config-auditor inventory ./tool-inventory.json
npx @guardbee/mcp-config-auditor discover --allowlist=./mcp-allowlist.json --fail-on=high
Shadow MCP 検出(MCP09)
このマシン上の Cursor/Claude Desktop/Claude Code/Windsurf/VS Code/Gemini CLI/Cline/Zed の既知のパスをたどり、インストール済みの各サーバーを組織の許可リストと照合します。サーバーは起動しません。Claude Code のプロジェクト単位のサーバー(~/.claude.json 内の projects["<path>"].mcpServers)は claude-code:<path> の下に表示されます。Zed の context_servers とコメント付き JSON にも対応しています。
インベントリ。 --format=json を指定すると inventory が追加されます。各サーバーについて、クライアント、設定ファイルのパス、名前、トランスポート、コマンドと引数、バージョンを含む npm/PyPI パッケージと固定済みかどうか、URL、環境変数とヘッダーの名前、自動承認の設定、検出結果が含まれます。秘密情報は一切保持されません。環境変数とヘッダーの値は除外され、--token/--api-key 形式のフラグに続く引数値、KEY=value 形式のペア、プロバイダートークン、接続文字列内のパスワードは [redacted] に置き換えられ、URL からは認証情報とクエリ値が削除されます。--format=text は同じ一覧を、--format=sarif は検出結果を出力します。
組織全体での管理。 --upload を指定すると、インベントリを GuardBee ダッシュボードに送信します(GUARDBEE_API_KEY。gateway.write スコープを持つワークスペースキー)。ダッシュボードにはマシンごとに最新のインベントリが保持されます。デバイス管理ツールまたはログインスクリプトから実行してください。マシンのホスト名、OS、OS ユーザー名が含まれます。--no-user を指定するとユーザー情報は含まれません。
GUARDBEE_API_KEY=gb_… npx @guardbee/mcp-config-auditor discover --allowlist=./mcp-allowlist.json --upload --fail-on=none
許可リストの JSON:
{
"names": ["filesystem", "github"],
"packages": ["@modelcontextprotocol/server-filesystem", "@guardbee/mcp-secret-scanner"],
"hosts": ["mcp.example.com"]
}
または、次の形式の行を指定します:name:filesystem、package:@scope/pkg、host:mcp.example.com、またはサーバー名のみ。
ディレクトリをスキャンすると、mcp.json、mcp_config.json、claude_desktop_config.json、SKILL.md が開かれます。他の名前のファイルをスキャンするには、ファイルパスを指定してください。SKILL.md という名前のファイルは、エージェントスキルとして監査されます。同名スキルや類似スキルに関する検出結果は、ディレクトリのスキャン時に表示されます。1 つのファイルからは他のファイルを確認できないためです。
guardbee.yml:
mcp-config-auditor:
fail-on: high
max-files: 5000
exclude:
- "fixtures/"
ツールインベントリの形式:
{
"servers": [
{ "name": "github", "tools": [{ "name": "create_issue", "description": "Open an issue" }] }
]
}
クライアント設定にはツールが記載されていないため、シャドーイングの検出にはこのインベントリが必要です。rug-pull-detector は実際の tools/list を取得できます。このパッケージは、そのようなリストをいくつか比較します。
フィードバック
質問、アイデア、または誤検知がありましたら、GitHub Discussions でスレッドを立てるか、issue を作成してください。GuardBee が役に立った場合は、リポジトリに ⭐ を付けていただくと、ほかの人にも見つけてもらいやすくなります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。