项目简介

本项目是基于 Model Context Protocol (MCP) 构建的知识图谱记忆服务器,使用 DuckDB 作为后端数据库。它旨在为大型语言模型 (LLM) 提供高效、可扩展的结构化知识存储和检索服务,作为 LLM 的上下文信息来源。

主要功能点

  • 知识图谱管理: 支持创建、更新、删除实体、关系和观测信息,构建结构化的知识图谱。
  • 高效存储: 使用 DuckDB 数据库,提供快速的本地数据分析和查询性能。
  • 模糊搜索: 集成 Fuse.js 实现基于实体名称、类型和观测内容的模糊搜索功能。
  • MCP 工具接口: 实现了符合 MCP 协议的工具接口,方便 LLM 客户端调用和集成。
  • 可配置数据库路径: 允许用户自定义数据库文件存储路径。

安装步骤

  1. 环境准备: 确保已安装 Node.js 和 npm 或 pnpm。

  2. Smithery 安装 (推荐): 如果你使用 Claude Desktop,可以通过 Smithery 自动安装:

    npx -y @smithery/cli install @IzumiSy/mcp-duckdb-memory-server --client claude
  3. 手动安装:

    • 将 '@IzumiSy/mcp-duckdb-memory-server' 添加到你的 'claude_desktop_config.json' 配置文件中。
    • 可选配置 'MEMORY_FILE_PATH' 环境变量来指定数据库文件路径。
  4. Docker 安装:

    • 构建 Docker 镜像:
      docker build -t mcp-duckdb-graph-memory .
    • 运行 Docker 容器:
      docker run -dit mcp-duckdb-graph-memory

服务器配置

为了让 MCP 客户端(例如 Claude Desktop)连接到此 MCP 服务器,你需要在客户端的配置文件中添加服务器配置。以下是 'claude_desktop_config.json' 的配置示例:

{
  "mcpServers": {
    "graph-memory": {
      "command": "npx",
      "args": [
        "-y",
        "@izumisy/mcp-duckdb-memory-server"
      ],
      "env": {
        "MEMORY_FILE_PATH": "/path/to/your/memory.data"
      }
    }
  }
}

配置参数说明

  • 'server name': 'graph-memory' (服务器名称,可以自定义)
  • 'command': 'npx' (启动命令,通常为 npx)
  • 'args':
    • '-y' (参数,自动确认安装)
    • '@izumisy/mcp-duckdb-memory-server' (MCP 服务器的 npm 包名)
  • 'env':
    • 'MEMORY_FILE_PATH': '/path/to/your/memory.data' (可选:自定义数据库文件路径,默认为用户目录下的 '.local/share/duckdb-memory-server/knowledge-graph.data')

基本使用方法

  1. 启动 MCP 服务器后,客户端(如 Claude Desktop)将通过配置的命令和参数连接到服务器。
  2. 客户端可以使用预定义的 MCP 工具(例如 'create_entities', 'search_nodes' 等)与服务器交互,管理和查询知识图谱。
  3. 客户端可以发送 JSON-RPC 请求调用这些工具,服务器会处理请求并返回 JSON-RPC 响应。
  4. 详细的工具使用方法请参考仓库中的 'src/toolsSchema.ts' 文件,该文件定义了所有可用的工具及其参数。

信息

分类

数据库与文件