MCP Memory Server - 赋予 AI 跨会话长期记忆的知识图谱系统

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"mcpServers": {
"memory": {
"command": "docker",
"args": [
"run",
"-i",
"-v",
"claude-memory:/app/dist",
"--rm",
"mcp/memory"
]
}
}
}

NPX 配置(开发环境)

1
2
3
4
5
6
7
8
9
10
11
{
"mcpServers": {
"memory": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-memory"
]
}
}
}

环境变量

无需特殊环境变量,数据会自动保存到:

  • Docker: /app/dist 目录(通过 volume 持久化)
  • NPX: 本地文件系统的默认位置

使用示例

使用 NPX 快速启动

1
2
# 一键启动,无需安装
npx -y @modelcontextprotocol/server-memory

使用 Docker

1
2
3
4
5
6
7
8
# 拉取并运行官方镜像
docker run -i \
-v claude-memory:/app/dist \
--rm \
mcp/memory

# 构建自己的 Docker 镜像
docker build -t mcp/memory -f src/memory/Dockerfile .

知识图谱核心概念

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 1. 实体(Entities)示例
{
"name": "Alice",
"entityType": "person",
"observations": [
"是一名软件工程师",
"喜欢使用 TypeScript",
"正在开发 AI 应用"
]
}

// 2. 关系(Relations)示例
{
"from": "Alice",
"to": "ProjectX",
"relationType": "leads" // Alice 领导 ProjectX
}

// 3. 观察(Observations)应该是原子性的
// 好的观察:
"偏好使用 VS Code 编辑器"
"每天早上 9 点开始工作"
"最近在学习 Rust 语言"

// 不好的观察(包含多个事实):
"是软件工程师,使用 VS Code,喜欢 Rust"

系统提示词建议

为了充分利用记忆系统,建议在 AI 的系统提示中包含以下指导:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
在交互开始时:
1. 使用 search_nodes 或 read_graph 检索与用户相关的记忆
2. 回顾用户的基本信息、偏好、目标和历史互动

在交互过程中:
1. 捕获用户的基本身份信息(姓名、角色、背景)
2. 记录用户的行为模式和习惯
3. 保存用户明确表达的偏好
4. 记录用户的长期目标和计划
5. 建立用户与其他实体(人、项目、组织)的关系

数据质量原则:
- 每条观察应该只包含一个独立的事实
- 使用主动语态描述关系("管理"而非"被管理")
- 定期删除过时或错误的信息
- 为实体选择合适的类型标签以便分类

实际应用场景

个人 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 协议规范,所有操作都是幂等的,支持并发访问和事务性更新。

为了保证数据质量,系统会验证实体和关系的完整性约束,例如确保关系的源和目标实体都存在。删除操作会自动清理相关的孤立节点和悬空关系。

获取方式

相关资源

  • 知识图谱理论: 了解图数据库和语义网络的基础概念
  • MCP 协议规范: 深入理解 Model Context Protocol 的设计哲学
  • 最佳实践指南: 如何设计有效的实体类型和关系模式
  • 示例应用: 查看使用 Memory Server 构建的实际项目案例
© 2025 Generative AI Discovery All Rights Reserved.
Theme by hiero