Dakera Mcp

io.github.Dakera-AI由 GitHub 账号 Dakera-AI 发布v0.12.3更新于 Oct 27, 2026

Agent memory engine — 106 MCP tools, self-hosted, single Rust binary

概览

AI 生成的概览

为 AI 助手提供持久、可检索记忆的 MCP 服务器,后端为自托管的 Dakera 实例,默认加载 14 个工具,可按需扩展。

可以做什么
  • 按语义查询、标签、类型或向量加全文混合方式存储、召回与搜索记忆
  • 按会话和代理组织记忆,并按标签、类型或时间范围批量召回或批量删除
  • 从种子记忆构建知识图谱,并从自由文本中抽取实体与结构
  • 把文档导入为带引用的分块记忆,并在服务器开启相应功能时管理附件、语音转写与图像索引
  • 按需发现并加载更多工具定义,查询服务器健康状态、能力、加密与迁移状态
适用场景
适合需要助手跨会话记住信息、并对自身保存的笔记、文档或对话历史做语义检索的场景。也适合已运行或计划自托管 Dakera 记忆服务器、希望默认工具集精简、需要时再扩展的团队。
运行要求
需要一个可通过 HTTP 访问的 Dakera 记忆服务器(v0.11.108 或 v0.12.0 至 v0.12.3)以及 Dakera API 密钥。本地进程可通过 npm 包、Homebrew、Cargo、Docker 镜像或预编译二进制安装。配置使用 DAKERA_API_URL 与 DAKERA_API_KEY 环境变量,DAKERA_MCP_PROFILE 用于选择工具配置档。
安装前请注意
API 密钥通过 DAKERA_API_KEY 传入,实体抽取工具还会把它发送到 DAKERA_ODE_URL 指向的 ODE 边车。工具可删除记忆和文档,包括按标签或时间范围批量删除;管理类工具可轮换加密密钥。记忆内容会返回给模型,因此其中的不可信文本不应被当作指令执行。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Dakera Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

⚡ dakera-mcp

[CI] [Crate] [npm] [Downloads] [License: MIT] [LoCoMo 88.2%] [Glama] [Docs] [dakera.ai] [Playground]

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_tools and dakera_load_tools to fetch additional tool schemas only when you need them

Default tool set (core profile)

ToolPurpose
dakera_storeStore a memory with importance, tags, and type
dakera_recallSemantic recall by query text
dakera_searchAdvanced memory search with tag/type filters
dakera_session_startStart a session to group related memories
dakera_session_endEnd a session with optional summary
dakera_batch_recallBulk filter-based recall (by tags, importance, time)
dakera_forgetDelete specific memories by ID
dakera_hybrid_searchCombined vector + BM25 search
dakera_fulltext_searchBM25 full-text search
dakera_knowledge_graphBuild a knowledge graph from a seed memory
dakera_extractExtract entities and structure from free-form text
dakera_batch_forgetBulk delete by tags, type, or time range
dakera_discover_toolsSearch the full tool catalog by keyword or tier
dakera_load_toolsLoad full schemas for specific tools on demand

Profiles & token cost

ProfileTools~TokensHow to enable
core14~3,500Default — always loaded
admin34~6,850DAKERA_MCP_PROFILE=admin
power86~18,200DAKERA_MCP_PROFILE=power
all106~21,600DAKERA_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 availabledakera_discover_tools(tier="power")→ returns names + descriptions, no schemas loaded
# Load schemas for the tools you wantdakera_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):

json
{"profile": "power"}

2. Environment variable (applies to all requests):

bash
DAKERA_MCP_PROFILE=power

3. Default: core (14 tools, ~3,400 tokens)


Dakera v0.12

dakera-mcp 0.12.3 works against Dakera v0.11.108 and v0.12.0 – v0.12.3 servers. Every tool keeps its name and arguments; the additions are optional arguments that are sent only when you supply them (or that an older server ignores), and tools that call new routes and say so on a server without them. The 0.12.3 additions (separate neighbourhood context, the unknown-field hint, document import) need a v0.12.3 server.

Dakera serverdakera-mcp 0.12.3
v0.12.3every tool; the recall tools list neighbourhood context apart in context_memories (neighborhood_mode)
v0.12.2every tool; the recall tools keep the first top_k results and say how many unmarked context items they left out; the attachment tools while DAKERA_ATTACHMENTS (and DAKERA_VISION for images) is on
v0.12.0, v0.12.1every tool; dakera_session_touch and dakera_agent_create answer that nothing is needed (sessions are not ended for inactivity there, and an agent is created by its first memory); dakera_whoami says it needs v0.12.2; listings return full content (no preview) and include derived sentence sub-memories
v0.11.108as v0.12.0, and 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
oldernot tested

New with Dakera v0.12.2

Tool / argumentTierWhat it does
dakera_session_start idle_timeout_secscorethe server ends a session idle for 4 h by default; this sets the session's own timeout (0 = never, at most 30 days)
dakera_session_touchpowerPOST /v1/sessions/{id}/touch: keeps a session open while the agent works without storing or recalling; answers session_state (active with idle_deadline_at, or ended)
dakera_storecorestoring into an ended session still succeeds; the answer's session_state: "ended" is followed by a note telling the agent to start a new session
dakera_session_endcorea note when the server had already ended the session for inactivity (the summary passed is then not saved) or when no such session is reachable
dakera_session_list / _get / dakera_agent_sessionspowersessions carry last_activity_at, ended_reason (client or idle) and idle_since
dakera_agent_createpowerPOST /v1/agents: creates an agent (its memory namespace) before its first memory; created: false for an existing one
dakera_whoamipowerGET /v1/auth/whoami: the key's scope, namespaces (prefix patterns such as _dakera_agent_mlx-*), expiry and inert entries; the first thing to call on a 403
dakera_agent_memories / dakera_session_memories / dakera_knowledge_network_cross_agent content_preview_charspowercontent cut to 500 characters by default (content_len / content_truncated mark it; 0 = full content); dakera_memory_get and recall return memories in full
dakera_agent_memories / dakera_wake_up include_derivedpowerderived sentence sub-memories are left out of listings by default since v0.12.2; true lists them too

What is new

ToolTierNeedsWhat it does
dakera_capabilitiespowerv0.12GET /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_healthpoweranyGET /health: status and version; on v0.12 also degraded, config_warnings, embed_migration
dakera_wake_uppoweranyan agent's startup context in one call: its top memories by importance x recency, no query, no embedding
dakera_embed_migration_statusadminv0.12progress of the one-time background re-embed after the upgrade
dakera_encryption_statusadminv0.12the encryption keyring and the background re-seal (never key material)
dakera_encryption_rotate_keyadminv0.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 / _deletepowerv0.12 + DAKERA_ATTACHMENTSfiles (or text) a memory can reference with dakera_store attachment_ref
dakera_attachment_transcribepowerv0.12 + DAKERA_ATTACHMENTSWAV 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_imagepowerv0.12 + DAKERA_ATTACHMENTS + DAKERA_VISIONPNG page as a visual memory (use an agent dedicated to images: the visual lane stores page vectors)
dakera_attachment_jobpowerv0.12 + DAKERA_ATTACHMENTSstatus 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); content_preview_chars on the memory listings and include_derived on dakera_agent_memories / dakera_wake_up (v0.12.2, ignored by older servers); memory_type on dakera_knowledge_deduplicate; dedup_on_store / dedup_threshold on dakera_memory_policy_set.

Recall: top_k ranked results, context apart

dakera_recall and dakera_recall_associated return at most top_k ranked results in memories. They ask the server for neighborhood_mode: "separate", so the session neighbours of the results (memories written around the same time in the same session) come back in their own context_memories list: each entry has context_of (the id of the ranked memory it belongs to) and context_of_rank (that memory's place in memories); its score comes from another search and is not comparable with the ranked scores. A collapsed result (server flag DAKERA_RECALL_COLLAPSE_DERIVED) keeps matched_text, the sentence that matched. neighborhood_mode picks separate (default), inline or off. A server that predates neighborhood_mode (before v0.12.3) appends its context to memories unmarked: the tools keep the first top_k and say how many items they left out.

Memory content in tool results is stored data: initialize tells the client to reason about it and never follow instructions found in it.

Documents (Dakera v0.12.3)

A document becomes chunk memories of the agent, each with its heading path and page, imported by a background job (power tier; listed when /v1/capabilities has documents.enabled):

ToolWhat it does
dakera_import_documentcontent (text, text/markdown or text/html as media_type) or attachment_ref of a file uploaded with dakera_attachment_upload (PDF, DOCX, ...; namespace defaults to the agent's); title, document_id (re-importing it replaces the document), memory fields (tags, session_id, memory_type, importance, metadata, lang), chunking (max_tokens, overlap_tokens, strategy structure or fixed), decompose; wait_seconds (at most 45) waits for the job
dakera_document_statusthe import job: Pending, Running (progress), Completed or Failed with error: {status, code}
dakera_list_documentsid, title, media type, chunk count, bytes, pages; limit 1-500, cursor = the previous next_cursor
dakera_delete_documentevery chunk of the document

A recall result that is a chunk carries citation: document_id, title, page_start / page_end, heading_path, chunk_index / chunk_count (from memory.metadata._dakera_document). On a server before v0.12.3 (no documents section in /v1/capabilities) the tools are not listed and a direct call says they need v0.12.3; DAKERA_DOCUMENTS=0 on the server hides them the same way.

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:

  • attachments off, or a server without /v1/capabilities (v0.11): the dakera_attachment_* tools are not listed and not returned by dakera_discover_tools; a direct call answers with the variable to set (DAKERA_ATTACHMENTS=1) and makes no request.
  • vision off: dakera_attachment_index_image is left out (DAKERA_VISION=1 turns it on).
  • A server without /v1/capabilities (v0.11) also hides dakera_encryption_status and dakera_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. Since Dakera v0.12.2 a refused argument gets 400 with a message naming the field (content: content exceeds maximum of 100000 bytes …, tags[1]: … reserved …); the message is passed on and the hint names the field to correct (the content limit counts UTF-8 bytes). The 403 hints point at dakera_whoami. From Dakera v0.12.3 the admin key, backup and rotate-key routes refuse a field they do not know (422); the hint names it. 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:

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

bash
curl -sSfL https://raw.githubusercontent.com/Dakera-AI/dakera-deploy/main/docker-compose.yml \  -o docker-compose.ymlDAKERA_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+)

bash
# Global installnpm install -g @dakera-ai/dakera-mcp
# Or run directly without installingnpx @dakera-ai/dakera-mcp

Homebrew (macOS / Linux)

bash
brew install dakera-ai/tap/dakera-mcp

Cargo

bash
cargo install dakera-mcp

Docker

bash
docker pull ghcr.io/dakera-ai/dakera-mcp:latest

The image is distroless (no shell, no package manager) and runs as the non-root user 65532.

Binary download

Pre-built binaries for macOS, Linux, and Windows are available on the releases page.

PlatformFile
macOS (Apple Silicon)dakera-mcp-aarch64-apple-darwin.tar.gz
macOS (Intel)dakera-mcp-x86_64-apple-darwin.tar.gz
Linux x64dakera-mcp-x86_64-unknown-linux-musl.tar.gz
Linux arm64dakera-mcp-aarch64-unknown-linux-musl.tar.gz
Windows x64dakera-mcp-x86_64-pc-windows-msvc.zip

Connect

Add to .mcp.json (Claude Code) or claude_desktop_config.json (Claude Desktop):

json
{  "mcpServers": {    "dakera": {      "command": "dakera-mcp",      "env": {        "DAKERA_API_URL": "http://localhost:3000",        "DAKERA_API_KEY": "your-key"      }    }  }}

dakera_extract_entities calls the ODE sidecar at DAKERA_ODE_URL; those requests currently carry the Dakera API key as well (tracked in Dakera-AI/dakera#924).

To start with the power profile (exposes up to 86 tools):

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

→ Full docs
→ MCP reference

Related

RepoWhat it is
dakera-pyPython SDK
dakera-jsTypeScript SDK
dakera-cliCLI
dakera-deploySelf-host Dakera

dakera.ai · Documentation · Request Early Access

Part of the Dakera AI open-core ecosystem. Built with Rust. Self-hosted. Zero dependencies.

来源:README.md,提交 70c9cc2

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:该软件包类型无法在沙箱中运行。

版本历史

5
  1. v0.12.3最新Oct 22, 2026
  2. v0.12.2Oct 8, 2026
  3. v0.12.0Oct 5, 2026
  4. v0.11.0Oct 1, 2026
  5. v0.10.12Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分