mcp server · hosted + stdio · three tools
Signed receipts for agent actions.
PCRZERO adjudicates an attestation document against a policy and hands back a cryptographically signed receipt pair — durable, independently checkable proof that this decision was made, by these keys, over this document. Any MCP-speaking agent can issue and verify them natively. No SDK, no integration project.
https://mcp.pcrzero.com/mcp — streamable-http, probed live at build. verify_receipt and get_keyset need no key.
@scytalex-llc/pcrzero-mcp — resolved on the public registry at build time.
hosted
No install. Point the client at the URL. Same three tools, same free-verify rule. A key is only required to issue (Authorization: Bearer).
Claude Code:
claude mcp add --transport http pcrzero https://mcp.pcrzero.com/mcpAny JSON-configured MCP client:
{
"mcpServers": {
"PCRZERO": {
"type": "streamable-http",
"url": "https://mcp.pcrzero.com/mcp"
}
}
}local, over stdio
The server runs over stdio — your agent host launches it; nothing listens on a port. Requires Node 22 or later.
1 Add the server. No key, no account.
Claude Code:
claude mcp add pcrzero -- npx -y @scytalex-llc/pcrzero-mcpClaude Desktop, or any JSON-configured MCP client:
{ "mcpServers": { "PCRZERO": { "command": "npx", "args": ["-y", "@scytalex-llc/pcrzero-mcp"] } } }2 Verify something. Still free.
verify_receiptandget_keysetwork immediately, with no key configured and no account anywhere. The check below is that tool, running in this tab against the published specimen. Hand your agent the same files and you should see the samevalid.3 Add a key only when you want to issue.
There is no signup page yet, so here is the call that works. It mails a confirmation link, and the key is shown once on the page that link opens — copy it before you close the tab.
curl -X POST https://api.pcrzero.com/v1/signup \ -H 'content-type: application/json' \ -d '{"email":"you@company.com"}'Then re-add the server with the key in its environment:
claude mcp add pcrzero -e PCRZERO_API_KEY=<your-key> -- npx -y @scytalex-llc/pcrzero-mcp
Listed on the official MCP registry as com.pcrzero/mcp, on Smithery, and on mcpservers.org.
the three tools
- issue_receiptmetered
Adjudicates an attestation document against a policy and returns the verdict together with a signed receipt pair. Every call bills one
receipt_verificationsunit, and afailverdict bills exactly like apass— you are paying for the adjudication, not for the answer you wanted. - verify_receiptfree
Checks a PCRZERO receipt pair against the signing keyset: whether the signature holds, and whether the receipt says what it appears to say. Free, with no API key and no account, and it stays free. Offline by default — supply
keysetand this call touches the network not at all; the result fieldkeyset_sourcetells you which of the two happened, every time. - get_keysetfree
Returns the current PCRZERO signing keyset — key ids, public halves, each key’s status. Public and unauthenticated — the same document an outside party fetches to check a PCRZERO receipt without trusting us.
auth, exactly
PCRZERO_API_KEY in the server’s environment, via your MCP client configuration. It is sent as a bearer header on issue_receipt calls and used nowhere else: the key never appears in tool results, error text, or logs — not even redacted. With no key configured, issue_receipt refuses cleanly and the two free tools keep working. API errors pass through verbatim; this server never rewrites, retries, or softens a billing refusal.
Issuing is metered per receipt; the two verify tools are free and stay that way. Rates live on the pricing page rather than baked into the server, where a number would go stale inside your agent’s config.
verify_receipt, in this tab
A PCRZERO receipt is checkable by anyone holding the public keyset — including people who are not our customers and never will be. The run below is the free tool: same published receipt rcp_pom_synthetic_119_0001, same vendored verifier, no account. If we disappeared tomorrow, this check would still be the check.
Nothing has been checked in this browser yet.