使用说明

项目简介

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 服务器。

安装步骤

  1. 安装前置条件: 确保已安装 Docker 和 Docker Compose 以及 Node.js (v16 或更高版本)。
  2. 启动 Redis Graph: 使用 Docker Compose 启动 Redis 容器,该容器已预装 RedisGraph 模块。
    docker-compose up -d
  3. 安装应用依赖: 在项目根目录下,使用 npm 安装项目所需的依赖包。
    npm install
  4. 启动 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 文件和代码。

信息

分类

数据库与文件