LabscoMCP early access ↗
webaesbyaminMCP SERVER · OFFICIAL PROJECT

Agent Receipts

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

by webaesbyamin ↗Agent Memory✓ Official

LABSCO 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