protect-mcp-setup

Configure Cedar policy enforcement and Ed25519 signed receipts for Claude Code tool calls. Use when setting up projects that need cryptographic audit trails, policy-gated tool execution, or compliance-ready evidence of agent actions.

By wshobson · 4,797 installs

npx skills add wshobson/agents --skill protect-mcp-setup

Source repository · Upstream listing

protect mcp — Policy Enforcement + Signed Receipts Cryptographic governance for every Claude Code tool call. Each invocation is evaluated against a Cedar policy and produces an Ed25519 signed receipt that anyone can verify offline. Overview Claude Code runs powerful tools: Bash , Edit , Write , WebFetch . By default there is no audit trail, no policy enforcement, and no way to prove what was decided after the fact. protect mcp closes all three gaps: Cedar policies (AWS's open authorization engine) evaluate every tool call before execution. Cedar deny is authoritative. Ed25519 receipts record the name of each tool that ran, signed with your key. Offline verification via npx @veritasacta/verify . No server, no account, no trust in the operator. Problem AI agents make decisions that affect money, safety, and rights. The Claude Code session log records what happened, but the log is: Mutable — anyone with access can edit it Unsigned — there is no way to prove integrity Operator bound — verification requires trusting whoever holds the log For compliance contexts (finance, healthcare, regulated research), this is not sufficient. You need tamper evident evidence that can be verified by third parties without trusting you. Solution Add protect mcp to your Claude Code project: Hook Configuration Installing the plugin adds both hooks from hooks/hooks.json . Each hook runs a script bundled with the plugin: Claude Code passes the hook event to the command as JSON on stdin and does not set TOOL NAME or TOOL INPUT variables. evaluate.sh reads tool name and tool input from that payload and passes them to protect mcp as flags; sign.sh reads tool name only, because the 0.7.4 signer records nothing else. Set PROTECT MCP POLICY , PROTECT MCP RECEIPTS , and PROTECT MCP KEY to change the default paths. When the policy file is missing, the PreToolUse hook prints a warning to stderr and allows the call. What each hook does PreToolUse — Runs BEFORE the tool executes. Evaluates the tool call against your Cedar policy file. If Cedar returns deny , the hook exits with code 2 and Claude Code blocks the tool call entirely. PostToolUse runs AFTER the tool completes. It signs a receipt that names the tool and appends it to ./receipts/receipts.jsonl . protect mcp 0.7.4 does not record the tool input or output. Cedar Policy File Create ./protect.cedar at the project root: String matching is best effort: like checks the raw string, not a resolved path, and an npm permit runs arbitrary code, so it is only as safe as the project's scripts. Verification Verify every receipt against the public key in ./protect mcp.key : The plugin's slash commands do the same inside Claude Code. /verify receipt takes one receipt in its own file, e.g., from tail n 1 ./receipts/receipts.jsonl receipt.json . Receipt Format Each receipt is one line of ./receipts/receipts.jsonl . See [ references/receipt format.md ](references/receipt format.md) for a sample. Ed25519 signatures (RFC 8032) over all fields but signature JCS canonicalization (RFC 8785) before signing No public key in the receipt, so pass it with key No link to the previous receipt , so a deleted line goes undetected Why This Matters Before After "Trust me, the agent only read files" Cryptographically provable: every Read logged and signed "The log shows it happened" The receipt proves it happened, and no one can edit it "You'd have to audit our system" Anyone can verify every receipt offline "Logs might be different by now" Ed25519 signatures lock the record at signing time Standards Ed25519 — RFC 8032 (digital signatures) JCS — RFC 8785 (deterministic JSON canonicalization) Cedar — AWS's open authorization policy language IETF draft — [draft farley acta signed receipts](https://datatracker.ietf.org/doc/draft farley acta signed receipts/) Related npm : [protect mcp](https://www.npmjs.com/package/protect mcp) Verify CLI : [@veritasacta/verify](https://www.npmjs.com/package/@veritasacta/verify) Source : [github.com/ScopeBlind/scopeblind gateway](https://github.com/ScopeBlind/scopeblind gateway) Protocol : [veritasacta.com](https://veritasacta.com) Integrations : Microsoft Agent Governance Toolkit (PR 667), AWS cedar policy/cedar for agents (PR 64)