Prometheus MCP Server
Prometheus模型上下文协议(MCP)服务器。
通过标准化的MCP接口提供对Prometheus指标和查询的访问,允许AI助手执行PromQL查询并分析您的指标数据。
功能
-
对Prometheus执行PromQL查询
-
发现和探索指标
- 列出可用指标
- 获取特定指标的元数据
- 查看即时查询结果
- 查看具有不同步长间隔的范围查询结果
-
支持身份验证
- 从环境变量获取基本认证
- 从环境变量获取令牌认证
-
支持Docker容器化
-
为AI助手提供交互式工具
工具列表是可配置的,因此您可以选择要向MCP客户端提供的工具。 如果不需要某些功能或不想占用太多上下文窗口,这很有用。
使用方法
-
确保您的Prometheus服务器可以从您将运行此MCP服务器的环境访问。
-
通过
.env文件或系统环境变量配置您的Prometheus服务器环境变量:
# 必填:Prometheus配置
PROMETHEUS_URL=http://your-prometheus-server:9090
# 可选:认证凭据(如果需要)
# 如果需要,选择以下认证方法之一:
# 对于基本认证
PROMETHEUS_USERNAME=your_username
PROMETHEUS_PASSWORD=your_password
# 对于令牌认证
PROMETHEUS_TOKEN=your_token
# 可选:对于Cortex、Mimir或Thanos等多租户设置
ORG_ID=your_organization_id
- 将服务器配置添加到您的客户端配置文件中。例如,对于Claude桌面版:
{
"mcpServers": {
"prometheus": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PROMETHEUS_URL",
"ghcr.io/pab1it0/prometheus-mcp-server:latest"
],
"env": {
"PROMETHEUS_URL": "<url>"
}
}
}
}
开发
欢迎贡献!如果您有任何建议或改进,请打开问题或提交拉取请求。
此项目使用uv管理依赖项。按照您的平台说明安装uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
然后您可以创建虚拟环境并使用以下命令安装依赖项:
uv venv
source .venv/bin/activate # 在Unix/macOS上
.venv\Scripts\activate # 在Windows上
uv pip install -e .
项目结构
项目已使用src目录结构组织:
prometheus-mcp-server/
├── src/
│ └── prometheus_mcp_server/
│ ├── __init__.py # 包初始化
│ ├── server.py # MCP服务器实现
│ ├── main.py # 主应用逻辑
├── Dockerfile # Docker配置
├── docker-compose.yml # Docker Compose配置
├── .dockerignore # Docker忽略文件
├── pyproject.toml # 项目配置
└── README.md # 此文件
测试
项目包含一个全面的测试套件,确保功能并帮助防止回归。
使用pytest运行测试:
# 安装开发依赖
uv pip install -e ".[dev]"
# 运行测试
pytest
# 运行带覆盖率报告
pytest --cov=src --cov-report=term-missing
测试按以下类别组织:
- 配置验证测试
- 服务器功能测试
- 错误处理测试
- 主应用测试
添加新功能时,请同时添加相应的测试。
工具
| 工具 | 类别 | 描述 |
|---|---|---|
execute_query | 查询 | 对Prometheus执行PromQL即时查询 |
execute_range_query | 查询 | 执行带开始时间、结束时间和步长间隔的PromQL范围查询 |
list_metrics | 发现 | 列出Prometheus中所有可用的指标 |
get_metric_metadata | 发现 | 获取特定指标的元数据 |
get_targets | 发现 | 获取有关所有抓取目标的信息 |
许可证
MIT