Skip to main content
Glama

Prometheus MCP Server

Prometheus MCP 服务器

Prometheus 的模型上下文协议(MCP) 服务器。

这可以通过标准化的 MCP 接口访问您的 Prometheus 指标和查询,从而允许 AI 助手执行 PromQL 查询并分析您的指标数据。

特征

  • [x] 针对 Prometheus 执行 PromQL 查询

  • [x] 发现并探索指标

    • [x] 列出可用指标

    • [x] 获取特定指标的元数据

    • [x] 查看即时查询结果

    • [x] 查看不同步长间隔的范围查询结果

  • [x] 身份验证支持

    • [x] 来自环境变量的基本身份验证

    • [x] 来自环境变量的 Bearer 令牌认证

  • [x] Docker 容器化支持

  • [x] 为AI助手提供交互工具

工具列表是可配置的,因此您可以选择要向 MCP 客户端提供的工具。如果您不使用某些功能,或者不想占用太多上下文窗口空间,此功能非常有用。

Related MCP server: Prometheus MCP Server

用法

  1. 确保您的 Prometheus 服务器可从运行此 MCP 服务器的环境访问。

  2. 通过.env文件或系统环境变量配置 Prometheus 服务器的环境变量:

# Required: Prometheus configuration PROMETHEUS_URL=http://your-prometheus-server:9090 # Optional: Authentication credentials (if needed) # Choose one of the following authentication methods if required: # For basic auth PROMETHEUS_USERNAME=your_username PROMETHEUS_PASSWORD=your_password # For bearer token auth PROMETHEUS_TOKEN=your_token # Optional: For multi-tenant setups like Cortex, Mimir or Thanos ORG_ID=your_organization_id
  1. 将服务器配置添加到客户端配置文件中。例如,对于 Claude Desktop:

{ "mcpServers": { "prometheus": { "command": "uv", "args": [ "--directory", "<full path to prometheus-mcp-server directory>", "run", "src/prometheus_mcp_server/main.py" ], "env": { "PROMETHEUS_URL": "http://your-prometheus-server:9090", "PROMETHEUS_USERNAME": "your_username", "PROMETHEUS_PASSWORD": "your_password" } } } }

注意:如果您在 Claude Desktop 中看到Error: spawn uv ENOENT ,则可能需要指定uv的完整路径或在配置中设置环境变量NO_UV=1

Docker 使用

该项目包括 Docker 支持,以便于部署和隔离。

预建 Docker 镜像

使用此项目的最简单方法是使用来自 GitHub Container Registry 的预构建映像:

docker pull ghcr.io/pab1it0/prometheus-mcp-server:latest

您还可以使用带有标签的特定版本:

docker pull ghcr.io/pab1it0/prometheus-mcp-server:1.0.0

在本地构建 Docker 镜像

如果您希望自己构建图像:

docker build -t prometheus-mcp-server .

使用 Docker 运行

您可以通过多种方式使用 Docker 运行服务器:

使用 docker run 和预先构建的图像:

docker run -it --rm \ -e PROMETHEUS_URL=http://your-prometheus-server:9090 \ -e PROMETHEUS_USERNAME=your_username \ -e PROMETHEUS_PASSWORD=your_password \ ghcr.io/pab1it0/prometheus-mcp-server:latest

使用 docker run 和本地构建的图像:

docker run -it --rm \ -e PROMETHEUS_URL=http://your-prometheus-server:9090 \ -e PROMETHEUS_USERNAME=your_username \ -e PROMETHEUS_PASSWORD=your_password \ prometheus-mcp-server

使用docker-compose:

使用您的 Prometheus 凭据创建一个.env文件,然后运行:

docker-compose up

在 Claude Desktop 中使用 Docker 运行

要将容器化服务器与 Claude Desktop 一起使用,请更新配置以使用带有环境变量的 Docker:

{ "mcpServers": { "prometheus": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "PROMETHEUS_URL", "-e", "PROMETHEUS_USERNAME", "-e", "PROMETHEUS_PASSWORD", "ghcr.io/pab1it0/prometheus-mcp-server:latest" ], "env": { "PROMETHEUS_URL": "http://your-prometheus-server:9090", "PROMETHEUS_USERNAME": "your_username", "PROMETHEUS_PASSWORD": "your_password" } } } }

此配置通过使用仅带有变量名的-e标志,并在env对象中提供实际值,将环境变量从 Claude Desktop 传递到 Docker 容器。

关于 Docker 实现的说明:Docker 设置已更新,以匹配 chess-mcp 项目的结构,该项目已被证明可以与 Claude 正确配合。新的实现采用多阶段构建流程,并直接运行入口点脚本,无需中间的 shell 脚本。这种方法确保正确处理 MCP 通信的标准输入/输出 (stdin/stdout)。

发展

欢迎贡献代码!如果您有任何建议或改进,请创建 issue 或提交 pull request。

本项目使用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 .

项目结构

该项目已采用src目录结构进行组织:

prometheus-mcp-server/ ├── src/ │ └── prometheus_mcp_server/ │ ├── __init__.py # Package initialization │ ├── server.py # MCP server implementation │ ├── main.py # Main application logic ├── Dockerfile # Docker configuration ├── docker-compose.yml # Docker Compose configuration ├── .dockerignore # Docker ignore file ├── pyproject.toml # Project configuration └── README.md # This file

测试

该项目包括一个全面的测试套件,可确保功能并有助于防止回归。

使用 pytest 运行测试:

# Install development dependencies uv pip install -e ".[dev]" # Run the tests pytest # Run with coverage report pytest --cov=src --cov-report=term-missing

测试分为:

  • 配置验证测试

  • 服务器功能测试

  • 错误处理测试

  • 主要应用测试

当添加新功能时,请同时添加相应的测试。

工具

工具

类别

描述

execute_query

询问

针对 Prometheus 执行 PromQL 即时查询

execute_range_query

询问

执行包含开始时间、结束时间和步长间隔的 PromQL 范围查询

list_metrics

发现

列出 Prometheus 中所有可用的指标

get_metric_metadata

发现

获取特定指标的元数据

get_targets

发现

获取有关所有抓取目标的信息

执照

麻省理工学院


Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pab1it0/prometheus-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server