Neo4j MCP 服务器

使用说明(Markdown 格式)

  • 项目简介

    • 该仓库实现了一个可运行的 MCP 服务器,用于向 MCP 客户端提供对 Neo4j 的资源查询、Cypher 执行工具以及图数据库相关的提示/信息能力。服务器支持 STDIO 和 HTTP 两种传输模式,具备会话管理、能力声明、日志与遥测等特性,适用于与 LLM 的上下文交互场景。
  • 主要功能点

    • 资源与数据访问:对 Neo4j 数据库的读取能力进行封装,提供可用于上下文的查询结果与元数据。
    • 工具注册与执行:内置工具包括 get-schema、read-cypher、write-cypher,以及 GDS 相关工具;工具通过 JSON-RPC 风格请求接收参数并返回结果。
    • Prompt 模板与交互:通过 MCP 规范对提示和交互流程进行建模,支持自定义交互模式与上下文渲染(内置工具提供可推理的上下文信息)。
    • 传输模式:STDIO(本地桌面/命令行客户端)和 HTTP(Web 客户端、多租户场景)两种传输模式并存。
    • 会话与能力声明:在启动阶段和运行时对客户端能力进行声明,并在需要时进行初始化检查和工具注册。
    • 安全与可扩展性:对查询进行路由与认证处理,支持 per-request 认证信息、只读模式等安全特性;具備插件/扩展工具的扩展点。
    • 日志与遥测:集成日志系统,提供可观测性;遥测默认开启,可按需禁用。
  • 安装步骤

    • 在已有 Neo4j 实例的前提下,构建并运行服务:
      • 获取源码并构建可执行文件(二进制):
        • go build ./cmd/neo4j-mcp
      • 运行服务(示例,实际请结合配置文件/环境变量):
        • 通过环境变量配置 Neo4j 连接信息、数据库名称、传输模式等,并启动二进制。
    • 参考 README 提供的参数及默认值,确保 APOC 插件可用,并且 Neo4j 版本兼容。
  • 服务器配置(MCP 客户端需要的配置信息示例,非代码格式,描述性说明)

    • 服务器名称(server_name):neo4j-mcp
    • 启动命令(command):neo4j-mcp
    • 参数(args):包含以下(示意性描述,实际请按客户端需要的 JSON 配置提供)
      • --neo4j-uri bolt://localhost:7687
      • --neo4j-username neo4j
      • --neo4j-password password
      • --neo4j-database neo4j
      • --neo4j-transport-mode stdio 或 http
      • 如使用 HTTP:可配置 TLS 相关选项(https)、主机、端口,以及 CORS 设置等 注:上述配置属于 MCP 服务器端的启动参数,客户端在连接时通常只需要知道服务器地址和传输模式,即可通过 MCP 客户端建立连接并发起初始化/工具调用等操作。
  • 基本使用方法

    • 启动服务器后,客户端通过 MCP 协议进行初始化、列出工具、执行工具等操作。
    • 常见流程包括:
      • 初始化与能力获取:客户端向服务器发送初始化请求,获取服务器信息与支持的工具能力。
      • 列出工具:查询服务器可用的工具集,如 get-schema、read-cypher、write-cypher、list-gds_procedures。
      • 调用工具:按需调用具体工具并解析返回的 JSON 结果,查看上下文数据、执行的 Cypher 结果等。
    • 连接场景示例(需实际 MCP 客户端实现支持):
      • 通过 STDIO/HTTP 传输模式与服务器建立会话
      • 使用 get-schema 获取数据库结构信息作为上下文
      • 使用 read-cypher / write-cypher 执行 Cypher 查询(按只读/写模式控制)
    • 安全性与多租户:
      • 在 HTTP 模式下,凭证通过每请求的头部进行传入(Bearer 或 Basic),服务器从请求中提取凭据并对 Neo4j 驱动进行 Impersonation(按请求认证)。
      • STDIO 模式使用环境变量提供的凭据。

服务器信息