← Blog · Auditability · April 14, 2026 · Rhumb · 8 min read
Evidence is not authority

Signed MCP Receipts Create Evidence After the Call. They Do Not Make the Call Safe

Signed tool-call receipts close a real auditability gap. They make execution history more verifiable after the fact. But the dangerous MCP failures usually happen earlier, when discovery, scope, or authority boundaries were wrong before the call ever ran.

What receipts change
signed receipts make tool-call history more verifiable after execution
a tamper-evident record does not answer whether the call should have been allowed
authority failures usually happen before the receipt layer can help
the strongest MCP systems pair bounded admission control with post-call evidence
The useful distinction

A receipt can help prove that a call happened. It cannot prove that the runtime should have exposed or admitted the call in the first place.

1. Ordinary MCP logs are often too soft for proof

Most tool-call traces still answer only one question well: what does this system say happened? That is helpful for debugging. It is not always enough for review, dispute resolution, or compliance.

Once agents can mutate repos, file tickets, send messages, touch customer data, or spend money, operators need something stronger than a mutable runtime narrative. They need execution artifacts another party can verify later.

2. Signed receipts strengthen evidence after execution

This is where signed receipts matter. They can turn a tool call into a verifiable artifact instead of a soft log line.

caller identity or proxy session identity
tool name and execution ordering
request arguments or stable digests
response body or result hash
tamper evidence through signing and chaining
reviewable artifacts for incident response and compliance

That makes receipts useful for incident review, forensic reconstruction, compliance evidence, and multi-agent accountability. They close the gap between logging for operations and evidence for later review.

3. The trap is confusing evidence with permission

A perfectly documented bad tool call is still a bad tool call. Receipts can prove that execution happened. They do not answer the admission-control questions that determine whether the execution should have happened.

Questions receipts do not answer
  • should this caller have seen this tool in discovery at all?
  • was the caller in the right trust class for this action?
  • did auth establish identity only, or actual authority for the tool?
  • was the side-effect class acceptable for the workflow?
  • should the runtime have blocked the call because the capability boundary was too broad?
  • was the backend principal mapped correctly before execution began?

4. The dangerous failures usually happen before the receipt layer can help

In MCP systems, the costly failures tend to be upstream of evidence. A runtime exposed too many tools, treated server auth as if it implied per-tool authority, flattened read and write into one trust blob, or shared backend credentials too broadly behind a neat front door.

Receipts make those mistakes easier to prove later. They are not what prevents them.

scoped discovery
trust-class-aware exposure
principal-to-tool mapping
clear side-effect classes
bounded capability surfaces
pre-request governors and typed denials

The stronger model is simple: bounded authority makes the call safer, and signed receipts make the call more accountable afterward.

5. The clean architecture is three layers, not one

The mistake is collapsing safety, evidence, and review into one story. Stronger operator systems separate them.

Layer 1, pre-call control

Before execution, the runtime needs to decide what the caller can see, what trust class applies, and what authority is actually being delegated. This is where the safety story lives.

Layer 2, execution evidence

Once a call is allowed, signed receipts make the execution trail more verifiable. This is where accountability gets stronger, not where permission is created.

Layer 3, post-call review

After execution, operators need verification, incident handling, dispute resolution, and compliance review. This is where evidence becomes operationally useful.

6. Receipts get stronger when joined to policy context

A signed blob alone is not the whole trust story. The strongest audit trail is a verifiable execution record that can be joined back to the policy and trust context that made the call admissible.

Context worth preserving
  • trust class
  • side-effect class
  • caller identity
  • policy decision
  • backend principal mapping
  • environment or tenant boundary

That is the difference between receipts as a neat debugging feature and receipts as part of a real trust architecture.

It is also where capability-first onboarding stops being a first-run story and becomes a production architecture question. Once the workflow crosses into shared or remote systems, the operator needs the wider discipline from production readiness, not just a cleaner execution trail after the fact.

Closing

Signed receipts close a real evidence gap. They just do not replace scope control, trust-class filtering, or authority decisions before execution. Proof matters most when the control plane was careful before the call ever ran.

Next honest step

Pair execution evidence with one bounded production lane

If the workflow now needs verifiable writes, do not stop at receipts alone. Start with capability-first onboarding and one governed execution path so proof, policy, and authority stay joined before the system expands into broader connector sprawl.

Related reading