专题:流行MCP服务器系统学习
关键词:MCP, MCP服务器, Model Context Protocol, Memory, 知识图谱, 持久化记忆, 实体关系, 长期记忆MCP
Memory MCP服务器是 @modelcontextprotocol/server-memory 官方包提供的基于知识图谱的持久化记忆系统。它的核心目标是为AI赋予长期记忆能力,让AI能够在不同的会话之间记住用户信息、上下文和偏好。不同于简单的键值存储,Memory MCP采用实体-关系模型来存储结构化知识,使得AI不仅能记住孤立的事实,还能理解知识之间的关联,构建起一个可以被查询和推理的知识网络。
在AI交互场景中,最令人困扰的问题之一就是每次开启新会话都需要重新建立上下文。开发者需要反复告知AI自己的项目结构、编码偏好、技术栈选择等信息。Memory MCP服务器正是为解决这一问题而生——它将记忆从会话中解耦出来,作为一个独立的持久化层存在,让AI真正"记住"用户。
安装Memory MCP服务器非常简单,通过npm全局安装或直接使用npx即可。推荐的安装方式是在项目中将其配置为MCP客户端(如Claude Desktop或Claude Code)的一个工具服务器。
配置方式是在 claude.json 中添加一个memory服务器条目,指定使用stdio传输协议,命令为 npx,参数为 -y 和 @modelcontextprotocol/server-memory。以下是标准的配置示例:
此外,还可以通过环境变量或参数指定存储文件的路径,以便将记忆数据存放在特定位置。如果不指定,默认会在用户目录下创建存储文件。对于需要共享记忆或备份的场景,可以自定义存储路径。
Memory MCP服务器的数据模型围绕三个核心概念构建:实体(Entities)、关系(Relations)和观测(Observations)。
实体(Entities)是记忆的基本单元,可以代表人、事物、概念或任何有意义的对象。每个实体拥有唯一名称(name)、实体类型(entityType)和观测列表(observations)三个基本属性。例如,你可以创建一个名为"张三"类型为"person"的实体,或一个名为"React"类型为"framework"的实体。
关系(Relations)定义了实体之间的命名关联。关系是有向的,包含源实体、目标实体和关系类型三个要素。例如,"张三" -> "works_at" -> "某某公司",这就建立了一个完整的关系三元组。通过关系,知识图谱得以形成网络结构。
观测(Observations)是附加在实体上的信息片段。每个观测是一条文本信息,描述实体的某个属性或特征。例如,在"张三"实体上可以添加观测"精通TypeScript"或"有5年全栈开发经验"。观测是实体的属性补充,使得实体描述更加丰富。
这三者共同构成了一个可查询、可扩展的知识网络。当你问AI"我和张三是什么关系"时,AI可以通过查询知识图谱中的实体和关系来给出准确的回答,而不再需要依赖当前会话中的对话历史。
知识图谱的优势:相比传统的键值存储或简单的JSON文件,知识图谱模型天然支持关联查询和路径发现。你可以问"张三认识的人中有哪些在AI公司工作?"——这种多跳查询在图谱中非常高效。
Memory MCP服务器提供了一套完整的工具集,用于对知识图谱进行增删改查操作。以下是核心工具及其用途:
create_entities——创建新实体。可以一次创建多个实体,每个实体需指定名称、类型和初始观测。这是构建知识图谱的基础操作。
add_observations——为已有实体添加新的观测信息。观测是不断累积的,随着与用户的交互越来越多,实体上的观测也会越来越丰富,AI对用户的了解也就越来越深入。
create_relations——在两个实体之间创建关系。关系定义了知识之间的连接,是图谱网络化的关键。通过关系,孤立的知识点就可以被关联起来。
search_nodes——根据查询词搜索节点。搜索会匹配实体名称和观测内容,返回所有相关的结果。这是查询记忆的主要手段。
open_nodes——根据名称打开指定节点,查看该实体的完整信息,包括所有观测和与之相连的关系。这用于查看某个实体的详细数据。
删除操作——包括 delete_entities(删除实体)、delete_observations(删除观测)和 delete_relations(删除关系),用于清理和修正记忆数据。
| 工具名称 | 功能描述 | 适用场景 |
|---|---|---|
| create_entities | 创建新实体 | 记录新的人、事、物、概念 |
| add_observations | 添加观测信息 | 为已有实体补充属性描述 |
| create_relations | 创建实体关系 | 建立知识之间的关联 |
| search_nodes | 搜索节点 | 查询和检索记忆 |
| open_nodes | 打开节点详情 | 查看实体完整信息 |
| delete_entities | 删除实体 | 移除不再需要的记忆 |
| delete_observations | 删除观测 | 修正不正确的信息 |
| delete_relations | 删除关系 | 解除实体之间的关联 |
Memory MCP服务器的所有数据都存储在本地JSON文件中。默认情况下,存储文件位于用户目录下的特定位置。这种设计确保了数据的持久性——关闭会话、重启电脑都不会丢失记忆数据。
存储格式是结构化的JSON,包含实体列表、关系列表和观测列表。这种格式既便于程序读写,也便于开发者直接查看和调试。你可以用任何文本编辑器打开存储文件,查看AI记住了哪些信息。
如果需要迁移存储位置,可以通过配置参数指定新的文件路径。数据备份也很简单——直接复制存储文件即可。在需要重置记忆时,只需删除或清空该文件。
注意:存储文件包含了AI对你的所有记忆,请妥善保管。在多人共用设备或共享开发环境中,注意存储文件的访问权限,避免个人信息泄露。
项目中记住用户编码偏好和项目约定。在大型项目中,不同开发者有不同的编码风格和偏好。通过Memory MCP,AI可以记住你对特定项目的编码约定、命名规范、架构决策等,从而在不同会话中保持一致的代码风格。
构建个人知识管理系统。你可以将阅读过的技术文章、学过的知识点、写过的项目都作为实体存入知识图谱,并通过关系将它们关联起来。这样AI就可以基于你的个人知识库给出更加个性化的建议和帮助。
维护代码库的结构化知识图谱。对于大型代码库,可以将模块、组件、API、数据库表等作为实体,记录它们之间的关系。当你在某个会话中修改了一个函数,AI可以知道这个函数被哪些组件调用、关联到哪些数据表等,从而避免无意中破坏依赖关系。
跨会话的项目上下文保持。这是Memory MCP最直接的应用。项目架构讨论、技术选型决策、待办事项跟踪等都可以作为记忆持久化。即使在多个会话中反复切换,AI始终知道项目的当前状态和历史决策。
Memory MCP服务器的真正价值在于,它让AI从一个"健忘的助手"变成了一个"了解你的伙伴"。从初次见面到深度协作,持久化记忆是质变的关键。
核心要点总结:
1. Memory MCP基于知识图谱模型,核心概念是实体、关系和观测。
2. 提供完整的CRUD工具集,覆盖知识图谱的全生命周期管理。
3. 数据持久化在本地JSON文件,支持备份、迁移和重置。
4. 典型应用包括编码偏好记忆、个人知识库、代码库图谱、跨会话上下文保持。
5. 安装配置简单,一行命令即可集成到Claude Desktop或Claude Code中。
6. 知识图谱天然支持关联查询和多跳推理,远比简单键值存储强大。