Memory MCP服务器:持久化记忆管理

流行MCP服务器专题 · 为AI赋予长期记忆能力

专题:流行MCP服务器系统学习

关键词:MCP, MCP服务器, Model Context Protocol, Memory, 知识图谱, 持久化记忆, 实体关系, 长期记忆MCP

一、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": { "type": "stdio", "command": "npx", "args": ["-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. 知识图谱天然支持关联查询和多跳推理,远比简单键值存储强大。