ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

每日热门skill:给Claude装上Memory MCP Server,让AI真正记住你的一切

每日热门skill:给Claude装上Memory MCP Server,让AI真正记住你的一切 1. 为什么你的 Claude 总是“金鱼记忆”从一次真实翻车说起先还原一个我上周遇到的场景。我在做一个 Go 写的订单服务连续三天让 Claude 帮我改同一套代码。第一天我明确说了“这是 Go 项目用 Gin 框架数据库是 PostgreSQL不要给我 Node.js 示例。”它答应得很好。第二天我贴了一段 handler 代码问它怎么优化它回了我一大段 Express 中间件写法。第三天更离谱它建议我“用 npm 安装依赖”。这不是 Claude 笨而是它的记忆机制决定的。每次新开一个会话模型看到的只有当前上下文窗口里的内容。你昨天说的技术栈、偏好、项目结构全都不在窗口里了。上下文窗口再大也架不住跨会话、跨天、跨项目的长期协作。Memory MCP Server 就是来解决这个问题的。它是 Anthropic 官方维护的一个 MCP Server本质是一个基于知识图谱的持久记忆系统。它把信息拆成实体、关系、观察三种结构存成本地的 JSONL 文件然后通过 MCP 协议暴露给 Claude 调用。Claude 在对话中可以主动写入记忆、检索记忆下次会话再读出来。它适合谁适合每天用 Claude 做长期项目的开发者尤其是那种“同一个项目要聊好几周”“个人偏好反复解释很烦”的场景。如果你只是偶尔问个语法问题那确实用不上。但只要你有跨会话的上下文需求这个东西的价值就立刻体现出来了。我实测下来配好之后 Claude 真的会在对话开头自动检索记忆然后说“根据你之前的偏好……”。那种感觉就像换了个助手。下面我把完整配置、验证步骤、踩坑记录全部写出来你可以直接跟着做。2. 前置准备用 TaoToken 统一管理 Claude 的 Key 与 API 通道在配 Memory MCP Server 之前有一个前置问题必须先解决Claude 的 API 通道和 Key 管理。因为 Memory MCP Server 本身是本地进程它不依赖网络但 Claude 客户端要调用模型就需要一个稳定的 API 入口。如果你同时用 Claude Code、Cline、Codex 等多个工具每个都配一套 Key 和 Base URL管理起来非常乱。我的做法是用 TaoToken 做统一通道。它的官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 入口是 https://taotoken.net/api 。你可以在控制台里创建 Key然后所有支持自定义 Base URL 的客户端都指向同一个地址。具体操作路径是这样的先打开 https://taotoken.net/api-keys 创建 API Key然后到 https://taotoken.net/doc 看接入文档。文档里写清楚了不同客户端的配置方式。如果你用的是 Claude Code 这类命令行工具可以直接参考 https://taotoken.net/claude-code-anthropic 这个页面里面有完整的 Base URL 和 Key 填写说明。这里要强调一个点Memory MCP Server 的配置和 API 通道的配置是两件独立的事。Memory 是本地 MCP 进程负责存记忆API 通道负责让 Claude 能正常调用模型。两者不冲突但都需要配好。很多人只配了 Memory结果 Claude 客户端本身连不上模型那就什么都跑不起来。我建议的顺序是先用 TaoToken 把 Claude 客户端的 API 通道跑通确认能正常对话然后再加 Memory MCP Server。这样出问题的时候容易定位。如果你还没配通道可以先到 https://taotoken.net/console 看看自己的 Key 状态和用量。另外如果你打算长期做编码和 Agent 类任务可以了解一下 Coding Plan地址是 https://taotoken.net/coding-plan 。它适合那种每天都要跑大量代码生成和上下文检索的场景比单次调用更划算。不过这不是必须的先用按量 Key 也完全够用。配好通道之后我们进入正题Memory MCP Server 的安装和配置。3. 可复制配置Memory MCP Server 的 JSON 片段与三件套Memory MCP Server 的安装方式有三种我按推荐程度排序。第一种是 NPX最简单适合快速验证。第二种是 Docker适合需要数据持久化和隔离的场景。第三种是自定义存储路径适合你想把 memory.jsonl 放到项目目录里做版本控制。先看 NPX 方式。你需要在 Claude Desktop 的配置文件里加上这段 JSON。配置文件的位置macOS 是~/Library/Application Support/Claude/claude_desktop_config.jsonWindows 是%APPDATA%\Claude\claude_desktop_config.json。{ mcpServers: { memory: { command: npx, args: [-y, modelcontextprotocol/server-memory] } } }这段配置的意思是启动一个叫 memory 的 MCP Server用 npx 拉取modelcontextprotocol/server-memory这个包并运行。-y表示自动确认安装。如果你用 Docker配置改成这样{ mcpServers: { memory: { command: docker, args: [run, -i, -v, claude-memory:/app/dist, --rm, mcp/memory] } } }Docker 方式的好处是数据存在 volume 里不会因为容器重启丢失。-v claude-memory:/app/dist把容器内的存储目录挂到 named volume。第三种是自定义存储路径这个我最推荐给做长期项目的开发者{ mcpServers: { memory: { command: npx, args: [-y, modelcontextprotocol/server-memory], env: { MEMORY_FILE_PATH: /Users/yourname/projects/myproject/memory.jsonl } } } }把MEMORY_FILE_PATH指向你的项目目录这样 memory.jsonl 就能跟代码一起用 Git 管理。你可以看到记忆是怎么随时间变化的也可以回滚。这里必须写全三件套因为很多人配 MCP 的时候只写了 command 和 args忘了环境变量和路径。三件套是Base URL、Key、Model ID。对于 Memory MCP Server 本身它不需要 Base URL 和 Key因为它是本地进程。但你的 Claude 客户端需要。所以完整的配置应该分成两部分MCP Server 配置 客户端 API 配置。客户端 API 配置以 Claude Code 为例你需要在 settings 里填{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: 你的Key, ANTHROPIC_MODEL: claude-sonnet-4-20250514 } }Model ID 要根据你实际使用的模型填。Base URL 统一用 https://taotoken.net/api 不要加 UTM 参数。Key 从 https://taotoken.net/api-keys 获取。如果你用的是 Cline 或者 CC Switch配置逻辑类似都是找 Base URL、Key、Model ID 这三个字段。CC Switch 里可能叫 Provider URL 和 API Key。Cline 的 MCP 配置里Memory Server 的启动命令和上面 JSON 一致。配好之后重启 Claude 客户端。如果启动正常你会在 MCP 连接状态里看到 memory 这个 Server 是 connected。如果没连上先看下一节的排查。4. 验证请求知识图谱写入与检索的完整步骤配置好之后怎么确认 Memory 真的在工作我设计了一个三步验证法写入、检索、跨会话读取。第一步写入。新开一个对话直接告诉 Claude 你的基本信息。比如你好我是做后端开发的主要用 Go 和 Python数据库用 PostgreSQL不喜欢写前端。目前在做订单服务项目代码在 ~/projects/order-service。如果 Memory 正常工作Claude 会调用create_entities创建“你”这个实体调用add_observations添加观察调用create_relations建立你和项目的关系。你可以在对话里让它确认“你刚才往记忆里写了什么”它应该能列出实体和观察。第二步检索。你可以直接问“你还记得我的技术栈吗”Claude 会调用search_nodes或read_graph去读 memory.jsonl然后回答。更严谨的验证是打开 memory.jsonl 文件看里面有没有对应的 JSON 行。文件内容大概长这样{type:entity,data:{name:用户,entityType:person,observations:[后端开发,主要用Go和Python,数据库用PostgreSQL,不喜欢写前端]}} {type:entity,data:{name:订单服务项目,entityType:project,observations:[代码在~/projects/order-service,使用PostgreSQL]}} {type:relation,data:{from:用户,to:订单服务项目,relationType:works_on}}如果你看到这些行说明写入成功。第三步跨会话读取。这是最关键的一步。完全关闭 Claude 客户端重新打开新开一个对话直接问“帮我写个数据库查询。”如果 Memory 生效Claude 应该会自动检索记忆然后给你 PostgreSQL 的示例而不是 MySQL 或 MongoDB。它甚至可能说“根据你之前的偏好我用 PostgreSQL 写”。我实测的时候第一次跨会话读取成功Claude 回了一句“Remembering...”然后说“你之前提到不喜欢前端所以我只给后端代码”。那一刻确实有点惊喜。如果你想更精确地验证可以在对话里让它调用open_nodes打开指定实体。比如“打开‘用户’这个节点列出所有观察。”它应该返回你之前写入的所有事实。还有一个进阶验证更新记忆。告诉 Claude“我换项目了现在做支付服务”。它应该调用delete_relations删除旧关系调用create_relations建立新关系调用add_observations添加新观察。然后你再打开 memory.jsonl看旧关系是否被删除、新关系是否写入。这三步走完基本可以确认 Memory MCP Server 在正常工作。如果中间任何一步失败看下一节的排查。5. 常见报错排查401、local proxy failed、reading choices、OAuth这一节我列几个真实遇到过的报错以及对应的排查思路。这些报错不一定都跟 Memory 直接相关但都是配 MCP API 通道时的高频问题。报错一401 Unauthorized这个最常见。原因通常是 API Key 没填对或者 Base URL 写错了。检查你的客户端配置里ANTHROPIC_API_KEY是不是从 https://taotoken.net/api-keys 复制的完整 Key。Base URL 应该是 https://taotoken.net/api 不要多写斜杠也不要加 UTM 参数。如果你用的是 Claude Code检查 settings.json 里的 env 字段有没有生效。有时候环境变量被系统里的旧值覆盖了可以在终端里echo $ANTHROPIC_API_KEY确认。报错二local proxy failed这个报错通常出现在你用了本地代理工具的情况下。但这里要强调我们不走任何代理。如果你看到这个报错先检查是不是客户端里配了HTTP_PROXY或HTTPS_PROXY环境变量。把这两个变量清掉直接用 TaoToken 的 API 地址。另外检查防火墙有没有拦截 npx 或 docker 的网络请求。Memory MCP Server 本身是本地进程不需要网络但 Claude 客户端调用模型需要。报错三reading choices 相关错误这个报错一般出现在模型返回格式异常的时候。可能原因是你填的 Model ID 不对或者 API 通道返回了非预期格式。检查ANTHROPIC_MODEL是不是有效的模型 ID。如果你不确定可以先到 https://taotoken.net/models 看可用模型列表。另外有些客户端对模型返回的 JSON 格式有严格要求如果 Memory MCP Server 返回的内容被截断也可能触发这个错误。可以尝试减少单次写入的观察数量分批写入。报错四OAuth 相关错误如果你用的是 Claude Code 或者某些需要 OAuth 的客户端可能会遇到 token 过期或授权失败。这种情况下先确认你的 TaoToken Key 是否有效然后重新走一遍授权流程。Claude Code 的接入文档在 https://taotoken.net/claude-code-anthropic 里面有详细的 OAuth 配置说明。如果还是不行可以到 https://taotoken.net/console 看 Key 的状态和调用日志。报错五MCP Server 启动失败如果 Claude 客户端里 memory 显示 disconnected先手动在终端跑一下npx -y modelcontextprotocol/server-memory看有没有报错。常见问题是 Node.js 版本太低建议用 Node 18 以上。如果是 Docker 方式检查 Docker 是否在运行volume 路径是否正确。另外MEMORY_FILE_PATH指向的目录必须存在否则写入会失败。排查的时候有一个原则先确认 API 通道正常再确认 MCP Server 正常。两者分开验证不要混在一起调。你可以先用一个最简单的对话确认 Claude 能正常回复然后再加 Memory 配置。6. 让记忆真正有用从配置到长期使用的 CTA配好 Memory MCP Server 只是第一步真正让它产生价值的是长期使用习惯。我分享几个我踩过坑之后总结的实用技巧。第一实体命名要有规律。我见过有人建了两个“张三”一个是同事一个是客户结果检索的时候混在一起。建议用“人_张三_同事”“项目_订单服务”这种前缀命名。这样 search_nodes 的时候能精准匹配。第二观察要原子化。不要写“喜欢 Java 和 Python不喜欢 JavaScript”要拆成三条“喜欢 Java”“喜欢 Python”“不喜欢 JavaScript”。这样删除或更新的时候不会误伤。第三关系用主动语态。写“用户 works_on 订单服务”不要写“订单服务 employs 用户”。主动语态在检索的时候更符合直觉。第四定期备份 memory.jsonl。这个文件就是你的全部记忆丢了就没了。如果你把它放在项目目录里记得加到 Git 里。但注意不要把密码、密钥、敏感信息写进记忆。Memory 是明文存储的。第五控制粒度。不要细到每个函数调用都记也不要粗到“我是个开发者”就完了。我一般记技术栈偏好、项目结构、常用命令、代码风格约定、反复出现的错误模式。这些信息在跨会话协作时最有用。如果你还没配 API 通道现在可以去 https://taotoken.net/api-keys 创建一个 Key然后参考 https://taotoken.net/doc 把客户端配好。配好之后再按本文第三节的 JSON 片段加上 Memory MCP Server。整个过程大概十分钟。如果你在验证模型的时候想快速测试可以用 https://taotoken.net/models 里的对话功能直接确认 Key 和通道是否正常。长期做编码和 Agent 任务的话可以看看 https://taotoken.net/coding-plan 它更适合高频调用场景。最后说一个我自己的用法我把 memory.jsonl 放在项目根目录每次开新会话前先让 Claude 读一遍记忆然后开始干活。它现在会记得我用什么框架、讨厌什么写法、上次改到哪个模块。那种“不用重复解释”的顺畅感是配之前完全体会不到的。你可以从今天开始先写入三条关于自己的事实明天回来问它记不记得。
返回列表