Skip to main content
Glama
YuCPbit
by YuCPbit

🧾 mcp-proof

領収書付きでMCPサーバーを出荷する。

1つのコマンドで任意のMCPサーバーを監査します — ツール、リソース、プロンプト、プロトコル時代を問わず、stdioまたはStreamable HTTPに対応 — そしてクライアントにフィンガープリント付きの再現可能な納品レポートと、そのまま使い続けられるCIリグレッションスイートを渡します。

ci python checks transports license

English · 简体中文

公式MCP filesystemサーバーの実際の監査結果: 適合性チェック25件、MSSS準拠テーブル、リグレッションfixture 34件 — すべてグリーン。


✨ 得られるもの

  • 🔍 全サーフェス・両時代にわたるワイヤーレベルのプロトコルチェック — mcp-proofはサーバーと生のJSON-RPCで通信し、その時代を自動検出します: 2026-07-28モダン時代向けチェック30件(server/discover、_metaエンベロープ強制、resultType、全キャッシュ可能な結果へのttlMs/cacheScope、-32022バージョン拒否、HTTPルーティングヘッダー強制)、initializeハンドシェイク時代向けチェック25件 — 正確なエラーコード、スキーマ妥当性、構造化出力、stdoutの衛生状態、ページネーション安全性、専用のリソース&プロンプトレーン、そして検証済みネガティブプローブ: TOOL-07は宣言されたinputSchemaに確実に違反する入力を送信し、サーバーがそれを通常どおり応答した場合に警告し、最小限の再現コードを引用します。双方向で機能認識型: サーバーが宣伝していないサーフェスはスキップされ、宣伝しているサーフェスは動作しなければなりません。

  • 🛡️ 公開標準に紐づいたセキュリティ監査 — 決定的チェック6件(ツール説明のポイズニング、不可視/双方向文字、認証情報の漏洩、無制限のインジェクションサーフェス、宣伝されたシェル実行)、それぞれが24コントロールのMCP Server Security Standardの標準コントロールIDにマッピングされ、全レポートに完全な準拠テーブルとして表示されます。

  • 📼 クライアントが使い続けるリグレッションスイート — どちらのプロトコル時代でも記録可能。SHA-256 provenance付きのゴールデンfixtureがサーバーの動作を固定し、リプレイはすべてのドリフトを(BREAKING / VALUE / COSMETIC / LATENCYで)等級付けし、構造化出力を理解し、ステートフルな呼び出し順序を保持し、コピペですぐ使えるGitHub Actionsゲートが同梱されています。

  • 📄 人間と機械の両方のためのレポート — 自己完結型HTML、スティッキーナビゲーション、チェックごとのアンカー(report.html#SEC-03)、注意/合格フィルター、折りたたみ可能なMSSSマトリクス付き。--pdfで印刷可能。同じバージョン管理されたモデルが--json(スキーマv1)、任意のCI向け--junit、GitHub Securityタブ向け--sarifとしても出力されます。

  • 🔁 設計上再現可能 — LLM呼び出しゼロ、APIキーゼロ。すべてのハッシュは動作のみから計算されます — タイムスタンプとレイテンシは別のハッシュ対象外の観測レイヤーに格納されるため、同一のサーバー動作は同一のレポートフィンガープリントを生成し、受け入れは検証であって信頼ではありません。

  • 🧯 アノテーション優先の呼び出し計画 — MCPツールアノテーションは双方向で名前ヒューリスティックより優先されます: readOnlyHintは正規表現が過剰にブロックする読み取り専用ツールを救い、destructiveHintは見逃すミューテーターを捕捉します。アノテーションのないツールは保守的なヒューリスティックにフォールバックします。mcp-proof planは本番に触れる前に、自動ベースラインが何をどの根拠で呼び出すかを正確に示します。--include-destructiveと--edge-casesでさらに多くのケースにオプトインできます。

  • 📋 CI向けコントラクト差分 — mcp-proof inspectは提供中のサーフェス(機能+ツール+リソース+プロンプト、完全にページネーション処理済み)をフィンガープリント付きマニフェストに固定します。mcp-proof diffはすべての変更をBREAKING / ADDITIVE / METADATAに分類し、破壊的変更では非ゼロで終了します — スキーマの厳格化、enumの絞り込み、必須フラグの反転、出力フィールドの削除、安全性アノテーションの弱体化がすべて対象です。

Related MCP server: MCProbe

🚀 クイックスタート

pip install git+https://github.com/YuCPbit/mcp-proof
mcp-proof run python my_server.py --fixtures fixtures/ --out report.html

代わりに実行中のHTTPサーバーを監査しますか? mcp-proof run --url http://localhost:8000/mcp --out report.html

終了コード0は以下を意味します: すべてのMUSTチェック合格、セキュリティ指摘ゼロ、動作ドリフトゼロ — 1行のCIゲートです。

mcp-proof plan python my_server.py                            # what would auto-baselining call, and why
mcp-proof record python my_server.py --fixtures fixtures/    # freeze the behavioural contract
mcp-proof replay --fixtures fixtures/ -- python my_server.py  # fail on any drift
mcp-proof inspect python my_server.py --out baseline.json     # freeze the contract surface
mcp-proof diff baseline.json current.json                     # BREAKING / ADDITIVE / METADATA, exit 1 on breaking

組み込みのデモペア — クリーンなサーバーと9つの仕掛けられた違反を持つサーバー — で60秒で違いを確認できます:

mcp-proof run python demo/good_server.py --fixtures demo/fixtures-good --out report-good.html   # → SHIP-READY
mcp-proof run python demo/bad_server.py --out report-bad.html                                    # → 5 MUST failures, 3 security findings

📊 実際の監査、実際のレポート

ターゲット

判定

レポート

公式MCP filesystemサーバー (@modelcontextprotocol/server-filesystem)

✅ SHIP-READY — MUSTチェック11/11、リプレイ34/34クリーン、書き込みツール4件は自動スキップ

HTML · PDF

2026-07-28モダン時代サーバー (依存ゼロ、公式v2 SDKと相互検証済み)

✅ SHIP-READY — server/discoverで時代を自動検出、MUST 21/21(ネガティブプローブ含む)、リプレイ2/2

HTML

9つの仕掛けられた違反を持つデモサーバー

❌ NOT SHIP-READY — MUST失敗5件+セキュリティ指摘3件、すべて証拠付きで捕捉

HTML

正常に動作するデモサーバー

✅ SHIP-READY — MUST 16/16、3レーン完全合格(リグレッションベースライン含む)

HTML

🔬 3つのレーン

レーン

証明すること

方法

プロトコル適合性

サーバーがワイヤーレベルでMCPを正しく実装している — 時代ネゴシエーション、JSON-RPCエラーセマンティクス、ツール/リソース/プロンプトサーフェス、出力スキーマ、機能の一貫性、ページネーション、stdoutの衛生状態

自作のJSON-RPCプローブが生のバイトストリームを観測するため、何も平滑化されない

セキュリティ&衛生

ツールメタデータがクリーン: 注入された命令、隠しUnicode、漏洩した秘密情報、無制限の実行サーフェスがない

決定的な静的解析、すべての指摘にMSSSコントロールIDが付与される

動作リグレッション

サーバーが納品時とまったく同じ動作をしている

provenanceフィンガープリント付きゴールデンfixtureの記録/リプレイ、ドリフトは重大度で等級付け

すべてのレーンが1つのレポートに集約されます — そしてレポートは優先順位付けされた修正リストで締めくくられるため、是正計画書としても機能します。

📡 プロトコルサポート

トランスポート

stdio ✅ · Streamable HTTP ✅

サーフェス

tools ✅ · resources ✅ · prompts ✅ — 双方向で機能認識型

モダン時代 2026-07-28 (server/discover、ステートレス_meta)

✅ 適合性レーン、自動検出 — --era auto|modern|legacy

レガシー時代 (initializeハンドシェイク、2024-11-05 → 2025-11-25)

✅ 全レーン

リグレッションレーン

✅ 両時代 — SDKセッション(レガシー) · プローブベースセッション(モダン)

モダンレーンは公式v2 SDKに対して双方向で検証されています: 公式クライアントはserver/discover経由でmcp-proofの自作モダンテストサーバーを採用し、mcp-proofは公式v2 SDKサーバーに対して両トランスポート — stdioとSSEレスポンス付きStreamable HTTP — で全3レーンを完全グリーンで実行します(scripts/crosscheck_modern_server.py)。

任意の言語のサーバーで動作します — mcp-proofはプロセス(またはURL)と通信するのであって、コードベースとは通信しません。

⚙️ CIを1ステップで

- uses: YuCPbit/mcp-proof@v0.5.0
  with:
    server-command: python my_server.py
    fixtures: fixtures/

ジョブはサーバーがship-readyでない限り失敗し、アップロード用にmcp-proof-report.html / .json / .junit.xml / .sarifを残します。生のコマンドがお好みですか? mcp-proof run … --junit r.xml --sarif r.sarifにmcp-proof diffを加えたものが同じゲートです。

🏗️ 監査クリーンなテンプレートで構築

サーバーを監査するのではなく構築しますか? templates/server-starter/はこの監査をそのまま合格するfastmcpサーバーです — 制約付き入力スキーマ、適切なエラーセマンティクス、構造化出力、すべてのプラクティスにそれが満たすチェックIDが注釈されています。コピーして、ツールを実装し、監査し、レポート付きで出荷します。

🖥️ プラットフォーム

macOS

✅ 開発・完全検証済み

Linux

✅ CIで実行済み

Windows

✅ CIで実行済み

🗺️ ロードマップ

リリース

焦点

v0.3

✅ 二時代プロトコルサポート、mainで出荷 — 時代自動検出、モダン時代チェック19件、二時代リグレッションセッション、両トランスポートで公式v2 SDKに対して検証済み

v0.4

✅ 機能認識型リソース&プロンプトレーン · コントラクトマニフェストinspect / diff(破壊的変更ゲート付き) · アノテーション優先の呼び出し計画

v0.5

✅ バージョン管理されたJSONレポートモデル · JUnit & SARIF出力 · 再利用可能なGitHub Action(uses: YuCPbit/mcp-proof@v0.5.0) · レポートUI: スティッキーナビ、アンカー、フィルター

v0.6

✅ 二段階引数合成($ref / allOf / const / pattern / format / 境界 / multipleOf) · 検証済みスキーマ違反ネガティブプローブ(TOOL-07)、最小再現コード付き

今後

オプトインのセマンティックレーン(LLM評価アサーション) — 決定的コアが完成するまで保留

🔍 制限事項

mcp-proofは決定的に証明できることを証明し、どれがどれであるかを明示します:

  • セキュリティチェックは、観測可能なプロトコルとメタデータの表面を対象とします。デプロイ、ソース、またはプロセスの証拠を必要とするMSSSコントロールは、常に手動レビューとして報告され、合格として報告されることはありません。

  • 自動ベースライン化は、保守的な名前/説明のヒューリスティックによってツールを分類します。本番環境に対して記録されたベースラインを信頼する前に、フィクスチャマニフェストのスキップリストを確認してください。

  • 意味的正しさ(回答が正しい意味を持っているか?)は、設計上、決定論的コアの範囲外です。

📄 ライセンス

MIT — MSSSコンプライアンスセクションの分類法は、MCP Server Security Standard(CC BY-SA 4.0)に従っています。

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    A stdio MCP server that audits other MCP servers over the live protocol. It connects to any MCP target (stdio or HTTP), lints every tool's schema for agent-usability, then actually calls the tools with deliberately broken inputs to see how the server handles them, and returns a 0–100 conformance score with a per-dimension breakdown rendered as Markdown.
    6
    6
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Audits MCP server configurations for security risks including capability inventory, SSRF, prompt injection, and drift detection. Works in read-only mode and can also be used as an MCP server to let AI agents audit their own attack surface.
    411 PyPI
    4
    MIT