mcpField
B
bernstein-mcp

bernstein-mcp

リモート
mcp.bernstein.runセキュリティ05 週間前に更新
リポジトリ公式サイト

bernstein-mcp について

bernstein-mcpは、bernsteinの実行レシート、ハッシュチェーン、Trust Record、署名済みエージェントマニフェストを検証するステートレスな読み取り専用MCPエンドポイントです。データを保存・取得せず、検証結果と署名付き判定を返します。

主な機能

  1. 01レシートとハッシュチェーンの検証
  2. 02TRACE Trust Recordの確認
  3. 03署名済みエージェントマニフェストの検証
  4. 04レシートとTRACEの対応関係の説明
  5. 05プリセットと同梱アダプターの一覧
  6. 06署名付き検証判定の返却

活用シーン

  1. 01実行レシートを信頼する前の確認
  2. 02チェーン内の最初のリンク切れの特定
  3. 03委任チェーンの評価
  4. 04署名付き判定のレシートとの保管

MCP 対応

https://mcp.bernstein.run/mcp を通じて、検証、説明、一覧表示の読み取り専用ツールをMCPクライアントに提供します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.bernstein.run/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

11

このツールにパラメーターはありません。

詳細

bernstein-mcp

bernstein-mcp

https://mcp.bernstein.run にある、状態を保持せず読み取り専用の MCP エンドポイントです。bernstein の実行レシートとハッシュチェーンを検証します。アカウントもキーも不要で、何も保存せず、何も取得しません。

claude mcp add --transport http bernstein https://mcp.bernstein.run/mcp

できること

ツール結果
verify_receipt実行レシートに含まれるすべてのチェーンを再計算し、署名対象を再構築して、Ed25519 署名を検証します。判定と各チェックの結果を1行ずつ返し、判定を署名付きステートメントとして返します(下記参照)。
explain_receipt同じ検証を説明付きで行います。実行で記録された内容、相違がある箇所、結果が証明することと証明しないことを説明します。
verify_chainジャーナル行、系譜エントリー、監査イベントを個別にたどります(バイト単位で完全に一致する行を検証するには、ファイルのテキストを渡します)。最初にリンクが壊れた箇所を示します。
verify_trace_record1件の Trust Record に対する TRACE v0.2 適合性チェックを、状態を保持せず、アカウント不要で実行します。ベンダー提供のスキーマ、プロファイルルール、cnf.jwk 内のキーを使った埋め込み署名(EdDSA、ES256、ES384)を検証します。record_sha256 は、子ホップがリンクする RFC 8785 ダイジェストです。
verify_delegation_chainTrust Record の集合をリーフからルートまでたどり、委任リンクコーパスと同じコードでチェーンを分類します(verified、provenance-invalid、authorization-invalid、unverifiable)。
verify_agent_manifest署名付きエージェントマニフェスト(v0.2 COSE エンベロープ)を状態を保持せずに検証します。ベンダー提供のスキーマ、プロファイル、正規化、埋め込み署名(Ed25519、P-256、P-384)をチェックし、references[] による Trust Record との照合も任意で行えます。判定は valid/invalid/unverifiable です。
explain_trace_mappingbernstein の実行が TRACE v0.2 Trust Record にどのように対応するかを、クレームごとに説明します。レシートを渡すと、ジャーナルが回答する項目を補完します。
list_presets / get_presetこのリリースに含まれるコンプライアンスプリセットを返します。
list_adaptersこのリリースに含まれるエージェントアダプターを返します。
server_infoバージョンと制限を返します。

bernstein verify-receipt と同じ検証を、あらゆる MCP クライアントまたは /verify の貼り付けフォームから利用できます。判定ページの アドレスには、レシート自体のダイジェストが使われます。

信頼モデル

証明すること証明しないこと
埋め込まれた行が、署名された行と完全に一致すること埋め込まれたキーが、あなたの想定する人物に属していること(初回利用時に信頼する方式です。オペレーターが公開しているキーを自分でピン留めしてください)
署名後に編集、並べ替え、削除、追加が行われていないこと監査範囲の HMAC 値(生成元のインストール環境のキーで署名されています。リンクとコンテンツハッシュは引き続き検証されます)

レシートファイルの内容は文字列として渡してください。すでに解析済みのオブジェクトでは 1 と 1.0 を区別できませんが、参照実装は元の表記をハッシュ化します。

署名付き判定

すべての判定は、このデプロイの Ed25519 キーで署名された DSSE エンベロープ(signed_verdict)として返されます。ペイロードは JCS で正規化されたステートメントで、レシートをダイジェストで識別し、判定、すべてのチェック、EAR ステータス語彙(affirming/contraindicated/none)による appraisal ブロックを含みます。レシートと一緒に保管してください。誰でも公開キー /.well-known/bernstein-mcp/keys.json (kid = RFC 7638 サムプリント)を使ってオフラインで再検証できます。署名対象は application/vnd.bernstein.verdict+json の DSSE PAE であり、レシート自体が使うものと同じ構成です。これは「この検証器が、この時点で、これらのバイト列に対してこの判定に至った」ことを証明するものであり、レシートの生成元については何も証明しません。

セッションレシート

bernstein-attest は、Claude Code または Codex CLI のセッションを署名済みの実行レシートに変換し、このサーバーがそれを検証します。

npx bernstein-attest init          # registers hooks for both agents (user scope); --claude-code / --codex / --project to narrow
bernstein-attest link              # verify link + one Markdown line for a PR description
bernstein-attest verify .bernstein/receipts/<session>.json

Codex は、対話セッションで /hooks を使ってプロジェクトフックを一度信頼した後にのみ実行します。codex exec は、信頼されていないフックを何も表示せずにスキップします。--project を指定すると、Claude Code のフックは .claude/settings.local.json に、Codex のフックは .codex/hooks.json に保存されます。どちらもホームディレクトリ内のバンドルを指定するため、.codex/hooks.json はバージョン管理の対象から除外してください。

ツール呼び出しごとに記録される内容:ツール名、入力と出力のハッシュ、成功フラグ、呼び出しによって書き込まれたファイルのリポジトリ相対パス(プロジェクト外のパスはハッシュのみ)、シェルコマンドのプログラム名(先頭のトークンからパスを除き、最大32文字)。記録されない内容:プロンプト、モデル出力、コマンドテキスト、ファイル内容、絶対パス。新しい内容が記録された各ターンの終了時、および2 000行ごとにレシートが封印されます。ファイルは .bernstein/receipts/ に保存され、説明対象の変更と一緒にコミットできます。後続のターンで同じファイルが再封印されるため、コミットする直前に npx bernstein-attest link を実行し、貼り付けるリンクが最新のバイト列を示すようにしてください。

制限

リクエスト本文1 MiB
チェーンあたりの行数2 000(それを超えるレシートはローカルで検証してください)
レートPOST /mcp および POST /verify で、アドレスあたり毎分60リクエスト
ロギングリクエストごとにJSON行を1つ記録:ルート、メソッド、ステータス、JSON-RPCメソッド、ツール、判定、プロデューサーファミリー、MCPクライアント名/バージョン、国、コロケーション。アドレス、ヘッダー、本文、レシートは記録しません

正確性

vectors/ には、Python リファレンス(固定された bernstein ソースに対して scripts/gen_vectors.py を実行)で生成された8つのゴールデンベクトルが含まれています。TypeScript 検証ツールは、各ベクトルの判定、すべてのチェック、バインディングバイト列、レシートダイジェストをバイト単位で一致させる必要があります(test/vectors.test.ts)。 vectors/session/ には、bernstein-attest が書き込んだ3つの固定セッションレシートが含まれています(scripts/gen-session-vectors.mjs)。

開発

npm install
npm test          # no-fetch guard + vitest
npm run typecheck
npm run dev       # wrangler dev

src/ では fetch、eval、new Function を呼び出せません。違反すると CI に失敗します。 デプロイについては、DEPLOY.md を参照してください。ライセンス:Apache-2.0。

コメント

MCP は初めてですか?

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

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