Labsco
MCP SERVER

Agent Receipts

by webaesbyamin

Persistent agent memory as an entity-observation graph, with every observation and action signed into an Ed25519 receipt anyone can verify offline.

Agent Memory
Summary
Memory you can audit, not just query.

The interesting half is not the recall — it is that every fact carries a provenance chain back to the conversation that produced it, and every recorded action carries input and output hashes a third party can check against an exported public key. That is the difference between a log the agent wrote about itself and evidence. It runs entirely locally, so nothing is shared between machines unless you export a bundle.

What it is

A local MCP server that gives an agent memory across sessions and a cryptographic record of what it did. Memory is a graph — entities, observations, relationships — rather than a flat key-value store, and every fact links back to the conversation that created it. It runs on your machine against SQLite, with nothing leaving it.

What you get
  • Session memory: load everything known at the start, store what is learned, search it back, and soft-delete with the deletion itself recorded — `memory_context`, `memory_observe`, `memory_recall`, `memory_forget`
  • The graph itself: list entities, connect two of them, and trace one observation's provenance back to its source — `memory_entities`, `memory_relate`, `memory_provenance`
  • Actions recorded as signed receipts with input and output hashes, then verified independently — `track_action`, `create_receipt`, `complete_receipt`, `verify_receipt`
  • Receipt retrieval and chains: one receipt, a filtered list, or every receipt in a chain — `get_receipt`, `list_receipts`, `get_chain`
  • The Ed25519 public key exported so a third party can verify without touching your server — `get_public_key`
  • AI Judge evaluation against a rubric, with verdict and score attached to the receipt — `judge_receipt`, `complete_judgment`, `get_judgments`
  • Portable memory bundles exported and imported with verification, plus an operations audit report and expiry cleanup — `memory_export_bundle`, `memory_import_bundle`, `memory_audit`, `cleanup`
  • An invoice generated straight from receipts over a date range — `generate_invoice`
Requirements

`npx @agent-receipts/mcp-server` — no API key, no account, no cloud. Claude Code takes `claude mcp add agent-receipts -- npx @agent-receipts/mcp-server`; Claude Desktop and Cursor take the same command as a config entry. Data lives in `~/.agent-receipts/`: an SQLite database plus an Ed25519 key pair generated on first run, private key at mode 0600. `AGENT_RECEIPTS_DATA_DIR`, `AGENT_RECEIPTS_AGENT_ID` and `RECEIPT_SIGNING_PRIVATE_KEY` override the defaults. The published package is `@agent-receipts/mcp-server` (0.4.0 in server.json). Getting the agent to use memory unprompted takes the system prompt: `npx @agent-receipts/cli prompts claude-code`.

Setup effort

One command — npx @agent-receipts/mcp-server