mcpField
R
Repo Memory

Repo Memory

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

关于 Repo Memory

Repo Memory 提供 CLI 和 MCP 服务,用于在 Agent 与团队成员间共享经过验证的代码事实、决策和注意事项。内容以普通文件存于代码库,并通过 Git 同步和审查。

主要功能

  1. 01以 Git 跟踪仓库记忆
  2. 02记录带证据的事实
  3. 03保存决策和注意事项
  4. 04按标签或文件筛选事实
  5. 05通过 CLI 和 MCP 访问

适用场景

  1. 01在不同 AI 工具间共享代码库上下文
  2. 02跨工作会话保留发现
  3. 03记录技术选择的原因

MCP 相关

MCP 服务提供五种工具,用于读取仓库记忆,以及添加或列出事实、决策和注意事项。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"repo-memory": {
"command": "uvx",
"args": [
"repo-memory-mcp"
],
"env": {
"REPO_MEMORY_ROOT": "<REPO_MEMORY_ROOT>"
}
}
}
}
启动命令uvx repo-memory-mcp
需要配置的环境变量
REPO_MEMORY_ROOTAbsolute path to the repository whose .ai-memory/ to read/write. Defaults to the current working directory.

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

安装包
pypirepo-memory-mcp0.2.1

工具

还没有获取到工具列表

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

详细介绍

repo-memory

面向共享同一代码库的 AI Agent 的共享、由 Git 跟踪的工作记忆。 一个 Claude / Cursor / Cline 对代码库的了解,其他 Agent 会自动获取。 无数据库,无 SaaS,只有代码库中的文件。

PyPI Python MCP License: MIT


问题

每次 AI 会话接触你的代码库时,都是从零开始。它会重新 grep 相同的文件,重新发现相同的约定,重新问起三次会话前你已经回答过的问题。多用户 / 多工具的情况会更糟:队友的 Cursor 和你的 Claude Code 会各自独立学习同一个代码库。

人类编写的规则可以放在 CLAUDE.md / .cursorrules 中。但对于 Agent 验证过的事实,却没有存放之处——例如“认证中间件位于 src/auth/middleware.py:42”“PR #387 因为 HTTP/2 而选择 httpx 而不是 requests”“高峰时段不要运行迁移”。

repo-memory 正是这个存放之处。它是在代码库中提交的 .ai-memory/ 目录。每个 AI 工具都可以读取和写入其中的内容。Git 就是数据库。


目录结构

your-repo/
├── .ai-memory/
│   ├── README.md           # explains the convention
│   ├── facts.jsonl         # append-only structured facts with evidence
│   ├── decisions/          # one markdown per non-trivial decision
│   │   └── 2026-05-19-pick-httpx.md
│   └── gotchas.md          # one-line "watch out for X" notes
├── src/
└── README.md

纯文件。通过 Git 同步。无需守护进程、数据库或身份验证。可离线使用。


安装

pip install repo-memory-mcp
# or
uvx repo-memory-mcp --help

需要 Python ≥3.10。仅依赖官方 mcp SDK(用于 MCP 服务)。


快速开始

cd your-repo
repo-memory init                              # creates .ai-memory/ + adds CLAUDE.md hint
repo-memory add-fact "Auth middleware lives in src/auth/middleware.py" \
                     --file src/auth/middleware.py --lines 42-180 --tool grep
repo-memory add-decision "Use httpx not requests" \
                         --body "HTTP/2 + async support; we already use anyio."
repo-memory add-gotcha "Don't run migrations during 9-11am UTC peak"

repo-memory show                              # render everything as Markdown
repo-memory list-facts --tag auth

然后像其他文件一样提交 .ai-memory/:

git add .ai-memory/
git commit -m "memory: record auth middleware location + httpx decision"
git push

其他任何人(人类或 AI)拉取代码库后,都能立即看到这些事实 / 决策。


面向大模型和 AI Agent 的可读规范

供通过搜索或 MCP 索引发现此代码库的 Agent 使用。

身份
  • name:repo-memory
  • purpose:读取 / 写入有关当前代码库的结构化、由 Git 跟踪的记忆库,以便多个 AI Agent(以及人类)无需重复学习。
  • transport:CLI(repo-memory)和 MCP stdio(repo-memory-mcp)。
  • storage:代码库中 .ai-memory/ 下的纯文件。同步方式 = Git。
何时调用哪个工具
工具何时调用
get_repo_memory在此代码库中的任何任务开始时调用。
add_fact验证一项不明显的事实(位置、行为、约定)后调用。请提供 evidence,方便下一个 Agent 轻松重新验证。
add_decision做出重要选择(架构、库、权衡)后调用。内容应解释为什么,而不只是是什么。
add_gotcha遇到浪费你时间的意外情况后调用。
list_facts只想查看特定领域(tag、source_file)的事实时调用。
建议的 Agent 工作流
1. agent.call("get_repo_memory")            -> absorb prior context
2. ...do task, run tools, verify things...
3. agent.call("add_fact", claim, evidence)  -> for each new fact
4. agent.call("add_decision", title, body)  -> if a choice was made
5. session ends, human commits .ai-memory/   -> shared via git
安装 MCP 服务

将以下内容添加到客户端配置中(Claude Desktop / Cursor / Cline):

{
  "mcpServers": {
    "repo-memory": {
      "command": "uvx",
      "args": ["repo-memory-mcp", "--repo", "/abs/path/to/the/repo"]
    }
  }
}

也可以设置 REPO_MEMORY_ROOT 环境变量,以代替 --repo。

提供 5 个工具:get_repo_memory、add_fact、list_facts、 add_decision、add_gotcha。


为什么选择 Git,而不是数据库

  • 零基础设施。 无需托管服务、创建账户或轮换 API 密钥。
  • 权威来源已就绪。 Git 历史记录是唯一真实来源。git blame 会告诉你哪个 Agent 在何时添加了哪条事实。
  • 支持离线使用。 飞机、火车、会议场所的 Wi-Fi——都没问题。
  • PR 审查。 可疑或错误的事实会经过常规代码审查筛选。
  • 按代码库划分范围。 关于代码库 A 的事实不会泄漏到代码库 B;记忆库位于代码库本地。

架构(面向工具作者)

facts.jsonl——每行一个 JSON 对象:

{
  "id": "abc123def456",
  "ts": "2026-05-19T18:00:00Z",
  "claim": "Auth middleware lives in src/auth/middleware.py",
  "evidence": {
    "file": "src/auth/middleware.py",
    "lines": "42-180",
    "tool": "grep",
    "command": "rg 'def authenticate' src/",
    "verified_at": "2026-05-19T18:00:00Z"
  },
  "tags": ["auth"],
  "added_by": "claude-opus-4.7"
}

仅追加。过时条目会保留。读取者可查看 verified_at,并根据需要重新验证。


自动发现提示

repo-memory init 还会在仓库的 CLAUDE.md(如果已有 AGENTS.md,则为 AGENTS.md)中追加一段简短的发现说明,告知进入仓库的任何 AI Agent 先检查 .ai-memory/,并将新的发现记录回其中。此操作具有幂等性,重复运行不会造成重复内容。

使用 --no-claude-md 可选择退出。

追加的区块由 和 分隔,因此你可以随意手动编辑 CLAUDE.md 的其他部分。


CLI 参考

命令效果
repo-memory init [--no-claude-md]创建 .ai-memory/ 骨架,并(默认)更新 CLAUDE.md/AGENTS.md。
repo-memory show [--limit N]将所有内容打印为一份 Markdown 文档。
repo-memory add-fact "<claim>" [--file F --lines L --tool T --command C --tag T --by AGENT]追加一条事实。
repo-memory list-facts [--tag T] [--source-file F] [--since ISO] [--limit N] [--json]列出/筛选事实。
repo-memory add-decision "<title>" [--body MD]写入一个决策文件。
repo-memory list-decisions列出决策文件路径。
repo-memory add-gotcha "<note>"追加一条单行注意事项。

如果当前工作目录不是仓库根目录,所有命令都可以使用 --root PATH。


关于作者

由 yubinkim444 创建,他也制作了 Kay's Records——一款适用于 iOS 和 Android 的应用。

如果这个项目为你节省了时间,不妨试用这款应用,这是表达感谢的最好方式。

许可证

MIT © yubinkim444

评论

支持 Markdown

第一次接触 MCP?

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

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