Neo4j 的模型上下文协议 (MCP) 集成

什么是模型上下文协议

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

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

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

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

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

mcp architecture neo4j e1743543257487

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

此外,LangChain、CrewAI、Pydantic.AI 和 Agent Development Kit (ADK) 等代理框架也支持将 MCP 作为工具。

MCP 协议中仍存在一些未解决的问题,尤其是在安全性、发现、可信部署和权限控制方面。

但 Anthropic 和更广泛的社区决心迅速解决这些问题。特别是随着大型提供商加入生态系统,许多企业相关的需求将很快得到解决。

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

MCP 服务器

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

它们提供这些功能

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

  • 资源 - 只读的静态或动态资源,如文件、页面、模式

  • 提示 - 带有占位符的多步提示,用于指导用户与此服务进行交互

一些示例服务器(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 服务器来获取与您的项目相关的信息(例如数据库定义)、启动服务或数据库、打开拉取请求或创建 JIRA 工单。

mcp inspector toolbox

终端用户工具

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

copilot studio mcp demo

Neo4j MCP 服务器

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

从那时起,我们又增加了几个 MCP 服务器,用于控制 Neo4j Aura API,并将记忆以知识图谱的形式存储在 Neo4j 中。

Neo4j 还与 Google 的 MCP Toolbox 集成,为图数据库提供优化的工具集成。

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 的访问,用于管理数据库、租户和项目。

配置了客户端 ID 和客户端密钥后,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

Google MCP 工具箱

Google 的数据库 MCP 工具箱 是一个 开源工具,用于集成各种数据库作为代理系统的来源。

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

architecture

Toolbox 作为 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 工具箱,因此其中定义的工具可以直接使用。

将 MCP 服务器与 LangChain / LangGraph 结合使用

MCP 通过MCP 适配器在 LangChain 生态系统中提供。

LangChain 还分享了一篇非常有趣的关于 MCP 的讨论

将 MCP 服务器与 LlamaIndex 工作流结合使用

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

将 MCP 服务器与 CrewAI 结合使用

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

将 MCP 服务器与 Pydantic.AI 结合使用

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

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

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

将 MCP 服务器与 Semantik Kernel 结合使用

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

© . All rights reserved.