About witnessd
witnessd is an MCP server for verifiable records of web pages and API responses. It independently fetches public content, hashes and timestamps it, archives it, and issues certificates, for agents that need evidence of terms or third-party data.
Key features
- 01Independently fetch public URLs or APIs
- 02Generate hashes and timestamps
- 03Archive responses and issue certificates
- 04Verify signatures and Merkle proofs
- 05Retrieve archived content by snapshot ID
Use cases
- 01Record a counterparty's published price or terms before a transaction
- 02Capture API data before acting on it
- 03Preserve what a page showed at a given time for a dispute
MCP support
The MCP server gives agents tools to witness URLs, retrieve certificates, and fetch snapshots. Certificates include signatures and Merkle proofs for independent verification; witnessing and snapshot retrieval are charged per call.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y witnessd-mcpWITNESSD_URLBase URL of the witnessd service (default https://witnessd.vip)EVM_PRIVATE_KEYSecretWallet key used to auto-pay x402 invoices in USDC on Base (either this or WITNESSD_API_KEY)WITNESSD_API_KEYSecretPrepaid witnessd credit key (alternative to EVM_PRIVATE_KEY)Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
3Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | The http(s) URL or API endpoint to witness |
Details
From the project READMEwitnessd-mcp
MCP server for witnessd — a neutral third-party witness for the machine-readable web.
Give your agent the ability to create tamper-evident evidence: witnessd independently fetches any public URL or API endpoint, hashes and timestamps the response, archives it, and issues a signed certificate. Snapshot hashes are Merkle-batched hourly and anchored on Base, so certificates verify forever — by anyone, without trusting the operator.
Use it before transacting with a counterparty ("witness their published price/terms"), before acting on third-party data ("witness what the API returned"), or whenever a dispute might later hinge on what a URL said at a moment in time.
Quick install
| You use | Run this |
|---|---|
| Claude Code (skill + MCP server in one step) | /plugin install witnessd --marketplace jschunter/witnessd-mcp |
| Any agent with Agent Skills (Cursor, Codex, Copilot, Gemini CLI and others) | npx skills add jschunter/witnessd-mcp |
| Any MCP client, MCP server only | npx -y witnessd-mcp (config below) |
The skill (plugin/skills/witnessd/SKILL.md) teaches an agent when a neutral witness is worth two cents: before paying an unfamiliar seller, before acting on third-party data, or when asked to prove what a page said. It also sets spending rules: at most 5 paid calls per task without approval, a one-line report of each call, and no paid retries in a loop. The MCP server gives the agent the tools.
On older Claude Code versions, run /plugin marketplace add jschunter/witnessd-mcp and then /plugin install witnessd@witnessd.
Tools
| Tool | Price | What it does |
|---|---|---|
witness_url | $0.02 | Independent fetch + hash + timestamp + archive of a URL right now; returns snapshot id + signed certificate |
get_certificate | free | Certificate for any snapshot id: manifest, Ed25519 signature, Merkle proof, Base anchor transaction |
retrieve_snapshot | $0.05 | The archived response body + certificate — works for any snapshot id, any payer (this is how third parties obtain evidence) |
Install
npx -y witnessd-mcp
Claude Desktop / Cursor config:
{
"mcpServers": {
"witnessd": {
"command": "npx",
"args": ["-y", "witnessd-mcp"],
"env": {
"EVM_PRIVATE_KEY": "0x…"
}
}
}
}
Payment — two options
Set one of these environment variables:
EVM_PRIVATE_KEY— a wallet key holding USDC on Base. The server auto-pays each call via x402 (the buyer only signs; no ETH needed for gas). Use a small dedicated wallet, never your main one.WITNESSD_API_KEY— a prepaid credit key (buy a $1 pack viaPOST https://witnessd.vip/api/credits, x402-payable).
Optional: WITNESSD_URL to point at a different witnessd instance (default https://witnessd.vip).
Verify without trusting us
Certificates are self-verifying: leaf_hash = sha256(canonical-json(manifest)), Ed25519-signed, Merkle-proven into an hourly batch root anchored on Base (calldata 0x + wtns1 + root). Standalone checker: witnessd.vip/verify.js.
Privacy & scope
Certificates (hashes, timestamps, proofs) are public; archived content is delivered only to paying requesters and never republished. witnessd only witnesses what any stranger can see — no logins, no private networks, bodies ≤10 MB. Machine-readable service docs: llms.txt · openapi.json · /.well-known/x402.
MIT license.
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.