<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title><![CDATA[Jedr Blaszyk - Elasticsearch Labs]]></title>
    <description><![CDATA[Articles and tutorials from the Search team at Elastic]]></description>
    <copyright><![CDATA[© 2026. Elasticsearch B.V. All Rights Reserved]]></copyright>
    <image>
      <title><![CDATA[Jedr Blaszyk - Elasticsearch Labs]]></title>
      <url>https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt1121c0bf0e8a6e65/6a88da6340a1841030ef456f/search-labs-thumbnail.png</url>
      <link>https://www.elastic.co/cn/search-labs/author/jedr-blaszyk</link>
    </image>
    <link>https://www.elastic.co/cn/search-labs/author/jedr-blaszyk</link>
    <atom:link href="https://www.elastic.co/cn/search-labs/rss/author/jedr-blaszyk.xml" rel="self" type="application/rss+xml"/>
    <language><![CDATA[cn]]></language>
    <lastBuildDate>Tue, 22 Sep 2026 07:49:01 GMT</lastBuildDate>
  <item>
    <title><![CDATA[弹性 MCP 服务器：将代理生成器工具暴露给任何人工智能代理]]></title>
    <description><![CDATA[了解如何使用代理生成器中的内置弹性 MCP 服务器安全地扩展任何人工智能代理，以访问您的私人数据和自定义工具。]]></description>
    <content:encoded><![CDATA[<p>Elastic Agent Builder 是一个平台，用于创建与 Elasticsearch 中自己的数据深度集成的工具和代理。例如，您可以创建对内部文档进行语义搜索、分析可观察性日志或查询安全警报的工具。</p><p>但是，当你能将这些定制的、数据感知工具带入你花费时间最多的环境中时，真正的奇迹就发生了。如果您的代码编辑器代理可以安全地访问组织的私人知识库，那会怎样？</p><p>这就是<strong>模型上下文协议（MCP）</strong>的作用所在。Elastic Agent Builder 内置 MCP 服务器，可访问平台中的工具。</p><h2>为什么要使用 Elastic Agent Builder MCP 服务器？</h2><p>人工智能代理的功能非常强大，但它们的知识通常仅限于它们接受过训练的数据以及它们可以在公共互联网上主动搜索的信息。他们不了解贵公司的内部设计文档、团队的特定部署运行手册或应用程序日志的独特结构。</p><p>我们面临的挑战是如何为人工智能助手提供其所需的专业背景。这正是 MCP 所要解决的问题。<strong>MCP 是一种开放标准，允许人工智能模型或代理发现和使用外部工具。</strong></p><p>为了实现这一点，Elastic Agent Builder 通过内置的 MCP 服务器本机公开了您的自定义工具。这意味着您可以轻松地将任何与 MCP 兼容的客户端（如<strong>Cursor</strong>、<strong>VS Code</strong> 或<strong>Claude Desktop</strong>）与您使用 Elastic Agent Builder 创建的专门的数据感知工具连接起来。</p><h2>何时使用 MCP（何时不使用）</h2><p>Elastic Agent Builder 包含多种协议，可支持不同的集成模式。选择正确的人工智能工作流是建立有效人工智能工作流的关键。</p><ul><li><p><strong>使用 </strong><a href="https://www.elastic.co/docs/solutions/search/agent-builder/mcp-server"><strong>MCP</strong></a>通过专业工具来增强人工智能代理（如在<strong>Cursor</strong>或<strong>VS Code</strong> 中）。这是"自带工具" 方法，通过安全访问您的私人数据来增强您已经使用的助手。只有工具是通过 MCP 服务器公开的，Elastic 的代理是独立于 MCP 服务器的。</p></li><li><p><strong>使用 </strong><a href="https://www.elastic.co/docs/solutions/search/agent-builder/a2a-server"><strong>A2A 协议</strong></a>，让您的完整自定义弹性代理与其他自主代理协作（如<a href="https://www.elastic.co/search-labs/blog/a2a-protocol-elastic-agent-builder-gemini-enterprise"><strong>谷歌的双子座企业版</strong></a>）。这是针对代理对代理的委托，即每个代理都作为同行来解决问题。</p></li><li><p>在从头开始构建自定义应用程序时，<strong>使用 </strong><a href="https://www.elastic.co/docs/solutions/search/agent-builder/kibana-api"><strong>代理生成器应用程序接口（API</strong></a>）实现完全的编程控制。</p></li></ul><p>对于希望在不离开集成开发环境的情况下从内部文档中获得答案的开发人员来说，MCP 是最合适的选择。</p><h2>示例：在 Cursor 中使用代理生成器 MCP 服务器的自定义工具</h2><p>让我们来看一个我每天都在使用的实际例子。首先，我将我们的内部工程文档抓取并编入一个名为<code>elastic-dev-docs</code> 的 Elasticsearch 索引。虽然我们可以使用 Agent Builder 中的通用内置工具，但我们将创建自己的自定义工具来查询这个特定的知识库。</p><p>定制工具的原因很简单：<strong>控制和精度</strong>。这种方法使我们能够直接针对<code>elastic-dev-docs</code> 索引运行快速语义查询。我们可以完全控制具体针对哪个索引以及如何检索数据。</p><p>现在，我们来看看如何在 Cursor 等人工智能驱动的代码编辑器中使用自定义知识库。</p><h3>第 1 步：在 Agent Builder 中创建自定义知识库工具</h3><p>首先，在 Agent Builder 中创建一个新工具。清晰而具体的工具描述非常重要，因为这是任何人工智能代理（无论是内部的弹性代理还是通过 MCP 连接的外部工具，如 Cursor）发现并为正确的任务选择工具的方式。</p><p>有力的描述应该是明确的。例如"在 elastic-dev-docs 索引上执行语义搜索，以查找内部工程文档、运行手册和发布程序"。</p><p>有了这些，就可以对工具进行配置，以便针对我们的特定索引执行语义搜索。一旦保存，就可以立即食用。</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt011118f0a9279185/6a17f367dbb4ffc4f3fb581a/1eea079908fdf7cc72dbe81abd07ff51601a43d4-1472x1600.png" alt="在 Agent Builder 中创建自定义知识库工具。" /><p>在连接到外部世界之前，您可以直接在用户界面中进行测试。只需单击 "<strong>测试</strong>"按钮，手动填写参数，模拟 LLM 的工作，然后检查结果，确认一切工作正常。</p><h3>第 2 步：将光标连接到弹性 MCP 服务器</h3><p>Elastic Agent Builder 可通过安全的 MCP 端点自动公开所有可用工具。您可以在 Kibana 的工具用户界面中找到唯一的服务器 URL。</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltdd0e62ae0f394c3d/6a17f368e317916ec32d5933/ba137be30f0eaa7f028b96bd8af4e2779c3f8a33-1600x589.png" alt="如何将 Kibana 工具 UI 中的光标连接到 Elastic MCP 服务器。" /><p>要连接到 Cursor，我们只需将此 URL 添加到其配置文件中，同时添加一个用于身份验证的 Elastic API 密钥<a href="https://www.elastic.co/docs/deploy-manage/api-keys/elasticsearch-api-keys">（了解如何创建 ES API 密钥</a>）。我们使用 API 密钥进行授权，因为它能确保工具只在您授予的权限内执行，并尊重您的所有访问控制规则。</p><p>Cursor's<code>~/.cursor/mcp.json</code> 中的 MCP 配置如下所示：</p>{
  "mcpServers": {
    "elastic-agent-builder": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://your-kibana.kb.company.io/api/agent_builder/mcp",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "ApiKey &lt;ELASTIC_API_KEY&gt;"
      }
    }
  }
}<p>保存配置后，你应该能在光标中看到 Elastic Agent Builder MCP 服务器工具。</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt2837638263e628ed/6a17f36adbb4ffeb9cfb5820/d302c6d3609fbf14fd40e21b9e69e567bf12553f-1600x1002.png" alt="Cursor 中提供的 Elastic Agent Builder MCP 服务器工具的图像。" /><h3>第三步：提问！</h3><p>建立连接后，Cursor 代理现在可以调用您的自定义工具来回答您的问题或指导代码生成过程。</p><p>让我们提出一个具体问题：</p><p><em>"从弹性搜索组织的工程内部文档中查找释放爬虫服务的步骤"</em></p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt83fa357261b30e93/6a17f36c4b055d16d1432326/14f572730203c23615bb9dd38234bcb3b0f81155-1600x1468.png" alt="光标代理调用自定义工具来回答问题并指导代码生成过程。" /><p>在幕后，神奇的事情发生了：</p><ol><li><p>光标代理决定如何以最佳方式回答您的问题，并决定调用 <code>engineering_documentation_internal_search</code></p></li><li><p>它通过自然语言查询调用该工具</p></li><li><p>该工具根据<code>elastic-dev-docs</code> 索引执行语义搜索，并返回最相关的最新程序。</p></li></ol><p>我们无需离开代码编辑器，就能根据内部文档得到准确、可信的答案。这种体验天衣无缝、功能强大。</p><h2>轮到您建造</h2><p>您现在已经了解了如何使用 Elastic Agent Builder 中的内置 MCP 服务器来扩展人工智能助手，使其能够安全地访问您的私人数据。将模型建立在自己的信息基础上是使其真正有用的关键。</p><p>概括地说，我们介绍了核心步骤：</p><ul><li><p>根据需要选择合适的协议（MCP）。</p></li><li><p>构建自定义知识库工具</p></li><li><p>将该工具与 Cursor 等集成开发环境助手连接起来。</p></li></ul><p>您的代理和工具不再需要与最有价值的环境脱节。希望本指南能帮助您创建更有效的数据感知工作流程。快乐建筑</p>]]></content:encoded>
    <link>https://www.elastic.co/search-labs/blog/elastic-mcp-server-agent-builder-tools</link>
    <guid isPermaLink="true">https://www.elastic.co/search-labs/blog/elastic-mcp-server-agent-builder-tools</guid>
    <category><![CDATA[智能体 AI]]></category>
    <category><![CDATA[AI]]></category>
    <category><![CDATA[AI 工具 ]]></category>
    <dc:creator><![CDATA[Jedr Blaszyk,Joe McElroy]]></dc:creator>
    <enclosure url="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blta5b61961b6269ab1/6a17f36ea29299d839d02db2/ef5153551a1d14833c7f512fede554d1dfb31553-720x420.jpg" length="0" type="image/jpeg"/>
    <pubDate>Mon, 20 Oct 2025 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title><![CDATA[通过 A2A 协议将弹性代理连接到 Gemini Enterprise]]></title>
    <description><![CDATA[了解如何使用 Agent Builder 通过 A2A 协议将定制的 Elastic Agent 暴露给 Gemini Enterprise 等外部服务。]]></description>
    <content:encoded><![CDATA[<p><strong>Elastic Agent Builder</strong>是一套直接在 Elasticsearch 中创建数据驱动的人工智能代理的功能。在本<a href="https://www.elastic.co/search-labs/blog/series/context-aware-ai-agentic-workflows-with-elastic">系列</a>的前几篇文章中，我们演示了如何为自定义代理配备执行复杂任务的工具，并为其提供一系列自定义指令来指导其行为。</p><p>但是，如果您想将自定义代理与您已经依赖的应用程序和生产力工具一起使用，该怎么办？</p><p>这就是<strong>代理对代理（A2A）协议</strong>的作用所在。A2A 是互操作性的<a href="https://github.com/a2aproject/A2A">开放标准</a>，允许来自不同平台的代理进行通信和协作。我们已将其直接内置到弹性代理生成器中。</p><p>今天，我们将向您展示如何将您创建的自定义代理与其他服务（特别是<strong>Gemini Enterprise </strong>，前身为 Agentspace）进行交互。</p><h2>开放标准的力量：A2A 为何重要</h2><p>在博文 "<a href="https://www.elastic.co/search-labs/blog/ai-agent-builder-elasticsearch">你的第一个弹性代理</a>"中，我们展示了如何构建自定义代理，例如可安全访问市场数据的<em>财务助理</em>代理。但是，如果你不能在其他环境（如双子座企业版）中使用其洞察力，而又不重建你的工作，那么它的价值就会受到限制。</p><p>这种互操作性的挑战正是阻碍人工智能发展的原因。代理需要一种跨平台交流的通用语言，这正是 A2A 协议的作用所在。它提供了一个标准通信层，不仅可以让您与代理直接互动，还能开启未来，让整个组织的专业代理都能协作并分享见解。</p><p>为了实现这一点，Elastic Agent Builder 通过两个标准端点为所有代理提供 A2A 协议本机支持：</p><ol><li><p><strong>Agent Card 端点 (</strong><strong><code>GET {your-kibana-url}/api/agent_builder/a2a/{agentId}.json</code></strong> )<strong>- </strong>这是您的自定义代理名片。它向任何 A2A 兼容服务提供有关代理的元数据（名称、描述、功能等）。</p></li><li><p><strong>A2A 协议端点 (</strong><strong><code>POST {your-kibana-url}/api/agent_builder/a2a/{agentId}</code></strong><strong> )</strong> - 这是通信通道。其他代理在此发送请求，您的代理处理请求并返回响应，所有这些都遵循<a href="https://a2a-protocol.org/latest/specification/">A2A 协议规范</a>。</p></li></ol><h2>使用 A2A 检查员测试您的代理</h2><p>在将我们的代理连接到生产系统之前，最好检查一下它的通信是否正确。最简单的方法是使用<strong>A2A 检查器</strong>，这是一款专门用于测试和调试 A2A 集成的工具。</p><p>检查器的运行非常简单。您可以克隆<a href="https://github.com/a2aproject/a2a-inspector">a2a-inspector</a>软件源，然后按照 README 说明<a href="https://github.com/a2aproject/a2a-inspector?tab=readme-ov-file#3-run-the-application">运行应用程序</a>。启动后，用户界面默认在<code>http://localhost:5001/</code> 上可用。</p><p>要将 A2A 检查员与您的代理联系起来，您需要提供两条关键信息：</p><ul><li><p>代理卡 URL：这是描述代理的端点。对于<a href="https://www.elastic.co/search-labs/blog/ai-agent-builder-elasticsearch">上一个职位中的财务助理代理</a>而言，这个 URL 将是<code>{your-kibana-url}/api/agent_builder/a2a/financial_assistant.json</code> 。</p></li><li><p>验证头：我们将使用标准 API 密钥进行身份验证。</p></li></ul><p>在检查员用户界面输入这些详细信息后，您就可以立即连接并开始与您的代理聊天。</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt6381135e3fb297df/6a17ef4bec0f898b0c5a66ea/7231c72bf30bed2a854f58658c1eca2843f43bfc-1600x1296.png" alt="A2A 代理卡和代理检查员设置" /><p>这一简单的验证让我们确信，我们的代理已正确配置并准备好进行下一步操作。</p><h2>开始直播您在双子座企业中的定制代理</h2><p>现在是激动人心的部分：在 Gemini Enterprise（前身为 Agentspace）中启用我们的定制财务顾问代理。该集成由<a href="https://console.cloud.google.com/marketplace/product/elastic-prod/elastic-ai-agent"> Elastic AI Agent 提供支持 ，它可在谷歌云市场上购买</a> 。</p><p>连接后，Gemini Enterprise 使用 A2A 协议与您的代理直接通信。这就是互操作性的真正威力所在：用户现在可以访问来自自定义 Elasticsearch 代理的深度数据驱动洞察，而无需离开他们熟悉的环境。你可以在代理列表中看到你的自定义弹性代理：</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt7f54f0bb15216d8e/6a17ef4d6df73107d90a0fdb/37a39e92ebf3d72c6c8014397cd8e846336173a4-1600x834.png" alt="在 Google 代理空间列表中查看自定义代理" /><p>想象一下，双子座企业的用户会问</p><p><em>"我担心市场情绪。您能告诉我哪些客户最容易受到坏消息的影响吗？</em>"</p><p>在幕后，Gemini Enterprise 通过 A2A 协议将此查询路由到您的自定义弹性代理。然后，您的代理会使用其专业工具查询您的数据、制定答案并将其发送回来。对于最终用户来说，这种体验是无缝的。</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blte130c332ee0648a6/6a17ef4fe9ea874426a9c6bb/e5f126c1a27a51c6e69a767aa87c9f746b62e39c-1600x1044.png" alt="用户向 Agentspace 提出查询，以及查询在幕后发生的情况" /><p>而且还不止于此！使用弹性代理获取的答案现在可以用作下一个问题的上下文，这些问题可能会触发不同的专门代理（例如您的投资平台代理，以调整对上市公司的投资）。无需离开搜索栏。</p><p>通过在具有 A2A 功能的 Gemini Enterprise 上部署弹性代理，您可以统一访问、协调和工作流，通过提供用户与其数据和工具对话的单一用户界面，消除人工智能、搜索和企业系统之间的摩擦--所有这些都在上下文中进行。对用户来说，这意味着更少的工具切换和更直观、更有能力的人工智能助手。对组织而言，这意味着协调一致的管理、可扩展性和内置的互操作性。</p><h2>轮到您建造</h2><p>您现在拥有了让您的弹性代理随时随地可用的工具。通过利用开放式 A2A 协议，您可以扩展自定义数据感知代理的覆盖范围。</p><p>在本篇文章中，我们将向您介绍关键步骤：</p><ul><li><p>通过 A2A 代理卡和协议端点公开代理。</p></li><li><p>测试与 A2A 检查员的连接。</p></li><li><p>将代理实时集成到外部服务中，如 Google 的 Gemini Enterprise。</p></li></ul><p>您的代理商不再需要与世隔绝。我们迫不及待地想看到你们创建的强大的互联系统。快乐建筑</p><p>最简单的入门方法是在<a href="https://console.cloud.google.com/marketplace/product/elastic-prod/elastic-cloud?pli=1">谷歌云市场</a>上进行 Elastic Cloud 免费试用</p>]]></content:encoded>
    <link>https://www.elastic.co/search-labs/blog/a2a-protocol-elastic-agent-builder-gemini-enterprise</link>
    <guid isPermaLink="true">https://www.elastic.co/search-labs/blog/a2a-protocol-elastic-agent-builder-gemini-enterprise</guid>
    <category><![CDATA[智能体 AI]]></category>
    <category><![CDATA[AI]]></category>
    <dc:creator><![CDATA[Jedr Blaszyk,Valerio Arvizzigno,Joe McElroy]]></dc:creator>
    <enclosure url="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt63d7675adc5bc211/6a17ef51ddf97d38e8910bdf/5be8a425fab55dca2f9717d2e50812b0450fa625-1440x840.png" length="0" type="image/png"/>
    <pubDate>Thu, 09 Oct 2025 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title><![CDATA[使用模型上下文协议将代理连接到 Elasticsearch]]></title>
    <description><![CDATA[让我们使用模型上下文协议服务器与 Elasticsearch 中的数据聊天。]]></description>
    <content:encoded><![CDATA[<p>如果与您的数据交互就像与同事聊天一样轻松，那会怎样？试想一下，只需询问"给我看上个月所有超过 500 美元的订单" 或"哪些产品获得了最多的五星好评？" ，就能得到即时、准确的答案，无需查询。</p><p>模型上下文协议 (MCP) 使之成为可能。它能将对话式人工智能与数据库和外部应用程序接口无缝连接，将复杂的请求转化为自然的对话。虽然现代 LLM 在理解语言方面非常出色，但当它们与现实世界的系统集成时，才能释放出真正的潜力。MCP 在两者之间架起了一座桥梁，使数据交互更直观、更高效。</p><p>在本篇文章中，我们将探讨</p><ul><li><p>MCP 架构 - 引擎盖下的工作原理</p></li><li><p>连接到 Elasticsearch 的 MCP 服务器的优势</p></li><li><p>构建<a href="https://github.com/elastic/mcp-server-elasticsearch">由 Elasticsearch 支持的 MCP 服务器</a></p></li></ul><p>激动人心的时刻即将到来！MCP 与 Elastic 协议栈的集成改变了您与信息交互的方式，使复杂的查询就像日常对话一样直观。</p><h2>模型上下文协议</h2><p><a href="https://modelcontextprotocol.io/introduction">模型上下文协议</a>（MCP）由 Anthropic 开发，是一种开放标准，可通过安全的双向渠道将人工智能模型与外部数据源连接起来。它解决了人工智能的一个主要限制：实时访问外部系统，同时保留对话语境。</p><h3>MCP 架构</h3><p>模型上下文协议架构由两个关键部分组成：</p><ul><li><p><strong>MCP 客户端</strong>--代表用户请求信息或执行任务的人工智能助理和聊天机器人。</p></li><li><p><strong>MCP 服务器</strong>- 数据存储库、搜索引擎和 API，用于检索相关信息或执行请求的操作（如调用外部 API）。</p></li></ul><p>MCP 服务器向客户端提供四种主要功能：</p><ul><li><p><strong>资源</strong>- 结构化数据、文件和内容，可检索并用作 LLM 交互的上下文。这样，人工智能助理就能从数据库、搜索索引或其他来源获取相关信息。</p></li><li><p><strong>工具</strong>- 可执行的功能，使 LLM 能够与外部系统交互、执行计算或采取实际行动。这些工具将人工智能的功能扩展到文本生成之外，使助理能够触发工作流、调用应用程序接口或动态处理数据。</p></li><li><p><strong>提示</strong>- 可重复使用的提示模板和工作流程，用于标准化和共享常见的 LLM 互动。</p></li><li><p><strong>取样</strong>--通过客户端请求完成 LLM，以实现复杂的代理行为，同时维护安全性和隐私性。</p></li></ul><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltfe82754551bb187a/6a17f7ec6864a43e71b6895d/bef5178133391e96e3d66ae634e41a85712a33a9-2345x1620.png" alt="模型上下文协议（MCP）架构" /><h2>MCP 服务器 + Elasticsearch</h2><p></p><p>传统的检索-增强生成（RAG）系统根据用户查询检索文档，而 MCP 则更进一步：它使人工智能代理能够实时动态地构建和执行任务。这样，用户就可以提出自然语言问题，如</p><p></p><ul><li><p>"给我看上个月所有超过 500 美元的订单。"</p></li><li><p>"哪些产品获得的五星好评最多？"</p></li></ul><p></p><p>无需编写任何查询，即可获得即时、准确的答案。</p><p></p><p>MCP 通过以下方式实现这一目标</p><ul><li><p>动态工具选择 - 代理商根据用户意图，通过 MCP 服务器智能选择合适的工具。"更聪明的 "法律硕士通常更善于根据上下文选择合适的工具，并提出适当的论据。</p></li><li><p>双向通信--代理和数据源可流畅地交换信息，并根据需要改进查询（如先查找索引映射，然后才构建 ES 查询）。</p></li><li><p>多工具协调--工作流程可同时利用多个 MCP 服务器的工具。</p></li><li><p>持续的上下文--代理可记住以前的互动，保持对话的连续性。</p></li></ul><p>连接到 Elasticsearch 的 MCP 服务器可释放强大的实时检索架构。人工智能代理可按需探索、查询和分析 Elasticsearch 数据。您的数据可以通过一个简单的聊天界面进行搜索。</p><p>除了检索数据外，MCP 还能采取行动。它可与其他工具集成，以触发工作流、实现流程自动化，并将见解反馈到分析系统中。通过将搜索与执行分离，MCP 可使人工智能驱动的应用程序保持灵活、与时俱进，并无缝集成到代理工作流中。</p><h2>实际操作：与 Elasticsearch 数据聊天的 MCP 服务器</h2><p>要通过 MCP 服务器与 Elasticsearch 交互，我们至少需要以下功能：</p><ul><li><p>检索指数</p></li><li><p>获取映射</p></li><li><p>使用 Elasticsearch 的查询 DSL 执行搜索</p></li></ul><p>我们的服务器是用 TypeScript 编写的，我们将使用官方的<a href="https://github.com/modelcontextprotocol/typescript-sdk">MCP TypeScript SDK</a>。安装时，我们建议安装 Claude Desktop App（免费版即可），因为它内置了 MCP 客户端。我们的 MCP 服务器本质上是通过 MCP 工具公开官方<a href="https://www.elastic.co/cn/guide/en/elasticsearch/client/javascript-api/current/index.html">JavaScript Elasticsearch 客户端</a>。</p><p>让我们从定义 Elasticsearch 客户端和 MCP 服务器开始：</p> const esClient = new Client({
    node: url,
    auth: {
      apiKey: apiKey,
    },
  });

  const server = new McpServer({
    name: "elasticsearch-mcp-server",
    version: "0.1.0",
  });<p>我们将使用以下可与 Elasticsearch 交互的 MCP 服务器工具：</p><ul><li><p><strong>索引列表</strong><a href="https://github.com/elastic/mcp-server-elasticsearch/blob/main/index.ts#L46">(list_indices</a>)：该工具可检索所有可用的 Elasticsearch 索引，并提供索引名称、健康状态和文档数量等详细信息。</p></li><li><p><strong>获取映射</strong><a href="https://github.com/elastic/mcp-server-elasticsearch/blob/main/index.ts#L94">（get_mappings</a>）：该工具可获取指定 Elasticsearch 索引的字段映射，帮助用户了解存储文档的结构和数据类型。</p></li><li><p><strong>搜索</strong><a href="https://github.com/elastic/mcp-server-elasticsearch/blob/main/index.ts#L147">（search</a>）：该工具使用提供的查询 DSL 执行 Elasticsearch 搜索。它可自动启用文本字段的高亮显示，从而更容易识别相关搜索结果。</p></li></ul><p>完整的 Elasticsearch MCP 服务器实现可在<a href="https://github.com/elastic/mcp-server-elasticsearch">elastic/mcp-server-elasticsearch</a>repo 中找到。</p><h4>与您的索引聊天</h4><p>让我们来探讨一下如何设置 Elasticsearch MCP 服务器，以便就数据提出自然语言问题，例如"查找上个月所有超过 500 美元的订单。"</p><p><strong>配置您的克劳德桌面应用程序</strong></p><ul><li><p>打开克劳德桌面应用程序</p></li><li><p>导航至设置&gt; 开发人员&gt; MCP 服务器</p></li><li><p>单击"Edit Config" ，将此配置添加到<code>claude_desktop_config.json</code> ：</p></li></ul>{
  "mcpServers": {
    "Elasticsearch MCP Server": {
      "command": "npx",
      "args": [
        "-y",
        "@elastic/mcp-server-elasticsearch"
      ],
      "env": {
        "ES_URL": "",
        "ES_API_KEY": ""
      }
    }
  }
}<p>注意：此设置使用 Elastic 发布的<a href="https://www.npmjs.com/package/@elastic/mcp-server-elasticsearch">@elastic/mcp-server-elasticsearch</a>npm 软件包。如果您想在本地进行开发，可<a href="https://github.com/elastic/mcp-server-elasticsearch/blob/main/README.md">在此处</a>了解有关安装 Elasticsearch MCP 服务器的更多详情。</p><p><strong>填充 Elasticseach 索引</strong></p><ul><li><p>您可以使用我们的<a href="https://gist.github.com/jedrazb/60e9400cbe40addfd9e4337749c28431">示例数据</a>来填充"订单" 索引，用于此演示</p></li><li><p>这样您就可以尝试查询，如"查找上个月所有超过 500 美元的订单"</p></li></ul><p><strong>开始使用</strong></p><ul><li><p>在克劳德桌面应用程序中打开新对话</p></li><li><p>MCP 服务器将自动连接</p></li><li><p>开始询问有关 Elasticsearch 数据的问题！</p></li></ul><p>查看此演示，了解使用自然语言查询 Elasticsearch 数据有多简单：</p><h4>工作原理是什么？</h4><p>当被问及 "查找上个月所有超过 500 美元的订单 "时，LLM 会根据指定的约束条件识别搜索 Elasticsearch 索引的意图。要进行有效的搜索，特工需要：</p><ul><li><p>找出索引名称： <code>orders</code></p></li><li><p>了解<code>orders</code> 索引的映射关系</p></li><li><p>构建与索引映射兼容的查询 DSL，最后执行搜索请求</p></li></ul><p>这种互动可以表示为</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt152f41bc8c3e9752/6a17f7ee6df73152df0a10cc/8875bc75745124be87deac0be666509446887de2-2345x1620.png" alt="MCP 服务器 + Elasticsearch 如何工作" /><h2>结论</h2><p>模型上下文协议增强了您与 Elasticsearch 数据的交互方式，实现了自然语言对话，而不是复杂的查询。通过将人工智能功能与您的数据连接起来，MCP 可创建一个更直观、更高效的工作流程，在整个互动过程中保持上下文关联。</p><p>Elasticsearch MCP 服务器以公共 npm 包<a href="https://www.npmjs.com/package/@elastic/mcp-server-elasticsearch">（@elastic/mcp-server-elasticsearch</a>）的形式提供，开发人员可以直接集成。只需极少的设置，您的团队就可以开始探索数据、触发工作流，并通过简单的对话获得洞察力。</p><p>准备好亲自体验了吗？现在就试用<a href="https://github.com/elastic/mcp-server-elasticsearch">Elasticsearch MCP 服务器</a>，开始与您的数据聊天吧。</p>]]></content:encoded>
    <link>https://www.elastic.co/search-labs/blog/model-context-protocol-elasticsearch</link>
    <guid isPermaLink="true">https://www.elastic.co/search-labs/blog/model-context-protocol-elasticsearch</guid>
    <category><![CDATA[智能体 AI]]></category>
    <category><![CDATA[AI]]></category>
    <dc:creator><![CDATA[Jedr Blaszyk,Joe McElroy]]></dc:creator>
    <enclosure url="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltce68a95c633809ae/6a17f7f0148009fa28b48915/65b378f644bd13e3edf2f108d48186f1889f546c-1200x628.png" length="0" type="image/png"/>
    <pubDate>Fri, 28 Mar 2025 00:00:00 GMT</pubDate>
  </item>
  </channel>
</rss>