MCP Memory Service
为多智能体与 AI 助手提供可自托管的持久共享记忆。
默认 HTTP 生命周期命令绑定 127.0.0.1,MCP 通常使用本地标准输入输出;文档也明确警告 0.0.0.0、匿名访问、Cloudflare 令牌和远程部署风险,因此最小权限、数据流和外部影响有实质说明但并不完整。README 解释本地 ONNX、可选云同步、SSE、存储和删除行为,SECURITY.md 提供凭据、HTTPS、文件权限、数据驻留、备份及漏洞报告建议。不过快速开始直接启用匿名访问,Cloudflare 令牌被描述为具有完整账户权限,未展示更细粒度权限设计。Claude 会话钩子包含自动注入和会话结束存储路径,但材料没有证明在捕获或持久化会话内容前要求用户逐次确认,所以 user_confirmation 为 0。依赖设有若干兼容范围,GitHub Actions 以提交哈希固定,并建议 pip-audit,但大量 Python 依赖只有下限,未提供锁文件、SBOM 或当前审计结果。备份被建议,却未展示恢复、撤销写入或删除恢复流程。作者、许可证、用户引语和议题来源有署名,但发布者未获企业注册验证,身份只能视为未知。
项目给出了 HTTP/MCP 存储、健康检查、错误警告、格式解析和协议分支测试;无活动连接会产生明确错误,服务器不可达时也会警告而不阻塞会话,因此失败信息与普通依赖处理较充分。pyproject 明确 Python 版本、核心及可选依赖,并针对 Milvus、setuptools 和本地模型给出兼容说明。然而材料内部存在明显漂移:SECURITY.md 仅声称支持 8.x/7.x,而包版本为 10.70.3;描述中同时出现 14+、25+ 客户端;README 的部分内容被截断。集成测试还将若干真实连接错误视为预期成功,并依赖用户主目录中的 Claude 安装状态,因此自洽性不能评为充分。本评估未执行任何测试,也未因缺少运行结果扣减相邻标准。
开发者、单用户桌面、多代理流水线、浏览器、团队、自托管及云同步场景均有清晰入口,并覆盖 LangGraph、CrewAI、AutoGen、Claude、OpenCode 和通用 HTTP 客户端;SQLite、Cloudflare、Hybrid、Milvus、REST、MCP 与多种操作系统环境的适配说明较全面。能力边界部分通过本地与远程模式、安全警告、Milvus Lite 建议、OpenCode 当前限制以及后端差异得到说明,但对自动整合、自动捕获、质量评分失败模式和多用户隔离边界缺乏完整定义。钩子测试明确区分 session-start/session-end,标签、代理 ID 和 conversation_id 也支持精确作用域;不过自动捕获的选择条件、误触发防护及用户控制未由所给实现材料完整证明。
README 具有清楚的快速开始、部署决策入口、框架指南、后端选择、安全提示、示例和比较结构,安装说明覆盖 pip、CLI、客户端配置、源码、远程 MCP 与生产部署,信息架构和示例质量较强。包名、CLI 入口和协议字段总体稳定,并由 pyproject 和测试交叉体现;但 memory server、memory-server、mcp-memory-server 等多个入口以及文档中的版本和客户端数量漂移降低命名与发布一致性。已明确若干限制和安全注意事项,但没有集中、完整的已知限制清单。Apache-2.0 元数据与完整 LICENSE 一致,可给满分。semantic-release、版本变量和 CHANGELOG 配置显示正式版本流程,月度工作流也维护历史记录,但未提供 CHANGELOG 文件本身,且安全支持表落后于当前主版本。作者、漏洞渠道、议题渠道和自动维护指派较明确;发布者身份未验证不会单独扣分,但材料没有展示组织级维护或继任安排。
REST/MCP 接口、结构化记忆字段、标签作用域、知识图谱、搜索、SSE、CLI、仪表盘和多后端部署可直接产出可消费的持久记忆服务,示例足以说明普通集成方式,因此输出可用性高。相对于单次会话记忆或自行拼装数据库与向量服务,统一的本地优先共享记忆层具有明确增量价值。不过 5ms、零成本、100% 本地、生产就绪、端点数量和基准优势主要来自 README 声明,本批材料没有实现级或独立证据全面支撑;云隧道、托管后端、硬件、运维、模型及重型依赖也会产生实际成本。因此边际价值和成本收益只能评为充分但非彻底。
pyproject、工作流和测试能追踪包版本、依赖、CLI、HTTP/MCP 写入、健康端点、状态码、钩子触发和错误行为;部分 README 能力因此获得跨文件佐证。安全政策也与本地绑定、认证和备份建议形成有限互证。然而核心性能、隐私、兼容数量、生产成熟度、76 个端点及多数竞争对比没有在所给源码中得到直接证明;引用的外部议题、视频、指南和基准无法依据本提示内容独立核验。README 对 MemPalace 基准披露了条件和不可直接比较性,用户引语也标为引语,这是正面证据;但整体仍大量使用营销性结论,将推断、比较和事实混排,事实与推断分离不足。
- 快速开始启用 MCP_ALLOW_ANONYMOUS_ACCESS=true;除可信本机环境外,应先配置认证、HTTPS、防火墙和网络范围限制。
- 会话钩子可能自动读取、注入并持久化对话内容;部署前应核实明确同意、敏感内容过滤、保留期限、删除及恢复机制。
- SECURITY.md 的支持版本停留在 8.x/7.x,而包版本为 10.70.3;应先确认实际受支持版本和安全更新路径。
- Cloudflare 后端涉及高权限令牌及外部数据驻留;应采用最小范围令牌、轮换、访问控制,并确认组织的数据治理要求。
- 5ms、零成本、100% 本地、生产就绪和基准比较均未由所给材料充分复核,不应直接作为采购或生产容量依据。
- 核心依赖多为宽松下限且未提供锁文件、SBOM 或审计输出;生产部署前应锁定依赖并执行漏洞扫描。
这个 Agent 能做什么,适合哪些场景?
MCP Memory Service 是面向 AI 助手和智能体流水线的开源记忆后端,可在不同会话、智能体和客户端之间保存并检索上下文。它同时提供 MCP、REST API、OAuth、命令行工具和 Web 仪表盘,并可通过 SSE 广播记忆的新增与删除事件。服务默认可使用 SQLite-vec,在本地通过 ONNX 生成嵌入,也支持 Cloudflare、混合存储和 Milvus 部署方案。除向量与 BM25 混合搜索外,它还维护带类型边的知识图谱,并能通过衰减、压缩、矛盾检测和洞察卡片整理长期记忆。它适合希望自行控制数据、避免按调用付费,并让 LangGraph、CrewAI、AutoGen、Claude、Codex 或普通 HTTP 客户端共享记忆的团队。
客户端通过 memory server、MCP 工具或 76 个 REST 端点提交记忆内容、标签和会话信息。POST /api/memories 写入内容时可读取 X-Agent-ID,自动添加 agent:<id> 标签;conversation_id 可让连续对话绕过语义去重。搜索端点接收查询和标签,使用本地嵌入、SQLite-vec、BM25、RRF 或多信号排名模式返回相关记忆,并支持 tag_match=AND/OR。服务还能提取 @提及、#标签、URL 和文件路径,将记忆连接到实体图,并用 causes、fixes、supports、follows、related、contradicts 等关系组织知识。维护与整合流程会执行质量评分、衰减、压缩、时间矛盾检测、传递或溯因推理,并生成结构化 Insight Cards。结果可通过 REST/MCP 返回,也能在 Web 仪表盘中搜索、浏览、摄取文档、查看分析、质量分数、API 文档和 D3.js 知识图谱。
- 使用 LangGraph、CrewAI 或 AutoGen 构建多智能体系统的开发者,需要让各个智能体跨运行读取共同的决策、错误和因果关系。
- 频繁重启 Claude Code、Codex CLI、OpenCode 或桌面助手的工程师,希望新会话自动找回项目架构、代码模式和历史决策。
- 有隐私或本地部署要求的团队,需要用 SQLite-vec 和本地 ONNX 嵌入保存记忆,而不是把内容交给商业记忆 API。
- 需要跨设备或团队同步的运维人员,可选择 Cloudflare、混合后端或 Milvus,并通过 HTTPS、OAuth 和 Remote MCP 对外提供服务。
- 维护多个集群智能体的团队,可利用
X-Agent-ID和msg:cluster一类哨兵标签,把共享记忆库同时作为轻量通信桥。 - 需要检查长期记忆质量的知识管理人员,可在仪表盘查看文档摄取、语义搜索、实体关系、分析、质量评分和洞察卡片。
这个 Agent 有哪些优点和局限?
- 一个自托管服务同时提供 MCP、REST、CLI、OAuth、SSE 和 Web 仪表盘,普通 HTTP 智能体不必依赖专用 MCP SDK。
- 不仅保存向量,还提供 BM25 混合检索、RRF、多信号排序、类型化知识图谱、实体链接和自动整合。
- 默认支持 SQLite-vec 与本地 ONNX 嵌入,记忆可留在自有基础设施中,无按调用 API 费用。
X-Agent-ID、会话标识和标签过滤为多智能体隔离、共享状态及基于标签的通信提供了具体机制。- 部署范围覆盖本机、Docker、Cloudflare 同步、混合模式以及 Milvus Lite、自托管 Milvus和 Zilliz Cloud。
- 自行部署意味着团队要负责数据库、备份、升级、认证、TLS、反向代理和网络暴露安全;监听
0.0.0.0会直接扩大攻击面。 - 默认的逐轮存储会分散会话信号;项目给出的 LongMemEval R@5 为 80.4%,使用会话级存储时为 86.0%,仍低于其列出的 MemPalace 原始 ChromaDB 结果。
- 不同后端存在运维或功能成本:Cloudflare 需要外部云配置,Milvus Lite 不推荐用于长生命周期服务,而完整 Milvus 或 Zilliz 会增加基础设施。
- 自动整合曾因意外运行而改为默认禁用,采用者需要显式配置并验证衰减、压缩、矛盾处理和质量评分策略。
- 历史版本包含高危认证缺陷修复,包括文档路由认证和 MCP 写权限检查;部署者需要保持版本更新并审查安全配置。
如何安装或部署这个 Agent?
基础运行需要 Python 和 pip:
pip install mcp-memory-service启动仅限本机访问的 HTTP 服务:
MCP_ALLOW_ANONYMOUS_ACCESS=true memory server --httpREST API 将运行在 http://localhost:8000。也可使用 memory launch 在后台启动,并用 memory info、memory health、memory logs --lines 50 和 memory stop 管理。Claude Desktop 用户可在其配置文件的 mcpServers 中添加 {"memory":{"command":"memory","args":["server"]}},然后重启客户端。高级安装可克隆仓库并运行 python scripts/installation/install.py,再选择 SQLite、Cloudflare、Hybrid 或 Milvus 后端。Remote MCP 生产部署还需要可访问的 HTTPS 地址,并应配置 OAuth、反向代理或隧道及防火墙规则。
如何使用这个 Agent?
启动 HTTP 服务后,可用任意 HTTP 客户端保存和检索记忆。写入示例:
curl -X POST http://localhost:8000/api/memories -H 'Content-Type: application/json' -H 'X-Agent-ID: researcher' -d '{"content":"API rate limit is 100 req/min","tags":["api","limits"]}'搜索示例:
curl -X POST http://localhost:8000/api/memories/search -H 'Content-Type: application/json' -d '{"query":"API rate limits","tags":["agent:researcher"]}'写入项会自动带上 agent:researcher 标签,搜索响应的 memories 字段包含匹配结果。Claude Code 可执行 claude mcp add memory -- memory server 后重启;claude.ai 则需以 Streamable HTTP 模式启动服务、启用 OAuth、通过 HTTPS 暴露端点,再将 /mcp URL 添加为 Connector。若监听 0.0.0.0,应同时部署身份验证、TLS 和防火墙保护。
这个 Agent 与同类方案有什么区别?
相较 Mem0、Zep 或自行拼接 Redis 与 Pinecone,该项目强调 Apache-2.0、自托管、本地 ONNX 嵌入、MCP、76 个 REST 端点、类型化知识图谱和自动整合。其表格将 Mem0 与 Zep 描述为商业或企业方案,而自建 Redis+Pinecone 需要自行完成集成。与 MCP 原生的 MemPalace 相比,MCP Memory Service 提供 REST API、Web 仪表盘、OAuth、多用户能力、Cloudflare 同步和知识图谱,但 README 报告的 LongMemEval R@5 较低。仓库同时提醒,MemPalace 的 96.6% 原始模式结果主要衡量 ChromaDB 默认嵌入,且与本项目默认的逐轮存储并非直接同口径比较。
常见问题
使用它需要支付云端 API 费用吗?
必须使用 MCP 客户端吗?
可以直接暴露到互联网吗?
127.0.0.1 更安全。多名智能体如何避免记忆混在一起?
X-Agent-ID,服务会自动生成 agent:<id> 标签;检索时按该标签限定范围。需要共享时可查询共同标签,或使用 msg:cluster 之类的哨兵标签传递跨智能体信号。升级旧版本需要手工迁移数据库吗?
direction 参数。