在 Google MCP Toolbox for Databases 中引入 Elasticsearch 支持

了解 Google MCP Toolbox for Databases 现在如何提供 Elasticsearch 支持,并利用 ES|QL 工具将您的索引安全地集成到任何 MCP 客户端中。

亲身体验 Elasticsearch:深入了解我们的示例笔记本,开始免费云服务试用,或立即在您的本地计算机上试用 Elastic。

在本文中,我们将介绍如何使用带有 Elasticsearch 的 Google MCP Toolbox 来构建一个用于从 Elasticsearch 索引中提取信息的简单工具。

我们最近为 Google MCP Toolbox for Databases 开源项目做出了贡献,为其添加了对 Elasticsearch 数据库的支持。

有了这项新功能,您现在可以使用 Google MCP Toolbox 连接到 Elasticsearch,并直接与数据“对话”。

Elasticsearch

我们需要运行一个 Elasticsearch 实例。您可以在 Elastic Cloud 上激活免费试用版,或使用 start-local 脚本在本地安装:

这将在计算机上安装 Elasticsearch 和 Kibana,并生成用于配置 Google MCP Toolbox 的 API 密钥。

API 密钥将显示为上一条命令的输出,并存储在 elastic-start-local 文件夹的 .env 文件中。

安装示例数据集

安装完成后,您可以使用启动本地脚本(存储在 .env 文件中)生成的用户名 elastic 和密码登录 Kibana。

您可以安装 Kibana 提供的电子商务订单数据集。它包含一个名为 kibana_sample_data_ecommerce 的单个索引,其中包含来自一家电子商务网站的 4,675 个订单的信息。对于每笔订单,我们都有以下信息:

  • 客户信息(姓名、ID 号码、出生日期、电子邮件等)
  • 订单日期
  • 订单编号
  • 产品(包含价格、数量、ID、类别、折扣等信息的所有产品列表)
  • SKU
  • 总价(不含税,含税)
  • 总数量
  • 地理信息(城市、国家、洲、位置、地区)

要安装示例数据,请在 Kibana 中打开“集成”页面(在顶部搜索栏中搜索“集成”),然后安装“示例数据”。有关详细信息,请参阅此处的文档:https://www.elastic.co/docs/explore-analyze/#gs-get-data-into-kibana

本文旨在展示如何轻松配置 Google MCP Toolbox 以连接到 Elasticsearch,并使用自然语言与 kibana_sample_data_ecommerce 索引进行交互。

Google MCP 工具箱

Google MCP Toolbox 是一款开源 MCP 服务器,旨在使应用程序和 AI 代理能够轻松、安全、高效地与数据库进行交互。该项目以前称为“GenAI Toolbox for Databases”,在与模型上下文协议 (MCP) 完全兼容后重新命名。其目的是通过在幕后处理连接池、身份验证、可观察性和其他操作问题,消除传统上需要将代理连接到数据库的繁重工作。

Toolbox 的核心功能是允许开发人员定义可重用的高级工具,封装数据库交互操作。然后,任何兼容 MCP 的客户端(如 AI 代理)都可以调用这些工具,而无需客户端执行低级 SQL 查询或管理数据库连接。这种方法大大减少了构建数据库感知代理所需的模板代码量,只需几行应用程序逻辑就能集成高级数据操作。一旦定义工具,就可以在多个代理、框架或语言之间共享(图 1)。

使用 Toolbox 的一大优势是内置的安全模型。原生支持 OAuth2 和 OIDC 等身份验证流程,使开发者避免在代理中处理或存储敏感的数据库凭据。该平台还通过 OpenTelemetry 提供可观测性功能(包括指标和跟踪),这对于调试、监控和生产部署至关重要。总而言之,MCP Toolbox 是一个统一、安全和可扩展的接口,可从任何支持 MCP 的系统与您的数据进行交互。

如何安装 MCP Toolbox

您可以使用以下命令在 Linux 上安装 MCP Toolbox 服务器:

如果您想将其安装在 macOS 或 Windows 上,您可以按照此处的详细说明进行操作。

配置适用于 Elasticsearch 的 Toolbox

要为 Elasticsearch 配置 MCP Toolbox,我们需要创建一个 tools.yaml 文件,如下所示:

您需要使用有效的 Elasticsearch API 密钥替换 <insert-here-api-key> 值。如果您使用 start-local 在本地运行 Elasticsearch,则可以在.env 文件中找到由 start-local 生成的 API 密钥,位于 ES_LOCAL_API_KEY 变量下。如果您正在使用 Elastic Cloud,则可以按照此处所描述的步骤生成 API 密钥。

之前的工具包含以下适用于 Elasticsearch 的 ES|QL 查询:

如果您不熟悉 ES|QL,它是由 Elastic 开发的一种类似于 SQL 的查询语言,可用于在一个或多个索引中进行搜索。您可以在此处的正式文档中阅读有关 ES|QL 的更多信息。

上述查询使用 ?name 参数(问号表示参数)搜索存储在 kibana_sample_data_ecommerce 索引中所有包含指定客户姓名的订单。

在之前的 YAML 配置中,客户名称使用字符串类型并附带描述“客户名称”来定义。

此工具可用于回答有关客户订单的问题——例如:客户 Foo 在 2025 年 10 月下了多少订单?

对工具及其参数的描述对于从用户的自然语言请求中提取相关信息至关重要。这种提取是通过大型语言模型 (LLM) 的函数调用功能实现的。在实践中,LLM 可以确定需要执行哪个函数(工具)以获取必要的信息,并为该函数指定适当的参数。

有关函数调用的更多信息,我们建议阅读 Ashish Tiwari 撰写的《使用 Elasticsearch 进行 OpenAI 函数调用》。

运行 Toolbox 服务器

您可以使用之前的 tools.yaml 文件,通过以下命令运行 MCP 工具箱:

—ui 参数在 http://127.0.0.1:5000/ui 上运行 Web 应用程序(图 2)。

您可以选择工具 > 客户订单,并在参数名称(例如,Gwen Sanders)中插入客户名称。然后点击“运行工具”按钮。您应该会看到如图 3 所示的 JSON 响应。

设置已完成,MCP Toolbox 可以执行客户订单工具与 Elasticsearch 进行通信,运行 ES|QL 查询。

将 MCP Toolbox 与 Gemini CLI 结合使用

我们可以使用任何 MCP 客户端与 MCP Toolbox for Databases 进行通信。例如,我们可以使用命令行工具 Gemini CLI 来使用 Gemini。您可以按照此处提供的说明安装 Gemini CLI。

Gemini CLI 为 MCP Toolbox 提供了一个预配置扩展程序,可在 gemini-cli-extensions/mcp-toolbox 上获取。您可以通过运行以下命令来安装此扩展程序:

安装完成后,您需要进入为 MCP Toolbox 存储 tools.yaml 配置文件的目录,并按如下步骤执行 Gemini CLI(此步骤是 Gemini CLI 与 MCP Toolbox 自动配置所必需的):

您应该会看到图 4 中所示的输出广告。

您可以使用以下命令检查 MCP Toolbox 是否已连接:

您应该能看到已列出客户订单工具的 mcp_toolbox(图 5)。

如果 MCP Toolbox 已连接到 Gemini CLI,我们现在可以尝试问一些问题,例如:“给我客户 Gwen Sanders 的订单。”然后,Gemini CLI 将向 mcp_toolbox 服务器请求执行客户订单工具的权限(参见图 6)。

确认后,Gemini CLI 将向 MCP Toolbox 执行请求,得到 JSON 响应结果,并使用它来格式化响应(图 7)。

Gemini CLI 的响应将报告 Gwen Sanders 只下了一个订单,包含 2 件产品,总价为 132 欧元。

MCP 工具箱 SDK

Google MCP Toolbox 还提供一个 SDK,可用于访问用 Go、Python 和 Javascript 编写的程序中的所有功能。

例如,Python SDK 可在 Github 上获取,页面如下:https://github.com/googleapis/mcp-toolbox-sdk-python

我们需要创建一个简单的代理来连接 MCP 工具箱。我们需要安装以下软件包:

然后使用以下命令创建一个新的代理项目:

这会创建一个名为 my_agent 的新目录,其中包含文件 agent.py

使用以下内容更新 my_agent/agent.py,以连接到 Toolbox:

创建一个 .env文件,其中包含您的 Google API 密钥:

最后,我们可以运行代理并观察结果。要执行代理,您可以运行以下命令:

或者,您也可以通过 Web 接口提供服务:

在这两种情况下,您都可以使用问答接口与 MCP Toolbox 进行交互。例如,您可以提出前一个问题:给我客户 Gwen Sanders 的订单

有关不同 SDK 的更多信息,可以参考此文档页面

结论

在本文中,我们演示了 Elasticsearch 与 Google MCP Toolbox for Databases 的集成。使用简单的 YAML 配置文件,我们可以定义一组工具,这些工具使用 ES|QL 语言将自然语言问题转换为 Elasticsearch 查询。

我们展示了如何与 kibana_sample_data_ecommerce 数据集进行交互,该数据集包含来自电子商务网站的订单。通过这个配置文件,我们可以简单地运行 MCP Toolbox 服务器并从任何 MCP 客户端连接到它。

最后,我们演示了如何使用 Gemini CLI 作为客户端连接到 MCP Toolbox for Databases 并查询存储在 Elasticsearch 中的电子商务数据。我们执行了自然语言查询,以检索有关特定客户(以姓名标识)的订单信息。

随着 MCP 生态系统的不断发展,这种模式——轻量级工具定义,由安全、生产就绪的基础架构支持——为构建越来越强大、数据感知的代理提供了新的机会,且所需努力最小。无论您是在本地尝试 Elastic 的示例数据集,还是将搜索功能集成到更大的应用程序中,MCP 工具箱都为使用自然语言与 Elasticsearch 数据进行交互提供了可靠、可扩展的基础。

有关代理 AI 应用程序开发的更多信息,您可以阅读 Anish Mathur 和 Dana Juratoni 撰写的《使用 Elasticsearch 构建 AI 代理工作流》

有关 Google MCP Toolbox 的更多信息,请访问 https://googleapis.github.io/genai-toolbox/getting-started/introduction/

相关内容

准备好打造最先进的搜索体验了吗?

足够先进的搜索不是一个人的努力就能实现的。Elasticsearch 由数据科学家、ML 操作员、工程师以及更多和您一样对搜索充满热情的人提供支持。让我们联系起来,共同打造神奇的搜索体验,让您获得想要的结果。

亲自试用