README
🚀 Prometheus MCP 服务器
Prometheus MCP 服务器是一个专为 Prometheus 打造的 Model Context Protocol (MCP) 服务器。它借助标准化的 MCP 接口,为您提供对 Prometheus 指标和查询的访问能力,允许 AI 助手执行 PromQL 查询并深入分析指标数据。
🚀 快速开始
- 确保您的 Prometheus 服务器可以从运行此 MCP 服务器的环境中访问。
- 配置环境变量以获取 Prometheus 服务器信息,无论是通过
.env文件还是系统环境变量:
# 必须:Prometheus 配置
PROMETHEUS_URL=http://your-prometheus-server:9090
# 可选:身份验证凭证(如果需要)
# 根据需要选择以下一种身份验证方法:
# 对于基本认证
BASIC_AUTH_USERNAME=your_username
BASIC_AUTH_PASSWORD=your_password
# 对于bearer token 认证
BEARER_TOKEN=your_bearer_token
# 其他可选配置
ScrapeInterval=60 # 间隔(以秒为单位)
ScrapeTimeout=10 # scrape超时时间(以秒为单位)
- 安装并运行服务器:
uv install
uv run
✨ 主要特性
- 执行 PromQL 查询:可将 PromQL 查询发送至 Prometheus。
- 指标发现与探索:
- 列出可用指标。
- 获取特定指标的元数据。
- 查看即时查询结果。
- 查看范围查询结果以及不同的步长间隔。
- 身份验证支持:
- 支持从环境变量使用基本认证。
- 支持从环境变量使用 bearer token 认证。
- Docker 容器化:支持以 Docker 容器的形式运行。
- 交互式工具:为 AI 助手提供交互式工具,且工具列表可配置,您能按需选择提供给 MCP 客户端的工具,在不使用某些功能或不想占用过多上下文窗口时十分实用。
📦 安装指南
配置环境变量
配置环境变量以获取 Prometheus 服务器信息,可通过 .env 文件或系统环境变量进行配置:
# 必须:Prometheus 配置
PROMETHEUS_URL=http://your-prometheus-server:9090
# 可选:身份验证凭证(如果需要)
# 根据需要选择以下一种身份验证方法:
# 对于基本认证
BASIC_AUTH_USERNAME=your_username
BASIC_AUTH_PASSWORD=your_password
# 对于bearer token 认证
BEARER_TOKEN=your_bearer_token
# 其他可选配置
ScrapeInterval=60 # 间隔(以秒为单位)
ScrapeTimeout=10 # scrape超时时间(以秒为单位)
安装并运行
uv install
uv run
💻 使用示例
基础用法
按照上述安装指南完成配置和安装后,即可使用 MCP 服务器提供的工具进行操作。例如,若要列出 Prometheus 中的所有可用指标,可使用 list_metrics 工具。
高级用法
可以根据实际需求配置不同的身份验证方式和其他可选配置,以满足更复杂的使用场景。例如,使用 bearer token 认证:
# 必须:Prometheus 配置
PROMETHEUS_URL=http://your-prometheus-server:9090
# 对于bearer token 认证
BEARER_TOKEN=your_bearer_token
# 其他可选配置
ScrapeInterval=60 # 间隔(以秒为单位)
ScrapeTimeout=10 # scrape超时时间(以秒为单位)
📚 详细文档
项目结构
该项目已经组织了一个 src 目录结构:
prometheus-mcp-server/
├── src/
│ └── prometheus_mcp_server/
│ ├── __init__.py # 包初始化文件
│ ├── server.py # MCP 服务器实现
│ └── main.py # 主应用逻辑
├── Dockerfile # Docker 配置文件
├── docker-compose.yml # Docker Compose 配置文件
├── .dockerignore # Docker 忽略文件
└── README.md # 本文件
测试
项目包含全面的测试套件,确保功能并帮助防止回归。运行测试步骤如下:
# 安装开发依赖项
uv pip install -e ".[dev]"
# 运行测试
pytest
# 生成覆盖率报告
pytest --cov=src --cov-report=term-missing
工具
| 属性 | 详情 |
|------|------|
| 工具列表 |
| execute_query | 执行一个 PromQL 即时查询到 Prometheus |
| execute_range_query | 执行一个带有开始时间、结束时间和步长间隔的 PromQL 范围查询 |
| list_metrics | 列出 Prometheus 中的所有可用指标 |
| get_metric_metadata | 获取特定指标的元数据 |
| get_targets | 获取所有抓取目标的信息 |
📄 许可证
本项目采用 MIT 许可证。
微信扫一扫