Prometheus MCP Server

by pab1it0
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Provides access to Prometheus metrics and queries, allowing execution of PromQL queries, metrics discovery and exploration, viewing instant and range query results, and retrieving target information from a Prometheus 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 客户端提供的工具。如果您不使用某些功能,或者不想占用太多上下文窗口空间,此功能非常有用。

用法

  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
  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 镜像

使用以下方式构建 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 \ 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", "prometheus-mcp-server" ], "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发现获取有关所有抓取目标的信息

执照

麻省理工学院


-
security - not tested
A
license - permissive license
-
quality - not tested

通过标准化模型上下文协议接口提供对 Prometheus 指标和查询的访问,允许 AI 助手执行 PromQL 查询并分析指标数据。

  1. Features
    1. Usage
      1. Docker Usage
        1. Building the Docker Image
        2. Running with Docker
        3. Running with Docker in Claude Desktop
      2. Development
        1. Project Structure
          1. Testing
          2. Tools
        2. License

          Appeared in Searches

          ID: rwxokujcu0