用描述代替手动绘制:通过 MCP 和 ES|QL 构建 AI 原生 Kibana 仪表板。

从提示词到仪表板了解如何使用 example-mcp-dashbuilder 通过自然语言构建 Kibana 仪表板:这是一款开源 MCP 应用,能够编写 ES|QL 查询、创建交互式图表,并将功能完整的仪表板直接导出到 Kibana。

example-mcp-dashbuilder 是一款开源 MCP 应用,可将简单英文提示词转换为实时、交互式 Kibana 仪表板,所有操作都在编辑器的聊天窗口中完成。描述您想要实现的仪表板,AI 会探查您的索引结构,为每个可视化内容编写正确的 ES|QL 聚合,并在运行过程中以内联方式渲染预览。完成后,只需一条命令即可导出功能完整的 Kibana 仪表板:真实的 Lens 可视化内容、精确的网格布局和自定义颜色都会保留下来。目前支持六种图表类型,完整的 Kibana Lens 图表集已列入路线图。

Kibana 仪表板构建器是什么?

想象一下:您只需用简单英文描述所需仪表板,就能看着它逐步呈现,并配有交互式图表、拖放式布局以及一键导出到 Kibana 的功能。

这正是 example-mcp-dashbuilder 的作用。它是一款开源 MCP(Model Context Protocol,模型上下文协议)应用,可将 AI 助手连接到 Elasticsearch,让您通过对话创建完整的 Kibana 仪表板。无需在菜单间反复点击。无需手动编写可视化配置。只需描述您的需求,AI 就会探查您的数据、编写 ES|QL 查询、构建图表,并在编辑器的聊天窗口中交付实时交互式仪表板。

从提示词到仪表板,仅需数秒

实际运行效果如下。您可以输入类似这样的内容:

“为我构建一个基于 logstash-* 的 Web 流量仪表板,包含总请求数、随时间变化的传输字节数、主要地理来源以及响应代码细分”

随后,AI 会:

  1. 探查您的数据:列出索引并检查字段映射。
  2. 编写 ES|QL 查询:根据您的架构量身定制,并使用正确的聚合。
  3. 创建可视化内容:条形图、折线图、带迷你图的指标图、热力图、饼图。
  4. 组织所有内容:可折叠分区、有意义的标题、合理的布局。
  5. 渲染交互式预览:直接显示在聊天中,并配有工具提示、时间选择器和拖放功能。

每个图表在创建时都会内联显示,因此您可以实时查看进度。随后,view_dashboard 会显示完整的仪表板,所有面板都会按照 Kibana 的 48 列网格完成布局。

单个图表的内联预览

由 ES|QL 提供支持

所有数据检索均使用 ES|QL,即 Elasticsearch 的管道式查询语言。AI 不只是传递原始查询,还会利用其对 ES|QL 语法的内置知识,并结合您的数据结构信息,为每种可视化类型编写正确且高效的查询。

该服务器包含一份全面的 ES|QL 参考文档,并将其作为 MCP 资源提供。在编写任何查询之前,AI 会先读取这份参考文档,以了解可用的命令、函数和模式。结合数据可视化最佳实践指南(同样作为资源提供),AI 不仅知道如何查询,还懂得什么样的可视化效果更好:

  • 针对时间序列使用 BUCKET(@timestamp, 1 day);始终按时间字段 SORT 排序。
  • 使用 | SORT value DESC | LIMIT 6 将饼图限制为最多六个扇区。
  • 类别比较选用条形图,趋势分析选用折线图,关键绩效指标 (KPI) 选用指标图。

AI 驱动的数据探索,支持开放式分析

在脑海中设计好一个仪表板并将其构建出来是一回事。询问“这个索引中有哪些值得关注的内容?”并获得有用答案则更难;这要求 AI 懂得如何探索数据,而不仅仅是绘制图表。

example-mcp-dashbuilder 提供了一个 analysis://guidelines 资源,用于定义结构化探索流程:剖析数据、运行有针对性的聚合、呈现值得调查的模式、为最值得关注的发现构建图表,并提出用户接下来可能需要的下钻查询。“分析我的日志”或“在这个索引中寻找模式”等触发短语,会促使 AI 在执行任何其他操作前先读取该操作手册。因此,开放式提示词生成的是逻辑连贯的分析过程,而不是一堆随机图表。

结果是:您可以将一个陌生索引交给 AI,并获得一个起点,包括一个仪表板,以及一组简短提示,例如“以下是我注意到的情况,需要我深入分析其中某一项吗?”

Kibana 仪表板的导出与导入:完整闭环

导出/导入闭环让 example-mcp-dashbuilder 对已经在 Kibana 中工作的团队真正显现价值。example-mcp-dashbuilder 是一个独立工具,也是位于编辑器内的对话式仪表板界面,但它不会让您的工作局限于此。在这里构建的仪表板可以在需要时导入 Kibana;现有 Kibana 仪表板也可以反向导入,以便进行 AI 辅助编辑。

导出到 Kibana

当您对仪表板满意后,只需一条命令即可导出:

将此仪表板导出到 Kibana

每个面板都会转换为 Kibana Lens 原生可视化内容。转换过程会保留:

  • ES|QL 查询:直接作为 Lens ES|QL 数据源传输。
  • 网格位置:沿用 Kibana 使用的 48 列系统,因此您的布局看起来完全一致。
  • 自定义颜色:系列调色板、指标背景、热力图色带。

最终生成的是一个功能完整的 Kibana 仪表板。不是屏幕截图。不是嵌入内容。而是一个真实的仪表板,您可以在 Kibana 中分享并继续编辑。

Kibana 仪表板与 Cursor 聊天中的仪表板并排显示。

从 Kibana 导入

该闭环同样支持反向操作:

“导入 ID 为 abc-123 的 Kibana 仪表板”

这会获取现有 Kibana 仪表板,将其 Lens 可视化内容转换回可编辑的图表配置,保留网格布局和分区,并将所有内容加载到 example-mcp-dashbuilder 中。之后,您可以使用自然语言修改该仪表板并重新导出。

这使得 AI 成为您现有 Kibana 工作流程中的协作者,而不是替代品。

自定义主题和颜色

想要品牌化仪表板?直接提出需求:

“创建一个粉色主题的仪表板,并使用自定义颜色”

所有可视化类型都支持自定义颜色配置:

  • 图表:palette 接受用于系列和扇区的十六进制颜色数组。
  • 指标:color 设置背景颜色。
  • 热力图:colorRamp 定义从低值到高值的颜色渐变。

AI 能自然理解主题请求。输入“海洋主题”,它会选择蓝色和蓝绿色。输入“匹配我们的品牌颜色”并提供十六进制值,这些颜色会在导出时一并带入 Kibana。

采用自定义颜色的主题仪表板。

example-mcp-dashbuilder 的工作原理:MCP 架构

example-mcp-dashbuilder 基于 MCP 构建;MCP 是用于连接 AI 助手与外部工具和数据的开放标准。以下是其高层级架构概览:

MCP 服务器提供 25 个可由 AI 直接调用的工具,涵盖从运行 ES|QL 查询到导出仪表板的各类操作。同时,它还提供少量仅供应用内部调用的工具,供内联预览用于获取数据、持久化布局更改和检测时间字段。它提供三类资源:数据可视化最佳实践指南、ES|QL 参考文档,以及会在遇到开放式提示词(如“分析我的日志”“这个索引中有哪些值得关注的内容?”)时触发的深度分析操作手册。它既可以通过 stdio 运行,也可以通过 HTTP 运行;HTTP 传输支持流式响应和会话管理,因此多个客户端可以连接到同一台服务器。

MCP App 是交互式预览界面。它使用 React、Elastic ChartsElastic UI 构建,并打包成一个独立且自包含的 HTML 文件。当 AI 调用 view_dashboard 或创建图表时,宿主程序会在沙盒化 iframe 中渲染此 HTML。该应用完全通过 MCP Apps 协议与服务器通信,并通过 postMessage 使用 callServerTool() 来获取数据、保存布局和检测时间字段。无需 localhost 服务器,无需配置端口,也没有外部网络依赖。

这意味着它可以与任何兼容 MCP 的客户端配合使用:Cursor、Claude Desktop、Claude.ai、VS Code with Copilot 等。

example-mcp-dashbuilder 支持哪些图表类型?

在撰写本文时,支持六种图表类型,涵盖了最常见的仪表板场景:

类型适用场景示例
条形图类别比较按地理来源划分的请求数
折线图随时间变化的趋势每小时传输的字节数
区域随时间变化的数据量随时间变化的请求量
饼图局部与整体的比例关系(最多六个扇区)响应代码分布
指标带迷你图的单一 KPI总请求数及每小时趋势
热力图跨两个维度的模式按星期几和小时划分的请求数

仪表板支持用于组织内容的可折叠分区、可自动检测时间字段的时间选择器,以及保存多个仪表板并在其间切换的功能;并行聊天会话通过贯穿每次工具调用的 dashboardId 保持相互隔离。

如何安装和运行 example-mcp-dashbuilder

example-mcp-dashbuilder 是开源项目,可直接使用。您需要 Node.js 22+、一个 Elasticsearch 实例(本地或 Elastic Cloud),以及一个兼容 MCP 的客户端。

Claude Desktop:GitHub Releases 下载最新 .mcpb 文件,然后双击安装。Claude Desktop 会提示您输入 Elasticsearch 凭据。

Cursor / Claude Code / VS Code Copilot:将您的 MCP 配置指向已发布的 tarball 压缩包;无需克隆,也无需 npm install

ES_NODE, ES_API_KEY(或 ES_USERNAME / ES_PASSWORD)和 KIBANA_URL 设置为环境变量。如果您更倾向于基于源代码运行,请克隆仓库并运行 npm run setup,以启动交互式向导;该向导可处理本地 Elasticsearch 和 Elastic Cloud(Cloud ID + API 密钥)。

然后开始构建:

“探索 logs 索引,并尽可能为我构建最具洞察力的仪表板”

剩下的交给 AI 即可。😉

路线图:example-mcp-dashbuilder 即将推出的功能

这是一个早期版本,我们正在积极开发中。我们专注的一些领域:

  • 更多图表类型:仪表图、环形图、树状图、数据表和标签云,以覆盖 Lens 的完整功能。
  • 将仪表板推送到 Git:将仪表板配置写入代码仓库,用于版本控制和代码审查工作流。
  • 更友好的错误处理体验:当 ES|QL 查询失败时提供更详细的反馈,并给出常见修复建议。
  • 更丰富的分析流程:扩展深度分析操作手册,以覆盖更多数据形态(日志、指标、链路追踪)。

我们很期待看到您用它构建出的成果。欢迎试用、提交 issue,并告诉我们哪些可视化内容和工作流对您的团队最有帮助。

GitHub:elastic/example-mcp-dashbuilder

致谢

感谢 Walter RafelsbergerTim Schnell 在实现方面作出的贡献。

常见问题解答

什么是 example-mcp-dashbuilder?example-mcp-dashbuilder 是一款开源 MCP (Model Context Protocol) 应用,用于将 AI 助手连接到 Elasticsearch。它让您可以用简单英文描述 Kibana 仪表板,并自动生成 ES|QL 查询、创建可视化内容,在编辑器的聊天窗口中交付实时交互式仪表板。

example-mcp-dashbuilder 使用哪种查询语言来检索数据?所有数据检索均使用 ES|QL,即 Elasticsearch 的管道式查询语言。MCP 服务器包含一份内置 ES|QL 参考文档,AI 在编写任何查询之前都会先阅读该参考文档,从而确保每种可视化类型都具备正确语法和高效聚合。

我可以将使用 example-mcp-dashbuilder 构建的仪表板导出到 Kibana 吗?可以。运行“将此仪表板导出到 Kibana”会将每个面板转换为真正的 Kibana Lens 可视化内容,并保留 ES|QL 查询、48 列网格布局、自定义颜色和系列调色板。最终呈现的是一个功能完整的 Kibana 仪表板,而不是屏幕截图或嵌入内容。

我可以将现有 Kibana 仪表板导入 example-mcp-dashbuilder,以便进行 AI 辅助编辑吗?可以。只需提供 Kibana 仪表板 ID,系统便会获取现有仪表板,将其 Lens 可视化内容转换为可编辑的图表配置,并加载到 example-mcp-dashbuilder 中。之后,您可以使用自然语言修改仪表板,并重新导出到 Kibana。

哪些 MCP 客户端与 example-mcp-dashbuilder 兼容?example-mcp-dashbuilder 可与任何兼容 MCP 的客户端配合使用,包括 Cursor、Claude Desktop、Claude.ai 和 VS Code with Copilot。它同时支持 stdio 和 HTTP 传输,无需 localhost 服务器或端口配置。

example-mcp-dashbuilder 支持哪些图表类型?当前版本支持六种图表类型:条形图、折线图、面积图、饼图、指标图(带迷你图)和热力图。计划新增仪表图、环形图、树状图、数据表和标签云,以覆盖 Kibana Lens 的完整功能。

运行 example-mcp-dashbuilder 需要什么?您需要 Node.js 22 或更高版本、一个 Elasticsearch 实例(本地或 Elastic Cloud),以及一个兼容 MCP 的客户端。设置环境变量 ES_NODE、ES_API_KEY(或 ES_USERNAME/ES_PASSWORD)和 KIBANA_URL。对于 Claude Desktop,请从 GitHub Releases 下载 .mcpb 文件,然后双击安装。

这些内容对您有多大帮助?

没有帮助

有点帮助

非常有帮助

相关内容

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

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

亲自试用