MCP-Memory: 使用 OKF 和 SQLite FTS5 实现快速 Agent 记忆

快速概览

MCP-Memory 为 AI Agent 提供持久化、符合 OKF‑v0.2 标准的记忆,并通过本地 SQLite FTS5 数据库进行索引,在提供低于 20 ms 键值查询和即时全文搜索的同时,保留了人类可读的 Markdown 目录。


什么是 MCP-Memory

MCP-Memory 是一个 Model Context Protocol (MCP) server,它为 Claude Desktop、Cursor、Antigravity、Windsurf 或 Codex 等 Agent 提供长期、可搜索的记忆。每个记忆记录都存储为带有丰富 YAML front‑matter 的 OKF v0.2 Markdown 文档,并且相同的数据也会在 SQLite FTS5 中进行索引,以便快速检索。


核心设计选择

双层架构

  • 人类可读的 OKF 目录 – 每个记忆都会以 .md 文件形式转储到 memory/ 目录中,并配有层级化的 index.md 文件,提供了一个版本化、可读的知识库。
  • 高性能 SQLite 索引 – 一个带有 FTS5 触发器的 SQLite 数据库,能够实现低于 20 ms 的键值查询以及跨键、front‑matter 和内容的关键词搜索。

命名空间隔离

记忆可以按命名空间(例如 user/preferencesproject/architecturedefault)进行划分,从而防止跨项目污染。

零样板代码设置

运行 python3 setup.py 会自动检测支持的 Agent 并注册 memory MCP server,因此 Agent 启动时会自动启动 server,无需持久的终端进程。


MCP Tools 对 Agent 暴露的工具

Tool Purpose Key Parameters
memory_store 创建或更新记忆记录 key, content, project_root, 可选的 tags, namespace, concept_type, title, description, resource, status, stale_after, sources, verified, generated_by
memory_retrieve 通过键值获取单个记录 key, project_root, 可选的 namespace
memory_search 全文或基于标签的搜索 project_root, 可选的 query, tags, namespace, limit
memory_get_last 启动时获取会话检查点 (system/last_memory) project_root, 可选的 namespace
memory_update_last 在里程碑之后更新检查点 content, project_root, 可选的 namespace, summary

OKF v0.2 规范在实践中的应用

每个记忆遵循 OKF front‑matter 模式,例如:

---
type: Agent Memory
title: Coding Style
key: user/preferences/coding_style
namespace: default
tags:
  - preferences
  - style
status: stable
generated:
  by: mcp-memory/0.2.0
  at: '2026-08-12T19:23:35Z'
created_at: '2026-08-12T19:23:35Z'
updated_at: '2026-08-12T19:23:35Z'
---
User prefers functional programming style with explicit type annotations.

相同的文件存在于 memory/ 目录中,而其可搜索的表示形式存储在 .mcp_memory/memories.db 中。


安装与快速开始

  1. Clone 仓库:
    git clone https://github.com/fellowgeek/mcp-memory
    cd mcp-memory
    
  2. 运行设置向导 以自动注册 server 与支持的 Agent:
    python3 setup.py
    
    完成后,Agent 会按需启动 mcp-memory
  3. 可选的手动启动 用于调试:
    ./run.sh
    

手动客户端配置

如果你更倾向于显式配置,可以添加一个指向 run.shmemory 条目:

JSON (Antigravity, Claude Desktop, Cursor, Windsurf)

{
  "mcpServers": {
    "memory": {
      "command": "/ABSOLUTE/PATH/TO/run.sh"
    }
  }
}

TOML (Codex Desktop)

[mcp_servers.memory]
command = "/ABSOLUTE/PATH/TO/run.sh"

CLI 示例

claude mcp add --scope user memory -- /ABSOLUTE/PATH/TO/run.sh
codex mcp add memory -- /ABSOLUTE/PATH/TO/run.sh

存储布局与环境变量

  • OKF markdownmemory/ 目录位于项目根目录内。
  • SQLite index.mcp_memory/memories.db (隐藏)。
  • 环境变量允许自定义位置:
    • MCP_MEMORY_PROJECT_ROOT – 默认为当前工作目录。
    • MCP_MEMORY_DB_PATH – 默认为 .mcp_memory/memories.db
    • MCP_MEMORY_DIR– 默认为memory`。
  • 要在项目之间共享单个存储库,请设置 MCP_MEMORY_DB_PATH=~/.mcp_memory/memories.dbMCP_MEMORY_DIR=~/.mcp_memory/memory

社区反馈亮点

@myshapeprotocol – “使用 SQLite FTS5 进行快速 Agent 记忆是如此务实的设计架构选择。很棒的 Show HN 项目。”

@bearjaws – “又一周,又一个 Agent 记忆系统,其功能与在 memory/ 目录中使用 grep 差不多一样。”

@healthycoder – “这与我们现有的所有其他 Memory 相关的东西有什么区别?比如 mem0 等做同样事情的东西?”

@jrflo – “为什么这比直接使用 Markdown 文件并允许 Agent 使用 grep 更有利?我发现 MCP tools 可以让 Agent 变慢并浪费 tokens。”

@FitchApps – “你能为新手解释一下,为什么使用 Google 的 OKF 格式而不是纯 MD 文件吗?”

@rcarmo – “很高兴看到更多基于 OKF 的方法。我的项目是 https://rcarmo.github.io/projects/memento/。”

这些评论反映了两个反复出现的主题:结构化 OKF 元数据相对于纯 Markdown 的价值,以及与简单 grep 相比的 SQLite 索引的性能权衡


MCP-Memory 与现有解决方案的区别

  • 标准化元数据 – OKF v0.2 强制执行统一的模式(type, tags, status, provenance),这是纯 Markdown 所缺乏的,从而能够实现更丰富的过滤和自动化的生命周期管理。

  • 低于 20 ms 的索引化查询 – SQLite FTS5 提供确定性的延迟,而 grep 的规模随文件大小线性增长,在大项目中可能会成为瓶颈。

  • 双重持久化 – Agent 获得通过数据库实现的即时、机器可读的访问,而开发者保留了人类可读的 Markdown 归档,以便进行审查和版本控制。

  • 命名空间隔离 – 内置支持独立的知识领域,从而防止了无关项目之间的意外“对话”。


何时使用 MCP-Memory

  • 需要对数十到数千个知识片段进行快速、确定性的检索的项目。
  • 希望实现可审计性的团队:Markdown 目录可以进行版本控制,而数据库为 Agent 驱动。
  • 工作流中受益于结构化来源证明(sources, verification, status)以满足合规性或文档化需求的场景。

限制与开放性问题

  • 没有内置的向量搜索;记忆是通过精确的键值、标签或全文匹配检索的。
  • 性能增益取决于 SQLite 的 FTS5 配置;极大型的语料库可能仍需要分片。
  • 一些用户报告,如果 Agent 反复查询 server,MCP tooling 可以增加 token 消耗;需要进行仔细的 prompt 设计。

结论

MCP-Memory 通过将 Google 的 Open Knowledge FormatSQLite FTS5 相结合,弥补了人类可读的知识库与高性能 Agent 记忆之间的差距。其双层设计、命名空间隔离和零样板代码设置,使其成为开发者为 AI Agent 寻求结构化、快速且持久化上下文的极佳选择。

Sources

相关

  • 项目
  • 项目
  • Dispatch
  • 项目
  • 项目