mcpField
C
Citadel

Citadel

Local
citadeldb.devMemory & Knowledge3Updated 4w ago

About Citadel

Citadel is an MCP server for the Citadel encrypted memory engine, giving MCP clients, IDEs, and agents persistent memory. It combines vector and keyword retrieval with a typed graph, and supports cryptographic erasure by destroying keys.

Key features

  1. 01Encrypted persistent memory
  2. 02Hybrid vector and keyword search
  3. 03Typed memory graph
  4. 04Per-atom integrity verification
  5. 05Key-destruction-based forgetting
  6. 06Batch memory writes and updates

Use cases

  1. 01Keep agent memory across sessions
  2. 02Retrieve memories by meaning and keywords
  3. 03Check memory data for tampering
  4. 04Forget or erase memories by policy

MCP support

Exposes stdio JSON-RPC tools through an MCP server for storing, retrieving, linking, verifying, and forgetting memory.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"dev-citadeldb": {
"command": "uvx",
"args": [
"citadeldb-mcp"
],
"env": {
"CITADEL_KEY": "<CITADEL_KEY>"
}
}
}
}
Run commanduvx citadeldb-mcp
Environment variables to set
CITADEL_KEYSecretPassphrase used to unlock the encrypted Citadel database

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypicitadeldb-mcp2.7.0

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project 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:

uvx citadeldb-mcp pull e5-large
uvx 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:

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

{
  "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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.