mcpField
M
MCP Memory with Redis Graph

MCP Memory with Redis Graph

本地服务
github.com/samwang0723记忆与知识786 周前更新

关于 MCP Memory with Redis Graph

这是一个将 LLM 对话记忆存入 Redis Graph 知识图谱的 MCP 服务,支持多种记忆类型、搜索以及记忆间的关联。

主要功能

  1. 01存储多种类型的记忆
  2. 02按类型或关键词搜索记忆
  3. 03创建和查询记忆关联
  4. 04更新和删除记忆

适用场景

  1. 01保留长期对话上下文
  2. 02记录项目详情和问题
  3. 03关联相关任务与记忆

MCP 相关

该 MCP 服务提供工具,用于存储、检索、搜索、更新和删除记忆图谱条目,也可创建和查询记忆间的关联。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"memory": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"exec"
]
}
}
}
启动命令docker run -i --rm exec

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ociexec

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

使用 Redis Graph 的 MCP Memory

此项目使用 Redis Graph 实现 LLM 对话记忆系统,以存储长期记忆。

设置

先决条件
  • Docker 和 Docker Compose
  • Node.js(v16 或更高版本)
运行带有 RedisGraph 的 Redis
  1. 启动包含 RedisGraph 模块的 Redis 容器:
docker-compose up -d
  1. 验证 Redis 是否已加载 RedisGraph 模块:
docker exec -it mcp-memory-redis-1 redis-cli

进入 Redis CLI 后,可以检查 RedisGraph 模块是否已加载:

127.0.0.1:6379> MODULE LIST

你应该能在已加载模块列表中看到 RedisGraph。

从应用程序连接到 Redis

应用程序使用 src/index.ts 中的配置连接到 Redis。默认连接到:

  • 主机:localhost
  • 端口:6379

如需更改这些设置,请更新 src/index.ts 中的 Redis 客户端配置。

用法

  1. 安装依赖:
npm install
  1. 启动应用程序:
npm start

记忆工具

应用程序提供多种用于管理记忆的工具:

  • create_memory:创建新记忆
  • retrieve_memory:根据 ID 检索记忆
  • search_memories:按类型或关键词搜索记忆
  • update_memory:更新现有记忆
  • delete_memory:删除记忆
  • create_relation:创建记忆之间的关系
  • get_related_memories:获取与特定记忆相关的记忆

用法示例

// Create a memory
const memory = await memoryService.createMemory({
  type: MemoryNodeType.CONVERSATION,
  content: 'This is a conversation about Redis Graph',
  title: 'Redis Graph Discussion',
});

// Search for memories
const memories = await memoryService.searchMemories(
  { keyword: 'Redis' },
  { limit: 10, orderBy: 'created', direction: 'DESC' },
);

概述

MCP Memory 是一个 MCP 服务,提供用于存储和检索与 LLM 对话相关记忆的工具。它使用 Redis Graph 作为后端,创建记忆知识图谱,从而支持不同信息片段之间的复杂关系。

功能

  • 存储不同类型的记忆(对话、项目、任务、问题、配置、财务、待办事项)
  • 创建记忆之间的关系
  • 根据各种条件搜索和检索记忆
  • 更新和删除记忆

记忆类型

系统支持多种记忆类型,以处理不同场景:

  • Conversation:常规对话记忆
  • Topic:讨论过的具体主题
  • Project:项目详情(例如,法币供应商停用脚本)
  • Task:待完成的具体任务
  • Issue:错误或事故
  • Config:配置详情(例如,产品费用设置)
  • Finance:财务建议或信息
  • Todo:待办事项

用法示例

1. 项目详情

存储有关项目、配置和系统的信息:

create_memory(
  type: "Project",
  name: "Fiat Vendor Disable Script",
  description: "Script to disable fiat vendors in the system",
  content: "The script is located at /scripts/disable-vendor.js and takes vendor ID as parameter"
)
2. 问题处理

记录错误和事故:

create_memory(
  type: "Issue",
  title: "Payment Processing Timeout",
  severity: "high",
  status: "open",
  content: "Payments are timing out when processing large transactions over $10,000"
)
3. 个人财务建议

存储财务建议:

create_memory(
  type: "Finance",
  category: "Investment",
  content: "Recommendation to allocate 60% to index funds, 30% to bonds, and 10% to speculative investments",
  metadata: {
    riskProfile: "moderate",
    timeHorizon: "long-term"
  }
)
4. 工作相关待办事项

保存待完成的任务:

create_memory(
  type: "Todo",
  title: "Update payment network documentation",
  priority: "medium",
  completed: false,
  content: "Update the documentation to include the new payment networks: Visa Direct and MasterCard Send"
)

记忆之间的关系

你可以创建记忆之间的关系来构建知识图谱:

create_relation(
  fromId: "issue-123",
  toId: "project-456",
  type: "PART_OF"
)

搜索记忆

根据各种条件搜索记忆:

search_memories(
  type: "Project",
  keyword: "payment",
  limit: 10
)

架构

系统使用 Redis Graph 将记忆存储为图数据库中的节点。每条记忆都是一个带有属性的节点,而记忆之间的关系则是图中的边。

MCP 服务提供用于与记忆图谱交互的工具,让 LLM 能够按需存储和检索信息。

许可证

ISC

使用 Redis Graph

使用 Redis CLI 辅助脚本

我们提供了一个辅助脚本,用于连接 Redis 并显示常用的 RedisGraph 命令:

npm run redis:cli

这将打开一个 Redis CLI 会话,其中列出了用于操作记忆图谱的实用命令。

检查图谱

要检查记忆图谱的当前状态,请运行:

npm run check:graph

这将显示图谱中的所有节点、Finance 记忆和关系。

检视图谱

要更详细地检查图谱的架构和内容:

npm run inspect:graph
常用 RedisGraph 命令

以下是可在 redis-cli 中运行的一些实用命令:

  1. 列出所有图谱:

    GRAPH.LIST
    
  2. 统计所有节点:

    GRAPH.QUERY memory "MATCH (n) RETURN count(n)"
    
  3. 查看 Finance 记忆:

    GRAPH.QUERY memory "MATCH (n:Finance) RETURN n.id, n.title, n.content"
    
  4. 搜索特定内容:

    GRAPH.QUERY memory "MATCH (n) WHERE n.content CONTAINS 'debit card' RETURN n.id, n.type, n.content"
    
  5. 查看关系:

    GRAPH.QUERY memory "MATCH (a)-[r]->(b) RETURN a.id, type(r), b.id"
    

在 Docker 中运行

要在 Docker 中运行 MCP Memory 服务:

# Build the Docker image
docker build -t mcp/memory .

# Run the container on the same network as Redis
docker run --rm -i --network=mcp-memory_default -e REDIS_URL=redis://redis:6379 mcp/memory

测试

我们提供了多个测试脚本:

# Test Redis connection
npm run test:redis

# Test memory operations
npm run test:memory

# Test memory service
npm run test:service

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。