mcpField
D
dakera-mcp

dakera-mcp

本地服务
github.com/Dakera-AI记忆与知识96 天前更新

关于 dakera-mcp

dakera-mcp 为 MCP 兼容的 AI Agent 提供可查询的持久记忆,并通过分层工具发现控制会话中的工具架构开销。它以 Rust 二进制运行,可连接 Dakera 服务。

主要功能

  1. 01语义记忆存储与召回
  2. 02混合向量和 BM25 搜索
  3. 03会话与记忆管理
  4. 04按需发现和加载工具
  5. 05文档导入及附件处理

适用场景

  1. 01跨会话保存 Agent 上下文
  2. 02按语义或标签查找记忆
  3. 03从文档导入可检索内容

MCP 相关

作为 MCP 服务,向 AI Agent 暴露记忆管理、搜索和文档处理工具。工具可按配置档加载,也支持按需发现与加载。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dakera-ai-dakera": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/dakera-ai/dakera-mcp:0.12.3"
]
}
}
}
启动命令docker run -i --rm ghcr.io/dakera-ai/dakera-mcp:0.12.3

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/dakera-ai/dakera-mcp:0.12.3

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

原文在翻译后有更新,译文可能不是最新。

⚡ dakera-mcp

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

Dakera AI 的 MCP 服务,为任何兼容 MCP 的 AI Agent 提供持久、可查询的记忆,并内置智能令牌管理。

适用于 Claude、Claude Code 以及任何兼容 MCP 的框架。

属于 Dakera AI——面向 AI Agent 的记忆引擎。

Dakera 记忆引擎在 LoCoMo 上的 Recall@20 得分为 88.2%(评估了 1,536 个问题 · 由大模型判定的检索召回率)——基准测试详情


架构:14 个核心工具 + 按需发现

每次 Agent 会话都加载 60 多个工具架构,会在你发送第一条消息前浪费约 15K 个令牌。dakera-mcp 通过混合工具暴露机制解决了这个问题:

  • 默认加载 14 个工具——使用频率最高的 12 个记忆操作 + 2 个元发现工具
  • 按需扩展——使用 dakera_discover_tools 和 dakera_load_tools,仅在需要时获取其他工具架构
默认工具集(核心配置)
工具用途
dakera_store存储记忆,并设置重要性、标签和类型
dakera_recall根据查询文本进行语义记忆召回
dakera_search使用标签/类型筛选器进行高级记忆搜索
dakera_session_start开始会话,以便对相关记忆进行分组
dakera_session_end结束会话,可选择附加摘要
dakera_batch_recall按标签、重要性和时间进行批量筛选召回
dakera_forget根据 ID 删除特定记忆
dakera_hybrid_search结合向量搜索和 BM25 搜索
dakera_fulltext_searchBM25 全文搜索
dakera_knowledge_graph根据种子记忆构建知识图谱
dakera_extract从自由文本中提取实体和结构
dakera_batch_forget按标签、类型或时间范围批量删除
dakera_discover_tools按关键词或层级搜索完整工具目录
dakera_load_tools按需加载指定工具的完整架构
配置与令牌开销
配置工具数约令牌数启用方式
core14~3,400默认——始终加载
admin34~6,750DAKERA_MCP_PROFILE=admin
power82~17,250DAKERA_MCP_PROFILE=power
all102~20,600DAKERA_MCP_PROFILE=all

令牌数为估算值(JSON 字节数 / 3)。下方的附件工具计入 power 和 all, 但只有在连接的服务启用了该功能时才会显示(参见 Dakera v0.12)。

访问其他工具
# 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
配置选择

配置决定 tools/list 中显示哪些工具。可通过以下三种方式设置:

1. 按请求设置(在 tools/list 参数中):

{"profile": "power"}

2. 环境变量(适用于所有请求):

DAKERA_MCP_PROFILE=power

3. 默认值:core(14 个工具,约 3,400 个令牌)


Dakera v0.12

dakera-mcp 0.12.2 可用于 Dakera v0.11.108 和 v0.12.0 – v0.12.2 服务。所有工具的名称和参数保持不变;新增参数均为可选,仅在你提供时才会发送(或者会被较旧的服务忽略)。调用新路由的工具会明确说明:若服务不支持这些路由,则会告知这一点。

Dakera 服务dakera-mcp 0.12.2
v0.12.2所有工具;启用 DAKERA_ATTACHMENTS(图像还需启用 DAKERA_VISION)时可用附件工具
v0.12.0、v0.12.1所有工具;dakera_session_touch 和 dakera_agent_create 会返回无需执行任何操作(这些版本的会话不会因不活跃而结束,且 Agent 会在写入第一条记忆时创建);dakera_whoami 会提示需要 v0.12.2;列表会返回完整内容(不提供预览),并包含派生的句子子记忆
v0.11.108与 v0.12.0 相同;不会列出附件工具、dakera_encryption_status 和 dakera_embed_migration_status(直接调用时会提示需要 v0.12);dakera_encryption_rotate_key 需要 new_key
更早版本未测试
Dakera v0.12.2 新增内容
工具 / 参数层级功能
dakera_session_start idle_timeout_secs核心服务默认会在会话空闲 4 h 后结束会话;此参数用于设置会话自身的超时时间(0 = 永不超时,最长 30 天)
dakera_session_touch高级POST /v1/sessions/{id}/touch:Agent 工作期间保持会话开启,不存储或回忆内容;返回 session_state(active 并附带 idle_deadline_at,或 ended)
dakera_store核心即使会话已结束,存储操作仍会成功;答案中的 session_state: "ended" 后会附带提示,告知 Agent 开始新会话
dakera_session_end核心若服务已因不活跃而结束会话(此时不会保存传入的摘要),或者无法访问该会话,则会附带提示
dakera_session_list / _get / dakera_agent_sessions高级会话包含 last_activity_at、ended_reason(client 或 idle)和 idle_since
dakera_agent_create高级POST /v1/agents:在写入第一条记忆前创建 Agent(其记忆命名空间);若 Agent 已存在,则 created: false
dakera_whoami高级GET /v1/auth/whoami:返回密钥的权限范围、命名空间(例如 _dakera_agent_mlx-* 这样的前缀模式)、过期时间和未生效条目;遇到 403 时应首先调用此工具
dakera_agent_memories / dakera_session_memories / dakera_knowledge_network_cross_agent content_preview_chars高级内容默认截断为 500 个字符(content_len / content_truncated 用于标记;0 = 完整内容);dakera_memory_get 和回忆操作会返回完整记忆
dakera_agent_memories / dakera_wake_up include_derived高级从 v0.12.2 起,列表默认不包含派生的句子子记忆;设为 true 也会列出这些记忆
新增内容
工具层级要求功能
dakera_capabilitiespowerv0.12GET /v1/capabilities:当前模型、搜索模式、评分策略、接受的 lang 值,以及已启用的选择加入功能。在 v0.11 服务上会返回 capabilities_available: false
dakera_healthpower任意版本GET /health:状态和版本;在 v0.12 上还会返回 degraded、config_warnings、embed_migration
dakera_wake_uppower任意版本一次调用即可获取 Agent 的启动上下文:按重要性 x 新近度排序的记忆,不需要查询或嵌入
dakera_embed_migration_statusadminv0.12升级后一次性后台重新嵌入任务的进度
dakera_encryption_statusadminv0.12加密密钥环和后台重新封装状态(绝不返回密钥材料)
dakera_encryption_rotate_keyadminv0.11+加密已启用时,v0.12 上的 new_key 为可选项(服务会生成密钥;如果加密未启用,new_key 会启用加密);wait_secs(最多 20);namespace 可轮换单个命名空间的密钥
dakera_attachment_upload / _list / _download / _deletepowerv0.12 + DAKERA_ATTACHMENTS文件(或文本),记忆可通过 dakera_store 的 attachment_ref 引用
dakera_attachment_transcribepowerv0.12 + DAKERA_ATTACHMENTS将 WAV 语音转为模型支持的任意语言的文本(lang 可指定一种语言)并存入记忆;这是后台任务,wait_seconds(最多 45)可用于等待任务完成
dakera_attachment_index_imagepowerv0.12 + DAKERA_ATTACHMENTS + DAKERA_VISION将 PNG 页面作为视觉记忆(请使用专用于图像的 Agent:视觉通道会存储页面向量)
dakera_attachment_jobpowerv0.12 + DAKERA_ATTACHMENTS转写 / 索引任务的状态

每次请求可指定 lang(en、de、fr、es、it、pt、nl;v0.12);dakera_store、 dakera_recall、dakera_recall_associated、dakera_search、dakera_memory_update、dakera_extract、 dakera_auto_tag 和附件任务均接受此参数; dakera_store 还接受 attachment_ref(当前 Agent 自有命名空间中的附件的 sha256:<hex>, _dakera_agent_<agent_id>)。除非明确提供,否则这两个参数都不会发送,因此相同调用也能在 v0.11.108 服务上使用。

其他可选参数(适用于所有服务):dakera_store 的 ttl_seconds 和 metadata;dakera_recall 的 tags、 memory_type 和 session_id 筛选条件;dakera_batch_recall 的 limit; dakera_session_list、dakera_session_memories 和 dakera_agent_sessions 的 limit / offset (服务每页返回 50 条);记忆列表的 content_preview_chars,以及 dakera_agent_memories / dakera_wake_up 的 include_derived(v0.12.2,较旧的服务会忽略此参数);dakera_knowledge_deduplicate 的 memory_type;dakera_memory_policy_set 的 dedup_on_store / dedup_threshold。

服务未启用的功能不会列出

选择加入的功能(附件、语音转文本、图像索引)默认在服务上关闭。 dakera-mcp 会先请求 GET /v1/capabilities(每分钟一次,超时 3 s),再列出工具:

  • attachments 关闭,或服务不支持 /v1/capabilities(v0.11):不会列出 dakera_attachment_* 工具,也不会通过 dakera_discover_tools 返回这些工具;直接调用时会告知需要设置的变量 (DAKERA_ATTACHMENTS=1),且不会发送请求。
  • vision 关闭:不会列出 dakera_attachment_index_image(设置 DAKERA_VISION=1 可启用)。
  • 服务不支持 /v1/capabilities(v0.11)时,也会隐藏 dakera_encryption_status 和 dakera_embed_migration_status,因为它们对应的路由是在 v0.12 中新增的。
  • 无法访问服务(服务已关闭、正在启动或密钥被拒绝)时,不会隐藏任何工具(10 s 后再次请求)。

默认的 core 配置没有选择加入的工具,因此不会发出该请求。

错误

错误响应会保留服务端文本,并在 v0.12 的相关情况下添加一行 Hint::固定到命名空间的密钥在节点级 /admin 路由(备份、加密、配额、配置)上会收到 403;下载、上传和恢复备份需要 super_admin;413(请求体超出限制或触发硬配额)、501(功能已关闭)、503(带有 Retry-After,重试逻辑现在会遵循该值,最长 8 s)和 429(速率限制)。服务端不支持的路由(旧版服务端)以及没有 new_key 的 v0.11 密钥轮换,也会给出提示。从 Dakera v0.12.2 起,被拒绝的参数会返回 400,并在消息中指出字段(content: content exceeds maximum of 100000 bytes …、tags[1]: … reserved …);该消息会原样传递,提示会指出需要更正的字段(内容限制按 UTF-8 字节数计算)。403 提示会指向 dakera_whoami。请求超时时,仅在安全可重试的情况下才会重试(GET、PUT、DELETE):存储、导入或密钥轮换绝不会发送两次。


运行 Dakera

MCP 服务会连接到 Dakera 内存服务。请先运行一个实例:

docker run -d \
  --name dakera \
  -p 3000:3000 \
  -e DAKERA_ROOT_API_KEY=dk-mykey \
  ghcr.io/dakera-ai/dakera:latest

使用持久化存储(推荐):

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

完整部署指南(Docker Compose、Kubernetes、Helm):dakera-deploy


安装

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
下载二进制文件

可在发布页面获取 macOS、Linux 和 Windows 的预构建二进制文件。

平台文件
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

连接

将以下内容添加到 .mcp.json(Claude Code)或 claude_desktop_config.json(Claude Desktop):

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

使用 power 配置启动(最多可提供 82 个工具):

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

项目缘起

会话结束后,AI Agent 就会忘记一切。Dakera 可以解决这个问题。此 MCP 服务为 Agent 提供持久化记忆层,无需额外基础设施——连接到 Dakera 实例即可使用。

默认的 14 个工具可让上下文窗口保持精简。需要批量向量写入、知识图谱遍历或记忆联邦等高级操作时,可按需通过元工具扩展。

→ 托管实例请访问 dakera.ai
→ 使用 dakera-deploy 自托管

文档

→ 完整文档
→ MCP 参考

相关项目

仓库说明
dakera-pyPython SDK
dakera-jsTypeScript SDK
dakera-cli命令行工具
dakera-deploy自托管 Dakera

dakera.ai · 文档 · 申请提前体验

属于 Dakera AI 开源核心生态系统。使用 Rust 构建。可自托管。零依赖。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。