PEAC Protocol: Signed interaction receipts

io.github.peacprotocolPublished by GitHub account peacprotocolv0.15.0Updated Oct 24, 2026

Portable signed records for agent, API, MCP, and cross-runtime interactions.

The publisher's own server: Signed

VerifiedSTDIODesktop onlyDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

Local MCP server for PEAC signed interaction records, letting an assistant verify, inspect, decode, issue and bundle portable signed receipts.

What you can do
  • Verify signed PEAC interaction records against a policy and public key
  • Inspect and decode receipt JWS headers and payloads for diagnostics
  • Issue new signed records from supplied claims, when an issuer key and ID are configured
  • Create evidence bundles from signed records and related artifacts, when a bundle directory is configured
  • Return structured outputs with error codes, recovery hints and an audit metadata block
When to use it
Useful when an agent or LLM application needs to check, decode or produce portable signed records of interactions, for example to confirm a receipt is authentic or to emit its own receipts for later audit.
Requirements
Runs locally as an npm package over stdio (or optional local Streamable HTTP on port 3000, bound to 127.0.0.1 by default). Node.js and npx are needed. Read-only tools work with no configuration; issuance requires an Ed25519 signing key supplied via the issuer-key option (env variable or file reference) plus an issuer ID, and bundling also needs a bundle output directory.
Before you install
Issuance and bundling require a private signing key; the server states it does no ambient key discovery, so the key must be provided explicitly and should be protected. Issuing records and writing bundles create data on disk. HTTP transport is localhost-bound with CORS deny-all by default; changing host, CORS origins or proxy trust settings widens exposure.

Installation

In SourceWeft

  1. Open PEAC Protocol: Signed interaction receipts in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

@peac/mcp-server

Local MCP server for PEAC signed interaction records. It exposes tools to verify, inspect, decode, issue, and bundle PEAC records through stdio or the local Streamable HTTP transport.

Installation

bash
pnpm add @peac/mcp-server

Or run directly:

bash
npx @peac/mcp-server

What It Does

@peac/mcp-server exposes PEAC signed interaction record operations as Model Context Protocol (MCP) tools that AI agents and LLM-based applications can call. It supports both stdio and Streamable HTTP transports, with static policy checks, concurrency limits, input size guards, and structured error responses with recovery hints.

How Do I Use It?

Add to Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

json
{  "mcpServers": {    "peac": {      "command": "npx",      "args": ["-y", "@peac/mcp-server"]    }  }}

Add to Cursor or Windsurf

Add to .mcp.json at your project root:

json
{  "mcpServers": {    "peac": {      "command": "npx",      "args": ["-y", "@peac/mcp-server"]    }  }}

Streamable HTTP transport

bash
npx @peac/mcp-server --transport http --port 3000

HTTP transport provides per-session isolation, rate limiting, and RFC 9728 PRM discovery. Binds to 127.0.0.1 by default. See examples/mcp-http-quickstart/ for an end-to-end demo.

Enable receipt issuance

bash
npx @peac/mcp-server \  --issuer-key env:PEAC_ISSUER_KEY \  --issuer-id https://example.com

Start with HTTP transport

bash
npx @peac/mcp-server --transport http --port 3000

CLI options

FlagDescriptionDefault
--transport <type>Transport: stdio or httpstdio
--port <number>HTTP port3000
--host <address>HTTP bind address127.0.0.1
--issuer-key <ref>Issuer key reference (env:VAR or file:/path)None
--issuer-id <uri>Issuer identifier URINone
--policy <path>Policy configuration file pathBuilt-in default
--jwks-file <path>JWKS file for verifier key resolutionNone
--bundle-dir <path>Directory for evidence bundle outputNone
--cors-origins <list>Allowed CORS origins (comma-separated, HTTP only)None
--trust-proxy <value>Trust X-Forwarded-For (off, loopback, private)off

Programmatic usage

Handlers can be used directly without the MCP server binding:

typescript
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',  },});

Available tools

ToolDescriptionAvailability
peac_verifyVerify a PEAC signed interaction record.Always
peac_inspectInspect a PEAC signed interaction record without verification.Always
peac_decodeDecode a PEAC receipt JWS header and payload for diagnostics.Always
peac_issueIssue a PEAC signed interaction record from provided claims.Requires --issuer-key and --issuer-id
peac_create_bundleCreate a PEAC bundle from signed records and related artifacts.Requires --issuer-key, --issuer-id, and --bundle-dir

All structured tool outputs include a schema-declared _meta audit block with serverVersion, policyHash, protocolVersion, and registeredTools. This is separate from the top-level MCP _meta carrier used by @peac/mappings-mcp to attach PEAC receipt references.

Integrates With

  • @peac/protocol (Layer 3): signed-record issuance and verification
  • @peac/crypto (Layer 2): JWS signing and decoding
  • @peac/schema (Layer 1): Receipt schema validation
  • @peac/kernel (Layer 0): Error codes and constants
  • @modelcontextprotocol/sdk: MCP server and transport bindings

For Agent Developers

Connect your agent to this server over stdio or HTTP to gain signed-record verification, receipt decoding, and issuance capabilities. The tools use structured outputs with error codes and next_action recovery hints so your agent can handle failures programmatically. Every response includes _meta for audit and traceability.

Read-only tools (peac_verify, peac_inspect, peac_decode) are available with no configuration. To enable issuance, provide an Ed25519 signing key via --issuer-key and --issuer-id.

For Operators

The server applies static policy checks with configurable concurrency limits, input size bounds, JWS size caps, and tool timeouts. HTTP transport binds to localhost by default with CORS deny-all. The stdout fence prevents non-JSON-RPC output from corrupting the stdio transport.

Security properties: no ambient key discovery (keys must be explicitly provided), no implicit network fetches from tool handlers, path traversal prevention on bundle output, and session isolation on HTTP transport.

License

Apache-2.0


PEAC Protocol is an open source project stewarded by Originary and community contributors.

Docs | GitHub | Originary

Source: packages/mcp-server/README.md at commit 92956eb

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.15.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Signed integrations