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

VerifiedSTDIODesktop onlyDatabasesKnowledge & Memory

Overview

AI-generated 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.
Before you install
The passphrase in CITADEL_KEY unlocks the encrypted database, so protect it and the client config that stores it. Tools write, update, link and erase stored memory; forgetting is irreversible and erasure does not revoke plaintext exports or keys kept in earlier backups or snapshots. Plaintext region mode disables per-atom encryption and cryptographic erasure. Custom model directories bypass the managed-cache verification.

Installation

In SourceWeft

  1. Open Citadel in the dashboard and add it to a workspace.
  2. 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:

sh
uvx citadeldb-mcp pull e5-largeuvx citadeldb-mcp pull ms-marco-minilm

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:

sh
uvx citadeldb-mcp --db memory.cdl --embedder e5-large --reranker ms-marco-minilm

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):

json
{  "mcpServers": {    "citadel": {      "command": "citadeldb-mcp",      "args": ["--db", "/absolute/path/to/memory.cdl", "--embedder", "e5-large", "--reranker", "ms-marco-minilm"],      "env": { "CITADEL_KEY": "your-passphrase" }    }  }}

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), and resource_links to each hit
  • mem_fetch - deterministic cursor-based listing of a kind (no embedding)
  • mem_get - bounded exact-id batch retrieval in request order, with missing atoms marked explicitly
  • mem_edges - cursor-based typed graph introspection
  • mem_profile - what the memory knows about a query: recall plus its graph neighborhood
  • mem_summarize - per-kind digest of a region
  • mem_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 idempotency
  • mem_remember_batch - atomically store an ordered batch; every entry carries a distinct idempotency key, and a changed reuse rejects the whole batch
  • mem_update - replace a stored atom's payload in place (preserves id, edges, and embedding)
  • mem_link / mem_unlink - add or remove one exact typed edge
  • mem_evolve - recompute an atom's neighbor links and stored importance
  • mem_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-local derived_from closure 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

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

4
  1. v2.7.0LatestSep 28, 2026
  2. v2.6.1Sep 25, 2026
  3. v2.6.0Sep 24, 2026
  4. 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