简介
Memory MCP 是 ModelContextProtocol 官方仓库维护的记忆集成服务器。它基于知识图谱(Knowledge Graph)存储用户信息,让 LLM 能跨会话记住用户的偏好、事实与关系。
对所有 LLM 用户而言,这意味着:AI 助理不再"金鱼记忆"——它记得你是前端开发者、你用 React、你正在做一个叫"ShopEase"的电商项目、你偏好简洁的代码风格。
为什么需要 Memory MCP
LLM 的根本局限:无状态。每次对话都是全新的,上一次说过的事这次全忘。
会话 1:
用户:我是前端开发者,用 React
AI:好的,记住了
会话 2(新开):
用户:帮我写个组件
AI:好的,请问你用什么框架? ← 忘了
传统解决方案:
| 方案 | 问题 |
|---|---|
| 每次手动粘贴背景 | 麻烦,重复劳动 |
| System Prompt 写死 | 无法动态更新 |
| 存数据库 + RAG | 过度工程,小事大做 |
Memory MCP 的方案:知识图谱 + 自然语言读写,轻量且结构化。
核心能力
| 工具名 | 用途 | 关键参数 |
|---|---|---|
create_entities | 创建实体 | entities[](名称+类型+观察) |
create_relations | 创建关系 | relations[](源+目标+类型) |
add_observations | 添加观察 | entity_name、observations[] |
delete_entities | 删除实体 | entity_names[] |
delete_observations | 删除观察 | entity_name、observations[] |
delete_relations | 删除关系 | relations[] |
read_graph | 读取整个图谱 | 无 |
search_nodes | 搜索节点 | query |
open_nodes | 打开指定节点 | names[] |
知识图谱模型
Memory MCP 用三类元素建模记忆:
1. 实体(Entity)
{
"name": "用户",
"entityType": "Person",
"observations": [
"前端开发者",
"用 React 和 TypeScript",
"正在开发 ShopEase 电商项目"
]
}
2. 关系(Relation)
{
"from": "用户",
"to": "ShopEase",
"relationType": "正在开发"
}
3. 观察(Observation)
事实性陈述,可随时添加或删除:
"用户偏好简洁代码风格"
"用户团队有 5 人"
"用户用 Vercel 部署"
图谱示例
[用户:Person] --正在开发--> [ShopEase:Project]
| |
|偏好 |技术栈
↓ ↓
[简洁代码:Preference] [React+TS:TechStack]
|
|部署在
↓
[Vercel:Service]
各客户端配置示例
Claude Code(CLI)
编辑 ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}
默认将记忆存于 ~/.memory.json。
自定义存储路径
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"],
"env": {
"MEMORY_FILE_PATH": "/Users/yourname/.config/ai-memory.json"
}
}
}
}
Cursor
编辑 ~/.cursor/mcp.json,结构同 Claude Desktop。
VS Code(Continue 插件)
编辑 ~/.continue/config.json:
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
]
}
}
实战场景
场景 1:让 Claude Code 记住你的开发偏好
记住以下信息:
- 我是前端开发者,主要用 React + TypeScript
- 我在做一个叫 ShopEase 的电商项目
- 我偏好简洁的代码,不喜欢过多注释
- 我用 Vercel 部署,用 Tailwind CSS 做样式
- 我的团队有 5 个人,用 GitHub 做版本控制
Claude Code 会调用 create_entities + create_relations 构建知识图谱。下次新会话直接可用。
场景 2:让 Cursor 记住项目上下文
项目信息:
- ShopEase 是一个电商前端项目
- 技术栈:Next.js 14 + TypeScript + Tailwind + Prisma
- 部署在 Vercel
- 数据库用 Supabase
- 正在重构购物车模块
- 上周完成了用户认证
下次开新会话问"帮我写个购物车组件",Cursor 会记得你的技术栈,直接用 Next.js + Tailwind 写。
场景 3:让 Claude Code 记住代码规范
记住我的代码规范:
- 函数用 camelCase
- 组件用 PascalCase
- 常量用 UPPER_SNAKE_CASE
- 文件名用 kebab-case
- 用函数组件,不用 class 组件
- 用 hooks,不用 HOC
- 每个函数不超过 30 行
以后生成代码自动遵守这些规范,无需每次重复说明。
场景 4:跨项目记忆
我之前做过一个叫 TaskFlow 的项目管理工具,
用的技术栈是 Vue 3 + Pinia + Vite,
现在我想参考它的架构设计 ShopEase。
Claude Code 会建立两个项目的关联,在讨论 ShopEase 时能参考 TaskFlow 的经验。
与其他 MCP 的对比
| MCP | 记忆类型 | 存储 | 适合 |
|---|---|---|---|
| Memory MCP | 结构化知识图谱 | JSON 文件 | 用户偏好、项目上下文 |
| Postgres MCP | 结构化数据 | 数据库 | 业务数据查询 |
| Filesystem MCP | 文件 | 本地文件 | 代码与文档 |
| GitHub MCP | 仓库 | Git | 代码版本管理 |
组合建议:Memory MCP 记"你是谁",Filesystem MCP 管"你的代码",GitHub MCP 管"你的协作"。
记忆管理策略
1. 主动记忆
用户明确说"记住这个":
用户:记住我用 React 18
→ AI 调用 create_entities
2. 被动记忆
AI 从对话中推断值得记住的信息:
用户:帮我用 Vue 写个组件(第 5 次了)
→ AI 推断"用户用 Vue",存入记忆
3. 记忆更新
旧记忆:用户用 React 17
新信息:我升级到 React 18 了
→ AI 调用 add_observations + delete_observations
4. 记忆遗忘
用户:我不用 Vue 了,现在用 React
→ AI 删除"用 Vue"的观察,添加"用 React"
注意事项
- 存储是本地文件:记忆存在本地 JSON,不同设备不同步,需手动复制
memory.json。 - 无加密:记忆文件是明文 JSON,敏感信息(密码、密钥)不要存。
- 记忆膨胀:长期使用后记忆文件会变大,定期清理过时信息。
- 冲突处理:多个 AI 客户端同时写入可能冲突,建议一个主客户端管理记忆。
- 隐私边界:AI 可能记住不该记的信息(如临时讨论),需定期审查
read_graph。 - 记忆不是数据库:Memory MCP 适合存"偏好与事实",不适合存大量结构化数据(用 Postgres)。
- 跨用户隔离:多人共用设备时,每人应有独立的
memory.json文件。 - 备份:
memory.json是 AI 的"长期记忆",定期备份。
安全建议
- 不存敏感信息:密码、API Key、个人身份信息不要存入记忆
- 定期审查:用
read_graph检查 AI 记住了什么,删除不当内容 - 分人隔离:不同用户用不同
MEMORY_FILE_PATH - 文件权限:
memory.json设置chmod 600 - 版本控制:把
memory.json纳入 Git(注意脱敏)
与 RAG 的区别
| 维度 | Memory MCP | RAG |
|---|---|---|
| 数据类型 | 用户偏好、事实、关系 | 文档知识 |
| 存储 | JSON 知识图谱 | 向量数据库 |
| 查询 | 精确匹配 | 语义相似度 |
| 更新 | 实时增删 | 批量重建索引 |
| 适合 | "你是谁" | "你知道什么" |
| 规模 | 小(百条) | 大(万条) |
互补关系:Memory MCP 记用户画像,RAG 检索知识库。Agent 两者都需要——既要知道"用户是谁",又要知道"答案在哪"。
小结
Memory MCP 是 AI 应用的个性化基石:让 LLM 从"千人一面"进化到"千人千面"。一个 JSON 文件、一条 npx 命令,就能让任意 MCP 客户端记住用户的偏好、项目与关系。
MCP 进阶系列下一篇将讲 Brave Search MCP 进阶:让 LLM 实时联网搜索的深度用法。