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 版本兼容。
- 在已有 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 模式使用环境变量提供的凭据。