Prometheus和Kubernetes MCP服务器

MCP服务器使AI助手能够通过自然语言与Prometheus、Alertmanager和Kubernetes交互。

  • by avinash221988
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 avinash221988/prometheus-mcp-server

使用说明

Prometheus和Kubernetes MCP服务器

使AI助手(Augment、GitHub Copilot)能够与之交互的MCP服务器 普罗米修斯, 告警管理器,以及 Kubernetes 使用自然语言。

📖 有关安装、配置和集成的详细信息,请参阅 docs/SETUP.md


MCP服务器

🔥 普罗米修斯MCP服务器(prometheus-mcp-server)

工具 说明
prometheus_query 执行任何PromQL查询
prometheus_health 检查Prometheus服务器运行状况
prometheus_cpu 所有实例的CPU使用率
prometheus_memory 所有实例的内存使用情况
prometheus_services 服务启动/关闭状态
alertmanager_get_alerts 列出活动/所有警报
alertmanager_silence 关闭警报(名称、持续时间、原因)
alertmanager_get_silences 列出所有沉默
alertmanager_delete_silence 通过ID终止沉默

资源: prometheus://alerts/firing · prometheus://metrics/{name} · prometheus://dashboard/overview


☸️ Kubernetes MCP服务器(k8s-mcp-server)

工具 描述 状态
k8s_get_pod_status 命名空间的Pod状态摘要 ✅ 工作
k8s_get_events 命名空间中最近发生的事件 ✅ 工作
k8s_get_pod_logs 吊舱尾部原木 ✅ 工作(如果容器从未启动,则失败)
k8s_scale_deployment 将部署扩展到N个副本 ✅ 工作
k8s_restart_deployment 推出重新启动部署 ✅ 工作
k8s_describe_pod 详细的吊舱描述 ⚠️ 已知错误——见下文

资源: k8s://pods · k8s://deployments · k8s://services · k8s://nodes · k8s://namespaces

⚠️ 已知问题-- k8s_describe_pod

失败与 'V1PodStatus' object has no attribute 'pod_ips' 当 pod.status.pod_ips 是 None (例如,Pod在获得IP之前就卡在了Pending/Failed中)。使用 k8s_get_events 和 k8s_get_pod_status 作为故障排除的有效替代方案。


交互示例

# Prometheus / Alertmanager
"What alerts are currently firing?"
"Silence the DiskSpaceHigh alert for 2 hours — planned maintenance"
"Run query rate(http_requests_total[5m])"

# Kubernetes
"Show pod status in namespace registry-adapter-stubbed-showcase"
"Get recent events for namespace argocd"
"Restart the registry-adapter deployment"
"Scale registry-adapter to 3 replicas"

快速开始

git clone https://github.com/avinash221988/prometheus-mcp-server.git
cd prometheus-mcp-server
pip install -e .

看 docs/SETUP.md 用于完整的配置和集成步骤。