使用说明
带Redis图形的MCP内存
该项目使用Redis Graph进行长期内存存储,为LLM对话实现了一个内存系统。
设置
先决条件
- Docker和Docker Compose
- Node.js(v16或更高版本)
使用RedisGraph运行Redis
- 使用RedisGraph模块启动Redis容器:
docker-compose up -d
- 验证Redis是否正在使用RedisGraph模块运行:
docker exec -it mcp-memory-redis-1 redis-cli
进入Redis CLI后,您可以检查是否加载了RedisGraph模块:
127.0.0.1:6379> MODULE LIST
您应该在加载的模块列表中看到RedisGraph。
从应用程序连接到Redis
应用程序使用中的配置连接到Redis src/index.ts。默认情况下,它连接到:
- 主机:本地主机
- 端口:6379
如果需要更改这些设置,请在中更新Redis客户端配置 src/index.ts.
用法
- 安装依赖项:
npm install
- 启动应用程序:
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是一个服务器,它提供用于存储和检索与LLM对话中的内存的工具。它使用Redis Graph作为后端来创建内存的知识图,允许不同信息之间的复杂关系。
特性
- 存储不同类型的记忆(对话、项目、任务、问题、配置、财务、待办事项)
- 在记忆之间建立联系
- 根据各种标准搜索和检索记忆
- 更新和删除记忆
存储器类型
系统支持各种内存类型来处理不同的场景:
- 交谈:一般对话记忆
- 主题:讨论的具体议题
- 项目:项目详细信息(例如,菲亚特供应商禁用脚本)
- 任务:要完成的具体任务
- 问题:错误或事件
- 配置:配置细节(例如,产品费用设置)
- 金融:财务建议或信息
- 全部:所有项目
使用示例
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根据需要存储和检索信息。
许可证
国际协调委员会
使用Redis Graph
使用Redis CLI助手
我们提供了一个连接到Redis并显示常见RedisGraph命令的辅助脚本:
npm run redis:cli
这将打开一个Redis CLI会话,其中包含使用内存图的有用命令列表。
检查图表
要检查内存图的当前状态,请运行:
npm run check:graph
这将在图中显示所有节点、财务内存和关系。
检查图表
有关图形模式和内容的更详细检查:
npm run inspect:graph
常见的重新发现命令
以下是在redis-cli中运行的一些有用命令:
-
列出所有图表:
GRAPH.LIST -
统计所有节点:
GRAPH.QUERY memory "MATCH (n) RETURN count(n)" -
查看财务记忆:
GRAPH.QUERY memory "MATCH (n:Finance) RETURN n.id, n.title, n.content" -
搜索特定内容:
GRAPH.QUERY memory "MATCH (n) WHERE n.content CONTAINS 'debit card' RETURN n.id, n.type, n.content" -
查看关系:
GRAPH.QUERY memory "MATCH (a)-[r]->(b) RETURN a.id, type(r), b.id"
在Docker中运行
在Docker中运行MCP内存服务器:
# 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