Dakera
Selbst gehosteter, auf Rust basierender MCP-Server für KI-Agentenspeicher — persistenter, abfragbarer Speicher mit hybrider Suche, Wissensgraphen, integrierten Embeddings und 14 Kernwerkzeugen (erweiterbar auf über 86 mit profilbasierter Abstufung).
Dokumentation
⚡ dakera-mcp
MCP server for Dakera AI. Gives any MCP-compatible AI agent persistent, queryable memory — with smart token management built in.
Works with Claude, Claude Code, and any MCP-compatible framework.
Part of Dakera AI — the memory engine for AI agents.
The Dakera memory engine scores 88.2% Recall@20 on LoCoMo (1,536 evaluated questions · LLM-judged retrieval recall) — benchmark details
Architecture: 14 core tools + on-demand discovery
Starting every agent session with 60+ tool schemas wastes ~15K tokens before you write a single message. dakera-mcp solves this with hybrid tool exposure:
- 14 tools loaded by default — the 12 highest-frequency memory operations + 2 meta-discovery tools
- On-demand expansion — use
dakera_discover_toolsanddakera_load_toolsto fetch additional tool schemas only when you need them
Default tool set (core profile)
| Tool | Purpose |
|---|---|
dakera_store | Store a memory with importance, tags, and type |
dakera_recall | Semantic recall by query text |
dakera_search | Advanced memory search with tag/type filters |
dakera_session_start | Start a session to group related memories |
dakera_session_end | End a session with optional summary |
dakera_batch_recall | Bulk filter-based recall (by tags, importance, time) |
dakera_forget | Delete specific memories by ID |
dakera_hybrid_search | Combined vector + BM25 search |
dakera_fulltext_search | BM25 full-text search |
dakera_knowledge_graph | Build a knowledge graph from a seed memory |
dakera_extract | Extract entities and structure from free-form text |
dakera_batch_forget | Bulk delete by tags, type, or time range |
dakera_discover_tools | Search the full tool catalog by keyword or tier |
dakera_load_tools | Load full schemas for specific tools on demand |
Profiles & token cost
| Profile | Tools | ~Tokens | How to enable |
|---|---|---|---|
| core | 14 | ~3,350 | Default — always loaded |
| admin | 34 | ~6,700 | DAKERA_MCP_PROFILE=admin |
| power | 79 | ~16,600 | DAKERA_MCP_PROFILE=power |
| all | 99 | ~19,950 | DAKERA_MCP_PROFILE=all |
Token figures are estimates (JSON bytes / 3). The attachment tools below count in power and all,
but only appear while the connected server has the feature on (see Dakera v0.12).
Accessing additional tools
# In your agent: discover what's available
dakera_discover_tools(tier="power")
→ returns names + descriptions, no schemas loaded
# Load schemas for the tools you want
dakera_load_tools(tools=["dakera_consolidate", "dakera_agent_stats"])
→ returns full inputSchema for each tool
Profile selection
The profile controls which tools appear in tools/list. Three ways to set it:
1. Per-request (in tools/list params):
{"profile": "power"}
2. Environment variable (applies to all requests):
DAKERA_MCP_PROFILE=power
3. Default: core (14 tools, ~3,350 tokens)
Dakera v0.12
dakera-mcp 0.11 works against Dakera v0.11.108 and v0.12.0 servers. Every v0.11 tool keeps its name and arguments; the v0.12 additions are optional arguments that are sent only when you supply them, and tools that call v0.12 routes.
| Dakera server | dakera-mcp 0.11 |
|---|---|
| v0.12.0 | every tool; the attachment tools while DAKERA_ATTACHMENTS (and DAKERA_VISION for images) is on |
| v0.11.108 | every v0.11 tool unchanged; the attachment tools, dakera_encryption_status and dakera_embed_migration_status are not listed (a direct call says they need v0.12); dakera_encryption_rotate_key needs new_key |
| older | not tested |
What is new
| Tool | Tier | Needs | What it does |
|---|---|---|---|
dakera_capabilities | power | v0.12 | GET /v1/capabilities: active model, search mode, scoring strategy, accepted lang values, which opt-in features are on. On a v0.11 server it answers capabilities_available: false |
dakera_health | power | any | GET /health: status and version; on v0.12 also degraded, config_warnings, embed_migration |
dakera_wake_up | power | any | an agent's startup context in one call: its top memories by importance x recency, no query, no embedding |
dakera_embed_migration_status | admin | v0.12 | progress of the one-time background re-embed after the upgrade |
dakera_encryption_status | admin | v0.12 | the encryption keyring and the background re-seal (never key material) |
dakera_encryption_rotate_key | admin | v0.11+ | new_key is optional on v0.12 once encryption is on (the server generates a key; with encryption off, new_key turns it on); wait_secs (at most 20); namespace rotates one namespace |
dakera_attachment_upload / _list / _download / _delete | power | v0.12 + DAKERA_ATTACHMENTS | files (or text) a memory can reference with dakera_store attachment_ref |
dakera_attachment_transcribe | power | v0.12 + DAKERA_ATTACHMENTS | WAV speech to text in any language the model knows (lang forces one) into a memory; a background job, wait_seconds (at most 45) waits for it |
dakera_attachment_index_image | power | v0.12 + DAKERA_ATTACHMENTS + DAKERA_VISION | PNG page as a visual memory (use an agent dedicated to images: the visual lane stores page vectors) |
dakera_attachment_job | power | v0.12 + DAKERA_ATTACHMENTS | status of a transcription / index job |
Per-request lang (en, de, fr, es, it, pt, nl; v0.12) is accepted by dakera_store,
dakera_recall, dakera_recall_associated, dakera_search, dakera_memory_update, dakera_extract,
dakera_auto_tag and the attachment jobs;
dakera_store also takes attachment_ref (sha256:<hex> of an attachment in the agent's own namespace,
_dakera_agent_<agent_id>). Neither is sent unless given, so the same calls work on a v0.11.108 server.
Other optional arguments (all servers): ttl_seconds and metadata on dakera_store; tags,
memory_type and session_id filters on dakera_recall; limit on dakera_batch_recall;
limit / offset on dakera_session_list, dakera_session_memories and dakera_agent_sessions
(the server pages at 50); memory_type on dakera_knowledge_deduplicate; dedup_on_store /
dedup_threshold on dakera_memory_policy_set.
Features the server has off are left out
The opt-in features (attachments, speech to text, image indexing) are off by default on the server.
dakera-mcp asks GET /v1/capabilities (once a minute, 3 s timeout) before it lists tools:
attachmentsoff, or a server without/v1/capabilities(v0.11): thedakera_attachment_*tools are not listed and not returned bydakera_discover_tools; a direct call answers with the variable to set (DAKERA_ATTACHMENTS=1) and makes no request.visionoff:dakera_attachment_index_imageis left out (DAKERA_VISION=1turns it on).- A server without
/v1/capabilities(v0.11) also hidesdakera_encryption_statusanddakera_embed_migration_status, whose routes are new in v0.12. - The server cannot be asked (down, starting, key refused): nothing is hidden (asked again after 10 s).
The default core profile has no opt-in tools, so it never makes that request.
Errors
Error answers keep the server's text and add a Hint: line for the v0.12 cases: a key pinned to
namespaces gets 403 on node-wide /admin routes (backups, encryption, quotas, config); backup
download, upload and restore need super_admin; 413 (body over a limit, or a hard quota), 501
(feature off), 503 (Retry-After, which the retry logic now honours, up to 8 s) and 429 (rate
limit). A route the server lacks (an older server) and a v0.11 rotation without new_key get a hint
too. A request that timed out is retried only when it is safe to repeat (GET, PUT, DELETE): a store,
an import or a key rotation is never sent twice.
Run Dakera
The MCP server connects to a Dakera memory server. You need one running first:
docker run -d \
--name dakera \
-p 3000:3000 \
-e DAKERA_ROOT_API_KEY=dk-mykey \
ghcr.io/dakera-ai/dakera:latest
For persistent storage (recommended):
curl -sSfL https://raw.githubusercontent.com/Dakera-AI/dakera-deploy/main/docker-compose.yml \
-o docker-compose.yml
DAKERA_API_KEY=dk-mykey docker compose up -d
curl http://localhost:3000/health # → {"status":"ok"}
Full deployment guide (Docker Compose, Kubernetes, Helm): dakera-deploy
Install
npm / npx (Node.js 18+)
# Global install
npm install -g @dakera-ai/dakera-mcp
# Or run directly without installing
npx @dakera-ai/dakera-mcp
Homebrew (macOS / Linux)
brew install dakera-ai/tap/dakera-mcp
Cargo
cargo install dakera-mcp
Docker
docker pull ghcr.io/dakera-ai/dakera-mcp:latest
Binary download
Pre-built binaries for macOS, Linux, and Windows are available on the releases page.
| Platform | File |
|---|---|
| macOS (Apple Silicon) | dakera-mcp-aarch64-apple-darwin.tar.gz |
| macOS (Intel) | dakera-mcp-x86_64-apple-darwin.tar.gz |
| Linux x64 | dakera-mcp-x86_64-unknown-linux-musl.tar.gz |
| Linux arm64 | dakera-mcp-aarch64-unknown-linux-musl.tar.gz |
| Windows x64 | dakera-mcp-x86_64-pc-windows-msvc.zip |
Connect
Add to .mcp.json (Claude Code) or claude_desktop_config.json (Claude Desktop):
{
"mcpServers": {
"dakera": {
"command": "dakera-mcp",
"env": {
"DAKERA_API_URL": "http://localhost:3000",
"DAKERA_API_KEY": "your-key"
}
}
}
}
To start with the power profile (exposes up to 79 tools):
{
"mcpServers": {
"dakera": {
"command": "dakera-mcp",
"env": {
"DAKERA_API_URL": "http://localhost:3000",
"DAKERA_API_KEY": "your-key",
"DAKERA_MCP_PROFILE": "power"
}
}
}
}
Why This Exists
AI agents forget everything when the session ends. Dakera fixes that. This MCP server gives your agent a persistent memory layer with zero infrastructure overhead — point it at a Dakera instance and it works.
The 14-tool default keeps your context window lean. The meta-tools let you expand on demand when you need advanced operations like bulk vector upsert, knowledge graph traversal, or memory federation.
→ dakera.ai for hosted instance
→ Self-host with dakera-deploy
Documentation
Related
| Repo | What it is |
|---|---|
| dakera-py | Python SDK |
| dakera-js | TypeScript SDK |
| dakera-cli | CLI |
| dakera-deploy | Self-host Dakera |
dakera.ai · Documentation · Request Early Access
Part of the Dakera AI open-core ecosystem. Built with Rust. Self-hosted. Zero dependencies.