PEAC Protocol: Signed interaction receipts について
@peac/mcp-server は、PEAC の署名付きインタラクション記録を扱うローカル MCP サーバーです。エージェント開発者や LLM アプリケーション向けに、stdio または Streamable HTTP で検証、確認、デコード、設定に応じた発行、証拠のバンドルを提供します。
主な機能
- 01署名付き記録の検証
- 02検証を伴わない記録の確認
- 03レシート JWS データのデコード
- 04設定した鍵による記録の発行
- 05記録と関連成果物のバンドル
- 06監査メタデータ付き構造化出力
活用シーン
- 01インタラクションレシートを検証
- 02診断用にレシートをデコード
- 03指定されたクレームから署名付き記録を発行
- 04署名付き記録と証拠をバンドル
MCP 対応
stdio または Streamable HTTP 経由で、PEAC 記録の検証、確認、デコード、発行、バンドルを MCP ツールとして公開します。発行とバンドルには鍵と発行者の明示的な設定が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| jws | string | はい | JWS コンパクトシリアライゼーション(header.payload.signature) |
| jwks | string | いいえ | 検証キーを含むインライン JWKS JSON |
| issuer | string | いいえ | バインディング確認用の想定発行者 URI |
| audience | string | いいえ | バインディング確認用の想定オーディエンス URI |
| public_key_base64url | string | いいえ | base64url エンコードされた Ed25519 公開鍵(32 バイト) |
詳細
@peac/mcp-server
PEAC 署名付きインタラクションレコード用のローカル MCP サーバーです。stdio またはローカルの Streamable HTTP トランスポートを通じて、PEAC レコードの検証、確認、デコード、発行、バンドル作成を行うツールを提供します。
インストール
pnpm add @peac/mcp-server
または、直接実行します。
npx @peac/mcp-server
概要
@peac/mcp-server は、PEAC 署名付きインタラクションレコードの操作を、AI エージェントや LLM ベースのアプリケーションから呼び出せる Model Context Protocol(MCP)ツールとして提供します。stdio と Streamable HTTP の両方のトランスポートをサポートし、静的なポリシーチェック、同時実行数の制限、入力サイズのガード、復旧のヒントを含む構造化エラーレスポンスに対応しています。
使用方法
Claude Desktop に追加する
~/Library/Application Support/Claude/claude_desktop_config.json に追加します。
{
"mcpServers": {
"peac": {
"command": "npx",
"args": ["-y", "@peac/mcp-server"]
}
}
}
Cursor または Windsurf に追加する
プロジェクトのルートにある .mcp.json に追加します。
{
"mcpServers": {
"peac": {
"command": "npx",
"args": ["-y", "@peac/mcp-server"]
}
}
}
Streamable HTTP トランスポート
npx @peac/mcp-server --transport http --port 3000
HTTP トランスポートは、セッションごとの分離、レート制限、RFC 9728 PRM ディスカバリーを提供します。デフォルトでは 127.0.0.1 にバインドされます。エンドツーエンドのデモについては、examples/mcp-http-quickstart/ を参照してください。
レシートの発行を有効にする
npx @peac/mcp-server \
--issuer-key env:PEAC_ISSUER_KEY \
--issuer-id https://example.com
HTTP トランスポートで起動する
npx @peac/mcp-server --transport http --port 3000
CLI オプション
| フラグ | 説明 | デフォルト |
|---|---|---|
--transport <type> | トランスポート:stdio または http | stdio |
--port <number> | HTTP ポート | 3000 |
--host <address> | HTTP バインドアドレス | 127.0.0.1 |
--issuer-key <ref> | 発行者キーの参照(env:VAR または file:/path) | なし |
--issuer-id <uri> | 発行者識別子 URI | なし |
--policy <path> | ポリシー設定ファイルのパス | 組み込みのデフォルト |
--jwks-file <path> | 検証用キーの解決に使う JWKS ファイル | なし |
--bundle-dir <path> | エビデンスバンドルの出力先ディレクトリ | なし |
--cors-origins <list> | 許可する CORS オリジン(カンマ区切り、HTTP のみ) | なし |
--trust-proxy <value> | X-Forwarded-For を信頼するか(off、loopback、private) | off |
プログラムからの使用
MCP サーバーのバインディングを使用せずに、ハンドラーを直接利用できます。
import { createPeacMcpServer, handleVerify } from '@peac/mcp-server';
import { getDefaultPolicy, computePolicyHash } from '@peac/mcp-server';
const policy = getDefaultPolicy();
const policyHash = await computePolicyHash(JSON.stringify(policy));
const result = await handleVerify({
input: { jws: 'eyJ...', public_key_base64url: '...' },
policy,
context: {
version: '0.16.5',
policyHash,
protocolVersion: '2025-11-25',
},
});
利用可能なツール
| ツール | 説明 | 利用条件 |
|---|---|---|
peac_verify | PEAC 署名付きインタラクションレコードを検証します。 | 常に利用可能 |
peac_inspect | 検証せずに PEAC 署名付きインタラクションレコードを確認します。 | 常に利用可能 |
peac_decode | 診断用に PEAC レシートの JWS ヘッダーとペイロードをデコードします。 | 常に利用可能 |
peac_issue | 指定されたクレームから PEAC 署名付きインタラクションレコードを発行します。 | --issuer-key と --issuer-id が必要 |
peac_create_bundle | 署名付きレコードと関連アーティファクトから PEAC バンドルを作成します。 | --issuer-key、--issuer-id、--bundle-dir が必要 |
すべての構造化ツール出力には、serverVersion、policyHash、protocolVersion、registeredTools を含む、スキーマで宣言された監査用 _meta ブロックが含まれます。これは、@peac/mappings-mcp が PEAC レシート参照を付与するために使用する、トップレベルの MCP _meta キャリアとは別のものです。
統合先
@peac/protocol(レイヤー 3):署名付きレコードの発行と検証@peac/crypto(レイヤー 2):JWS の署名とデコード@peac/schema(レイヤー 1):レシートスキーマの検証@peac/kernel(レイヤー 0):エラーコードと定数@modelcontextprotocol/sdk:MCP サーバーとトランスポートのバインディング
エージェント開発者向け
エージェントを stdio または HTTP 経由でこのサーバーに接続すると、署名付きレコードの検証、レシートのデコード、発行の機能を利用できます。ツールはエラーコードと next_action による復旧のヒントを含む構造化出力を使用するため、エージェントは失敗をプログラムで処理できます。すべてのレスポンスには、監査とトレーサビリティのための _meta が含まれます。
読み取り専用ツール(peac_verify、peac_inspect、peac_decode)は設定なしで利用できます。発行を有効にするには、--issuer-key と --issuer-id を使用して Ed25519 署名キーを指定してください。
運用担当者向け
サーバーは、設定可能な同時実行数の上限、入力サイズの上限、JWS サイズの上限、ツールのタイムアウトを用いて静的なポリシーチェックを適用します。HTTP トランスポートは、デフォルトで localhost にバインドされ、CORS はすべて拒否します。stdout フェンスにより、JSON-RPC 以外の出力が stdio トランスポートを破損するのを防ぎます。
セキュリティ特性:環境からのキー探索を行わない(キーは明示的に指定する必要があります)、ツールハンドラーから暗黙的なネットワークフェッチを行わない、バンドル出力時のパストラバーサルを防止する、HTTP トランスポートでセッションを分離する。
ライセンス
Apache-2.0
PEAC Protocol は、Originary とコミュニティの貢献者が運営するオープンソースプロジェクトです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。