mushroomdb

The graph that stays true — and knows who's allowed to see it.

mushroomdb is a Rust graph database you embed in your process or run as a server, with Cypher, the Bolt protocol, transactions and a queryable history. A relationship is a schema declaration: write a rule once, and every write derives, maintains and retracts the matching edges, each one carrying the rule, the score and the values that produced it.

Pre-1.0 alpha — APIs and formats may change between minor versions.

pip install mushroomdb

Also cargo add mushroomdb, npm install mushroomdb-client, the Docker image, and npx mushroomdb install --db ./memory to give Claude Code or Cursor a memory.

QuickstartRead the docs

A single SET changes one property; the rule fires, new scored edges are derived and the stale ones retracted, inside the same write

Declare the rule. The edges maintain themselves.

A rule is a schema object, not a script you re-run: connect every Person to every Org whose skills overlap theirs by at least 50%, written once. Every insert and every property change evaluates it incrementally, stores the score on the edge, and retracts the edge when the properties stop matching.

FIT edges before and after a SET that retracts one and fires another, then explain called on the edge that survives

Every derived edge shows its arithmetic.

explain names the rule, the field values that matched, and the computed score behind any link. An assistant answering "why are these two related?" can quote the derivation instead of guessing, and the same why panel is built into the bundled graph explorer.

The Rules panel and Why slide-over showing the overlap arithmetic behind a derived edge

One property changes. The graph catches up in the same write.

A Cypher SET in the built-in console changes a single property, the founded_within rule fires, and the new scored edges appear on the canvas. There is no re-index step and no batch job to schedule — the derivation happens inside the write that changed the property.

A Cypher SET changing one property, the founded_within rule firing, and new scored edges appearing in the explorer

Where it fits

What it is

  • An embedded, single-binary graph database with a rule engine that maintains edges for you.
  • A 25-tool MCP server — twenty-three listed on every store, a store built by ingest-git included — plus a /mushroom skill for Claude Code and Cursor.
  • Local-first: your data stays on disk, no cloud service, no model call anywhere: you bring your own embeddings.

What it isn't

  • Not a hosted service — you run it, embedded or from the image and the templates in deploy/.
  • Not a vector database. Vector predicates and HNSW are built in; bring your own embeddings.
  • Not a transactional relational database. Single writer, snapshot-isolated transactions, memory-first storage.