字数 2038,阅读大约需 11 分钟
把 Elastic 的 SOC / SRE / 仪表盘工作流,以可交互界面的形式直接搬进 Claude 对话里。本文带你从零跑通第一个 app。
MCP App 是在 Model Context Protocol 基础上的扩展:工具服务器不只返回文本,还能返回一段可交互的 HTML 界面,直接渲染在 AI 对话里。你让 Claude 调用一个工具,回来的不是一段文字,而是一块能点、能拖、能下钻的面板。
Elastic 目前开源了三个 example app:
App | 仓库 | 解决什么 | 安装难度 |
|---|---|---|---|
Observability | elastic/example-mcp-app-observability | SRE 排障:服务健康、依赖图、ML 异常、K8s 影响面 | ⭐ 一键 .mcpb |
Security | elastic/example-mcp-app-security | SOC 工作流:告警三角、Attack Discovery、Case、检测规则、Threat Hunt | ⭐ 一键 .mcpb |
Dashbuilder | elastic/example-mcp-dashbuilder | 用自然语言生成 Kibana 仪表盘并导出 | ⭐ 一键 .mcpb |
本文以 Observability app + Claude Desktop 为主线走一遍完整流程(最省事),最后再补上另外两个。
你需要:
.mcpb 一键安装只在 Desktop 上有;它自带 Node 运行时,所以走这条路你不用单独装 Node。manage-alerts)、Cases、Attack Discovery 这些功能时才需要。安装过程中会让你填两样东西:Elasticsearch URL 和 API key。提前备好。
登录 Elastic Cloud 控制台,进入你的 Deployment,直接复制 Elasticsearch endpoint(形如 https://<deployment>.es.<region>.<csp>.elastic-cloud.com)。不要手敲域名拼,复制最稳。
在 Kibana 里:Stack Management → Security → API keys → Create API key。
建议给最小权限,不要图省事直接用超级用户。Security 仓库里有一份「最小权限」文档(见仓库 PR #18 / docs),列出了 app 实际会读哪些索引;Observability app 则需要对你的 APM/指标索引有读权限,若用告警还需 Kibana Alerting 的相应权限。按各自仓库的权限说明配。
如果要用告警/Case/Attack Discovery,把 Kibana 的访问地址也备上。不填 Kibana,Observability 的告警工具会以只读方式运行。
.mcpb)1. 下载安装包:
https://github.com/elastic/example-mcp-app-observability/releases/latest/download/example-mcp-app-observability.mcpb2. 双击 下载到的 .mcpb 文件。Claude Desktop 会弹出安装对话框。


到这里,工具已经装上了。但还差一步——技能(Skills)。
.mcpb 只带了"工具本身",没带教 Claude"什么时候、怎么调用这些工具"的技能。技能要单独上传。
observe.zip、manage-alerts.zip、ml-anomalies.zip、apm-health-summary.zip、apm-service-dependencies.zip、k8s-blast-radius.zip
直接在 Claude 对话里用大白话提问,技能会引导 Claude 选对工具。几个可以照抄的起手 prompt:
先看整体健康(最适合第一条)
"看一下我集群现在的整体健康状况。"

查依赖关系
"frontend 这个服务依赖哪些下游?调用量和延迟怎么样?"

找异常(需要先配过 ML job)
"过去一小时有什么异常?"
评估 K8s 节点下线影响(需要 kubeletstats 指标)
"如果某个节点下线,会影响哪些服务?"
临时跑个查询 / 盯一个指标(不挑数据格式)
"把过去 30 分钟 checkout 服务的 p99 延迟拉一个实时图。"

如果界面是空的、或提示查不到数据,先别怀疑装错了——大概率是数据格式问题,看下一节。
⚠️ 这是最常见的"以为装坏了"的坑。 这些 app 的界面分两类:
一类是"专用视图"——服务依赖图、进程树、攻击链、K8s 影响面这些。它们写死了索引模式和字段名,因为这种丰富的可视化本来就建立在"假设了一套已知 schema"之上(进程树要有进程父子字段才画得出来)。你的数据不在它假设的格式里,查询返回空,界面就是白板。 这不是 bug。
Observability app 走的是"在几套已知 schema 之间回退":优先查 OTel-native 数据,没有再退到经典 APM,再退到 ECS。所以它对 OpenTelemetry 数据支持最好;纯自定义格式的日志驱动不了 apm-* 和 k8s-blast-radius 这几个工具。
Security app 是三个里最依赖固定 schema 的——它本质是 Elastic Security 解决方案的另一套 UI,需要检测告警、ECS 字段、规则和 Case。空集群上想演示,用它自带的样例数据生成工具先造一批 ECS 安全事件。
另一类是"通用视图"——Observability 的 observe、manage-alerts,以及整个 Dashbuilder。它们运行时先探你的索引和字段,再现写 ES|QL,不挑数据格式,你的数据长什么样都能跑。
一句话总结:界面越"专用好看",对数据格式要求越死;越"通用灵活",越不挑数据。 装之前先想清楚你的集群里有没有对应的数据。
.mcpb)和 Observability 流程一样:去 Security release 页 下载 .mcpb,双击安装,填 ES URL / API key(多数功能还要 Kibana URL),再按需上传它的技能。没真实告警数据时,用它的样例生成器铺数据。
该仓库现已提供一键安装包,无需手动拉取源码、安装依赖:
.mcpb 一键包:
https://github.com/elastic/example-mcp-dashbuilder/releases/download/v1.0.0/example-mcp-dashbuilder.mcpb直接在 MCP 配置文件中指向官方发布包,无需 git clone / npm install:
{
"mcpServers": {
"example-mcp-dashbuilder": {
"type": "stdio",
"command": "npx",
"args": [
"https://github.com/elastic/example-mcp-dashbuilder/releases/latest/download/example-mcp-dashbuilder.tgz"
]
}
}
}ES_NODE、ES_API_KEY(或 ES_USERNAME/ES_PASSWORD)、KIBANA_URLnpm run setup 向导配置重启 Desktop 即连。它不挑数据格式,连任何有数据的集群都能用,试一句:
"探索一下我的索引,给我建一个尽可能有洞察的仪表盘。"
现象 | 可能原因 |
|---|---|
界面空白 / 提示无数据 | 集群里没有对应格式的数据,见第 7 节;或 API key 缺对应索引的读权限 |
双击 .mcpb 没反应 | 没装 Claude Desktop,或不是用 Desktop 打开 |
工具装了但 Claude 不主动用 | 技能(Skills)没上传,见第 5 节 |
告警 / Case / Attack Discovery 不可用 | 没填 Kibana URL,或 key 缺 Kibana 权限 |
升级后行为没变 | 技能要重新上传,光重启不刷新 |
下载 .mcpb / zip 失败 | 检查到 GitHub releases 的网络访问 |
github.com/elastic/example-mcp-app-observabilitygithub.com/elastic/example-mcp-app-securitygithub.com/elastic/example-mcp-dashbuilderelastic.co/search-labs/blog/mcp-apps-elastic
releases/latest链接会自动指向最新版;具体版本号和资产名以 release 页面实际显示为准。