使用说明
项目简介
Memory Graph (MCP Memory) 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 提供可扩展的长期记忆解决方案。它使用 Redis Graph 数据库作为后端,以知识图谱的形式存储和管理对话记忆,支持 LLM 应用存储和检索用户对话、项目信息、任务记录等多种类型的上下文数据。通过 MCP 协议提供的标准化接口,LLM 客户端可以方便地调用 Memory Graph 提供的工具,实现记忆的创建、检索、搜索、更新和删除,以及记忆关系的管理。
主要功能点
- 记忆存储与管理: 支持多种记忆类型 (对话、主题、项目、任务、问题、配置、财务、待办事项),使用 Redis Graph 以图数据库形式存储,便于建立记忆间的关联。
- 记忆检索: 支持通过ID检索特定记忆,支持基于关键词、类型等条件进行记忆搜索。
- 记忆关系: 支持创建记忆之间的关系 (例如:包含、相关、依赖于、属于...的一部分),构建知识图谱,增强上下文理解能力。
- 记忆工具集: 提供一系列工具 (create_memory, retrieve_memory, search_memories, update_memory, delete_memory, create_relation, get_related_memories) 供 LLM 客户端调用,方便快捷地操作记忆数据。
- 易于部署: 通过 Docker Compose 快速部署 Redis Graph 和 MCP Memory 服务器。
安装步骤
- 安装前置条件: 确保已安装 Docker 和 Docker Compose 以及 Node.js (v16 或更高版本)。
- 启动 Redis Graph: 使用 Docker Compose 启动 Redis 容器,该容器已预装 RedisGraph 模块。
docker-compose up -d - 安装应用依赖: 在项目根目录下,使用 npm 安装项目所需的依赖包。
npm install - 启动 MCP Memory 服务器: 使用 npm 启动 MCP Memory 服务器。
npm start
服务器配置
MCP 服务器配置(JSON 格式,用于 MCP 客户端配置连接信息):
{ "serverName": "mcp-memory", "command": "npm", "args": ["start"] }
配置参数注释:
- 'serverName': MCP 服务器的名称,这里设置为 "mcp-memory"。
- 'command': 启动 MCP 服务器的命令,这里使用 'npm' (Node 包管理器)。
- 'args': 启动命令的参数,这里使用 '["start"]',对应 package.json 中定义的 start 脚本,用于启动 Node.js 服务器。
注意: MCP 客户端需要配置以上 JSON 信息,才能正确连接到 Memory Graph MCP 服务器。请确保 MCP 客户端能够执行 'npm start' 命令来启动服务器。如果 Redis 服务器不在 'localhost:6379' 运行,请修改 'src/index.ts' 文件中的 Redis 连接配置。
基本使用方法
MCP Memory 服务器启动后,将通过标准输入/输出 (stdio) 与 MCP 客户端进行通信。LLM 客户端可以通过调用以下工具来管理记忆:
- 'create_memory': 创建新的记忆节点。例如,创建一个项目记忆:
{ "tool_code": "create_memory", "tool_parameters": { "type": "Project", "name": "文档更新项目", "description": "更新支付网络文档", "content": "需要更新 Visa Direct 和 MasterCard Send 的文档。" } } - 'retrieve_memory': 根据记忆 ID 检索记忆。
{ "tool_code": "retrieve_memory", "tool_parameters": { "id": "your-memory-id" } } - 'search_memories': 搜索记忆。例如,搜索类型为 "Project" 且关键词包含 "支付" 的项目记忆:
{ "tool_code": "search_memories", "tool_parameters": { "type": "Project", "keyword": "支付" } } - 'update_memory': 更新现有记忆。
{ "tool_code": "update_memory", "tool_parameters": { "id": "your-memory-id", "content": "更新后的记忆内容。", "status": "completed" } } - 'delete_memory': 删除记忆。
{ "tool_code": "delete_memory", "tool_parameters": { "id": "your-memory-id" } } - 'create_relation': 创建记忆之间的关系。例如,将一个任务记忆关联到一个项目记忆:
{ "tool_code": "create_relation", "tool_parameters": { "fromId": "project-id", "toId": "task-id", "type": "CONTAINS" } } - 'get_related_memories': 获取与指定记忆相关的记忆。
{ "tool_code": "get_related_memories", "tool_parameters": { "id": "your-memory-id" } }
更多工具的参数和使用细节,请参考仓库 README.md 文件和代码。
信息
分类
数据库与文件