项目简介
KuzuMem-MCP 是一个采用 TypeScript 实现的 MCP (Model Context Protocol) 服务器。它利用 KùzuDB 图谱数据库作为后端,提供一个分布式内存银行,能够存储和管理结构化(如组件、决策、规则)和非结构化(如上下文)的知识,并支持基于图谱结构的复杂查询和算法分析。该服务器符合 MCP 规范,旨在为 LLM 客户端(如 IDE 插件和 AI Agent)提供标准化的上下文和工具访问接口。
主要功能点
- 图谱数据库存储: 使用 KùzuDB 作为持久化存储,以图谱形式表示内存项及其关系。
- 支持仓库与分支隔离: 通过独特的实体 ID 格式,实现同一数据库中不同代码仓库和分支的数据隔离。
- 多协议访问: 提供多种 MCP 服务器实现,支持 Stdio (用于与 IDE/Agent 直接通信)、HTTP Streaming (SSE,用于渐进式结果) 和传统的基于 Express.js 的 HTTP (用于批处理)。
- 全面的工具集: 提供了用于管理内存项(如组件、决策、规则)的 CRUD 工具,以及用于图谱遍历(如依赖分析、查找关联项)和图谱算法(如 PageRank、社区检测、最短路径)的工具。
- 渐进式结果: 部分长时间运行的图谱工具支持通过 'tools/progress' 通知流式传输中间结果。
- 模块化架构: 清晰划分数据库、仓库、服务、MCP 层,易于理解和扩展。
安装步骤
- 克隆仓库:
git clone https://github.com/Jakedismo/KuzuMem-MCP cd KuzuMem-MCP - 安装依赖:
npm install - 构建项目:
npm run build
服务器配置 (MCP客户端连接)
MCP客户端(如IDE或AI Agent)需要配置如何启动和连接到此服务器。您需要根据客户端的要求,在配置中指定服务器的启动命令和必要的参数/环境变量。通常配置为一个JSON对象,其中包含以下信息:
- 'command': 用于启动服务器的可执行程序路径(例如,'npx' 或 'node')。
- 'args': 传递给 'command' 的参数列表。对于本项目,您通常会使用 'ts-node' 来直接运行 TypeScript 文件,例如 '["ts-node", "/path_to_your_project/KuzuMem-MCP/src/mcp-stdio-server.ts"]'。请根据您的项目实际路径调整。
- 'env': 启动服务器进程所需的环境变量,例如数据库文件路径 ('DB_FILENAME') 和监听端口 ('PORT' 或 'HTTP_STREAM_PORT')。
示例配置说明 (基于Stdio服务器)
对于通过 Stdio 连接的 MCP 客户端,配置通常指向 'src/mcp-stdio-server.ts' 文件:
- 服务器名称: 客户端显示名称,例如 '"KuzuMem-MCP Stdio"'
- Command: 'npx'
- Args: '["ts-node", "/path_to_your_project/KuzuMem-MCP/src/mcp-stdio-server.ts"]' (请将 '/path_to_your_project/KuzuMem-MCP' 替换为您的实际项目路径)
- Env:
- 'DB_FILENAME': KùzuDB 数据库文件路径,例如 './memory-bank.kuzu' 或 '/absolute/path/to/your/memory-bank.kuzu'。
- 'DEBUG': 可选,设置日志级别 (0-4)。
请查阅您的 MCP 客户端文档,了解如何将上述信息填写到其 MCP 服务器配置界面或文件中。
基本使用方法 (启动服务器)
在本地测试或集成之前,您需要启动所需的 MCP 服务器。可以在项目根目录执行以下命令:
- 启动主 HTTP 服务器 (包含 '/mcp/tools/...' 批处理端点):
(此命令运行 'dist/index.js',它会初始化DB并启动 'src/app.ts' 中定义的 Express 应用)npm start - 启动 MCP HTTP Streaming 服务器 (提供 '/mcp' SSE 端点):
npx ts-node src/mcp-httpstream-server.ts - 启动 MCP Stdio 服务器 (用于 IDE/Agent 集成):
npx ts-node src/mcp-stdio-server.ts
启动服务器后,您的 MCP 客户端即可通过配置的连接方式与之通信,调用其提供的工具。
信息
分类
AI与计算