Eclipse Benchkit について
Eclipse Benchkit は、ベンダーがローカルで fixture MCP サーバーに宣言済みチェックを実行し、Assay 形式のスコアカードを出力する Python SDK です。別の検証ハーネスがランダムサンプルを再実行して副署付きレシートを発行します。認証範囲はローカル fixture に限られます。
主な機能
- 01fixture サーバーで宣言済みチェックを実行
- 02封印済み Assay 形式スコアカードを出力
- 03チェックにスポットチェック用フックを内蔵
- 04検証ハーネスでランダムサンプルを再実行
- 05副署付き検証レシートを発行
活用シーン
- 01fixture サーバーのチェック実行からスコアカードを作成
- 02封印済みスコアカードを抽査して偽造結果を検出
- 03不一致または検証不能なサンプルチェックを確認
MCP 対応
stdio JSON-RPC で MCP サーバーとして動作します。ベンダー用と検証者用の各サーフェスに、チェック記録、スコアカードの封印・取得、スポットチェック要求、レシート取得のツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Eclipse Benchkit
ベンダーが自社の MCP サーバーに対して実行する無料のローカル SDK です。ベンダーが宣言したチェック一式を実行し、Assay スコアカード形式(チェック ID、判定結果、証拠ハッシュ、環境フィンガープリント)でスコアカードを出力します。各チェックの実行時には、チェック項目ごとにスポットチェック用フックが組み込まれます。別個のローカルハーネスは、封印済みスコアカードからランダムなサンプルを抽出して該当チェックを再実行し、カウンター署名付きの検証レシートを発行します。
スコープラベル:LOCAL / fixture。 v0.1 は、fixture ベンダーサーバーに対してのみ実行されています。稼働中のベンダーサーバーへの接続、ネットワーク呼び出し、レジストリはありません。
ステータス:v0.1.1 — 認定済み(local/fixture)。 Verity による再ベンチマーク(2026-10-27):v0.1.0 のすべての FAIL 欠陥(D1/D2 ブロッカー、M1–M4 重大、m1–m5 軽微)を修正し、独立して検証しました。ビルダースイートは 27/27 です。新たに記録された 2 件の軽微な問題(N1 フェンスエンコーディングの境界ケース、N2 シードコミットメントの来歴)は、次の修正サイクルで対応するものであり、このスコープの認定条件には影響しません。この認定の対象は、fixture ベンダーサーバーに対する SDK、エミッター、スポットチェックハーネスに厳密に限定されます。スポットチェックレシートが示すのは、封印済みスコアカード 1 件のサンプルに関するものに限られ、ハウスベンチの判定でも、ベンダーサーバーの認定でもありません。**
v0.1.1 プロトコルノート
- コミット後にサンプリングし、予測不能にする(D1)。 検証者ノンスは、
keys/に保持された秘密シードと新たな CSPRNG エントロピーを使って検証側で生成され、封印が検証された後にサンプルマニフェストでのみ公開されます。新たな抽選の入力として呼び出し元から渡すことはできず、スコアカードハッシュや公開状態から事前計算することもできません。指定されたノンスは、すでに発行済みの(scorecard_hash, verifier_nonce)ペアの再生キーとしてのみ受け付けられ、記録済みのレシートを返します(§3.3)。新規のノンスが指定された場合は、該当する名称付きエラーで拒否されます。 - 検証者トークン(§5、M4)。 検証者の動詞には検証者トークンが必要です。トークンには
keys/verifier-token.fixture.keyにある fixture トークンを使用し(chmod 600、gitignore 対象)、呼び出しごとにverifier_tokenとして渡すか、検証者プロセスでBENCHKIT_VERIFIER_TOKENを通じて指定します。 - 設定フェンス(§7.3、F-B14)。 ローカル以外のエンドポイント、稼働用キー文字列、ベンダーノンス設定、
test以外の value_class、または Assay/Cupel の価格もしくはチェックアウト設定がある場合、起動時にCONFIG_FENCE_REFUSED:<class>を出して即時終了します。稼働用 URL のサーバー記述子は、benchkit_run_beginで同じ名称付きコードを返して拒否されます。 - 認証済みアーティファクト(M1/M2)。 封印署名は、ヘッドハッシュ、すべての件数、フォーマットバージョンを対象とします。再計算時にはレシート署名、結果レコードのチェーン、再実行チェーンのヘッドを検証し、余分な結果があれば拒否します。
- キー(§7.4、M3)。 すべての fixture キーは
keys/にローカルで生成されます(chmod 600、gitignore 対象、fixture のラベル付き)。ソース内にキー素材は存在しません。
新しい仕組み
ベンダー実行のスコアカードにはスポットチェック用のフックが埋め込まれています。ハウスベンチはランダムなサンプルを再実行するため、捏造されたセルフベンチを統計的に検出できます。プロトコルはコミットしてからサンプリングする方式です。サンプルが作成される前にスコアカードを封印(ハッシュチェーン化し、ベンダーが署名)し、サンプルのシードは scorecard_hash ‖ verifier_nonce から導出します。この nonce は封印の提示後にのみ開示されます。レシートには計算式が明記されます。サンプルサイズ k、捏造された割合 f の場合、検出確率は 1 − (1−f)^k です。デフォルトは k = 30(フック付きチェックがそれより少ない場合は全件)で、f ≥ 0.10 なら検出確率は ≥ 95% です。フックのないチェックにはスコアカード上で HOOKLESS と明記し、すべてのサンプルおよび検証済みの主張の対象外とします。サンプリングされた非決定的なチェック、またはシークレットが必要なチェックは UNVERIFIABLE とし、暗黙の合格とはしません。レシートの判定結果は VERIFIED_SAMPLE · DIVERGENT(不一致のチェック ID を明記) · UNVERIFIABLE です。
すべてのベンダースコアカードには、表面に ベンダー実行/セルフベンチ と明記します。スポットチェックレシートが示すのは、フック付きの N 件のチェックからランダムに選んだ k 件を再実行して一致した(または不一致だった――発行された判定結果に準拠)ことだけです。割合 ≥ f の捏造を確率 p で検出できる性能を備えています。これはハウスベンチの判定でも、ベンダーのサーバーの認証でもなく、セルフベンチをそのようなものに格上げすることもありません。検証不可能なスコアカードは DOWNGRADED_EXPORT としてのみエクスポートされ、事後に格上げされることはありません。
形式の帰属は正確かつ最小限にします。スコアカードは Assay スコアカード形式で出力されます。Eclipse Assay と Eclipse Cupel は内部ツールです。Benchkit はそれらのスコアカード形式を仕様としてのみ使用し、それらの製品の提供形態、価格、ライセンス、購入手段は含みません。完全なベンチは有料のサービス契約です。受付は既存の窓口を通じて行います。Benchkit には受付フォーム、契約手続きのチェックアウト、サービス料金はありません。Benchkit 自体の課金計測ポイントは、検証完了ごとに 1 件の spotcheck_verification_completed イベントです(1 検証あたり $10 相当の計測記録のみで、このビルドには課金手段はありません)。キーは (scorecard_hash, verifier_nonce) で、冪等な再試行によって二重計上されないようにします。
ツール
ベンダー用サーフェス(デフォルトは ECLIPSE_BENCHKIT_SURFACE=vendor):
benchkit_run_begin、benchkit_check_record、
benchkit_scorecard_seal、benchkit_scorecard_get、
benchkit_export_get。
検証者用サーフェス(ECLIPSE_BENCHKIT_SURFACE=verifier):
spotcheck_request、spotcheck_run、spotcheck_receipt_get、
spotcheck_recompute、anomaly_queue_read。
サーフェスは相互に分離されています。サーフェスをまたぐ呼び出しには、無意味な名前の場合と同一の「不明なツール」という拒否応答が返されます。封印前のサンプル取得、ベンダーが指定した nonce、判定後の同一 nonce による再抽選は、名前を明示して拒否され、異常キューに記録されます。
フィクスチャ
fixtures/battery-*.json — フィクスチャ用ベンダーサーバーを対象とする決定論的なフィクスチャバッテリー:正常(40 件のチェック)、小規模(8 件)、正直な失敗(実際に失敗した 3 件のチェックを失敗として封印)、フックなし(12 件中 5 件)、不安定(非決定的なチェックが 1 件)、シークレットが必要なフック(実行不能なフックが 1 件)、捏造(40 件の申告済みチェックのうち 12 件が捏造されており、fabricated-source サーバーを使用――決定的なフィクスチャであり、シードに基づくスポットチェックで少なくとも 1 件を検出する必要があります)。
実行
python3 server.py # MCP over stdio JSON-RPC
python3 -m unittest discover -s tests -v
状態は data/ または BENCHKIT_DATA_DIR に保存されます。Python 3 のみを使用し、標準ライブラリだけで動作します。
Cyan Eclipse Technologies 提供 — https://cetech.ai
MIT License · Copyright © 2026 Cyan Eclipse Technologies LLC · cetech.ai
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。