
Citadel
dev.citadeldbPublished by citadeldb.devv2.7.0Updated Oct 24, 2026
Encrypted-first embedded database with vector search and agent memory, exposed as MCP tools
Overview
Citadel is a local MCP server that gives an assistant persistent, encrypted memory with hybrid vector, keyword, recency and importance recall.
- What you can do
- Recall and inspect memory: hybrid retrieval, cursor listing by kind, exact-id batch fetch, graph edges, query profiles and per-kind digests, plus integrity verification of stored atoms off disk. Write and maintain memory: store single atoms or atomic batches with idempotency, replace payloads in place, add or remove typed edges, and recompute neighbor links and importance. Forget selectively: policy-based eviction and id-based forgetting that returns an erasure receipt, optionally erasing derived atoms.
- When to use it
- Use it when an assistant should keep durable memory across sessions on the user's own machine and that memory must be encrypted at rest, with semantic recall and a typed graph rather than a flat note store. It suits agents or IDE clients that need to store, search, verify and selectively forget facts.
- Requirements
- Runs as a local stdio process, launched with uvx or installed via pip or cargo; desktop clients only. Requires the CITADEL_KEY environment variable holding the vault passphrase, a database path, and an embedder selection on every invocation. Semantic recall needs models pulled explicitly first (e5-large and ms-marco-minilm recommended); models are never downloaded automatically.
Installation
In SourceWeft
- Open Citadel in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
citadeldb-mcp
mcp-name: dev.citadeldb/mcp
Model Context Protocol (MCP) server for the Citadel encrypted memory engine. Gives any MCP client (Claude Desktop, an IDE, an agent) persistent, encrypted memory.
Memory lives in a local citadeldb-mem region:
AES-256 encrypted at rest, per-atom sealed and HMAC-authenticated, recalled through a hybrid
vector + keyword + recency + importance fusion over a PRISM approximate nearest-neighbor index,
connected by a typed edge graph, and forgotten by destroying keys (cryptographic erasure).
Install
Run it with no install. For semantic recall, pull the recommended embedder and cross-encoder reranker once, then enable both:
The pull commands do not open a vault. Before serving, set CITADEL_KEY to the vault
passphrase (export CITADEL_KEY="your-passphrase" on macOS/Linux or
$env:CITADEL_KEY = "your-passphrase" in PowerShell), then run:
e5-large + ms-marco-minilm is the recommended semantic-recall setup. See the
memory benchmarks
for measured configurations. Models are never downloaded automatically.
Built-in pulls use release-pinned Hugging Face revisions. Each complete snapshot is verified
against compiled sizes and SHA-256 digests, then stored with a BLAKE3 manifest under
<models-dir>/<name>/<revision>/. A flat cache created by an earlier CitadelDB release is not
trusted; run pull again to create the pinned snapshot. --model-dir and --reranker-dir
remain explicit bring-your-own-artifact paths and bypass the managed-cache manifest. Citadel
treats those directories as user-trusted and does not attest their contents.
Or install the command with pip install citadeldb-mcp or cargo install citadeldb-mcp,
then wire it into Claude Desktop (claude_desktop_config.json):
The server supports stateless MCP 2026-07-28 discovery and per-request metadata, plus the
initialize-based 2025-11-25 and 2025-06-18 revisions for existing clients.
Tools (over a bounded, cancellable JSON-RPC 2.0 stdio transport):
mem_recall- hybrid retrieval (vector + keyword + recency + importance); filter by kind/payload, expand along the memory graph, override fusion weights, and optionally attach provenance (derived_from), per-hit integrity verdicts (attest), andresource_links to each hitmem_fetch- deterministic cursor-based listing of a kind (no embedding)mem_get- bounded exact-id batch retrieval in request order, with missing atoms marked explicitlymem_edges- cursor-based typed graph introspectionmem_profile- what the memory knows about a query: recall plus its graph neighborhoodmem_summarize- per-kind digest of a regionmem_verify- re-authenticate atoms off disk: per-atom integrity verdict (authentic / tampered / key_erased / missing / plaintext_unattested)mem_remember- store one atom with optional provenance and retry-safe idempotencymem_remember_batch- atomically store an ordered batch; every entry carries a distinct idempotency key, and a changed reuse rejects the whole batchmem_update- replace a stored atom's payload in place (preserves id, edges, and embedding)mem_link/mem_unlink- add or remove one exact typed edgemem_evolve- recompute an atom's neighbor links and stored importancemem_evict- selective forgetting by policy (cryptographic erasure on encrypted regions)mem_forget- forget atoms by id and return a verifiable erasure receipt; optionally erase their region-localderived_fromclosure atomically (cryptographic erasure on encrypted regions; immutable atoms require the protected-erasure opt-in)
The citadeldb-mcp binary reads the passphrase from CITADEL_KEY and serves one region
(encrypted by default); only protocol messages go to stdout, diagnostics to stderr.
--region-mode plaintext disables per-atom encryption and cryptographic erasure for
that region; the database remains encrypted at rest. Erasure does not revoke plaintext
exports or keys retained in pre-erasure backups or snapshots.
Every server invocation must select an embedder. The CPU Candle embedder is compiled into the standalone server's
default build, including the citadeldb-mcp Python package; it is not included in the
default citadeldb library wheel. Models are fetched only on explicit pull.
Embedder pull names: e5-large (recommended), e5-large-v2, bge-small, bge-base,
bge-large, minilm. Reranker: ms-marco-minilm. Or point --model-dir at a
compatible local checkpoint for the selected catalog pipeline, and build with
--features cuda-embed to run on an NVIDIA GPU.
This crate is part of the Citadel workspace.
License
Apache-2.0
Source: crates/citadel-mcp/README.md at commit fa786b2
Tools
0Version history
4- v2.7.0LatestSep 28, 2026
- v2.6.1Sep 25, 2026
- v2.6.0Sep 24, 2026
- v2.5.0Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts

