<?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[Stratoula Kalafateli - 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[Stratoula Kalafateli - 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/stratoula-kalafateli</link>
    </image>
    <link>https://www.elastic.co/cn/search-labs/author/stratoula-kalafateli</link>
    <atom:link href="https://www.elastic.co/cn/search-labs/rss/author/stratoula-kalafateli.xml" rel="self" type="application/rss+xml"/>
    <language><![CDATA[cn]]></language>
    <lastBuildDate>Sun, 13 Sep 2026 16:32:21 GMT</lastBuildDate>
  <item>
    <title><![CDATA[用描述代替手动绘制：通过 MCP 和 ES|QL 构建 AI 原生 Kibana 仪表板。]]></title>
    <description><![CDATA[从提示词到仪表板了解如何使用 example-mcp-dashbuilder 通过自然语言构建 Kibana 仪表板：这是一款开源 MCP 应用，能够编写 ES|QL 查询、创建交互式图表，并将功能完整的仪表板直接导出到 Kibana。]]></description>
    <content:encoded><![CDATA[<p>example-mcp-dashbuilder 是一款开源 MCP 应用，可将简单英文提示词转换为实时、交互式 Kibana 仪表板，所有操作都在编辑器的聊天窗口中完成。描述您想要实现的仪表板，AI 会探查您的索引结构，为每个可视化内容编写正确的 ES|QL 聚合，并在运行过程中以内联方式渲染预览。完成后，只需一条命令即可导出功能完整的 Kibana 仪表板：真实的 Lens 可视化内容、精确的网格布局和自定义颜色都会保留下来。目前支持六种图表类型，完整的 Kibana Lens 图表集已列入路线图。</p><h2>Kibana 仪表板构建器是什么？</h2><p>想象一下：您只需用简单英文描述所需仪表板，就能看着它逐步呈现，并配有交互式图表、拖放式布局以及一键导出到 Kibana 的功能。</p><p>这正是 <a href="https://github.com/elastic/example-mcp-dashbuilder.git"><strong>example-mcp-dashbuilder</strong></a> 的作用。它是一款开源 MCP（Model Context Protocol，模型上下文协议）应用，可将 AI 助手连接到 Elasticsearch，让您通过对话创建完整的 Kibana 仪表板。无需在菜单间反复点击。无需手动编写可视化配置。只需描述您的需求，AI 就会探查您的数据、编写 ES|QL 查询、构建图表，并在编辑器的聊天窗口中交付实时交互式仪表板。</p><h2><strong>从提示词到仪表板，仅需数秒</strong></h2><p>实际运行效果如下。您可以输入类似这样的内容：</p><p>“为我构建一个基于 logstash-* 的 Web 流量仪表板，包含总请求数、随时间变化的传输字节数、主要地理来源以及响应代码细分”</p><p>随后，AI 会：</p><ol><li><p><strong>探查您的数据：</strong>列出索引并检查字段映射。</p></li><li><p><strong>编写 ES|QL 查询：</strong>根据您的架构量身定制，并使用正确的聚合。</p></li><li><p><strong>创建可视化内容：</strong>条形图、折线图、带迷你图的指标图、热力图、饼图。</p></li><li><p><strong>组织所有内容：</strong>可折叠分区、有意义的标题、合理的布局。</p></li><li><p><strong>渲染交互式预览：</strong>直接显示在聊天中，并配有工具提示、时间选择器和拖放功能。</p></li></ol><p>每个图表在创建时都会内联显示，因此您可以实时查看进度。随后，<code>view_dashboard</code> 会显示完整的仪表板，所有面板都会按照 Kibana 的 48 列网格完成布局。</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt75af5d9042d141b5/6a17e99dbe608675a4004792/dcbf47c4f17bf1a184fb0167408ebeb861ef6c9d-1404x1568.png" alt="example-mcp-dashbuilder 界面中显示了两个图表。第一个是标题为“主要地理来源”的垂直条形图，按国家/地区代码显示请求数。第二个是标题为“HTTP 响应代码细分”的饼图，显示 200、404 和 503 响应的分布。" /><p><em>单个图表的内联预览</em></p><h2><strong>由 ES|QL 提供支持</strong></h2><p>所有数据检索均使用 <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/esql.html">ES|QL</a>，即 Elasticsearch 的管道式查询语言。AI 不只是传递原始查询，还会利用其对 ES|QL 语法的内置知识，并结合您的数据结构信息，为每种可视化类型编写正确且高效的查询。</p><p>该服务器包含一份全面的 ES|QL 参考文档，并将其作为 MCP 资源提供。在编写任何查询之前，AI 会先读取这份参考文档，以了解可用的命令、函数和模式。结合数据可视化最佳实践指南（同样作为资源提供），AI 不仅知道<em>如何</em>查询，还懂得<em>什么样</em>的可视化效果更好：</p><ul><li><p>针对时间序列使用 <code>BUCKET(@timestamp, 1 day)</code>；始终按时间字段 <code>SORT</code> 排序。</p></li><li><p>使用 <code>| SORT value DESC | LIMIT 6</code> 将饼图限制为最多六个扇区。</p></li><li><p>类别比较选用条形图，趋势分析选用折线图，关键绩效指标 (KPI) 选用指标图。</p></li></ul><h2><strong>AI 驱动的数据探索，支持开放式分析</strong></h2><p>在脑海中设计好一个仪表板并将其构建出来是一回事。询问“这个索引中有哪些值得关注的内容？”并获得有用答案则更难；这要求 AI 懂得如何<em>探索</em>数据，而不仅仅是绘制图表。</p><p>example-mcp-dashbuilder 提供了一个 <code>analysis://guidelines</code> 资源，用于定义结构化探索流程：剖析数据、运行有针对性的聚合、呈现值得调查的模式、为最值得关注的发现构建图表，并提出用户接下来可能需要的下钻查询。“分析我的日志”或“在这个索引中寻找模式”等触发短语，会促使 AI 在执行任何其他操作前先读取该操作手册。因此，开放式提示词生成的是逻辑连贯的分析过程，而不是一堆随机图表。</p><p>结果是：您可以将一个陌生索引交给 AI，并获得一个起点，包括一个仪表板，以及一组简短提示，例如“以下是我注意到的情况，需要我深入分析其中某一项吗？”</p><h2><strong>Kibana 仪表板的导出与导入：完整闭环</strong></h2><p>导出/导入闭环让 example-mcp-dashbuilder 对已经在 Kibana 中工作的团队真正显现价值。example-mcp-dashbuilder 是一个独立工具，也是位于编辑器内的对话式仪表板界面，但它不会让您的工作局限于此。在这里构建的仪表板可以在需要时导入 Kibana；现有 Kibana 仪表板也可以反向导入，以便进行 AI 辅助编辑。</p><h3><strong>导出到 Kibana</strong></h3><p>当您对仪表板满意后，只需一条命令即可导出：</p><p>将此仪表板导出到 Kibana</p><p>每个面板都会转换为 Kibana Lens 原生可视化内容。转换过程会保留：</p><ul><li><p><strong>ES|QL 查询：</strong>直接作为 Lens ES|QL 数据源传输。</p></li><li><p><strong>网格位置：</strong>沿用 Kibana 使用的 48 列系统，因此您的布局看起来完全一致。</p></li><li><p><strong>自定义颜色：</strong>系列调色板、指标背景、热力图色带。</p></li></ul><p>最终生成的是一个功能完整的 Kibana 仪表板。不是屏幕截图。不是嵌入内容。而是一个真实的仪表板，您可以在 Kibana 中分享并继续编辑。</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt1921c74c2833cabe/6a17e99f6864a4a712b687da/5e27777bc0a82cafb373943f65298bdb21d66176-1999x902.png" alt="两个仪表板并排显示。左侧仪表板标题为“编辑 Web 流量 — Logstash (Dashbuilder)”，显示近期流量指标，以及流量统计面板、地理来源条形图和响应代码饼图。右侧仪表板显示类似布局，但总量更高，并包含流量统计面板、地理来源条形图和响应代码饼图。" /><p><em>Kibana 仪表板与 Cursor 聊天中的仪表板并排显示。</em></p><h3><strong>从 Kibana 导入</strong></h3><p>该闭环同样支持反向操作：</p><p>“导入 ID 为 abc-123 的 Kibana 仪表板”</p><p>这会获取现有 Kibana 仪表板，将其 Lens 可视化内容转换回可编辑的图表配置，保留网格布局和分区，并将所有内容加载到 example-mcp-dashbuilder 中。之后，您可以使用自然语言修改该仪表板并重新导出。</p><p>这使得 AI 成为您现有 Kibana 工作流程中的协作者，而不是替代品。</p><h2><strong>自定义主题和颜色</strong></h2><p>想要品牌化仪表板？直接提出需求：</p><p>“创建一个粉色主题的仪表板，并使用自定义颜色”</p><p>所有可视化类型都支持自定义颜色配置：</p><ul><li><p><strong>图表：</strong><code>palette</code> 接受用于系列和扇区的十六进制颜色数组。</p></li><li><p><strong>指标：</strong><code>color</code> 设置背景颜色。</p></li><li><p><strong>热力图：</strong><code>colorRamp</code> 定义从低值到高值的颜色渐变。</p></li></ul><p>AI 能自然理解主题请求。输入“海洋主题”，它会选择蓝色和蓝绿色。输入“匹配我们的品牌颜色”并提供十六进制值，这些颜色会在导出时一并带入 Kibana。</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt2bc7cddbdef81354/6a17e9a1ec0f89ee155a665e/4aceba013ac9cbb4a541109efd6acddf8a6ec47d-1562x1568.png" alt="采用自定义粉色配色的电商主题仪表板。该布局在顶部显示收入和订单 KPI，中间是一个折叠的趋势分区，下方是两个基于类别的图表：按类别显示收入的条形图，以及按类别显示订单的饼图。" /><p><em>采用自定义颜色的主题仪表板。</em></p><p><strong>example-mcp-dashbuilder 的工作原理：MCP 架构</strong></p><p>example-mcp-dashbuilder 基于 <a href="https://modelcontextprotocol.io/">MCP</a> 构建；MCP 是用于连接 AI 助手与外部工具和数据的开放标准。以下是其高层级架构概览：</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt6c0cd879646e9947/6a17e9a36864a4c408b687df/cbfeabe151ec1ee2b0655f4d17468c9bb358df7e-1024x559.png" alt="该架构图显示 MCP Host 连接到 MCP Server，后者包含工具、资源和指令。下方的 MCP App 框包含 Elastic Charts 和 Kibana 网格布局。Elasticsearch 和 Kibana 显示在底部，并通过箭头连接到 MCP App。" /><p><strong>MCP 服务器</strong>提供 25 个可由 AI 直接调用的工具，涵盖从运行 ES|QL 查询到导出仪表板的各类操作。同时，它还提供少量仅供应用内部调用的工具，供内联预览用于获取数据、持久化布局更改和检测时间字段。它提供三类资源：数据可视化最佳实践指南、ES|QL 参考文档，以及会在遇到开放式提示词（如“分析我的日志”“这个索引中有哪些值得关注的内容？”）时触发的深度分析操作手册。它既可以通过 stdio 运行，也可以通过 HTTP 运行；HTTP 传输支持流式响应和会话管理，因此多个客户端可以连接到同一台服务器。</p><p><strong>MCP App</strong> 是交互式预览界面。它使用 React、<a href="https://elastic.github.io/elastic-charts">Elastic Charts</a> 和 <a href="https://eui.elastic.co/">Elastic UI</a> 构建，并打包成一个独立且自包含的 HTML 文件。当 AI 调用 <code>view_dashboard</code> 或创建图表时，宿主程序会在沙盒化 iframe 中渲染此 HTML。该应用完全通过 <a href="https://modelcontextprotocol.io/extensions/apps/overview">MCP Apps 协议</a>与服务器通信，并通过 postMessage 使用 <code>callServerTool()</code> 来获取数据、保存布局和检测时间字段。无需 localhost 服务器，无需配置端口，也没有外部网络依赖。</p><p>这意味着它可以与任何兼容 MCP 的客户端配合使用：Cursor、Claude Desktop、Claude.ai、VS Code with Copilot 等。</p><h2><strong>example-mcp-dashbuilder 支持哪些图表类型？</strong></h2><p>在撰写本文时，支持六种图表类型，涵盖了最常见的仪表板场景：</p><p>类型</p><p>适用场景</p><p>示例</p><p>条形图</p><p>类别比较</p><p>按地理来源划分的请求数</p><p>折线图</p><p>随时间变化的趋势</p><p>每小时传输的字节数</p><p>区域</p><p>随时间变化的数据量</p><p>随时间变化的请求量</p><p>饼图</p><p>局部与整体的比例关系（最多六个扇区）</p><p>响应代码分布</p><p>指标</p><p>带迷你图的单一 KPI</p><p>总请求数及每小时趋势</p><p>热力图</p><p>跨两个维度的模式</p><p>按星期几和小时划分的请求数</p><p>仪表板支持用于组织内容的可折叠分区、可自动检测时间字段的时间选择器，以及保存多个仪表板并在其间切换的功能；并行聊天会话通过贯穿每次工具调用的 <code>dashboardId</code> 保持相互隔离。</p><h2><strong>如何安装和运行 example-mcp-dashbuilder</strong></h2><p>example-mcp-dashbuilder 是开源项目，可直接使用。您需要 Node.js 22+、一个 Elasticsearch 实例（本地或 Elastic Cloud），以及一个兼容 MCP 的客户端。</p><p><strong>Claude Desktop：</strong>从 <a href="https://github.com/elastic/example-mcp-dashbuilder/releases">GitHub Releases</a> 下载最新 <code>.mcpb</code> 文件，然后双击安装。Claude Desktop 会提示您输入 Elasticsearch 凭据。</p><p><strong>Cursor / Claude Code / VS Code Copilot：</strong>将您的 MCP 配置指向已发布的 tarball 压缩包；无需克隆，也无需 <code>npm install</code>：</p>{
  "mcpServers": {
    "example-mcp-dashbuilder": {
      "type": "stdio",
      "command": "npx",
      "args": ["https://github.com/elastic/example-mcp-dashbuilder/releases/latest/download/example-mcp-dashbuilder.tgz"]
    }
  }
}<p>将 <code>ES_NODE, ES_API_KEY</code>（或 <code>ES_USERNAME / ES_PASSWORD</code>）和 <code>KIBANA_URL</code> 设置为环境变量。如果您更倾向于基于源代码运行，请克隆仓库并运行 <code>npm run setup</code>，以启动交互式向导；该向导可处理本地 Elasticsearch 和 Elastic Cloud（Cloud ID + API 密钥）。</p><p>然后开始构建：</p><p>“探索 logs 索引，并尽可能为我构建最具洞察力的仪表板”</p><p>剩下的交给 AI 即可。😉</p><h2><strong>路线图：example-mcp-dashbuilder 即将推出的功能</strong></h2><p>这是一个早期版本，我们正在积极开发中。我们专注的一些领域：</p><ul><li><p><strong>更多图表类型：</strong>仪表图、环形图、树状图、数据表和标签云，以覆盖 Lens 的完整功能。</p></li><li><p><strong>将仪表板推送到 Git：</strong>将仪表板配置写入代码仓库，用于版本控制和代码审查工作流。</p></li><li><p><strong>更友好的错误处理体验：</strong>当 ES|QL 查询失败时提供更详细的反馈，并给出常见修复建议。</p></li><li><p><strong>更丰富的分析流程：</strong>扩展深度分析操作手册，以覆盖更多数据形态（日志、指标、链路追踪）。</p></li></ul><p>我们很期待看到您用它构建出的成果。欢迎试用、提交 issue，并告诉我们哪些可视化内容和工作流对您的团队最有帮助。</p><p><a href="https://github.com/elastic/example-mcp-dashbuilder">GitHub：elastic/example-mcp-dashbuilder</a></p><h3>致谢</h3><p>感谢 <a href="mailto:walter.rafelsberger@elastic.co">Walter Rafelsberger</a> 和 <a href="mailto:tim.schnell@elastic.co">Tim Schnell</a> 在实现方面作出的贡献。</p><h3>常见问题解答</h3><p><strong>什么是 example-mcp-dashbuilder？</strong>example-mcp-dashbuilder 是一款开源 MCP (Model Context Protocol) 应用，用于将 AI 助手连接到 Elasticsearch。它让您可以用简单英文描述 Kibana 仪表板，并自动生成 ES|QL 查询、创建可视化内容，在编辑器的聊天窗口中交付实时交互式仪表板。</p><p><strong>example-mcp-dashbuilder 使用哪种查询语言来检索数据？</strong>所有数据检索均使用 ES|QL，即 Elasticsearch 的管道式查询语言。MCP 服务器包含一份内置 ES|QL 参考文档，AI 在编写任何查询之前都会先阅读该参考文档，从而确保每种可视化类型都具备正确语法和高效聚合。</p><p><strong>我可以将使用 example-mcp-dashbuilder 构建的仪表板导出到 Kibana 吗？</strong>可以。运行“将此仪表板导出到 Kibana”会将每个面板转换为真正的 Kibana Lens 可视化内容，并保留 ES|QL 查询、48 列网格布局、自定义颜色和系列调色板。最终呈现的是一个功能完整的 Kibana 仪表板，而不是屏幕截图或嵌入内容。</p><p><strong>我可以将现有 Kibana 仪表板导入 example-mcp-dashbuilder，以便进行 AI 辅助编辑吗？</strong>可以。只需提供 Kibana 仪表板 ID，系统便会获取现有仪表板，将其 Lens 可视化内容转换为可编辑的图表配置，并加载到 example-mcp-dashbuilder 中。之后，您可以使用自然语言修改仪表板，并重新导出到 Kibana。</p><p><strong>哪些 MCP 客户端与 example-mcp-dashbuilder 兼容？</strong>example-mcp-dashbuilder 可与任何兼容 MCP 的客户端配合使用，包括 Cursor、Claude Desktop、Claude.ai 和 VS Code with Copilot。它同时支持 stdio 和 HTTP 传输，无需 localhost 服务器或端口配置。</p><p><strong>example-mcp-dashbuilder 支持哪些图表类型？</strong>当前版本支持六种图表类型：条形图、折线图、面积图、饼图、指标图（带迷你图）和热力图。计划新增仪表图、环形图、树状图、数据表和标签云，以覆盖 Kibana Lens 的完整功能。</p><p><strong>运行 example-mcp-dashbuilder 需要什么？</strong>您需要 Node.js 22 或更高版本、一个 Elasticsearch 实例（本地或 Elastic Cloud），以及一个兼容 MCP 的客户端。设置环境变量 ES_NODE、ES_API_KEY（或 ES_USERNAME/ES_PASSWORD）和 KIBANA_URL。对于 Claude Desktop，请从 GitHub Releases 下载 .mcpb 文件，然后双击安装。</p>]]></content:encoded>
    <link>https://www.elastic.co/search-labs/blog/kibana-dashboard-builder-mcp-esql</link>
    <guid isPermaLink="true">https://www.elastic.co/search-labs/blog/kibana-dashboard-builder-mcp-esql</guid>
    <category><![CDATA[Kibana]]></category>
    <category><![CDATA[AI]]></category>
    <dc:creator><![CDATA[Stratoula Kalafateli]]></dc:creator>
    <enclosure url="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt2a69a35d6d51ff47/6a17e9a5b1e11339cd79f2b3/0d38385fd64c1445b2e955ba20532570f7f38679-1280x720.png" length="0" type="image/png"/>
    <pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate>
  </item>
  </channel>
</rss>