作者:来自 Elastic David Elgut, Graham Hudgins 及 Jesse Miller
Elastic 是第一个在 AI Conversations 中提供交互式 UI 的安全厂商,该 UI 基于 Anthropic 和 OpenAI 共同制定的 MCP App 标准构建。它还与另外两个用于 Observability 和 Search 的 Elastic MCP Apps 一起发布。
Elasticsearch与行业领先的 Gen AI 工具和提供商有原生集成。查看我们的网络研讨会,了解如何超越 RAG 基础,或者如何使用 Elastic 向量数据库构建可用于生产的应用。
为了为你的使用场景构建最佳搜索解决方案,现在就开始免费云试用,或者在你的本地机器上尝试 Elastic。
AI 代理的质量取决于它们返回的界面。仅有文本的工具结果会将本来具有视觉或交互性的内容扁平化:仪表板、告警列表、调查图、分布式追踪。对话变成了一个你提问、代理回答的地方,但一旦工作变得复杂,你就需要跳转到另一个标签页、另一个产品、另一个认证边界。
MCP Apps 改变了这种回答的形态。工具现在可以在返回文本摘要的同时返回一个交互式 UI,而宿主( Claude Desktop、 Claude.ai、 VS Code Copilot、 Cursor )会将其直接渲染在对话中。模型保留紧凑的文本用于推理,人类则可以在聊天旁边获得一个可点击的实时界面。
有三个特性使这成为一种不同于“返回 URL 的 webhook”的集成方式:
- 上下文保留。UI 存在于对话内部,无需切换标签页,无需交接。
- 双向数据流。UI 可以调用 MCP 服务器上的工具获取新数据,宿主也可以将代理的新结果推送回 UI。无需单独的 API 层或认证流程。
- 沙箱化的信任边界。MCP Apps 在由宿主控制的 iframe 中运行。它们无法访问父页面、读取 cookies 或逃逸其容器。
安全运营依赖于分诊、调查图和 Attack Discovery,在这些场景中,AI 代理会将数百条告警关联为少量攻击链。可观测性意味着分布式追踪和时间序列下钻分析。在 Kibana 中构建意味着一个仪表板网格。将这些内容扁平化为文本,你就失去了它们的价值所在。我们为这三种场景都构建了 MCP Apps,并将它们一同开源,这样同一个对话可以在分诊队列、依赖关系图和实时仪表板之间切换,而无需离开聊天。
这三个参考应用中的每一个都是一个 MCP 服务器,提供多个交互视图,而不是一组独立产品。仅安全应用就提供了六个仪表板,它们共享相同的服务器外壳、相同的工具可见性模型以及相同的宿主桥接。模式很小,但真正产生价值的是其表面所覆盖的范围。
Elastic Security MCP App
为什么它对 SOC 很重要
当一个代理告诉 SOC 分析师:“There are 47 alerts on host-314, here's a summary,”,它其实什么工作都没做。它只是指出了工作开始的地方。真正的工作存在于告警列表、进程树、调查图和案件文件中。你无法通过一段文本完成这些工作。
安全 MCP App 返回的是整个工作流本身。分析师向代理发出提示,代理会在聊天中返回一个交互式仪表板,分析师可以在其中深入分析告警、执行威胁狩猎、关联攻击链并创建案件,整个过程中都不会丢失对话上下文。而且由于所有发现、查询和案件都会回写到 Elasticsearch,同一个调查也会在 Kibana 中保留,在对话结束后分析师可以继续处理。
六个交互式仪表板
Elastic Security MCP App 提供六个交互式元素,每个对应一个主要的 SOC 工作流。每一个都是一个 React UI,当代理调用相应工具时会以内联方式渲染:
| 工具 | 功能 | 交互式 UI |
|---|---|---|
| 告警分诊 | 获取、过滤并分类安全告警 | 严重性分组、AI 判定卡片、进程树、网络事件 |
| 攻击发现 | 基于 AI 的攻击链关联分析,并按需生成 | 带置信度评分的攻击叙述卡片、实体风险、MITRE 映射 |
| 案件管理 | 创建、搜索并管理调查案件 | 包含告警、可观测对象、评论标签页的案件列表、AI 操作 |
| 检测规则 | 浏览、调优并管理检测规则 | 带 KQL 搜索的规则浏览器、查询验证、噪声规则分析 |
| 威胁狩猎 | 带实体调查的 ES | QL 工作台 |
| 示例数据 | 为常见攻击场景生成 ECS 安全事件 | 包含四个预构建攻击链的场景选择器 |
每个工具都会返回一段紧凑的文本摘要,供模型进行推理,同时还会提供分析师可以直接操作的交互式 UI。该 UI 也可以通过 MCP 宿主桥接在后台获取最新数据。完整的工具模型与 bridge API 都在仓库的架构文档中。
该应用还附带 Claude Desktop skills,即 SKILL.md 文件,用于教导代理何时以及如何使用每个工具。你可以从最新的 release 中下载预构建的 skill 压缩包。
从告警到案件
四个 skills 覆盖了 SOC 的核心循环。每一个都会接收一个提示,调用一个工具,并在返回模型用于推理的文本摘要的同时,提供一个交互式仪表板。分析师的一天通常从告警队列开始。
告警分诊。可以让代理按主机、规则、用户或时间窗口进行分诊。可以让代理按主机、规则、用户或时间窗口进行分诊。Alert Triage skill 会返回一个 AI 判定仪表板,位于原始告警列表之上,每条检测规则都会对应一个判定结果,将该规则的活动分类为良性、可疑或恶意,并附带置信度评分和推荐操作。点击任意告警即可打开详细视图,其中包含进程树、网络事件、相关告警以及 MITRE ATT&CK 标签。无需在 AI 对话和 Kibana 告警仪表板之间切换上下文,所有内容都在你的对话中实时发生。
威胁狩猎。可以让代理在你的索引中进行威胁狩猎。Threat Hunt skill 会返回一个 ES|QL 工作台,其中查询已预先填充并自动执行,结果中的每个实体都可以点击并进入下钻分析。模型会在表格下方生成一段简短解读:哪些是异常的、哪些是有关联的、哪些值得进一步关注。随后它会提供下一步分支选择:要么继续深入当前威胁狩猎,要么在 MCP App 中启动另一个与当前工作互补的 skill。
一个非常契合的方式是启动 Attack Discovery,用来为你已经深入分析的告警以及已经狩猎的威胁收集更多上下文。
运行攻击发现。Attack Discovery skill 会触发 Attack Discovery API,并返回一个按优先级排序的发现列表。每个发现都是一组相关告警,被拼接成一条攻击链,并在前端展示 MITRE 战术、风险评分、置信度标签,以及受影响的主机和用户。
代理生成的摘要会按照相同的排序顺序显示在发现列表下方。此时,对话中已经包含了所有可以采取行动所需的信息:威胁狩猎查询、分诊决策、关联攻击链,这些都已被组织好,进入下一步处理阶段。
无需离开聊天即可打开案件。可以批量批准发现结果,或让代理为特定告警创建案件。Case Management skill 会为每个已批准的发现创建一个案件(附带源告警,并继承攻击链中的 MITRE 战术),并在对话中内联渲染实时案件列表。
点击任意案件可进入详情视图,其中包含一组 AI 操作按钮:总结案件、建议下一步行动、提取 IOCs、生成时间线。每个操作都会将结构化提示重新注入对话,使代理无需重新说明上下文即可继续处理该案件。
代理的摘要会显示在案件列表下方,覆盖整个事件响应(IR)队列,包括刚刚创建的案件以及仍待处理的早期发现结果。
本演示流程中的每一步都运行同一个循环:输入一个提示,skill 接收它,工具返回一段紧凑的文本摘要供模型推理,同时提供一个分析师可以操作的交互式 UI。将这些 skills 串联起来,它们就组成了一个端到端的 SOC 流程——威胁狩猎、告警分诊、关联分析、创建案件,并驱动下一步决策,所有过程都由模型在各个步骤之间持续携带会话上下文。
即使单独调用其中任意一个,它也仍然是完整的仪表板,只是指向你指定的数据子集。无论哪种方式,所有工作都会累积在对话中完成;无需切换标签页、无需复制粘贴、无需人工交接。
还有两个 skills 进一步完善了整个应用:一个用于检测规则浏览与调优,以减少噪声规则;另一个用于示例数据生成,可以在新集群上快速生成符合 ECS 标准的真实攻击事件。
后续文章将深入讲解全部六个能力:调查图谱、攻击流画布,以及端到端的完整演示流程。
“Elastic Security 的 MCP App 弥合了自动化检测与人工威胁狩猎之间的鸿沟。通过将我们的安全数据直接带入 Claude Desktop 中的统一界面,我们在不到一小时内就发现了‘静默’威胁——这些风险没有触发标准告警,但仍需要立即采取行动。它是我们分析师的一个能力倍增器。”
Mandy Andress:Elastic 首席信息安全官(CISO)。
工作原理
每个 MCP App 都是一个小型 Node.js 服务器,其工具会同时返回两部分内容:供模型推理使用的紧凑文本摘要,以及由宿主在内联渲染的 React UI。由于它基于开放的 MCP App 规范构建,同一个服务器可以在任何兼容的宿主环境中运行 —— 完整设计见仓库的架构文档。
试用方法
需要启用 Security 的 Elasticsearch 9.x,以及用于案件、规则和 Attack Discovery 的 Kibana。最快路径是使用最新 release 中的一键式 .mcpb bundle——在 Claude Desktop 中双击即可运行,然后系统会提示你输入 Elasticsearch URL 和 API key。Cursor、VS Code、Claude Code、Claude.ai 的配置指南,以及从源码构建的方法,都可以在仓库中找到。
Elastic Search MCP App:从对话中构建仪表板
每个 Kibana 用户都熟悉仪表板的 “绕路流程”:离开当前工作内容,打开 Kibana,选择索引、选择字段、选择可视化类型、调整配置、保存。在看到第一张图表之前,需要经历五次上下文切换。
新的 example-mcp-dashbuilder 参考应用将这一过程压缩为一个提示。只需让代理 “帮我构建一个仪表板,包含收入指标、订单趋势和品类分布”,仪表板就会直接在对话中生成,无需任何标签页切换。
在这个提示的背后,代理通过 ES|QL 探索你的 Elasticsearch 数据,并根据数据类型选择合适的图表:用柱状图表示对比关系,用折线图表示趋势,用指标卡展示 KPI,用热力图展示二维模式。
它会基于 Elastic UI Borealis 主题,在 Kibana 的 48 列网格布局上排列各个面板。最终结果是完全可交互的:你可以在聊天中直接拖拽、调整大小,并将面板分组为可折叠区域。
当仪表板达到理想状态后,只需一次工具调用即可将其导出到 Kibana,同时保留 ES|QL 查询和自定义配色。你也可以将已有的 Kibana 仪表板导入到对话中,进行 AI 辅助编辑。
其核心原则与 Security App 相同:当“产物”本身就是产品时,把它直接返回到对话中,就能打通“描述需求”与“看到结果”之间的闭环。
在底层,它遵循相同的 MCP App 模式。一个 Node.js 服务器注册了一个面向模型的 view_dashboard 工具,同时提供一组仅供 UI 使用的 app 内部工具(数据获取、布局持久化、时间字段检测、导入导出)。仪表板视图本身是一个独立的 HTML 文件,通过 vite-plugin-singlefile 打包,并作为 MCP App 资源提供服务。
分支该仓库的开发者可以复用 Security App 中相同的服务器骨架与宿主桥接,只是将其指向不同的工作场景。example-mcp-dashbuilder 的 README 中提供了完整架构和图表类型参考。
Elastic Observability MCP App
第三个参考应用 Elastic Observability MCP App 解决的是同一种“形态问题”的 SRE 版本。当生产环境出现故障时,值班工程师真正需要的答案不是一张图表,而是一个由 K8s 指标、APM 拓扑、机器学习异常检测和风险评估拼接而成的诊断结果。
答案的形态是一个因果故事:哪里出了问题、为什么出问题、有哪些依赖受到影响,以及接下来该怎么做。
支持可观测性调查工作流的六个工具
| 工具 | 依赖 | 功能 |
|---|---|---|
| observe | 通用 | 通用 ES |
| manage-alerts | 通用 | 创建、列出、获取和删除 Kibana 自定义阈值告警规则;省略 Kibana URL 时为只读模式 |
| ml-anomalies | ML 作业 | 查询 ML 异常记录,并打开内联异常解释视图 |
| apm-health-summary | Elastic APM | APM 监控的集群级健康汇总;在可用时叠加 K8s 和 ML 上下文 |
| apm-service-dependencies | Elastic APM | 服务依赖图谱——上游/下游关系、协议、调用量 |
| k8s-blast-radius | Kubernetes 指标 | 节点故障影响分析——完全故障、性能下降、不受影响、以及重调度可行性 |
集群健康汇总
当你询问 “哪里出问题了?” 或 “给我一份状态报告” 时,会得到一次性的全局概览:整体健康状态徽标、存在问题的服务及其原因、内存占用最高的 Pod、异常严重程度分布以及服务吞吐量——全部集中在一个内联视图中。
这是当系统出现异常但尚不清楚从哪里入手时的起点。该视图会根据你的部署能力动态调整:APM 提供服务健康状态,Kubernetes 指标补充 Pod 与节点上下文,ML 作业则叠加异常检测结果。
服务依赖图
当你询问 “什么调用了 checkout?”或 “展示拓扑结构” 时,会得到一个分层的依赖图谱——包括上游调用方、下游依赖关系、协议、调用量以及每条边的延迟情况。
让我们让 Claude 来执行:“展示 frontend 的服务依赖关系”:
支持缩放、平移和悬停操作,以获取理解复杂服务关系所需的全部细节:
通过影响范围评估风险
当你询问“如果我的 k8s 节点宕机会发生什么?”时,会得到一个放射状影响图:目标节点位于中心位置,完全中断的部署以红色标识,性能下降的以琥珀色标识,未受影响的以灰色标识。
一个浮动摘要卡片会显示处于风险中的 Pod 以及重新调度的可行性。单副本部署会被标记为单点故障。
观察
Elastic 的主要访问原语——一个工具,三种模式,分别对应三类不同需求。
- 当你说 “CPU 现在在做什么?” 它会执行一次 ES|QL 查询并返回一个表格。
- 当你说 “展示 frontend 的延迟,持续 60 秒”,它会对指标进行实时采样,并在原地更新图表。
- 当你说 “当内存低于 80MB 时提醒我” 或 “监控接下来 10 分钟是否有异常”,它会阻塞直到条件触发或时间窗口结束。
视图会根据模式自适应变化:
- 一次性查询返回结果表格;
- 采样与阈值条件返回带当前值、峰值与基线统计的实时趋势图;
- 异常模式返回带严重性评分的触发卡片。
工作原理
与 Security 和 Search 应用相同的 MCP App 模式:一个 Node.js 服务器,六个面向模型的工具分别对应六个单文件视图资源。
工具按部署后端分组(通用、依赖 APM、依赖 K8s、依赖 ML),因此代理与用户可以在调用前就明确某个部署支持哪些能力,而不是在调用失败时才发现能力缺失。
该 MCP App 还包含一个示例 Agent Builder 工作流:k8s-crashloop-investigation-otel,可以在 Kubernetes 告警触发时执行,并在打开任何仪表板之前返回结构化根因分析摘要。
Agent 技术栈:交互化
关于这种模式,有三点值得直接说明。第一,工具的返回结果不再是工作的终点,而是起点:对话返回的是一个你可以直接操作的界面,而不是一个需要你再去处理的摘要。第二,同一个代理、同一个模型上下文以及同一条对话线程,现在可以在 Security、Search 和 Observability 这些不同领域之间流转,而无需离开对话本身。第三,这一切之所以成立,是因为 Elasticsearch 和 Kibana 本身已经暴露了这些 API。MCP App 只是覆盖在现有产品能力之上的一层轻量交互界面。
Attack Discovery 已经驱动了该应用中的关联发现视图。在整个技术栈内部,同样的代理模式进一步扩展:Elastic Workflows 负责自动化确定性步骤(例如实体丰富、创建案件、隔离主机),而 Agent Builder 则负责对数据进行推理并将这些工作流作为工具调用。MCP App 将同样的安全能力带入外部对话,而 Workflows 和 Agent Builder 则在系统内部深化这一能力。入口不同,但底层仍然是同一套 Elastic API。
试用方式:
- Security:example-mcp-app-security
- Search 与 dashboards:example-mcp-dashbuilder
- Observability:example-mcp-observability
还没有 Elasticsearch 集群?可以开始免费 Elastic Cloud 试用。关于 security app 背后的构建模块,可以参考 Elastic Security Labs 上关于 Elastic Workflows 与 Agent Builder、Agent Skills 以及 Attack Discovery 的相关文章。