简介

Neo4j MCP 为 AI 助手和基于大语言模型的工具提供对您的 Neo4j 图数据库的直接、结构化访问。通过实现模型上下文协议(Model Context Protocol,MCP),它充当任意兼容 MCP 的客户端(如 Claude、Cursor 或带有 MCP 支持的 VS Code)与您的 Neo4j 实例之间的桥梁。

Neo4j MCP 适用于

  • 在开发期间希望以对话方式查询 Neo4j 的图驱动 AI 应用的开发者或原型构建者。

  • 希望在不具备深度 Cypher® 专业知识的情况下探索图数据的数据科学家和分析师。

  • 部署共享 AI 工具的平台和基础设施团队,这些工具需要对 Neo4j 实例进行结构化、可审计的访问。

  • 在多代理系统中将 Neo4j 作为知识源或推理后端进行集成的 AI 应用构建者。

Neo4j MCP 使 AI 代理能够

  • 探索图模式——发现节点标签、关系类型和属性键,让 AI 在不了解数据模型的前提下能够进行推理。

  • 运行 Cypher 查询——根据自然语言提示执行、读取和写入数据库查询。

  • 检查和分析数据——检索节点、关系和路径,以回答问题、生成摘要或供其他工作流使用。

先决条件

  • 一个已运行的 Neo4j 数据库实例。可选项包括 Aura、neo4j-desktop 或自行托管。

  • Neo4j 实例中已安装的 APOC 插件。

  • 任意兼容 MCP 的客户端,例如带有 MCP 支持的 VSCode。

安全性考虑

在探索数据库时使用受限的 Neo4j 用户。为避免不期望的操作甚至数据丢失,建议在将 MCP 生成的 Cypher 查询提交到数据库(尤其是生产数据库)之前进行审查。

使用示例

快速开始(Shell)

运行服务器的最小代码片段。

STDIO 模式

# STDIO mode
export NEO4J_URI="bolt://:7687"
export NEO4J_USERNAME="neo4j"
export NEO4J_PASSWORD="password"
# Optional: read-only mode
export NEO4J_READ_ONLY="true"
neo4j-mcp

HTTP 模式

# HTTP mode (no username/password env vars)
export NEO4J_URI="bolt://:7687"
export NEO4J_MCP_TRANSPORT="http"
export NEO4J_MCP_HTTP_HOST="127.0.0.1"
export NEO4J_MCP_HTTP_PORT="8080"
neo4j-mcp

STDIO 模式示例

仅使用环境变量运行(在 MCP 客户端中配置)

neo4j-mcp

使用命令行标志运行

neo4j-mcp --neo4j-uri bolt://:7687 \
  --neo4j-username neo4j \
  --neo4j-password mypassword \
  --neo4j-database neo4j

环境变量与标志混合使用(标志会覆盖环境变量)

# Uses NEO4J_URI from environment, but overrides other parameters
neo4j-mcp --neo4j-username admin \
  --neo4j-password adminpass \
  --neo4j-database production

HTTP 模式示例

使用环境变量运行 HTTP 模式

export NEO4J_URI="bolt://:7687"
export NEO4J_MCP_TRANSPORT="http"
export NEO4J_MCP_HTTP_HOST="127.0.0.1"
export NEO4J_MCP_HTTP_PORT="8080"
neo4j-mcp

启用 CORS 的 HTTP 模式运行方式

export NEO4J_URI="bolt://:7687"
export NEO4J_MCP_TRANSPORT="http"
export NEO4J_MCP_HTTP_ALLOWED_ORIGINS="https://:3000,https://app.example.com"
neo4j-mcp

启用 TLS 的 HTTP 模式运行方式

neo4j-mcp --neo4j-uri bolt://:7687 \
  --neo4j-transport-mode http \
  --neo4j-http-tls-enabled true \
  --neo4j-http-tls-cert-file /path/to/cert.pem \
  --neo4j-http-tls-key-file /path/to/key.pem \
  --neo4j-http-port 8443

在 HTTP 模式下,认证凭据通过每个请求的 Basic Authentication 头提供,而不是通过环境变量或命令行标志。每个 HTTP 请求必须包含一个 Authorization 头,格式为 Basic <base64(username:password)>,其中的凭据为 Base64 编码。

自然语言提示示例

以下是一些可在 Copilot 或其他 MCP 客户端中尝试的示例提示

  • "我的 Neo4j 实例包含什么?列出所有节点标签、关系类型和属性键。"

  • "在我的 Neo4j 实例中查找所有 Person 节点及其关系。"

  • "在我的 Neo4j 实例中创建一个 name 为 'John' 的新 User 节点。"