每日 MCP Server

Memory MCP:给编码 Agent 装上跨 session 长期记忆

2026-08-26
开发仓库
支持客户端:
Claude CodeCursorVS CodeMuse Code
MCPMemory知识图谱编码Agent长期记忆

简介

Muse Code、Claude Code 这类长任务 Agent 最怕的是:新开一个 session,之前讨论的架构决策、踩过的坑、命名约定全忘了,又得从头讲一遍。Memory MCP(@modelcontextprotocol/server-memory)给 Agent 装上跨 session 持久记忆:基于知识图谱存储实体与关系,自动从对话里提取记忆,下次启动直接 recall。本篇覆盖核心能力、Claude Code / Cursor / VS Code 三客户端配置、与 Muse Code append-only 日志的协同、以及长任务记忆分层策略。

安装命令

npx -y @modelcontextprotocol/server-memory

Memory MCP 解决什么问题

终端编码 Agent(Muse Code、Claude Code、Codex)跑长任务时有个普遍痛点:session 之间是失忆的。昨天和 Agent 讨论好的"这个项目用 dayjs 不用 moment""API 错误码统一走 4xx 语义""auth 模块禁止直接 import utils"——今天新开一个 session,全忘了,又得口头复述一遍。

本地 .claude/CLAUDE.md 或 .muse/context.md 能存一部分,但那是静态文档,不会随对话自动更新,更不会在你说"记住这个决策"时主动提取。Memory MCP 补上这块:它是一个基于知识图谱的持久记忆服务,Agent 能主动调用 create_entities / create_relations / search_memories 工具,把决策、约定、踩坑沉淀成结构化记忆,下次启动直接 search_memories 拉回上下文。

核心能力

工具作用典型调用场景
create_entities创建实体(人/模块/决策/约定)"记住 auth 模块不依赖 utils"
create_relations在实体间建关系(DEPENDS_ON / DECIDED_BY / AVOIDS)"auth 模块 AVOIDS utils 模块"
add_observations给实体追加观察事实"auth 模块昨天改用 zod 校验"
search_memories按关键词召回相关记忆新 session 启动时召回项目约定
read_graph读全图(调试用)检查记忆是否被错误污染
delete_entities删除实体(记忆纠错)过期的架构决策被推翻时

记忆存储在本地 JSON 文件(默认 ~/.mcp/memory.json),不联网不上传,敏感约定留在本机。

安装与配置

Claude Code(CLI)

Claude Code 用 claude mcp add 命令注册 MCP server:

# 全局注册(所有项目可用)
claude mcp add memory -- npx -y @modelcontextprotocol/server-memory

# 或带参数:指定记忆文件路径
claude mcp add memory -- npx -y @modelcontextprotocol/server-memory --memory-path ~/.claude/memory.json

# 验证注册成功
claude mcp list
# 期望输出:memory  ✓ connected

交互式启动 Claude Code 后,Agent 会自动识别 memory server 的工具。你说"记住这个项目用 dayjs 不用 moment",它会自动调用 create_entities + create_relations 存下来。

Cursor

Cursor 在 Settings → MCP 页面配置,或直接编辑 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"],
      "env": {
        "MEMORY_FILE": "/Users/you/.cursor/memory.json"
      }
    }
  }
}

保存后重启 Cursor,在 Composer 里就能触发记忆工具。

VS Code(Continue / Cline 插件)

以 Cline 插件为例,编辑 ~/.cline/mcp_settings.json:

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"],
      "env": {},
      "disabled": false,
      "alwaysAllow": ["create_entities", "create_relations", "search_memories"]
    }
  }
}

alwaysAllow 把三个高频工具设为免确认,避免每次存记忆都要点同意。

Muse Code

Muse Code 的 MCP 配置写在 ~/.muse/config.toml:

[mcp.memory]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-memory"]
env = { MEMORY_FILE = "~/.muse/memory.json" }
auto_recall = true

auto_recall = true 让 Muse Code 在生成 plan 前自动 search_memories 召回项目约定,plan 文件会带一个"已召回记忆"段。

实战场景

场景 1:跨 session 保留架构决策

第一次接入项目时,把关键决策显式存入记忆:

claude
> 记住这个项目的几个约定:
> 1. 时间库统一用 dayjs,禁止引入 moment
> 2. auth 模块不依赖 utils,避免循环引用
> 3. API 错误码 4xx 表示客户端错误,5xx 表示服务端

Claude Code 会调用 create_entities 创建三个约定实体,并用 create_relations 关联到项目实体。下次新开 session:

claude
> 帮我加一个登录接口

Agent 启动时会 search_memories "登录 auth",拉回上述约定,写代码时自动遵守 dayjs、auth 不依赖 utils、错误码语义。

场景 2:踩坑沉淀,避免重复排查

> 记住昨天那个 bug:orderService 的 getUserOrders 里有 N+1,根因是循环内查 orderItemRepo.findByOrderId,修复是用 batch find

存成实体后,下次遇到类似性能问题,Agent search_memories "N+1 性能" 会把这条记忆拉回来,直接套用 batch find 模式,不用重新排查。

场景 3:记忆与 append-only 日志协同

Muse Code 的事件日志(short-term,session 内)和 Memory MCP(long-term,跨 session)是互补的:

  • 事件日志:单 session 内的工具调用轨迹,重启可 resume,session 结束就归档
  • Memory MCP:跨 session 的决策与约定,永久存储,每个新 session 都 recall

推荐工作流:session 结束前让 Agent 把"这次值得长期记住的决策"从事件日志沉淀到 Memory:

muse
> 这个 session 结束前,把值得长期记住的决策(不是临时操作)存到 memory

注意事项

  1. 记忆不是越多越好:记忆图谱膨胀后 search_memories 噪音变大。定期 read_graph 审查,过期的决策用 delete_entities 清掉。经验值:单个项目记忆实体不超过 50 个。
  2. 记忆可能被污染:Agent 误把临时讨论当成永久决策存入。重要决策建议人工确认后再存,或在 config 里把 create_entities 设为需审批(非 alwaysAllow)。
  3. 敏感信息别入记忆:Memory MCP 存本地 JSON 无加密,密钥、客户数据、内部 IP 不要存。只存架构约定、命名规范、踩坑结论这类非敏感知识。
  4. 记忆文件要纳入备份:~/.mcp/memory.json 是长期积累的资产,纳入定期备份。换机器时记得迁移。
  5. 多项目记忆隔离:不同项目用不同 MEMORY_FILE 路径,避免 A 项目的约定污染 B 项目的代码生成。

与其他 MCP 的搭配

Memory MCP 和以下 MCP 搭配能形成更强的长任务能力:

MCP协同点
Filesystem MCPFilesystem 读当前代码,Memory 存历史决策,两者交叉验证
GitHub MCPMemory 存 PR 讨论结论,下次写代码自动遵守
Puppeteer MCPMemory 存前端测试约定,Puppeteer 跑 E2E 时套用

接入完成后,建议第一个 session 就把项目的核心约定(技术栈、模块依赖、命名规范、踩过的坑)显式存入 Memory,后续每个 session 都能自动召回,省掉反复口头复述的成本。

相关推荐

查看更多 →
MCP开发

Memory MCP:让 LLM 拥有跨会话记忆的官方服务器

Memory MCP 是 ModelContextProtocol 官方维护的记忆集成服务器,基于知识图谱让 LLM 客户端能够记住用户的偏好、事实与关系,实现跨会话的个性化记忆。一条 npx 命令即可让 Claude Code、Cursor 等 MCP 客户端记住'你是谁、你喜欢什么、你在做什么'。本文梳理核心能力、知识图谱模型、各客户端接入与实战注意事项。

2026-08-10
#MCP#Memory
MCP开发

MCP Elicitation 实战:让服务端在缺参数时反向向用户提问——受限 Schema 设计 + 四套客户端配置 + 13 行排查表

写 MCP Server 的人迟早会遇到一个尴尬场景:工具必填参数用户没给,服务端要么猜一个(猜错就出事),要么返回一个干巴巴的「缺少参数 xx」让 Agent 自己去追问(Agent 经常追问得驴唇不对马嘴)。MCP 协议里的 Elicitation 就是为这个场景设计的第三个「反向能力」——服务端可以在执行过程中主动向客户端发起一次提问,由客户端把问题渲染成表单弹给用户,用户填完再回传,全程服务端不需要自己实现任何 UI、不需要存任何凭据。本文讲透它的机制与边界:elicitation/create 请求的完整结构、为什么 requestedSchema 被刻意限制成只支持原始类型(这是安全设计不是能力不足)、用户的三种响应(accept / decline / cancel)各自的语义差异、以及最关键的——为什么不能在 Elicitation 里索取密码和 API Key。含 TypeScript SDK 完整实现(含类型定义与降级路径)、Claude Code / Cursor / VS Code + Copilot / Trae 四套带中文注释的配置、三个实战场景(部署确认 / 缺失参数补全 / 敏感操作二次确认)、与 Sampling / 传统参数校验的选型对比、六条安全注意事项,以及 13 行故障排查表。

2026-10-12
#MCP#Model Context Protocol
MCP开发

MCP Roots 与 Sampling 实战:让服务端主动划边界、反向要推理——四套客户端配置 + 14 行排查表

多数人写 MCP Server 只用到 Resources / Tools / Prompts 三项,Roots 和 Sampling 这两个反向能力基本闲置,结果就是 Server 既不知道自己该在哪干活,也没有推理能力。本文把这两个方向的能力讲透:Roots 是客户端告诉服务端「工作区边界在哪」的机制(URI 列表、roots/list 双向协商、listChanged 动态通知、路径穿越的必修防御),Sampling 是服务端反过来向客户端的 LLM 请求一次推理的机制(服务端不知道任何 API Key,模型由客户端挑、账由客户端付、人可以卡在中间审批)。含 TypeScript SDK 完整实现代码(含 sampling/createMessage 的类型定义与 human-in-the-loop 回调)、Claude Code / Cursor / VS Code + Copilot / Trae 四套带中文注释的配置、三个实战场景(单仓守卫 / 日志归因摘要 / 隐私脱敏代理)、与其他方案的选型对比表、六条安全注意事项,以及 14 行故障排查表。

2026-10-10
#MCP#Model Context Protocol
MCP开发

MCP 无状态化改造:协议层不再存状态之后——并发、水平扩容、断线重连三大硬伤的根治方案与四套客户端配置

2026 年 MCP 协议经历了一次方向性的改动:核心交互不再依赖服务端保存的会话状态,状态不再存储在协议层,而是被甩给应用层处理。对写过有状态 MCP Server 的人来说,这次改动的直接感受是「少了一大堆坑」——会话粘连导致的多实例不可用、水平扩容一扩就断连、断线重连要么报错要么整段重放。本文讲清楚三件事:为什么协议层存状态在生产环境必然出问题(并发、扩容、重连三个硬伤,各配一组实测对照数据);无状态化之后你手里的工具清单发生了什么变化(transport 类、协议方法、Serverless 适配);以及状态外置的三种标准实现(外部存储、客户端持有、资源句柄),每种都给出可直接跑的 TypeScript SDK 代码。含 Claude Code / Cursor / VS Code / Trae 四套带中文注释的完整配置、三个实战场景、选型对比表、安全注意事项(含 DNS 重绑定的必修项),以及 14 行故障排查表。

2026-10-08
#MCP#Model Context Protocol