关于 memoir
memoir 是为 AI Agent 保存结构化会话日志的 MCP 服务,帮助跨会话延续工作,避免重复失败尝试。它面向使用 MCP 客户端的团队或开发者,将尝试、阻碍、决策和交接记录在本地 SQLite 数据库中。
主要功能
- 01记录尝试、阻碍和决策
- 02自动创建会话
- 03生成结构化交接摘要
- 04查询会话历史和阻碍
- 05保留可配置的滚动会话历史
适用场景
- 01将项目上下文交接给后续会话
- 02避免重复失败的方法
- 03跨会话跟踪未解决的阻碍
MCP 相关
为 MCP 客户端提供写入会话记录及读取交接摘要、历史和阻碍的工具。数据保存在本地 SQLite 文件中,不依赖外部服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
mcp.json · 通用配置
启动命令
npx -y memoir-mcp需要配置的环境变量
MEMOIR_MAX_CONTENTMax characters for content fieldsMEMOIR_MAX_OUTCOMEMax characters for outcome/resolution fieldsMEMOIR_MAX_ENTRIESMax entries per sessionMEMOIR_MAX_SESSIONSMax sessions per project (rolling)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
memoir-mcp
为 AI Agent 提供结构化的会话日志。在不同会话间保留记忆——不再重复走过的弯路。
会话结束后,所有推理都会丢失——尝试过什么、哪些失败了、哪些遇到了阻碍。下一个会话只能从头开始,并重复同样的错误。memoir 会记录所有内容并进行交接,让下一个会话从上一个会话中断的地方继续。
适用于任何 MCP 客户端:Claude Code、Cursor、Codex、Windsurf 等。
安装
Claude Code
claude mcp add memoir -s user -- npx -y memoir-mcp
其他 MCP 客户端
npx -y memoir-mcp
工作原理
- 自动检测项目——根据项目的 git 根目录识别项目,因此日志会自动限定在对应项目中,无需任何配置。
- 隐式会话——首次记录日志时会自动创建会话,无需额外设置。
- 滚动保留——每个项目保留最近 20 个会话(可配置),并自动清理较早的会话。
工具
写入
| 工具 | 描述 |
|---|---|
log_attempt | 记录尝试过的事项及其结果。 |
log_blocker | 标记遇到阻碍的事项并说明原因。 |
resolve_blocker | 将阻碍标记为已解决,并记录解决方法。 |
log_decision | 记录设计或架构选择及其理由。 |
end_session | 结束当前会话,并可选择添加摘要。 |
读取
| 工具 | 描述 |
|---|---|
get_handoff | 上一个会话的结构化摘要——尝试过什么、哪些事项遇到阻碍、做出了哪些决定。 |
get_history | 查询过去的会话(默认:最近 3 个,最多 20 个)。 |
get_blockers | 列出所有会话中尚未解决(或已解决)的阻碍。 |
存储
单个 SQLite 文件,位于 ~/.memoir/memoir.db。无需 API 密钥,也无需外部服务。
配置
所有限制均可通过环境变量配置:
| 变量 | 默认值 | 描述 |
|---|---|---|
MEMOIR_MAX_CONTENT | 500 | 内容字段的最大字符数 |
MEMOIR_MAX_OUTCOME | 300 | 结果/解决方案字段的最大字符数 |
MEMOIR_MAX_ENTRIES | 50 | 每个会话的最大条目数 |
MEMOIR_MAX_SESSIONS | 20 | 每个项目保留的最大会话数(滚动) |
自定义限制示例:
claude mcp add memoir -s user -e MEMOIR_MAX_CONTENT=1000 -e MEMOIR_MAX_ENTRIES=100 -- npx -y memoir-mcp
交接输出采用紧凑格式,以减少上下文窗口的占用。
许可证
MIT
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。