mcpField
P
Protocol Conformance

Protocol Conformance

ローカル
github.com開発ツール01 週間前に更新

Protocol Conformance について

Protocol Conformanceは、MCPサーバーの実装を検証するCLI、TypeScriptライブラリ、MCPサーバーです。複数のMCP仕様バージョンに対応したテストに加え、マニフェストやレポートの比較も行えます。

主な機能

  1. 01JSON-RPCとバージョンの検査
  2. 02stdio・HTTPトランスポートのテスト
  3. 03OAuth 2.1 PKCEの検証
  4. 04ツールスキーマと機能の検査
  5. 05スモークテストとアノテーション監査
  6. 06マニフェストとレポートの比較

活用シーン

  1. 01リリース前のMCPサーバー検証
  2. 02CIでの適合性テスト実行
  3. 03バージョン間のツールマニフェスト比較
  4. 04レポート間の破壊的変更の検出

MCP 対応

自らMCPサーバーとして動作し、適合性テストの実行、レポート生成、マニフェスト比較、破壊的変更の確認を行う12個の読み取り専用ツールを公開します。stdioまたはHTTP経由で他のMCPサーバーもテストできます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"protocol-conformance": {
"command": "npx",
"args": [
"-y",
"mcp-protocol-conformance"
]
}
}
}
起動コマンドnpx -y mcp-protocol-conformance

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-protocol-conformance0.2.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

StudioMeyer MCP Stack の一部 — マヨルカ島で開発 🌴 · 使用したら ⭐ をお願いします

mcp-protocol-conformance

npm バージョン npm ダウンロード数 ライセンス 最終コミット GitHub スター数 Model Context Protocol サーバー向けの適合性テストハーネスです。MCP 仕様の 2024-11-05、2025-03-26、2025-06-18、および現在の安定版リビジョン 2025-11-25(実験的な tasks、構造化ツール出力、JSON Schema 2020-12 のデフォルト設定、ツールの title/icons)に対して、JSON-RPC 2.0 のワイヤー準拠、仕様バージョンのハンドシェイク、トランスポートの動作、OAuth 2.1 PKCE、ツールスキーマ、機能の広告、スモークテストによるラウンドトリップ、アノテーションの適切さを検証します。

これは StudioMeyer MCP Factory の Foundation ビルドです。ほかの Factory ビルドはすべて、公開前(npm への公開、マーケットプレイスへの申請、上流への PR)にこのハーネスでテストされます。

私たちからひとこと

私たちはこの 2 年間、自分たちのためにツールやシステムを作ってきました。このリポジトリが小さく、スターが少ないのは新しいからではありません。私たちが作ってきたものを、共有しようと決めたのがつい最近だからです。できたばかりの実験ではなく、最近コミットが加わった、長い物語です。

ものづくりと共有が大好きです。ソーシャルメディアの戦術や成長の裏技、スターやフォロワーを追いかけることは好きではありません。だから、このリポジトリは小規模です。コードは実際に使われており、問題には回答しています。ぜひご自身で判断してください。

役に立ったら、共有、テスト、フィードバックで応援していただけるとうれしいです。改善できそうな点があれば、Issue の報告が何より役立ちます。これを使って何か作ったら、[email protected] までお知らせください。本当にうれしいです。

パルマ・デ・マヨルカの小さなスタジオより。

インストール

npm install --save-dev mcp-protocol-conformance

このパッケージには CLI(mcp-conformance)と TypeScript ライブラリエントリー(import ... from "mcp-protocol-conformance")の両方が含まれています。

CLI の使い方

stdio サーバーに対して実行する
mcp-conformance run \
  --target stdio \
  --cmd node \
  --cmd-arg dist/server.js \
  --spec 2025-06-18 \
  --suite all \
  --format terminal
HTTP サーバーに対して実行する(Streamable HTTP、2025-03-26 以降)
mcp-conformance run \
  --target http \
  --url https://memory.studiomeyer.io/mcp \
  --header "Authorization:Bearer ${TOKEN}" \
  --spec 2025-06-18 \
  --suite full \
  --format json --out report.json
テストスイートの一部だけを実行する
mcp-conformance run --target stdio --cmd ./server --spec 2025-06-18 \
  --suite jsonrpc,version,schema
2 つのマニフェストを比較する
mcp-conformance compare \
  --expected manifests/v1.json \
  --actual   manifests/v2.json
2 つのレポート間に破壊的変更がないことを確認する
mcp-conformance assert-no-breaking \
  --baseline reports/main.json \
  --current  reports/pr-42.json

終了コード:0 問題なし、1 失敗、2 呼び出しエラー。

ライブラリの使い方

import {
  runFullSuite,
  generateReport,
} from "mcp-protocol-conformance";

const report = await runFullSuite(
  { kind: "stdio", cmd: "node", args: ["dist/server.js"] },
  "2025-06-18",
  { suite: "all" },
);

console.log(generateReport(report, "terminal"));
if (report.status === "fail") process.exit(1);

MCP サーバーとしての使い方

このハーネス自体が MCP サーバーです。stdio 経由で起動すると、任意の MCP クライアントから 12 個のツールを呼び出せます。

node dist/server.js

ツール(すべて読み取り専用で、すべて destructiveHint: false):

#ツール用途
1runJsonRpcComplianceJSON-RPC 2.0 のエラーコードマトリックスとレスポンスエンベロープ(result と error の相互排他)
2runSpecVersionAssertion広告されている protocolVersion を検証
3runTransportSuiteトランスポート層の ping と session-id
4runOauthPkceFlowOAuth 2.1 PKCE S256(モック AS または実際のテナント)
5runToolSchemaValidationinputSchema(および 2025-11-25 の outputSchema/title)が有効な JSON-Schema であることを検証
6runCapabilityIntrospectioninitialize.capabilities が動作(および 2025-11-25 の tasks)と一致することを検証
7runRoundtripSmoke広告されている各ツールに対して tools/call を 1 回実行
8runAnnotationsAuditreadOnlyHint/destructiveHint の適切さを監査
9runFullSuiteすべてのテストスイートを実行して概要を表示
10generateReportJUnit/JSON/ターミナル形式でレポートを生成
11compareManifests2 つのツールマニフェストの差分を表示
12assertNoBreakingChanges2 つの FullReports の差分を表示

互換性マトリックス

2024-11-052025-03-262025-06-182025-11-25
jsonrpcyesyesyesyes
version (handshake)yesyesyesyes
transport (stdio)yesyesyesyes
transport (http)n/ayesyesyes
oauth (mock)n/ayesyesyes
oauth (real)n/ayesyesyes
schemayesyesyesyes
capabilityyesyesyesyes
smokeyesyesyesyes
annotationswarn-onlywarn-onlyyesyes
tasks (capability)n/an/an/ayes
tool title/outputn/an/an/awarn-only

yes = スイートが実行され、対応可能な結果が得られます。 n/a = この機能は仕様に含まれていないため、スイートは自動的にスキップします。 warn-only = スイートは実行されますが、仕様ではこの機能を正式に必須としていません。

2026-07-28 RC(ステートレスコア、SEP-2575/2567)は意図的に含めていません。 2026-07-28 に正式リリースされるため、これに対する適合性テストは、最終版 SDK を対象とする後続リリースで提供されます。

Factory ビルドへの統合

すべての Factory ビルドの package.json に次を追加します。

{
  "scripts": {
    "factory:conformance": "mcp-conformance run --target stdio --cmd 'node dist/server.js' --spec 2025-06-18 --suite full"
  }
}

CI では次のようにします。

- run: npm run factory:conformance

仕様への参照

StudioMeyer について

StudioMeyer は、パルマ・デ・マヨルカを拠点に世界中のクライアントと仕事をする、AI とデザインのスタジオです。中小企業向けに、カスタムウェブサイトと AI インフラストラクチャを構築しています。Claude Agent SDK、MCP、n8n を本番環境のスタックとして採用し、可観測性には Sentry、Langfuse、LangGraph を使用するほか、社内開発のガードレイヤーを備えています。

ライセンス

MIT — Copyright (c) 2026 Matthias Meyer (StudioMeyer)

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。