Skip to main content
Version: v0.16.4

MCP Tool Run Records

PEAC records evidence for MCP tool invocations. When an AI agent calls a tool via the Model Context Protocol, PEAC can issue a signed record proving what was invoked, with what parameters (or a digest of them), and what the outcome was.

MCP server (5 built-in tools)

Install the PEAC MCP server for Claude Desktop, Cursor, VS Code, or any MCP client:

npm install -g @peac/mcp-server

Tools available:

  • peac_verify -- verify a record offline given a JWS and public key
  • peac_inspect -- decode and inspect a record's claims
  • peac_decode -- decode without signature verification
  • peac_issue -- issue a new signed record (requires signing key)
  • peac_create_bundle -- bundle multiple records into a portable archive

Carrying records in tool responses

Use @peac/mappings-mcp to attach records to MCP tool responses via _meta:

import { attachReceiptToMeta } from '@peac/mappings-mcp';
import { computeReceiptRef } from '@peac/schema';
import { issue } from '@peac/protocol';

const { jws } = await issue({
iss: 'https://issuer.example',
kind: 'evidence',
type: 'org.example/mcp-tool-run',
privateKey,
kid: 'peac-2026-03',
});
const receipt_ref = await computeReceiptRef(jws);
const meta = attachReceiptToMeta({}, { receipt_jws: jws, receipt_ref });

return {
content: [{ type: 'text', text: result }],
_meta: meta,
};

The carrier embeds org.peacprotocol/receipt_ref and org.peacprotocol/receipt_jws in _meta. On the consuming side, read it back with extractReceiptFromMetaAsync(response._meta) (8 KB embed limit).

Extension group

The org.peacprotocol/cli-execution profile records CLI tool executions (v0.14.1+). For MCP tool calls, use the standard interaction record with an appropriate type and extension claims.