KuzuMem-MCP 是一个用 TypeScript 实现的分布式内存库,作为 MCP(模型上下文协议)工具使用。它将内存存储在 KùzuDB 图数据库 中,并具备仓库和分支过滤功能。通过为实体使用图唯一标识符实现分支隔离,从而在实现集中式内存库的同时,支持特定仓库和特定分支的视图。该工具完全符合 MCP 规范,可与 IDE 和 AI 代理无缝集成。
# 克隆仓库
git clone git@github.com:Jakedismo/KuzuMem-MCP.git
cd kuzumem-mcp
# 安装依赖
npm install
# 构建项目
npm run build
{
"tool": "memory-bank",
"operation": "init",
"clientProjectRoot": "/path/to/your/project",
"repository": "my-app",
"branch": "main"
}
{
"tool": "entity",
"operation": "create",
"entityType": "component",
"repository": "my-app",
"branch": "main",
"data": {
"id": "comp-auth-service",
"name": "Authentication Service",
"kind": "service",
"depends_on": ["comp-user-service"]
}
}
{
"tool": "query",
"type": "dependencies",
"repository": "my-app",
"branch": "main",
"componentId": "comp-auth-service",
"direction": "dependencies"
}
{
"tool": "analyze",
"type": "pagerank",
"repository": "my-app",
"branch": "main",
"projectedGraphName": "component-importance",
"nodeTableNames": ["Component"],
"relationshipTableNames": ["DEPENDS_ON"]
}
{
"tool": "memory-optimizer",
"operation": "analyze",
"repository": "my-app",
"branch": "main",
"llmProvider": "openai",
"model": "o4-mini",
"strategy": "conservative",
"enableMCPSampling": true,
"samplingStrategy": "representative"
}
{
"tool": "memory-optimizer",
"operation": "optimize",
"repository": "my-app",
"branch": "main",
"dryRun": true,
"strategy": "conservative"
}
{
"tool": "memory-optimizer",
"operation": "optimize",
"repository": "my-app",
"branch": "main",
"dryRun": false,
"confirm": true,
"strategy": "conservative"
}
{
"tool": "memory-optimizer",
"operation": "list-snapshots",
"repository": "my-app",
"branch": "main"
}
{
"tool": "memory-optimizer",
"operation": "rollback",
"repository": "my-app",
"branch": "main",
"snapshotId": "snapshot-1703123456789-xyz789"
}
核心内存优化代理提供基于 AI 的内存图优化功能,具备高级推理能力和生产级安全特性:
# 运行单元测试
npm test
# 运行端到端测试(需要 API 密钥)
npm run test:e2e
# 运行特定的端到端测试
npm run test:e2e:stdio
npm run test:e2e:httpstream
# 运行内存优化器端到端测试
npm run test:e2e -- --testNamePattern="Memory Optimizer E2E Tests"
# 运行所有测试
npm run test:all
对于内存优化器端到端测试,需设置环境变量:
export OPENAI_API_KEY="your-actual-openai-api-key"
export ANTHROPIC_API_KEY="your-actual-anthropic-api-key"
注意:所有核心功能均可正常运行,并且对 stdio 和 HTTP 流协议都有全面的端到端测试覆盖。
KuzuMem-MCP 遵循 官方 MCP TypeScript SDK 模式,采用清晰的架构:
┌─────────────────────────────────────────────────────────────┐
│ MCP Protocol Layer │
├─────────────────────────────────────────────────────────────┤
│ HTTP Stream Server │ Stdio Server │
│ (StreamableHTTPTransport) │ (StdioTransport) │
├─────────────────────────────────────────────────────────────┤
│ Tool Handlers │
├─────────────────────────────────────────────────────────────┤
│ Memory Service │
├─────────────────────────────────────────────────────────────┤
│ Repository Layer │
├─────────────────────────────────────────────────────────────┤
│ KuzuDB Client │
└─────────────────────────────────────────────────────────────┘
McpServer 实现的官方 SDK,支持 HTTP 流和 Stdio 传输。✅ 会话管理:使用内置的 SDK 会话处理。
✅ 工具注册:使用官方 tool() 方法进行 Zod 验证。
✅ 传输处理:利用 SDK 传输实现。
✅ 错误处理:遵循 SDK 错误模式和最佳实践。
请参考 扩展文档。
当仓库级别的“始终应用的工作区规则” (project_config_updated.md) 和短期工作流规则 (workflow_state_updated.mdc) 都处于活动状态时,与 KuzuMem-MCP 通信的每个 IDE 或 AI 代理都必须遵循以下五阶段有限状态循环。每个转换都可以通过统一的 context 工具进行观察,并通过强制的 MCP 调用保持图数据库同步和治理规则的执行。
Decision 实体(状态:提议,标签:架构)。等待用户明确批准。entity、associate 和 context 工具调用反映更改,同时遵守依赖和标签规则。Decision 更新为 implemented;如果失败,记录上下文并返回构建阶段。stateDiagram-v2
[*] --> ANALYZE
ANALYZE --> BLUEPRINT: blueprint drafted
BLUEPRINT --> CONSTRUCT: approved
CONSTRUCT --> VALIDATE: steps complete
VALIDATE --> DONE: tests pass
VALIDATE --> CONSTRUCT: tests fail
CONSTRUCT --> ROLLBACK: unrecoverable error
ROLLBACK --> ANALYZE
本项目采用 Apache-2.0 许可证。
欢迎贡献代码!请确保:
此 MCP 已通过 MCP 审核。 https://mcpreview.com/mcp-servers/Jakedismo/KuzuMem-MCP