Back to MCP directory
publicPublicdnsLocal runtime

mcp-alertmanager

这是一个用于Prometheus Alertmanager的MCP服务器,提供Go语言编写的原生二进制文件,支持Kubernetes自动连接,包含12个工具用于警报管理、静默操作和故障排查。

article

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 自动连接

连接策略

  1. 直接使用 URL(如果设置了 --urlALERTMANAGER_URL
  2. 使用 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 许可证。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client