README
🚀 Alertmanager MCP Server (Go)
这是一个用于与 Prometheus Alertmanager 集成的 模型上下文协议 (MCP) 服务器。它是原生 Go 二进制文件,通过 client-go 实现了内置的 Kubernetes 连接功能。
🚀 快速开始
本项目提供了多种方式来安装和配置 Alertmanager MCP Server,你可以根据自己的需求选择合适的方式。
📦 安装指南
使用 npx 安装
npx -y mcp-alertmanager@latest
MCP 客户端配置
将以下内容添加到你的 MCP 客户端配置(如 VS Code、Cursor、Windsurf 等)中:
{
"mcpServers": {
"alertmanager": {
"command": "npx",
"args": ["-y", "mcp-alertmanager@latest"],
"env": {
"ALERTMANAGER_URL": "http://localhost:9093"
}
}
}
}
在 VS Code 中配置
code --add-mcp '{"name":"alertmanager","command":"npx","args":["-y","mcp-alertmanager@latest"],"env":{"ALERTMANAGER_URL":"http://localhost:9093"}}'
Kubernetes 自动连接
该服务器可以通过 K8S API 服务代理自动连接到在 OpenShift/Kubernetes 中运行的 Alertmanager。它使用 client-go 实现原生的 kubeconfig/集群内配置,无需使用 kubectl 或端口转发。
默认连接地址为:openshift-monitoring/alertmanager-operated:9093
{
"mcpServers": {
"alertmanager": {
"command": "npx",
"args": ["-y", "mcp-alertmanager@latest"]
}
}
}
二进制文件安装
你可以从 GitHub Releases 下载二进制文件,也可以从源代码进行构建:
make build
./mcp-alertmanager
📚 详细文档
配置
环境变量
| 变量 | 描述 |
|------|------|
| ALERTMANAGER_URL | 直接指定 Alertmanager API 的 URL(会覆盖 K8S 自动连接) |
CLI 标志
| 标志 | 描述 | 默认值 |
|------|------|---------|
| --url | 直接指定 Alertmanager 的 URL | - |
| --namespace | Kubernetes 命名空间 | openshift-monitoring |
| --service | Kubernetes 服务名称 | alertmanager-operated |
| --service-port | Kubernetes 服务端口 | 9093 |
| --service-scheme | 服务协议(http/https) | https |
| --kubeconfig | kubeconfig 文件的路径 | 自动检测 |
优先级:--url / ALERTMANAGER_URL > K8S 自动连接
连接策略:
- 直接使用 URL(如果设置了
--url或ALERTMANAGER_URL) - 使用 K8S API 代理(自动检测 kubeconfig 或集群内配置)
工具(共 12 个)
告警相关工具
| 工具 | 描述 |
|------|------|
| getAlerts | 获取告警信息,可使用可选过滤器 |
| getAlertGroups | 根据路由标签对告警进行分组 |
| getCriticalAlerts | 仅获取严重级别的告警 |
| getAlertingSummary | 告警状态总结:按严重程度统计数量、列出顶级告警、显示命名空间信息 |
静默相关工具
| 工具 | 描述 |
|------|------|
| getSilences | 按状态列出静默信息 |
| createSilence | 为某个告警创建静默规则 |
| deleteSilence | 根据 ID 删除静默规则 |
状态相关工具
| 工具 | 描述 |
|------|------|
| getAlertmanagerStatus | 获取服务器状态、版本和集群信息 |
| getReceivers | 列出通知接收者 |
故障排查工具
| 工具 | 描述 |
|------|------|
| investigateAlert | 深入调查某个特定告警 |
| getAlertHistory | 获取告警历史记录并提供分析指导 |
| correlateAlerts | 根据共享标签查找相关告警 |
示例提示
"What alerts are currently firing?"
"Are there any critical alerts?"
"Give me a summary of the alerting status"
"Investigate the HighMemoryUsage alert"
"Create a 2-hour silence for PodCrashLooping"
"What receivers are configured?"
"Find correlated alerts to identify the root cause"
"Show me alert history for KubeNodeNotReady"
开发
构建
make build # 为当前平台构建
make build-all-platforms # 跨平台编译
容器化构建
podman build -f Containerfile -t mcp-alertmanager .
Kubernetes / OpenShift 部署
容器镜像
容器镜像可在 GitHub Container Registry 上获取:
ghcr.io/jeanlopezxyz/mcp-alertmanager:latest
Helm 图表部署
使用包含的 Helm 图表进行部署:
# 添加图表仓库(或使用本地图表)
helm upgrade --install mcp-alertmanager ./charts/mcp-alertmanager \
--namespace mcp-servers \
--create-namespace \
--set openshift=true
Helm 值配置
| 参数 | 描述 | 默认值 |
|------|------|---------|
| image.registry | 容器镜像仓库 | ghcr.io |
| image.repository | 镜像仓库名称 | jeanlopezxyz/mcp-alertmanager |
| image.version | 镜像标签 | latest |
| openshift | 启用 OpenShift 路由 | false |
| service.port | 服务端口 | 8080 |
| alertmanager.namespace | Alertmanager 命名空间 | openshift-monitoring |
| alertmanager.service | Alertmanager 服务名称 | alertmanager-operated |
| rbac.useClusterReader | 使用集群读取角色 | true |
自定义 Alertmanager 示例
helm upgrade --install mcp-alertmanager ./charts/mcp-alertmanager \
--namespace mcp-servers \
--set openshift=true \
--set alertmanager.url=http://alertmanager.monitoring:9093
📄 许可证
本项目采用 MIT 许可证。
Scan to join WeChat group