mcpField
M
memory-fts

memory-fts

本地服务
github.com/kurovu146记忆与知识029 周前更新

关于 memory-fts

memory-fts 是面向 Claude Code 的本地长期记忆 MCP 服务。它结合关键词与语义搜索,并按重要性注入上下文;数据存储在 SQLite,嵌入向量在本地生成。

主要功能

  1. 01结合 FTS5 与语义搜索
  2. 02BM25 排序与 RRF 合并
  3. 03自动注入上下文
  4. 04分类记忆与重要性排序
  5. 05SQLite 存储及访问跟踪
  6. 06提供记忆保存、搜索、更新、列出和删除工具

适用场景

  1. 01在不同 Claude Code 会话间找回项目事实
  2. 02按短语或含义查找记忆
  3. 03自动将排序后的事实注入提示词

MCP 相关

向 MCP 客户端提供记忆工具和 `memory://context` 资源。Claude Code hook 可将排序后的记忆注入提示词。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"kurovu146-memory-fts": {
"command": "npx",
"args": [
"-y",
"claude-memory-fts"
],
"env": {
"MEMORY_DB_PATH": "<MEMORY_DB_PATH>"
}
}
}
}
启动命令npx -y claude-memory-fts
需要配置的环境变量
MEMORY_DB_PATHCustom path to the SQLite database file (default: ~/.claude/memory.db)

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

安装包
npmclaude-memory-fts1.0.1

工具

还没有获取到工具列表

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

详细介绍

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 命令会自动:

  1. 创建 ~/.claude/scripts/memory-context.sh
  2. 在 ~/.claude/settings.json 中添加 UserPromptSubmit 钩子
  3. 自动将最重要的 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.dbSQLite 数据库文件的路径

使用自定义路径的示例:

claude mcp add memory -e MEMORY_DB_PATH=/path/to/my/memory.db -- npx claude-memory-fts

工具

memory_save

将一条事实保存到长期记忆中。

参数类型必填描述
factstring是要记住的信息
categorystring否可选值:preference、decision、personal、technical、project、workflow、general
memory_search

混合搜索:并行运行 FTS5 和语义搜索,并使用 RRF 合并结果。部分匹配时会回退到 LIKE。

参数类型必填描述
keywordstring是搜索关键词或短语
limitnumber否最大结果数(默认值:10)
memory_update

按 ID 更新记忆内容或类别。

参数类型必填描述
idnumber是记忆 ID
factstring否新内容(省略则保留当前内容)
categorystring否新类别(省略则保留当前类别)
memory_list

按类别分组列出所有已保存的记忆。

参数类型必填描述
categorystring否按类别筛选
limitnumber否最大结果数(默认值:50)
memory_delete

按 ID 删除一条记忆。

参数类型必填描述
idnumber是记忆 ID

资源

memory://context

提供按重要性得分排名的前 30 条事实的 MCP 资源:

  • 访问频率 — 访问频繁的事实得分更高(最多 20 分)
  • 时间新近度 — 最近更新的事实得分更高(10 分,90 天内逐渐衰减)
  • 类别权重 — 偏好/决策(3)、工作流/技术(2)、项目/个人(1)、通用(0)

工作原理

搜索流程
  1. 并行运行 FTS5 + BM25 和 语义向量相似度 搜索
  2. 使用 倒数排名融合(k=60)合并并去重结果
  3. 同时出现在两个列表中的事实会自然获得更高排名
  4. 如果两种搜索均无结果,则回退到 LIKE 子串匹配
  5. 每次搜索命中时都会跟踪访问次数
嵌入
  • 模型: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

第一次接触 MCP?

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

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