MCP Memory Server - 赋予 AI 跨会话长期记忆的知识图谱系统
简介
MCP Memory Server 是 Model Context Protocol 官方推出的革命性记忆系统,通过知识图谱技术赋予 AI 助手持久化的长期记忆能力。与传统的临时对话上下文不同,这个服务器能够跨会话保存和检索实体、关系和观察数据,让 AI 真正记住用户的偏好、习惯、目标和历史交互。它采用 TypeScript 开发,提供了 9 个核心工具来构建和管理复杂的知识图谱,包括实体创建、关系建立、观察记录等。系统会将所有数据持久化存储,即使重启应用,AI 也能延续之前的认知,提供更加个性化和连贯的交互体验。这对于需要长期协作的项目管理、客户服务、个人助理等场景具有突破性意义。
核心特性
- 知识图谱架构 - 基于实体-关系-观察三元组模型,以结构化方式存储复杂的知识和关系网络
- 持久化记忆 - 所有数据跨会话保存,AI 可以在任何时候回忆起之前学到的信息,实现真正的长期记忆
- 灵活的实体系统 - 支持定义任意类型的实体(人、组织、项目、概念等),每个实体都有唯一标识符和类型标签
- 有向关系图 - 使用主动语态描述实体之间的关系,清晰表达因果、从属、交互等复杂联系
- 原子化观察 - 将关于实体的信息分解为离散的原子事实,便于精确检索和推理
- 强大的搜索能力 - 支持全文搜索节点、打开特定节点查看详情、读取整个图谱结构
- 实时更新机制 - 支持删除过时的实体、关系和观察,保持知识图谱的准确性和时效性
- Docker 原生支持 - 提供官方容器镜像,数据通过 volume 持久化,简化部署和管理
- 零配置运行 - 通过 NPX 可以一键启动,无需复杂的环境设置
工具列表
实体管理
create_entities
描述: 创建新的实体节点,每个实体代表知识图谱中的一个独立对象
参数:
entities(array): 实体列表,每个实体对象包含以下字段 [必需]name(string): 实体的唯一名称标识符entityType(string): 实体类型(如 person、organization、project、concept)observations(array): 关于该实体的初始观察列表(可选)
delete_entities
描述: 从知识图谱中删除指定的实体及其所有相关的关系和观察
参数:
entity_names(array): 要删除的实体名称列表 [必需]
关系管理
create_relations
描述: 在两个实体之间建立有向关系连接,使用主动语态描述它们的交互
参数:
relations(array): 关系列表,每个关系对象包含以下字段 [必需]from(string): 关系的源实体名称to(string): 关系的目标实体名称relationType(string): 关系类型,用主动语态描述(如 “manages”、”works_with”、”depends_on”)
delete_relations
描述: 删除实体之间的特定关系连接
参数:
relations(array): 要删除的关系列表,格式同 create_relations [必需]
观察管理
add_observations
描述: 为指定实体添加新的观察信息,每条观察应该是一个原子化的事实
参数:
observations(array): 观察列表,每个观察对象包含以下字段 [必需]entityName(string): 要添加观察的实体名称contents(array): 观察内容的字符串数组,每个应该是一个独立的事实陈述
delete_observations
描述: 删除实体的特定观察信息,用于移除过时或错误的数据
参数:
deletions(array): 要删除的观察列表,每个对象包含以下字段 [必需]entityName(string): 实体名称observations(array): 要删除的观察内容列表
查询和检索
read_graph
描述: 读取并返回整个知识图谱的结构,包括所有实体、关系和观察
参数: 无需参数
search_nodes
描述: 在知识图谱中搜索匹配查询的节点,支持模糊匹配和全文搜索
参数:
query(string): 搜索查询字符串,可以匹配实体名称、类型或观察内容 [必需]
open_nodes
描述: 打开并查看指定节点的完整详细信息,包括所有关系和观察
参数:
names(array): 要打开的实体名称列表 [必需]
配置方式
Docker 配置(推荐)
1 | { |
NPX 配置(开发环境)
1 | { |
环境变量
无需特殊环境变量,数据会自动保存到:
- Docker:
/app/dist目录(通过 volume 持久化) - NPX: 本地文件系统的默认位置
使用示例
使用 NPX 快速启动
1 | # 一键启动,无需安装 |
使用 Docker
1 | # 拉取并运行官方镜像 |
知识图谱核心概念
1 | // 1. 实体(Entities)示例 |
系统提示词建议
为了充分利用记忆系统,建议在 AI 的系统提示中包含以下指导:
1 | 在交互开始时: |
实际应用场景
个人 AI 助理
记住用户的日常习惯、工作偏好、常用工具、重要联系人和待办事项。当用户说”帮我联系那个负责设计的朋友”时,AI 能准确找到之前交互中提到的设计师联系方式。
项目管理助手
跨多个会话追踪项目进度、团队成员角色、技术决策、风险点和依赖关系。即使中断数天后重新讨论,AI 也能完整回忆项目状态,无需重新说明背景。
客户关系管理
记录每个客户的公司背景、购买历史、痛点需求、沟通偏好和重要时间节点。下次对话时,AI 能自然地引用之前的讨论,提供个性化的服务体验。
学习伴侣
追踪用户正在学习的主题、已掌握的概念、常见困惑点和学习风格。系统能够根据用户的知识图谱,推荐最合适的下一步学习内容,避免重复讲解已理解的概念。
代码库知识库
将大型代码库的架构、模块依赖、设计决策、已知 bug 和改进计划存储为知识图谱。开发者可以询问”为什么我们选择 PostgreSQL 而不是 MongoDB”,AI 能从历史记忆中找到当初的技术决策讨论。
技术实现
MCP Memory Server 采用 TypeScript 开发,使用内存中的图数据结构存储知识图谱,并定期序列化到磁盘以实现持久化。数据模型遵循实体-关系-属性(Entity-Relation-Attribute)范式,其中:
- 实体作为图中的节点,拥有唯一的字符串标识符和类型标签
- 关系作为有向边,连接两个实体并携带关系类型描述
- 观察作为实体的属性列表,以字符串数组形式存储
系统采用邻接表结构优化图遍历性能,支持 O(1) 时间复杂度的实体查找和 O(n) 的全图搜索。搜索功能使用模糊匹配算法,能够在实体名称、类型和观察内容中查找相关信息。
数据持久化采用 JSON 格式,支持增量更新以减少磁盘 I/O。Docker 部署时,数据存储在命名 volume 中,确保容器重启后数据不丢失。系统设计遵循 MCP 协议规范,所有操作都是幂等的,支持并发访问和事务性更新。
为了保证数据质量,系统会验证实体和关系的完整性约束,例如确保关系的源和目标实体都存在。删除操作会自动清理相关的孤立节点和悬空关系。
获取方式
- GitHub: https://github.com/modelcontextprotocol/servers
- 安装:
npx -y @modelcontextprotocol/server-memory - Docker:
docker pull mcp/memory - 官方文档: https://modelcontextprotocol.io/docs
相关资源
- 知识图谱理论: 了解图数据库和语义网络的基础概念
- MCP 协议规范: 深入理解 Model Context Protocol 的设计哲学
- 最佳实践指南: 如何设计有效的实体类型和关系模式
- 示例应用: 查看使用 Memory Server 构建的实际项目案例