About Vouchwell
Vouchwell is a read-only CLI and proxy for teams that need policy checks and independently verifiable evidence of AI agent actions. It records decisions in a cryptographically chained, append-only log.
Key features
- 01Policy-gated MCP tool calls
- 02Signed, chained audit receipts
- 03Merkle-log inclusion proofs
- 04Exportable third-party evidence
- 05Log verification and inspection
Use cases
- 01Block disallowed tool calls before execution
- 02Audit agent actions for compliance
- 03Verify log integrity in CI
- 04Share verifiable evidence with auditors
MCP support
Vouchwell wraps an MCP server as a proxy, checking each tool call against policy and recording its decision as a receipt. MCP clients connect through the proxy rather than directly to the wrapped server.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
5Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| tail | integer | No | How many of the latest matching receipts to return (default 20). |
| denied | boolean | No | Only calls the policy refused or escalated. |
| target | string | No | Only tools whose name contains this text. |
| session | string | No | Only this session. |
| unfinished | boolean | No | Only calls that were authorised and sent but never reported a result. |
| would_block | boolean | No | Only calls monitor mode let through that the policy would have blocked. |
Details
From the project READMEvouchwell
Tamper-evident receipts for AI agent actions.
Your agents spend money, send mail, and touch customer data. When something goes wrong, "our logs say it didn't" is not an answer — your logs are a text file you can edit.
Vouchwell makes every agent action policy-gated before it runs and cryptographically provable afterwards.
npm install -g vouchwell
vw init
Then wrap any MCP server — this is the whole integration:
// .mcp.json — before
{ "command": "npx", "args": ["-y", "@acme/mcp-crm"] }
// after
{ "command": "vw", "args": ["proxy", "--namespace", "crm", "--", "npx", "-y", "@acme/mcp-crm"] }
Every tool call now hits your policy first, and every decision — allowed, blocked, or escalated to a human — lands in an append-only log an outside party can verify without trusting you.
BLOCKED ops.query destructive SQL from an agent is never permitted
BLOCKED ops.refund budget refunds.daily would be exceeded: 45 already
committed plus 90 proposed, against a cap of 100 per 24h
BLOCKED ops.query arguments contain anthropic_key; policy forbids sending
these to a tool
Why it is not just logging
Everyone is building agent observability — dashboards you have to take on faith. Vouchwell builds agent evidence: a record whose integrity a third party can check independently, using nothing but the file you hand them.
- Signed — Ed25519 over an RFC 8785 canonical form.
- Chained — each receipt commits to its predecessor's hash.
- Tree-anchored — RFC 6962 Merkle log, the construction Certificate Transparency uses. Verified against the published CT reference vectors.
- Sealed — arguments are salted commitments, not payloads. Destroy the salts and those payloads become permanently unopenable while every proof still verifies, so a GDPR erasure does not gut the audit trail.
Commands
vw init create a log, a starter policy, and a config
vw proxy -- <cmd...> wrap an MCP server; enforce policy, write receipts
vw log / vw stats / vw dash inspect
vw verify audit the local log end to end
vw prove <seq> inclusion proof for one receipt
vw export / vw check evidence bundle for a third party, and verify one
vw remote add / vw push connect to a hub and ship receipts
vw cosign have an independent witness counter-sign your root
vw shred --before <date> destroy payload commitments, keep the audit trail
vw verify exits non-zero when a log has been altered — put it in CI.
What it does not do
- It cannot prove an action it never saw. An agent with a second, unwrapped path to the same API leaves no receipt.
- The cryptography has not been reviewed by anyone independent. It is pinned to published RFC 6962 and RFC 8032 vectors rather than only to itself, but that is not the same thing.
Full threat model: https://github.com/vouchwell/vouchwell/blob/main/docs/THREAT-MODEL.md
Part of Vouchwell
| Package | What it is |
|---|---|
vouchwell | The vw CLI — start here |
@vouchwell/core | Receipts, Merkle log, policy engine. Zero dependencies. |
@vouchwell/proxy | The MCP proxy and the hub client |
@vouchwell/server | The multi-tenant hub |
@vouchwell/dashboard | Local read-only dashboard |
Full documentation: https://github.com/vouchwell/vouchwell
Apache-2.0. The format, the verifier and the CLI are open and stay open: evidence you cannot verify without a vendor's permission is not evidence.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.