首页/知识与记忆系统/mcp-duckdb-memory-server

mcp-duckdb-memory-server

查看源码
2025-5-12
Words 1162Read Time 3 min
Score:85

基于DuckDB的MCP知识图谱内存服务器,提升大模型记忆存储与检索效率。

TypeScript

MCP DuckDB 知识图谱内存服务器

https://img.shields.io/npm/v/%40izumisy%2Fmcp-duckdb-memory-server
https://img.shields.io/npm/l/%40izumisy%2Fmcp-duckdb-memory-server
这是 官方知识图谱内存服务器 的一个分支版本。

安装

通过 Smithery 安装

要自动通过 Smithery 为 Claude Desktop 安装 DuckDB 知识图谱内存服务器:

手动安装

或者,您可以在 claude_desktop_config.json 中手动添加 @IzumiSy/mcp-duckdb-memory-serverMEMORY_FILE_PATH 是可选的):
存储在该路径的数据是一个 DuckDB 数据库文件。

Docker

构建镜像:
运行容器:

使用

使用以下示例指令:

动机

本项目通过将原始 MCP 知识图谱内存服务器的后端替换为 DuckDB 来增强其功能。

为什么选择 DuckDB?

原始 MCP 知识图谱内存服务器使用 JSON 文件作为数据存储,并在内存中执行搜索。虽然这种方法适用于小型数据集,但在处理大规模数据时会面临以下挑战:
  1. 性能:随着数据集的增长,内存搜索性能会下降
  1. 可扩展性:处理大量实体和关系时,内存使用量显著增加
  1. 查询灵活性:复杂的查询和条件搜索难以实现
  1. 数据完整性:确保事务和 CRUD 操作的原子性具有挑战性
选择 DuckDB 来解决这些问题:
  • 快速查询处理:DuckDB 针对分析查询进行了优化,即使处理大规模数据集也能表现良好
  • SQL 接口:可以使用标准 SQL 轻松执行复杂查询
  • 事务支持:支持事务处理以维护数据完整性
  • 索引功能:允许创建索引以提高搜索性能
  • 嵌入式数据库:在应用程序内工作,无需外部数据库服务器

实现细节

本实现使用 DuckDB 作为后端存储系统,重点关注以下两个关键方面:

数据库结构

知识图谱以关系数据库结构存储,如下所示:
该模式设计允许高效存储和检索知识图谱组件,同时保持实体、观察结果和关系之间的关系。

模糊搜索实现

实现结合了 SQL 查询和 Fuse.js 以实现灵活的实体搜索:
  • DuckDB SQL 查询从数据库中检索基础数据
  • Fuse.js 在检索到的数据上提供模糊匹配功能
  • 这种混合方法允许进行结构化查询和灵活的文本匹配
  • 搜索结果包括精确匹配和部分匹配,并按相关性排序

开发

设置

测试

许可证

本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。
上一篇
claude-memory-mcp
下一篇
git-mcp