MCP Gateway Scan について
MCP Gateway Scanは、MCPやエージェントゲートウェイを評価する読み取り専用の静的スキャナーです。7つのセキュリティ領域を採点し、根拠の場所を示すほか、サーバーや設定への接続判定も行います。
主な機能
- 017領域のセキュリティ採点
- 02CONNECT/REVIEW/DO-NOT-CONNECT判定
- 03CLI、JSON、CIモード
- 04秘密値を伏せる読み取り専用スキャン
活用シーン
- 01デプロイ前のゲートウェイ評価
- 02接続前のサードパーティMCPサーバー確認
- 03赤判定時にCIを失敗させる
MCP 対応
MCPサーバーとして動作し、指定パスをスキャンして領域別スコアと構造化された検出結果を返す `scan_gateway` ツールを提供します。MCPサーバーのリポジトリやクライアント設定も評価できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| ci | boolean | いいえ | true の場合、CI ゲートの判定も報告します(RED が 1 つでもあれば失敗します)。 |
| path | string | はい | スキャンするリポジトリまたはディレクトリのパス(必須)です。 |
詳細
mcp-gateway-scan
MCP/エージェントゲートウェイの本番運用準備におけるアンチパターンを対象とする、読み取り専用の静的スキャナーです。 リポジトリを指定すると、7つの観点を赤・黄・緑で数秒で評価します。
**Provenwright MCP Gateway Readiness Audit**を手がけるチームが開発しました。 根拠の索引、スコア付きのギャップマトリクス、90日間のロードマップを含む、出典付きの包括的な監査です。 監査の詳細:provenwright.com/audit
npx mcp-gateway-scan ./path/to/your/gateway
コードと設定をスキャンし、MCP ゲートウェイをデモからインシデントへと変えてしまう失敗要因を特定して、それぞれの場所を正確に出力します。たとえば、モデルが認可を決定する、エラーハンドラーがフェイルオープンする、サプライチェーンが固定されていない、トレースが見えない、支出に上限がない、シークレットがインラインに記述されている、運用上の制御手段がない、といった問題です。
100%読み取り専用です。 ファイルを_読み取る_だけです。コードを実行したり、ネットワークに接続したりすることはなく、シークレットの値を出力することもありません。インラインシークレットが見つかった場合は、値を伏せて場所(<file:line>)のみを報告します。
インストール
# one-off
npx mcp-gateway-scan <path>
# or global
pnpm add -g mcp-gateway-scan
mcp-gateway-scan <path>
Node ≥ 18 が必要です。
使い方
mcp-gateway-scan <path> [options]
Options:
--json Machine-readable JSON instead of the terminal report
--ci Compact, no-color output for pipelines; exits 1 on any RED
--no-color Disable ANSI colors
-h, --help Show help
-v, --version Print version
Exit codes:
0 no red dimensions
1 one or more red dimensions
2 usage / IO error
「このサーバーに接続してもよいですか?」— 接続判定
実際の認証情報を保持するエージェントにサードパーティの MCP サーバーを接続する前に、対象サーバーを connect に指定すると、同じ7つの観点に基づいて、最も重大な問題を最初に示すCONNECT、REVIEW、DO-NOT-CONNECTのいずれかの判定を1つだけ取得できます。
# the server's repo checkout
mcp-gateway-scan connect ./some-mcp-server
# its MCP client config entry (.mcp.json / claude_desktop_config.json)
mcp-gateway-scan connect ./.mcp.json
# its package manifest
mcp-gateway-scan connect ./package.json
判定では、各観点のスコアを1つの決定にまとめます。
| 判定 | 条件 | 終了コード |
|---|---|---|
| DO-NOT-CONNECT | S1(完全侵害クラス)の観点が1つでも赤 | 1 |
| REVIEW | 具体的または潜在的なリスクがある(S2/S3 が赤、または黄が1つでもある) | 1 |
| CONNECT | 静的チェックですべての観点が緑 | 0 |
スキャンエンジン、--json/--ci フラグ、読み取り専用とシークレットの伏せ字処理の保証は同じです。connect は出力を、接続するかどうかの判定として示し直すだけです。CONNECT が緑でも、良い兆候にすぎず保証ではありません。静的スキャンでは、公開者や実行時の動作を保証できません。
Claude Code/Cursor 内で実行する(MCP サーバー)
同じパッケージをMCP サーバーとして実行すれば、エージェントに「このリポジトリのゲートウェイ準備状況をスキャンして」と話しかけるだけで、会話を通じてスキャンできます。
Claude Code(コマンド1つ):
claude mcp add gateway-scan -- npx -y mcp-gateway-scan mcp
Cursor/任意の MCP クライアント — .mcp.json に追加します。
{
"mcpServers": {
"gateway-scan": {
"command": "npx",
"args": ["-y", "mcp-gateway-scan", "mcp"]
}
}
}
次に、エージェントに scan_gateway ツールを実行するよう依頼します。
- 入力:
{ "path": "<repo or dir>", "ci": false }(ciは省略可能です。CI ゲートの判定が追加されます)。 - 出力:観点ごとの 🟢🟡🔴 サマリーと構造化された結果。読み取り専用で、指定したパスのみをスキャンします。シークレットの値は伏せられ、場所だけが示されます(値は表示されません)。
同じパッケージで2つのモードを利用できます。
mcp-gateway-scan mcpはサーバー(エージェントから使用)で、デフォルトのmcp-gateway-scan <path>はCLI(ターミナルまたは CI で直接実行)です。mcpサブコマンドを使用しても、CLI の動作は変わりません。
Glama から見つけることもできます
mcp-gateway-scan は Glama MCP directory に掲載されています。ツールのスキーマを確認したり、ブラウザーで試したり、掲載ページからコンテナ化されたサーバーを直接デプロイしたりできます。ビルド仕様とリリース手順については、docs/glama-release.md に記載されています。
出力例
[RED] D2 Fail-close / fail-open posture S1
Error handlers on the call path return allow/true/ok or pass — the
system fails OPEN. A degraded auth/policy check silently becomes
'allow'. Launch blocker.
✗ gateway.ts:23 fail-open on error path return { allowed: true };
[GREEN] D6 Security, secrets & identity S1
No inline secrets; credentials referenced from a manager/env and
IDP/OIDC identity wiring is present.
✓ docker-compose.yml:7 secret-manager / env reference DATABASE_URL: op://Production/gateway-db/url
SCORE
┌────────┬──────────────────────────────────────────┬─────────┬──────────┐
│ Dim │ Title │ Status │ Severity │
├────────┼──────────────────────────────────────────┼─────────┼──────────┤
│ D1 │ Tool-access governance & RBAC │ RED │ S1 │
│ ... │ ... │ ... │ ... │
└────────┴──────────────────────────────────────────┴─────────┴──────────┘
0 green 0 yellow 7 red
CI に組み込む
--ci は、grep しやすい簡潔なサマリーを出力し、いずれかの項目が赤の場合はゼロ以外の終了コードを返します。そのため、リグレッション(新たなフェイルオープンのハンドラー、ピン留めされていないイメージ、コミットされたシークレット)があるとビルドは失敗します。
# .github/workflows/gateway-readiness.yml
- name: MCP gateway readiness scan
run: npx mcp-gateway-scan ./gateway --ci
RED D2 S1 Fail-close / fail-open posture (findings=1)
RESULT green=4 yellow=2 red=1
VERDICT FAIL — red dimension(s) present; see findings above.
7 つの評価項目
| 項目 | チェック内容 |
|---|---|
| D1 ツールアクセス/RBAC | プロンプトに記述された認可、ゲートウェイポリシーレイヤーの欠如 |
| D2 フェイルクローズ | allow/true/ok/pass を返す catch/except ブロック、タイムアウトの欠如 |
| D3 オンボーディング/サプライチェーン | :latest、@main、npx -y …@、ピン留めされていないイメージ。sha256:/integrity は評価対象 |
| D4 オブザーバビリティ | OTel/traceparent/スパンの有無、ログ内の未加工プロンプト |
| D5 ルーティング/コスト | max_tokens/予算/レート制限/クォータの欠如 |
| D6 シークレット/ID | インラインのシークレットリテラル(場所のみ。値はマスキング)。op:///vault:/process.env は評価対象。IDP/OIDC |
| D7 本番環境への対応 | キルスイッチ/フィーチャーフラグ、429/レート制限、評価/レッドチームゲートの欠如 |
各項目は、重大度タグと、一致した証拠(file:line)とともに、🟢 緑/🟡 黄/🔴 赤で評価されます。この評価基準の手法は、OWASP Top 10 for LLM Applications、MCP 仕様(2025-06-18)、OpenTelemetry GenAI のセマンティック規約に準拠しています。
同梱のフィクスチャで試す
mcp-gateway-scan fixtures/secure # mostly green
mcp-gateway-scan fixtures/vulnerable # mostly red
fixtures/vulnerable ツリーには、機能しない偽のプレースホルダーシークレット(sk-EXAMPLENOTREAL…、AKIAEXAMPLE…)のみが含まれているため、マスキングされたシークレットの出力を安全に確認できます。
精度
すべての検出結果は、懐疑的なシニアエンジニアにも納得できる根拠を示せることを目指しています。このスキャナーは、プロンプトの内容(システムメッセージの文字列/YAML のプロンプトフィールド)と、パターンを単に説明しているだけのコードとを区別します。そのため、rg 'only use|if the user is admin' を引用したドキュメントコメントは、プロンプト内の認可として検出されませんが、同じ語句が実際のシステムプロンプトに含まれている場合は検出されます。すべての評価項目でコメント行と grep のレシピ/正規表現の説明は除外され、「制御が存在する」というシグナルは文章ではなくコード/設定から照合されます。
これは何か(そして、何ではないか)
これは、高速で無料のヒューリスティックな足がかりとなる、静的パターンスキャナーです。緑のスコアは良好な兆候ですが、保証ではありません。赤のスコアは、修正すべき箇所を具体的に示します。これは、フォールトインジェクションを実行したり、稼働中の IAM/IDP を調査したり、トレースを読み取ったりはしません。そうした詳細な調査を行うのが、根拠を引用したギャップマトリックスと、段階的な90日間の是正ロードマップを提供する、完全版のMCP Gateway Readiness Auditです。
| このスキャナー(無料、MIT) | 完全版 MCP Gateway Readiness Audit(有料) | |
|---|---|---|
| 方法 | 静的なパターンチェック | 稼働中のコードベースの読み取り専用レビュー |
| ライブテスト | — | フォールトインジェクション(F1–F5)、トレース検証 |
| 証拠 | 一致した行 | エビデンスインデックス内の各指摘事項の file:line |
| 成果物 | 7次元スコア | 根拠を引用したギャップマトリックス+重大度+段階的な90日間のロードマップ |
| 提供方法 | 即時、自動 | 専門家による対応+ライブレビューセッション |
完全版の監査が必要ですか? このスキャナーは、無料のヒューリスティックな足がかりです。 **Provenwright MCP Gateway Readiness Audit**では、さらに詳細な調査を行います。 稼働中のコードベースの読み取り専用評価、各指摘事項の証拠(ファイル+行番号)、 根拠を引用したギャップマトリックス、段階的な90日間の是正ロードマップを提供します。
サンプルレポート:provenwright.com/sample/
完全版監査の詳細:provenwright.com/audit
15分間の相談を予約:cal.com/willianpinho
メール:[email protected]
ライセンス
MIT © Willian Pinho
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。