mcpField
P
PEAC Protocol: Signed interaction receipts

PEAC Protocol: Signed interaction receipts

ローカル
peacprotocol.orgセキュリティ144 日前に更新

PEAC Protocol: Signed interaction receipts について

@peac/mcp-server は、PEAC の署名付きインタラクション記録を扱うローカル MCP サーバーです。エージェント開発者や LLM アプリケーション向けに、stdio または Streamable HTTP で検証、確認、デコード、設定に応じた発行、証拠のバンドルを提供します。

主な機能

  1. 01署名付き記録の検証
  2. 02検証を伴わない記録の確認
  3. 03レシート JWS データのデコード
  4. 04設定した鍵による記録の発行
  5. 05記録と関連成果物のバンドル
  6. 06監査メタデータ付き構造化出力

活用シーン

  1. 01インタラクションレシートを検証
  2. 02診断用にレシートをデコード
  3. 03指定されたクレームから署名付き記録を発行
  4. 04署名付き記録と証拠をバンドル

MCP 対応

stdio または Streamable HTTP 経由で、PEAC 記録の検証、確認、デコード、発行、バンドルを MCP ツールとして公開します。発行とバンドルには鍵と発行者の明示的な設定が必要です。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"peacprotocol-peac": {
"command": "npx",
"args": [
"-y",
"@peac/mcp-server"
]
}
}
}
起動コマンドnpx -y @peac/mcp-server

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

パッケージ
npm@peac/mcp-server0.15.0

ツール

3

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
jwsstringはいJWS コンパクトシリアライゼーション(header.payload.signature)
jwksstringいいえ検証キーを含むインライン JWKS JSON
issuerstringいいえバインディング確認用の想定発行者 URI
audiencestringいいえバインディング確認用の想定オーディエンス URI
public_key_base64urlstringいいえ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 または httpstdio
--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_verifyPEAC 署名付きインタラクションレコードを検証します。常に利用可能
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 とコミュニティの貢献者が運営するオープンソースプロジェクトです。

ドキュメント | GitHub | Originary

コメント

MCP は初めてですか?

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

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