Recall is deterministic and runs without a model call, so remembering costs nothing per turn and the same query returns the same rows. The reason to pick it over a plain vector store is forget: it destroys the atom's key, which leaves the ciphertext unrecoverable rather than merely deleted.
The MCP front end of Citadel, an encrypted embedded database. citadeldb-mcp opens one Citadel memory region and exposes it to any MCP client, so an assistant can write facts into it and search them back in a later session. Nothing is sent to a language model to build or search the memory.
- remember — store a raw fact in the region; no model runs at ingest, so writing costs no tokens
- recall — search the region by relevance, combining embeddings, BM25 keyword matching and an optional cross-encoder reranker
- forget — erase an atom by destroying its key rather than its row; the receipt reports AES-256-KW(RFC3394) cryptographic erasure
- link, evolve and verify — the remaining three tools the server exposes on the region
A passphrase in CITADEL_KEY and a --db path to the region file. Clients run it with uvx citadeldb-mcp over stdio; pip and cargo installs also work. For the recall quality the published benchmarks use, pull e5-large and ms-marco-minilm first and pass --embedder e5-large --reranker ms-marco-minilm; omit both for keyword-only recall.
One command plus a key — uvx citadeldb-mcp, then supply credentials
