普罗米修斯MCP服务器
A生产级 模型上下文协议(MCP)服务器 对于Prometheus,使AI代理能够查询指标、分析警报和执行SRE操作。
特性
38 MCP工具 :完整的Prometheus API覆盖范围以及智能分析工具
SRE黄金信号 :用于错误率、延迟、吞吐量和饱和度的内置工具
智能分析 :异常检测、容量预测、度量相关性
PromQL助手 :查询验证、解释、建议和优化
警报管理器集成 :管理警报和静音
多个传输 :stdio(克劳德桌面)、HTTP/SSE(Kubernetes、AWS)
生产就绪 :重试、连接池、超时、TLS支持
Kubernetes原生 :Helm chart、Terraform模块、HPA、PDB
快速开始
安装
复制 pip install prometheus-mcp-server
使用Claude Desktop运行
添加到您的Claude Desktop配置(~/.config/claude/claude_desktop_config.json):
复制 {
"mcpServers": {
"prometheus": {
"command": "prometheus-mcp-server",
"args": ["--url", "http://localhost:9090"]
}
}
}
作为HTTP服务器运行
复制 # Run with HTTP transport for Kubernetes/AWS deployment
prometheus-mcp-server --transport http --port 8000
# With Prometheus URL
export PROMETHEUS_MCP_URL=http://prometheus:9090
prometheus-mcp-server --transport http
码头工人
复制 docker run -p 8000:8000 \
-e PROMETHEUS_MCP_URL=http://prometheus:9090 \
ghcr.io/bcfmtolgahan/prometheus-mcp-server:latest
可用工具(共38个)
核心查询工具(3)
工具
说明
prometheus_query
执行即时PromQL查询
prometheus_query_range
在一段时间内执行范围PromQL查询
prometheus_query_exemplars
用于跟踪相关性的查询示例
警报和规则工具(2)
工具
说明
prometheus_get_alerts
获取活动警报(触发/待定)
prometheus_get_rules
获取警报和记录规则
目标工具(2)
工具
说明
prometheus_get_targets
获取刮刮目标和健康状态
prometheus_get_target_metadata
获取目标指标的元数据
元数据工具(5)
工具
说明
prometheus_get_metric_names
列出所有度量名称
prometheus_get_label_names
获取所有标签名称
prometheus_get_label_values
获取特定标签的值
prometheus_get_metric_metadata
获取度量类型、帮助、单位
prometheus_find_series
查找时间序列匹配选择器
状态和健康工具(3)
工具
说明
prometheus_health_check
检查普罗米修斯的健康状况和准备情况
prometheus_get_status
获取服务器状态(配置、标志、运行时、TSDB)
prometheus_get_alertmanagers
获取已发现的Alertmanager实例
SRE黄金信号工具(6)
工具
说明
prometheus_get_error_rate
计算错误率百分比
prometheus_get_latency_percentiles
获取p50、p90、p99延迟
prometheus_get_throughput
计算每秒请求数
prometheus_get_saturation
获取CPU/内存/磁盘饱和
prometheus_calculate_sli
计算SLI并与SLO进行比较
prometheus_check_error_budget
检查错误预算消耗
分析工具(5)
工具
说明
prometheus_analyze_service
综合服务健康分析
prometheus_find_anomalies
统计异常检测
prometheus_compare_periods
比较时间段之间的指标
prometheus_capacity_forecast
预测未来的容量需求
prometheus_find_correlations
查找指标之间的相关性
PromQL帮助工具(4)
工具
说明
prometheus_validate_query
验证PromQL语法
prometheus_explain_query
解释查询的作用
prometheus_suggest_query
获取用例的查询建议
prometheus_optimize_query
获取查询优化提示
警报管理器工具(4)
工具
说明
alertmanager_get_alerts
从Alertmanager获取警报
alertmanager_get_silences
列出所有沉默
alertmanager_create_silence
创造新的沉默
alertmanager_delete_silence
删除现有静默
危险/管理工具(4)
工具
说明
prometheus_delete_series
删除时间序列数据
prometheus_clean_tombstones
从磁盘中清除已删除的数据
prometheus_create_snapshot
创建TSDB快照
prometheus_reload_config
重新加载Prometheus配置
备注 :默认情况下禁用危险工具。启用 --enable-dangerous-tools 旗帜。
配置
环境变量
复制 # Prometheus Connection
PROMETHEUS_MCP_URL=http://localhost:9090
# Transport
PROMETHEUS_MCP_TRANSPORT=stdio # stdio, http, sse
PROMETHEUS_MCP_HOST=0.0.0.0
PROMETHEUS_MCP_PORT=8000
# Authentication
PROMETHEUS_MCP_AUTH_TYPE=none # none, basic, bearer
PROMETHEUS_MCP_AUTH_USERNAME=admin
PROMETHEUS_MCP_AUTH_PASSWORD=secret
# Features
PROMETHEUS_MCP_ENABLE_DANGEROUS_TOOLS=false
# Logging
PROMETHEUS_MCP_LOG_LEVEL=INFO
PROMETHEUS_MCP_LOG_FORMAT=json
CLI选项
复制 prometheus-mcp-server --help
Options:
--url TEXT Prometheus server URL
--transport [stdio|http|sse] Transport type
--host TEXT Host for HTTP transport
--port INTEGER Port for HTTP transport
--enable-dangerous-tools Enable dangerous admin tools
--log-level TEXT Log level
Kubernetes部署
使用Helm
复制 helm install prometheus-mcp ./deploy/helm/prometheus-mcp-server \
--set prometheus.url=http://prometheus-server:9090 \
--set replicaCount=2
使用地形
复制 module "prometheus_mcp_server" {
source = "./modules/prometheus-mcp-server"
prometheus_url = "http://prometheus:9090"
namespace = "mcp-servers"
replica_count = 2
}
示例用法
使用克劳德桌面
问克劳德:
“目前正在发出哪些警报?”
“显示过去一小时的CPU使用情况”
“api网关服务的错误率是多少?”
“查找内存使用中的异常情况”
“计算我们结账服务的SLI”
编程式用法
复制 # Query current cluster health
result = await prometheus_query(query="up")
# Check error rate for a service
error_rate = await prometheus_get_error_rate(job="api-gateway", window="5m")
# Analyze service health
analysis = await prometheus_analyze_service(job="checkout-service")
# Get latency percentiles
latencies = await prometheus_get_latency_percentiles(job="api-gateway")
# Find anomalies
anomalies = await prometheus_find_anomalies(
query="rate(http_requests_total[5m])",
threshold_stddev=2.0
)
# Create a silence for maintenance
silence = await alertmanager_create_silence(
matchers="alertname=HighCPU,job=batch-processor",
duration="2h",
comment="Scheduled maintenance"
)
建筑
复制 ┌─────────────────────────────────────────────────────────┐
│ MCP Client │
│ (Claude Desktop, AI Agent) │
└────────────────────────┬────────────────────────────────┘
│ MCP Protocol (stdio/HTTP)
▼
┌─────────────────────────────────────────────────────────┐
│ Prometheus MCP Server │
│ ┌──────────────────────────────────────────────────┐ │
│ │ 38 MCP Tools │ │
│ │ • Query & Metadata • SRE Golden Signals │ │
│ │ • Alerts & Rules • Analysis Tools │ │
│ │ • PromQL Helpers • Alertmanager │ │
│ └──────────────────────┬───────────────────────────┘ │
│ │ │
│ ┌──────────────────────▼───────────────────────────┐ │
│ │ Prometheus Client │ │
│ │ • Connection pooling • Retry logic │ │
│ │ • Authentication • TLS support │ │
│ └──────────────────────┬───────────────────────────┘ │
└─────────────────────────┼───────────────────────────────┘
│ HTTP/HTTPS
▼
┌─────────────────────────────────────────────────────────┐
│ Prometheus / Alertmanager │
└─────────────────────────────────────────────────────────┘
发展
设置
复制 git clone https://github.com/bcfmtolgahan/prometheus-mcp-server.git
cd prometheus-mcp-server
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
运行测试
复制 pytest # All tests
pytest --cov # With coverage
pytest tests/unit/ # Unit tests only
pytest tests/integration/ # Integration tests
代码质量
复制 ruff check . # Linting
ruff format . # Formatting
mypy src/ # Type checking
贡献
欢迎投稿!请阅读我们的 贡献指南 .
克隆该仓库
创建要素分支(git checkout -b feature/amazing-feature)
提交您的更改(git commit -m 'Add amazing feature')
推到分支(git push origin feature/amazing-feature)
打开拉取请求
许可证
此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。
致谢