普罗米修斯MCP服务器
](https://github.com/users/pab1it0/packages/container/package/prometheus-mcp-server) ](https://github.com/pab1it0/prometheus-mcp-server/releases)  
A. 模型上下文协议 普罗米修斯的MCP服务器。
这通过标准化的MCP接口提供了对Prometheus指标和查询的访问,允许AI助手执行PromQL查询并分析您的指标数据。
特性
- \[x\] 对Prometheus执行PromQL查询
- \[x\] 发现和探索指标
- \[x\] 列出可用指标 - \[x\] 获取特定指标的元数据 - \[x\] 查看即时查询结果 - \[x\] 查看具有不同步长间隔的范围查询结果
- \[x\] 身份验证支持
- \[x\] 来自环境变量的基本身份验证 - \[x\] 来自环境变量的承载令牌身份验证
- \[x\] Docker容器化支持
- \[x\] 为AI助手提供交互式工具
工具列表是可配置的,因此您可以选择要向MCP客户端提供哪些工具。 如果你不使用某些功能,或者你不想占用太多的上下文窗口,这很有用。
入门指南
先决条件
- Prometheus服务器可从您的环境访问
- MCP兼容客户端(Claude Desktop、VS Code、Cursor、Windsurf等)
安装方法
Claude Desktop
添加到您的Claude Desktop配置中:
{
"mcpServers": {
"prometheus": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PROMETHEUS_URL",
"ghcr.io/pab1it0/prometheus-mcp-server:latest"
],
"env": {
"PROMETHEUS_URL": ""
}
}
}
}Claude Code
通过Claude Code CLI安装:
claude mcp add prometheus --env PROMETHEUS_URL=http://your-prometheus:9090 -- docker run -i --rm -e PROMETHEUS_URL ghcr.io/pab1it0/prometheus-mcp-server:latestVS Code / Cursor / Windsurf
在相应的IDE中添加到MCP设置中:
{
"prometheus": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PROMETHEUS_URL",
"ghcr.io/pab1it0/prometheus-mcp-server:latest"
],
"env": {
"PROMETHEUS_URL": ""
}
}
}Docker Desktop
运行Prometheus MCP服务器的最简单方法是通过Docker Desktop:
- 通过MCP目录:访问 然后单击上面的按钮
- 通过MCP工具包:使用Docker Desktop的MCP Toolkit扩展来发现和安装服务器
- 使用环境变量配置您的连接(请参阅下面的配置选项)
Manual Docker Setup
直接使用Docker运行:
# With environment variables
docker run -i --rm \
-e PROMETHEUS_URL="http://your-prometheus:9090" \
ghcr.io/pab1it0/prometheus-mcp-server:latest
# With authentication
docker run -i --rm \
-e PROMETHEUS_URL="http://your-prometheus:9090" \
-e PROMETHEUS_USERNAME="admin" \
-e PROMETHEUS_PASSWORD="password" \
ghcr.io/pab1it0/prometheus-mcp-server:latest配置选项
| 变量 | 描述 | 必填 |
|---|---|---|
PROMETHEUS_URL | Prometheus服务器的URL | 是 |
PROMETHEUS_URL_SSL_VERIFY | 设置为False以禁用SSL验证 | 否 |
PROMETHEUS_DISABLE_LINKS | 设置为True可禁用查询结果中的Prometheus UI链接(保存上下文标记) | 否 |
PROMETHEUS_USERNAME | 基本身份验证的用户名 | 否 |
PROMETHEUS_PASSWORD | 基本身份验证密码 | 否 |
PROMETHEUS_TOKEN | 用于身份验证的承载令牌 | 否 |
ORG_ID | 多租户设置的组织ID | 否 |
PROMETHEUS_MCP_SERVER_TRANSPORT | 传输模式(stdio、http、sse) | 否(默认:stdio) |
PROMETHEUS_MCP_BIND_HOST | HTTP传输主机 | 否(默认值:127.0.0.1) |
PROMETHEUS_MCP_BIND_PORT | HTTP传输端口 | 否(默认值:8080) |
PROMETHEUS_CUSTOM_HEADERS | 自定义标头为JSON字符串 | 否 |
发展
欢迎投稿!请查看我们的 贡献指南 有关如何开始、编码标准和拉取请求过程的详细信息。
此项目使用 uv 管理依赖关系。安装 uv 按照您平台的说明进行操作:
curl -LsSf https://astral.sh/uv/install.sh | sh然后,您可以创建一个虚拟环境,并使用以下命令安装依赖项:
uv venv
source .venv/bin/activate # On Unix/macOS
.venv\Scripts\activate # On Windows
uv pip install -e .测试
该项目包括一个全面的测试套件,可确保功能并帮助防止回归。
使用pytest运行测试:
# Install development dependencies
uv pip install -e ".[dev]"
# Run the tests
pytest
# Run with coverage report
pytest --cov=src --cov-report=term-missing添加新功能时,请同时添加相应的测试。
工具
所有工具都支持可选 prometheus_url 参数,允许您根据请求动态指定Prometheus服务器URL,从而在不更改部署配置的情况下查询不同的Prometheus实例。
| 工具 | 类别 | 描述 |
|---|---|---|
health_check | 系统 | 用于容器监视和状态验证的健康检查端点。接受可选 prometheus_url 参数。 |
execute_query | 查询 | 对Prometheus执行PromQL即时查询。接受可选 prometheus_url 参数。 |
execute_range_query | 查询 | 使用开始时间、结束时间和步长间隔执行PromQL范围查询。接受可选 prometheus_url 参数。 |
list_metrics | 发现 | 列出Prometheus中所有可用的指标,并支持分页和过滤。接受可选 prometheus_url 参数。 |
get_metric_metadata | 发现 | 获取特定指标的元数据。接受可选 prometheus_url 参数。 |
get_targets | 发现 | 获取所有刮擦目标的信息。接受可选 prometheus_url 参数。 |
动态普罗米修斯URL
您可以为每个请求提供不同的Prometheus URL:
# Query Prometheus server in Atlanta region
execute_query(query="up", prometheus_url="http://sos-proms01-atl01.example.com:9090")
# Query Prometheus server in Bangalore region
execute_query(query="up", prometheus_url="http://sos-proms01-blr01.example.com:9090")
# Use the default configured URL (from PROMETHEUS_URL environment variable)
execute_query(query="up")这允许单个MCP服务器部署查询多个Prometheus实例,而不会发生工具名称冲突。
许可证
麻省理工学院
______________________________________________________________________
