Neo4j 图数据库的模型上下文协议 (MCP) 集成

什么是模型上下文协议 (Model Context Protocol)

模型上下文协议 (Model Context Protocol) 由 Anthropic 于 2024 年 11 月推出,旨在简化 LLM 助手与提供数据、服务、API 和本地系统访问权限的工具之间的集成。

它附带了一份 开源规范,以及许多用于实现 MCP 服务器和客户端的 SDK(Python、TypeScript、Java 等)。

MCP 架构由 MCP Host(主机)程序组成,该程序可以配置多个 MCP 服务器,这些服务器提供工具、资源和提示词 (prompts) 等功能。

如果您想深入了解,这里有一份 包含 Neo4j 解释和示例的综合概述

genai mcp neo4j tools

每当用户(或代理)在交互中请求某个可以通过 MCP 服务器功能执行的任务时,LLM 就会选择相应的工具,提取参数,并通过连接到 MCP 服务器的 MCP 客户端调用该工具。

mcp architecture neo4j e1743543257487

大型云厂商、基础设施提供商和 LLM 提供商均已宣布在其产品中提供对 MCP 的支持。

此外,LangChain、CrewAI、Pydantic.AI 和代理开发工具包 (ADK) 等代理框架也已开始支持 MCP 作为工具。

目前 MCP 协议在安全性、发现机制、可信部署和权限控制等方面仍存在一些待解决的问题。

但 Anthropic 和广大社区正致力于快速解决这些问题。特别是随着大型供应商加入该生态系统,许多与企业相关的需求很快将得到满足。

自 2025 年初以来,MCP 协议得到了广泛采用,社区已经构建了数千个用于各种 API 的服务器。

MCP 服务器

MCP 服务器通过不同的传输方式(标准 I/O 或 HTTP(S))提供 MCP 协议 (JSON-RPC) 的实现。目前大多数服务器是本地服务器,但基于 HTTP 的服务器重要性日益增加,特别是随着近期 OAuth 2.1 加入 MCP 规范。

它们提供以下功能

  • 工具 (tools) - 工具可以检索数据或执行操作,它们接收参数并将结果或错误返回给客户端

  • 资源 (resources) - 读取静态或动态资源,如文件、页面、架构

  • 提示词 (prompts) - 带有占位符的多步提示词,旨在引导用户与此服务进行交互

一些示例服务器(Neo4j 服务器见下文)

MCP 客户端/主机

MCP 主机(如 Claude、Cursor 或 CoPilot 等 LLM 应用程序)可以配置多个 MCP 服务器。当激活 MCP 服务器时,它会创建一个 MCP 客户端,用于与 MCP 服务器建立持久的双向连接(使用 JSON RPC)。

然后,当用户请求一个可以使用服务器功能执行的任务时,MCP 主机 LLM 将

  1. 从指令和对话上下文中提取参数和信息,

  2. 根据描述和历史使用情况选择最佳工具,以及

  3. 发送请求。

  4. 响应随后会被整合到当前上下文中,

  5. 用于后续对话,并

  6. 可以作为其他 MCP 调用的输入,或者

  7. 用于生成文档、图像、代码等工件。

开发工具与 IDE

目前所有 AI 驱动的 IDE 都支持 MCP,因此在开发过程中,您可以直接在 AI 聊天界面中访问服务。内置的代理可以使用这些 MCP 服务器获取与您项目相关的信息(例如数据库定义)、启动服务或数据库、发起合并请求 (pull request) 或创建 JIRA 工单。

mcp inspector toolbox

终端用户工具

终端用户工具也将能够利用 MCP 服务器,安全地访问 SaaS 服务、文档存储(Drive、Sharepoint、OneDrive、Box)、生成式工具和企业数据库。

copilot studio mcp demo

Neo4j 官方 MCP 服务器

Neo4j 官方 MCP 服务器是一个本地服务器,可下载为二进制文件,适用于所有类型的 Neo4j 部署 - Neo4j Aura、自托管、Docker、Neo4j Desktop 和 Neo4j Sandbox。该代码仓库的 README 包含安装说明,包括针对 Claude Desktop、VS Code 等常见 MCP 主机所需的环境变量设置。

当前版本支持

  • 获取图架构

  • 执行读取和写入 Cypher 语句

  • 为 GDS 插件执行图算法(包括投影)

  • stdio 和 http 传输(包括自定义 SSL 证书)

链接

Neo4j Labs MCP 服务器

第一个通过 Cypher 与 Neo4j 数据库交互的 Neo4j Labs MCP 服务器创建于 2024 年 12 月,即 MCP 发布后不久。

自那时起,我们又添加了 多个 Labs MCP 服务器,用于管理 Neo4j Aura API 以及将记忆存储为 Neo4j 中的知识图谱。

Neo4j 还与 Google 的 MCP 工具箱进行了集成,以提供更好的图数据库工具集成。

MCP-Neo4j-Cypher

mcp-neo4j-cypher 服务器允许提取图数据库架构,以便代理 LLM 生成查询和更新数据库的 Cypher 查询。

工具

  • get-neo4j-schema

  • read-neo4j-cypher

  • write-neo4j-cypher

1*UnC f LmG5RB wk3G16TgQ
mcp neo4j cypher movies pie

这里有一篇博文展示了该服务器的实际运行情况:从数据库中逐步提取信息,并将其用于深入钻取以及渲染交互式图表和可视化。

MCP-Neo4j-Memory

MCP 附带了一个用于存储记忆的示例知识图谱实现,我们将其升级为使用 Neo4j 作为真正的图数据库。

mcp-neo4j-memory 服务器在 Neo4j 中存储和更新带有观察结果及它们之间关系的实体,并能搜索和检索相关的子图。

它也适用于长期对话或转化为更全面知识图谱的计划。

它提供以下工具和操作

查询

  • read_graph 加载整个图

  • search_nodes 按搜索字符串

  • find_nodes 按名称

更新

  • create_entities, delete_entities - 创建记忆实体

  • create_relations, delete_relations - 管理关系

  • add_observations, delete_observations - 将观察声明添加到实体

mpc neo4j memory colleagues
mcp memory instructions
mcp memory graph

MCP Neo4j Aura 管理器

对于开发者来说,MCP 服务器的一个有趣领域实际上不是数据层,而是基础设施。在开发应用程序时,在 IDE 中直接启动或管理数据库实例,或暂停/恢复实例非常有用。其他基础设施方面可能包括迁移、成本概览、邀请团队成员等。

mcp-neo4j-aura-manager 提供对 Neo4j Aura API 的访问,用于管理数据库、租户和项目。

配置 client-id 和 client-secret 后,MCP 服务器可以代表您访问 Aura API,并提供以下操作工具

实例管理

  • list_instances

  • get_instance_details, get_instance_by_name

  • create_instance, delete_instance

  • update_instance_name, update_instance_memory, update_instance_vector_optimization

  • pause_instance, resume_instance

租户/项目管理

  • list_tenants

  • get_tenant_details

cursor aura mcp
mcp neo4j aura create instance

MCP-Neo4j-Data-Modeling

mcp-neo4j-data-modeling 提供用于创建、可视化和管理 Neo4j 图数据模型的工具。

此服务器使您能够定义节点、关系和属性,以设计可交互可视化的图数据库架构。

以下是代理使用数据建模 MCP 服务器执行的常见数据建模工作流程。

data modeling process v2

它提供以下工具和操作

验证

  • validate_node - 验证单个节点

  • validate_relationship - 验证单个关系

  • validate_data_model - 验证整个数据模型

可视化

  • get_mermaid_config_str - 为 Mermaid 图表可视化生成配置

导入 / 导出

  • load_from_arrows_json - 导入在 Arrows Web 应用程序中创建的数据模型

  • export_to_arrows_json - 将数据模型导出为 Arrows 格式

Cypher 摄取

  • get_constraints_cypher_queries - 获取创建所有必要约束的 Cypher 查询

  • get_node_cypher_ingest_query - 获取用于摄取指定节点标签的 Cypher 查询

  • get_relationship_cypher_ingest_query - 获取用于摄取指定关系类型的 Cypher 查询

7 个示例图数据模型

  • list_example_data_models - 列出所有带有描述的可用示例数据模型

  • get_example_data_model - 从可用模板中获取示例图数据模型

  • patient_journey_model - 用于跟踪患者就诊、病情、药物和护理计划的数据模型

  • supply_chain_model - 用于跟踪产品、订单、库存和位置的数据模型

  • software_dependency_model - 用于跟踪软件依赖关系、安全漏洞、提交和贡献者分析的数据模型

  • oil_gas_monitoring_model - 用于工业石油和天然气设备、传感器、警报和维护监控的数据模型

  • customer_360_model - 用于客户关系管理(含账户、联系人、订单、工单和调查)的数据模型

  • fraud_aml_model - 用于金融欺诈检测和反洗钱(含客户、交易、警报和合规性)的数据模型

  • health_insurance_fraud_model - 用于医疗欺诈检测,跟踪调查、处方、执行和受益人关系的数据模型

创建新数据模型提示词

  • create_new_data_model - 提供一个结构化参数化提示词,用于生成新的图数据模型

mcp data modeling claude data discovery
mcp data modeling claude data model 1 viz

您可以在本文中了解更多关于数据建模 MCP 服务器的信息,以及它如何与 Cypher MCP 服务器集成。

Github 仓库演示了如何从模拟的 Salesforce 数据生成新的图数据模型,并使用数据建模和 Cypher MCP 服务器将其摄入 Neo4j 的过程。

MCP-Neo4j-GDS

Neo4j 图数据科学服务器 (GDS-Agent) 将 GDS 算法作为工具提供。

这允许用户提出需要图算法进行复杂推理的问题。配备 GDS 代理的 LLM 将找到并执行带有适当参数的正确算法。

一个例子是:配备 GDS 代理的 LLM 能够选择最短路径算法和 Yen 算法(k=3)来回答关于 Neo4j 数据库中地图的旅行规划问题。

gds agent london underground example

它目前支持大量 GDS 算法,包括

  • 中心度算法:Article Rank, Articulation Points, Betweenness Centrality, Bridges, CELF, Closeness Centrality, Degree Centrality, Eigenvector Centrality, PageRank, Harmonic Centrality, HITS

  • 路径算法:Dijkstra’s Shortest Path, Delta Stepping Shortest Path, Dijsktra’s Single Source Shortest Path, A-Star, Yen’s, Minimum Weight Spanning Tree, Minimum Weight k-Spanning Tree, Minimum Directed Steiner Tree, Prize Collecting Steiner Tree, All Pairs Shortest Path, Random Walk, BFS, DFS, Bellman-Ford Single Source Shortest Path, Longest Path

  • 社区检测算法:Conductance, HDBSCAN, K-Core Decomposition, K-1 Coloring, K-Means Clustering, Label Propagation, Leiden, Local Clustering Coefficient, Louvain, Modularity Metric, Modularity Optimization, Strongly Connected Component, Triangle Count, Weakly Connected Component, Approximate Maximum K-Cut, Speaker-Listener Label Propagation

  • 相似度算法:Node similarity, Filtered Node Similarity, K-Nearest Neighbors, Filtered K-Nearest Neighbors

如需完整文档和说明,请参考仓库:https://github.com/neo4j-contrib/gds-agent

MCP-Sandbox

沙箱 MCP 服务器 (https://mcp.sandbox.neo4j.com/sse) 提供直接从开发环境管理 Neo4j 沙箱实例的工具。该服务器通过允许您以编程方式控制沙箱来简化开发工作流程。其 GitHub 仓库地址为:sandbox-mcp-server

该 MCP 服务器的一个关键功能不仅是管理沙箱的生命周期(创建、终止、扩展),还可以直接与其中的数据进行交互。您可以检索数据库架构,并在任何运行中的沙箱实例上执行读取和写入 Cypher 查询。这对于快速原型设计、测试和数据探索特别有用,无需离开 IDE。

实例与用户管理

  • start_new_sandbox - 为特定用例创建一个新的沙箱实例。

  • list_sandboxes_for_user - 列出用户的所有活动沙箱。

  • terminate_sandbox - 删除沙箱实例。

  • get_sandbox_connection_details - 检索沙箱的连接详细信息。

  • extend_sandbox_lifetime - 延长沙箱的寿命。

数据交互

  • get_schema - 从沙箱中获取图架构。

  • read_query - 执行只读 Cypher 查询。

  • write_query - 执行写入 Cypher 查询。

备份与 Aura 上传

  • request_sandbox_backup - 请求沙箱备份。

  • list_sandbox_backups - 列出沙箱的可用备份。

  • get_backup_result - 检索备份任务的结果。

  • get_sandbox_backup_download_url - 获取备份文件的下载 URL。

  • upload_sandbox_to_aura - 将沙箱备份上传到 Aura 实例。

  • get_aura_upload_result - 检索 Aura 上传任务的结果。

mcp neo4j sandbox list create
mcp neo4j sandbox get schema

Google MCP 工具箱

Google 的 MCP 工具箱 (MCP Toolbox for Database) 是一个开源工具,用于将各种数据库集成到代理系统中。

单个参数化查询可以定义为工具,并提供给代理框架。工具箱负责数据库连接管理、身份验证、结果处理和错误处理。

architecture

工具箱不仅可以作为 MCP 服务器集成,还可以直接与 LangChain 和 LlamaIndex 集成。

您可以将 MCP 工具箱部署到 Cloud Run 或 Kubernetes,或者在本地系统中运行。

Neo4j 集成于 2024 年 12 月初添加,提供

mcp toolbox tools
mcp server toolkit inspector

MCP 与代理框架

大多数代理框架都支持将 MCP 服务器作为工具使用,因此也支持 Neo4j MCP 服务器。

将 MCP 工具箱和 Neo4j 与 Google 代理开发工具包 (ADK) 配合使用

Google 的新代理开发工具包 (ADK) 也支持集成 MCP 服务器作为代理工具

它还原生支持 MCP 工具箱,因此可以定义并在那里直接使用工具。

此 Notebook 演示了使用 代理开发工具包与 Neo4j 的示例。

在 LangChain / LangGraph 中使用 MCP 服务器

MCP 通过 MCP 适配器在 LangChain 生态系统中可用。

LangChain 还分享了一篇关于 MCP 的深度讨论

在 LlamaIndex 工作流中使用 MCP 服务器

MCP 服务器通过 MCP 工具规范集成到 LlamaIndex 中。可以通过 LlamaHub 安装的集成 将代理连接到工具,如该 LlamaIndex MCP 示例 Notebook 所示

在 CrewAI 中使用 MCP 服务器

目前正在进行使用 MCP 服务器作为 Crew 工具的工作。

在 Pydantic.AI 中使用 MCP 服务器

  • 代理作为 MCP 客户端,连接到 MCP 服务器以使用其工具

  • 代理可以在 MCP 服务器内使用

  • 作为 PydanticAI 的一部分,我们正在构建多个 MCP 服务器

在 Semantik Kernel 中使用 MCP 服务器

MCP 工具可以转换为 Semantic Kernel 函数,以便将它们添加到 Kernel 实例中。

© . This site is unofficial and not affiliated with Neo4j, Inc.