项目简介

本项目是一个符合 Model Context Protocol (MCP) 标准的服务器实现,它利用 Neo4j 图数据库作为后端,用于存储、管理和检索知识图谱数据。通过 MCP 协议,该服务器能够为支持 MCP 的大型语言模型(LLM)客户端提供强大的记忆和上下文服务,使 LLM 能够更有效地利用结构化知识。

主要功能点

此 MCP 服务器提供了一系列工具 (Tools),供 LLM 客户端调用,以操作存储在 Neo4j 中的知识图谱:

  • 实体管理:
    • 创建新的实体(节点),并可同时添加初始的观测(事实)。
    • 删除指定的实体及其相关的关系和观测。
    • 轻量级列出所有实体的名称和类型。
  • 关系管理:
    • 在现有实体之间创建新的关系(边)。
    • 删除指定的关系。
  • 观测管理:
    • 向现有实体添加新的观测(离散事实)。
    • 删除实体中指定的观测。
  • 知识图谱查询:
    • 根据查询字符串搜索知识图谱中的实体,支持模糊匹配。搜索结果包含匹配的实体及其关联关系。
    • 根据指定的实体名称获取这些实体的详细信息(包括所有观测)及其关联关系。
  • 数据库管理:
    • 切换到不同的 Neo4j 数据库,支持在切换时自动创建新数据库。
    • 获取当前活动数据库的信息。
    • 列出所有可用的 Neo4j 数据库名称。

安装步骤

您可以通过 NPM/Yarn/PNPM 包管理器安装此服务器:

  1. 确保您已安装 Node.js 环境。

  2. 在您的系统或项目目录中运行安装命令:

    npm install @sylweriusz/mcp-neo4j-memory-server
    # 或使用 pnpm:
    # pnpm install @sylweriusz/mcp-neo4j-memory-server

安装完成后,您需要将此服务器配置到您的 MCP 客户端中。

服务器配置

MCP 服务器通常由 MCP 客户端启动和管理。您需要将此服务器配置到您的 MCP 客户端(例如 Claude Desktop)的配置文件中。配置通常是一个 JSON 对象数组,每个对象描述一个 MCP 服务器。

以下是配置此服务器的示例结构(请勿直接复制代码块,只需理解结构):

{
  "mcpServers": {
    "your-server-name": { // 给您的服务器起一个唯一的名称
      "command": "npx", // 启动命令,如果是通过 npx 运行
      "args": [ // 传递给命令的参数
        "-y", // 如果使用 npx,此参数通常用于自动确认安装
        "@sylweriusz/mcp-neo4j-memory-server" // 要运行的包名
      ],
      "env": { // 启动服务器时设置的环境变量,用于配置 Neo4j 连接
        "NEO4J_URI": "bolt://localhost:7687", // Neo4j 数据库的连接 URI
        "NEO4J_USERNAME": "neo4j", // Neo4j 用户名
        "NEO4J_PASSWORD": "your-password", // Neo4j 密码
        "NEO4J_DATABASE": "neo4j" // 默认使用的 Neo4j 数据库名称
        // 您可以在系统环境变量、.env 文件或此配置中设置这些变量
      }
    }
    // 您可以根据需要添加其他 MCP 服务器配置
  }
}

请根据您的安装方式(例如,如果是全局安装,'command' 可能直接是 '@sylweriusz/mcp-neo4j-memory-server' 的可执行文件路径)和实际的 Neo4j 连接信息填写配置。

基本使用方法

一旦服务器被您的 MCP 客户端成功配置并启动,LLM 客户端就可以通过 MCP 协议与服务器通信。LLM 会根据其内部逻辑或您提供的系统提示 (System Prompt) 来决定何时调用服务器提供的工具。

例如,您可以在给 LLM 的系统提示中指示它如何使用这些工具:

  • 要求 LLM 将对话中获取到的重要信息(如用户身份、兴趣、目标)结构化存储为知识图谱的实体观测,使用 'create_entities' 或 'add_observations' 工具。
  • 要求 LLM 在开始对话前或需要相关信息时,使用 'search_nodes' 工具搜索知识图谱,以获取与当前话题相关的上下文信息。
  • 在处理特定项目时,指示 LLM 使用 'switch_database' 工具切换到或创建一个专门的项目数据库。
  • LLM 可以使用 'open_nodes' 工具获取某个已知实体的详细信息,或使用 'list_entities' 工具查看当前数据库中的所有实体概览。

通过合理设计 LLM 的系统提示,您可以引导 LLM 高效地利用此服务器提供的知识图谱能力,增强其记忆和处理复杂上下文的能力。

信息

分类

AI与计算