关于 Prometheus Alertmanager MCP Server
这是一款用 TypeScript 编写的 MCP 服务,可连接 Claude 等 MCP 客户端与 Prometheus Alertmanager。它通过 Alertmanager HTTP API 提供告警查询、分组和静默管理。
主要功能
- 01检索并筛选告警
- 02按指纹查看告警详情
- 03创建、列出和删除静默
- 04获取 Alertmanager 告警组
适用场景
- 01通过 MCP 客户端查看活动告警
- 02查找符合筛选条件的告警
- 03检查特定告警的详情
- 04维护期间抑制通知
MCP 相关
它将 Alertmanager 的告警和静默操作作为 MCP 工具提供,通过 Alertmanager HTTP API v2 通信,并使用 stdio 运行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| active | boolean | 否 | 包含活跃告警(默认:true) |
| filter | string | 否 | 筛选查询(例如 alertname=~'.*CPU.*') |
| silenced | boolean | 否 | 包含已静默的告警 |
| inhibited | boolean | 否 | 包含受抑制的告警 |
详细介绍
Prometheus Alertmanager MCP 服务
本项目实现了一个 Model Context Protocol (MCP) 服务,可与 Prometheus Alertmanager 集成。它在 Claude AI 和 Alertmanager 之间充当桥梁,使 Claude 能够通过标准化接口与告警交互并进行管理。
核心功能
-
告警获取:从 Alertmanager 获取并格式化当前告警,并支持可选筛选。
-
告警详情:根据告警指纹,提供特定告警的详细信息。
-
静默管理:提供用于创建、列出和删除静默的工具,以抑制特定告警的通知。
-
告警分组:获取由 Alertmanager 整理的告警组。
技术实现
- 使用 TypeScript 和 MCP SDK 构建
- 与 Alertmanager 的 HTTP API(v2) 通信
- 以基于 stdio 的进程运行,兼容 Claude 桌面版
- 实现完善的错误处理和超时管理
- 为告警和静默数据提供强类型接口
安装
前提条件
- 可访问正在运行的 Prometheus Alertmanager 实例
- 使用 Claude 桌面版时:系统已安装 Node.js(v18 或更高版本)
设置
该软件包已发布到 npm,可直接使用 npx:
npx alertmanager-mcp
全局安装:
npm install -g alertmanager-mcp
alertmanager-mcp
在 Claude 桌面版中使用
- 编辑配置文件,将 Claude 桌面版配置为使用 MCP 服务:
{
"mcpServers": {
"alertmanager": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--network=host",
"-e", "ALERTMANAGER_URL=http://your-alertmanager-url:9093",
"ghcr.io/kaznak/alertmanager-mcp:latest"
],
"env": {}
}
}
}
-
重启 Claude 桌面版以加载新配置。
-
现在,你可以使用自然语言让 Claude 与 Alertmanager 交互:
- “显示当前告警”
- “筛选与 CPU 问题相关的告警”
- “获取此告警的详细信息”
- “为此告警创建静默,持续 2 小时”
可用工具
get-alerts
获取告警列表,并支持可选筛选。
参数:
filter:(可选)筛选查询(例如,alertname=~'.*CPU.*')silenced:(可选)包含已静默的告警inhibited:(可选)包含已抑制的告警active:(可选)包含活动告警(默认:true)
get-alert-details
获取特定告警的详细信息。
参数:
fingerprint:告警指纹
create-silence
为符合指定条件的告警创建静默。
参数:
matchers:告警匹配器列表startsAt:(可选)静默开始时间(ISO8601 格式,默认为当前时间)endsAt:静默结束时间(ISO8601 格式)createdBy:创建静默的用户名comment:静默的原因或说明
get-silences
获取静默列表,并支持可选筛选。
参数:
filter:(可选)筛选查询(例如,createdBy=~'.*admin.*')
delete-silence
根据 ID 删除静默。
参数:
silenceId:要删除的静默 ID
get-alert-groups
获取告警组,并支持可选筛选。
参数:
active:(可选)包含活动告警(默认:true)silenced:(可选)包含已静默的告警inhibited:(可选)包含已抑制的告警
扩展服务
此 MCP 服务可扩展其他功能,例如:
- 告警趋势分析
- 自动响应建议
- 与事件管理系统集成
- 针对特定告警类型的自定义仪表板
资源
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。