关于 memory-fts
memory-fts 是面向 Claude Code 的本地长期记忆 MCP 服务。它结合关键词与语义搜索,并按重要性注入上下文;数据存储在 SQLite,嵌入向量在本地生成。
主要功能
- 01结合 FTS5 与语义搜索
- 02BM25 排序与 RRF 合并
- 03自动注入上下文
- 04分类记忆与重要性排序
- 05SQLite 存储及访问跟踪
- 06提供记忆保存、搜索、更新、列出和删除工具
适用场景
- 01在不同 Claude Code 会话间找回项目事实
- 02按短语或含义查找记忆
- 03自动将排序后的事实注入提示词
MCP 相关
向 MCP 客户端提供记忆工具和 `memory://context` 资源。Claude Code hook 可将排序后的记忆注入提示词。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
claude-memory-fts
面向 Claude Code 的长期记忆 MCP 服务。使用混合搜索(FTS5 + 语义向量相似度)将事实存储在本地 SQLite 数据库中,并自动注入上下文。
功能
- 混合搜索 — FTS5 关键词搜索 + 语义向量相似度,通过倒数排名融合(RRF)合并结果
- 语义理解 — 按含义查找记忆,而不只是匹配关键词(由 all-MiniLM-L6-v2 嵌入模型提供支持)
- 自动注入上下文 — 通过钩子将最重要的 30 条记忆注入每条提示词
- 重要性排名 — 根据访问频率、时间衰减和类别权重对事实排名
- 访问跟踪 — 跟踪每条记忆的访问频率
- 更新插入 — 自动更新已有事实,而不是重复添加
- 分类管理 — 按类型整理:偏好、决策、技术、项目、工作流、个人、通用
- MCP 资源 — 提供用于会话上下文的
memory://context资源 - 零配置 — 开箱即用,将数据存储在
~/.claude/memory.db
安装
# Add to Claude Code
claude mcp add memory -- npx claude-memory-fts
# Auto-configure context injection hook (recommended)
npx claude-memory-fts --setup-hook
--setup-hook 命令会自动:
- 创建
~/.claude/scripts/memory-context.sh - 在
~/.claude/settings.json中添加UserPromptSubmit钩子 - 自动将最重要的 30 条记忆注入每条提示词
CLI 命令
| 命令 | 描述 |
|---|---|
npx claude-memory-fts | 启动 MCP 服务(由 Claude Code 使用) |
npx claude-memory-fts --context | 输出排名前 30 的事实(由钩子脚本使用) |
npx claude-memory-fts --setup-hook | 自动配置上下文注入钩子 |
配置
| 环境变量 | 默认值 | 描述 |
|---|---|---|
MEMORY_DB_PATH | ~/.claude/memory.db | SQLite 数据库文件的路径 |
使用自定义路径的示例:
claude mcp add memory -e MEMORY_DB_PATH=/path/to/my/memory.db -- npx claude-memory-fts
工具
memory_save
将一条事实保存到长期记忆中。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
fact | string | 是 | 要记住的信息 |
category | string | 否 | 可选值:preference、decision、personal、technical、project、workflow、general |
memory_search
混合搜索:并行运行 FTS5 和语义搜索,并使用 RRF 合并结果。部分匹配时会回退到 LIKE。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
keyword | string | 是 | 搜索关键词或短语 |
limit | number | 否 | 最大结果数(默认值:10) |
memory_update
按 ID 更新记忆内容或类别。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
id | number | 是 | 记忆 ID |
fact | string | 否 | 新内容(省略则保留当前内容) |
category | string | 否 | 新类别(省略则保留当前类别) |
memory_list
按类别分组列出所有已保存的记忆。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
category | string | 否 | 按类别筛选 |
limit | number | 否 | 最大结果数(默认值:50) |
memory_delete
按 ID 删除一条记忆。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
id | number | 是 | 记忆 ID |
资源
memory://context
提供按重要性得分排名的前 30 条事实的 MCP 资源:
- 访问频率 — 访问频繁的事实得分更高(最多 20 分)
- 时间新近度 — 最近更新的事实得分更高(10 分,90 天内逐渐衰减)
- 类别权重 — 偏好/决策(3)、工作流/技术(2)、项目/个人(1)、通用(0)
工作原理
搜索流程
- 并行运行 FTS5 + BM25 和 语义向量相似度 搜索
- 使用 倒数排名融合(k=60)合并并去重结果
- 同时出现在两个列表中的事实会自然获得更高排名
- 如果两种搜索均无结果,则回退到 LIKE 子串匹配
- 每次搜索命中时都会跟踪访问次数
嵌入
- 模型:all-MiniLM-L6-v2(384 维,约 23MB)
- 通过
@xenova/transformers在本地生成——无需 API 调用,数据不会离开你的设备 - 保存时创建嵌入,并在服务启动时补全已有嵌入
- 使用余弦相似度,并设定 0.3 的阈值以过滤噪声
存储
- 使用 SQLite 的 WAL 模式,实现快速并发读写
- 通过触发器同步 FTS5 虚拟表,实现实时全文索引
- 嵌入以 BLOB 列的形式与事实一同存储
开发
git clone https://github.com/kurovu146/claude-memory-mcp.git
cd claude-memory-mcp
npm install
npm run build
npm test
许可证
MIT
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。