使用说明

项目简介

'mcp-neo4j' 是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为大型语言模型 (LLM) 客户端提供知识图谱形式的结构化记忆服务。它允许 LLM 通过标准化的 MCP 协议,利用工具接口来创建、读取、更新和删除知识图谱中的实体和关系,从而增强 LLM 的上下文理解和推理能力。该项目包含两个主要的服务器实现:

  • 'mcp-neo4j-memory': 使用 Neo4j 图数据库存储知识图谱。
  • 'mcp-json-memory': 使用 JSON 文件存储知识图谱。
  • 'mcp-neo4j-cypher': 提供执行 Cypher 查询的工具,直接操作 Neo4j 数据库。

主要功能点

  • 知识图谱存储与管理: 支持使用 Neo4j 图数据库或 JSON 文件作为知识图谱的存储后端。
  • 实体和关系操作: 提供工具用于创建、删除、更新知识图谱中的实体和关系。
  • 观察记录: 支持为实体添加观察记录,用于存储实体的相关信息。
  • 图谱查询: 提供基本的关键词搜索和节点检索功能,方便 LLM 客户端获取相关上下文信息。
  • Cypher 查询 (mcp-neo4j-cypher): 允许执行 Cypher 查询,灵活地从 Neo4j 数据库中检索和操作数据。
  • MCP 协议标准: 遵循 MCP 协议,易于与任何兼容 MCP 协议的 LLM 客户端集成。
  • Stdio 传输: 使用 Stdio 作为默认的传输协议,方便部署和运行。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/neo4j-contrib/mcp-neo4j.git
    cd mcp-neo4j
  2. 安装依赖: 根据你选择的服务器类型,进入相应的目录安装依赖。

    • 对于 'mcp-neo4j-memory' 和 'mcp-json-memory' (Node.js):

      cd servers/mcp-neo4j-memory  # 或 cd servers/mcp-json-memory
      npm install

      或使用 'yarn':

      yarn install
    • 对于 'mcp-neo4j-cypher' (Python):

      cd servers/mcp-neo4j-cypher
      pip install -r requirements.txt
  3. 构建项目 (Node.js 服务器): 对于 'mcp-neo4j-memory' 和 'mcp-json-memory',需要构建项目:

    nx build mcp-neo4j-memory  # 或 nx build mcp-json-memory

    构建产物会生成在 'dist/servers/mcp-neo4j-memory' 或 'dist/servers/mcp-json-memory' 目录。

服务器配置

以下是 MCP 客户端连接 'mcp-neo4j-memory' 和 'mcp-json-memory' 服务器的配置示例 (JSON 格式):

1. mcp-neo4j-memory 服务器配置:

{
  "serverName": "mcp-neo4j-memory",  // 服务器名称,用于客户端识别
  "command": "./dist/servers/mcp-neo4j-memory/main.js", // 启动服务器的命令,根据实际路径调整
  "args": [],  // 启动参数,本服务器无需额外参数
  "transport": "stdio" // 使用 Stdio 传输协议
}

注意:

  • 'command' 的路径需要根据实际构建产物路径进行调整。
  • 确保 Neo4j 数据库服务已启动并可连接,默认连接地址为 'neo4j://localhost:7687',用户名 'neo4j',密码 'marwhompa' (可在 'servers/mcp-neo4j-memory/src/main.ts' 中修改)。

2. mcp-json-memory 服务器配置:

{
  "serverName": "mcp-json-memory",  // 服务器名称
  "command": "./dist/servers/mcp-json-memory/main.js", // 启动命令,根据实际路径调整
  "args": ["./memory.json"],  // 启动参数,指定 JSON 存储文件路径 (可选,默认在服务器目录下 memory.json)
  "transport": "stdio" // 使用 Stdio 传输协议
}

注意:

  • 'args' 可以指定 JSON 文件存储路径,如果不提供,默认会在服务器目录下创建 'memory.json' 文件。
  • 'command' 的路径同样需要根据实际构建产物路径调整。

3. mcp-neo4j-cypher 服务器配置 (Python):

{
  "serverName": "mcp-neo4j-cypher",
  "command": "python",
  "args": ["./src/mcp_neo4j_cypher/__init__.py", "--db-url", "bolt://localhost:7687", "--username", "neo4j", "--password", "marwhompa"],
  "transport": "stdio"
}

注意:

  • 'args' 中包含了连接 Neo4j 数据库的参数,请根据实际情况修改 '--db-url', '--username', '--password' 的值。
  • 确保 Python 环境已配置,并且安装了 requirements.txt 中的依赖。

基本使用方法

  1. 启动服务器: 根据选择的服务器类型,在相应的服务器目录下执行启动命令 (例如 'node dist/servers/mcp-neo4j-memory/main.js' 或 'python src/mcp_neo4j_cypher/init.py ...')。

  2. 配置 MCP 客户端: 在兼容 MCP 协议的 LLM 客户端中,根据上述 "服务器配置" 部分的示例,配置服务器连接信息。

  3. 使用工具接口: 通过 LLM 客户端,可以调用服务器提供的工具接口,例如:

    • 'create_entities': 创建新的知识图谱实体。
    • 'create_relations': 创建实体之间的关系。
    • 'add_observations': 为实体添加观察记录。
    • 'read_graph': 读取完整的知识图谱数据。
    • 'search_nodes': 搜索知识图谱节点。
    • 'open_nodes': 打开指定的知识图谱节点。
    • 'read-neo4j-cypher' (mcp-neo4j-cypher): 执行 Cypher 查询 (只读)。
    • 'write-neo4j-cypher' (mcp-neo4j-cypher): 执行 Cypher 查询 (写入)。
    • 'get-neo4j-schema' (mcp-neo4j-cypher): 获取 Neo4j 数据库 Schema 信息。

    具体工具的使用方式和参数,请参考 'servers/mcp-neo4j-memory/src/main.ts', 'servers/mcp-json-memory/src/main.ts' 和 'servers/mcp-neo4j-cypher/src/mcp_neo4j_cypher/server.py' 文件中 'ListToolsRequestSchema' 的处理逻辑和工具的 'inputSchema' 定义。

信息

分类

数据库与文件