local-memory-mcp 是一个本地 MCP 服务器,用于为 Claude、ChatGPT 及其他兼容 MCP 的 AI 助手提供持久记忆层。它解决的核心问题是:每次新的 Claude 或 ChatGPT 会话都从空白开始,用户的偏好、项目上下文和决策都会丢失,需要反复重新解释。该工具让助手能够存储值得记住的内容、在新会话开始时检索相关上下文、随情况变化对记忆进行版本化与取代,并且不将数据发送到任何地方。
主要能力
- 本地向量搜索:基于 ChromaDB 实现自托管 RAG,无需云后端。
- 两阶段检索:双编码器召回(按余弦相似度拉取较宽的候选池,top_k × RERANK_OVERFETCH),交叉编码器重排序(默认 cross-encoder/ms-marco-MiniLM-L-6-v2,加载一次并保持热状态;若无法加载则优雅降级为双编码器排序)。
- 自适应结果数量:top_k 是目标而非硬上限,在相关性保持较高时可超出,直到 RERANK_MAX_K 上限;当重排序器无法自信区分时回退到双编码器排序。
- 写入路径:store / update 写入一个块后,协调检查重叠/冲突,并在写入看起来有风险时返回警告和自愈提示。
- 读取路径:search 为两阶段,已弃用的块除非明确请求否则保持隐藏。
- 版本化更新:strategy="version" 配合 supersedes 链。
- 来源标注:source_type 区分 user_statement 与 ai_inference,使助手推断与用户陈述可区分。
- 软删除:默认保留历史,可选硬删除。
- 启发式协调与冲突日志。
- 警告优先的写入响应:结构化 warnings[] 与自愈字段。
- 健康检查:针对超大块和未解决冲突。
- 本地备份/恢复:用于持久化的向量数据库。
- 传输方式:stdio、SSE 和 streamable-HTTP(/mcp)。
- 可选认证:none(仅本地)、bearer 或 oauth(签发的令牌在重启后持久)。
MCP 工具 store、search、update、delete、get_chunk、get_evolution_chain、get_recent、self_check、get_issues、backup/restore 以及冲突解决。
使用方式 快速开始(Docker,约 2 分钟):将 MCP 客户端指向 http://localhost:8000/mcp 即可。Docker 默认仅发布到 127.0.0.1,保持私密;在将服务暴露到机器外部之前,需配置 bearer 或 OAuth 认证,并置于常规网络控制之后。其他安装方式包括 Claude Desktop 设置、ChatGPT 设置和手动 Python 安装。检索无需调参,只需传入查询和粗略的 top_k。所有检索参数可通过 config.json 中的 RERANK_* 键调整。
示例工作流 存储一条记忆,稍后检索它;通过运行几次聚焦检索来引导新会话,然后仅将活跃、未弃用的块综合成简短摘要,供新的模型实例使用。更多流程见 examples/ 目录。
设计理念(AIX) AIX(AI eXperience)指为 LLM 实际消费上下文的方式而设计,而非人类归档文档的方式:偏好清晰的文本块而非僵化的文档模式;保持元数据最小但有用(时间戳、置信度、supersedes 链接、弃用标志);用版本链保留历史而非破坏性覆盖;返回警告丰富的工具响应以便模型自我纠正。目标是实用的检索质量和可靠的 AI 行为,而非完美的人类分类法。
隐私与部署 默认本地优先、用户可控;数据存储在配置的 persist 目录下的本地 ChromaDB 文件中;无需云后端,可选通过用户管理的隧道进行远程访问;切勿提交真实密钥,使用本地配置/环境变量。
适用场景 适用于希望 AI 助手跨会话记住用户偏好、项目上下文和决策,同时要求数据完全留在本地的用户;适用于 Claude Desktop 和 ChatGPT 等 MCP 兼容客户端的集成。
限制 资料未提供具体的性能基准、支持的最大数据规模、各平台兼容性细节或收费信息。Docker 默认仅本地访问,远程暴露需自行配置认证与网络控制。