使用说明

项目简介

Prometheus MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器,它作为 Prometheus 监控系统的桥梁,使得 AI 助手(如 Claude)能够以标准化的方式访问和查询 Prometheus 的指标数据。通过此服务器,AI 助手可以执行 PromQL 查询、浏览可用指标、获取指标元数据以及查看监控目标状态,从而实现智能化的监控数据分析和告警处理。

主要功能点

  • PromQL 查询执行: 允许 AI 助手执行 PromQL (Prometheus Query Language) 查询,获取实时的监控指标数据。
  • 指标发现与探索: 提供工具让 AI 助手可以列出所有可用的 Prometheus 指标,并获取特定指标的详细元数据(类型、帮助信息等)。
  • 监控目标状态查询: 支持查询 Prometheus 监控的目标(targets)的状态,包括健康状态和发现的标签信息。
  • 可配置工具集: 提供的工具列表是可配置的,可以根据需要选择暴露给 MCP 客户端的工具,灵活控制上下文窗口大小和功能范围。
  • 认证支持: 支持基本的认证方式,包括 Basic Auth 和 Bearer Token 认证,保障数据访问安全。
  • Docker 容器化部署: 提供 Docker 镜像和 Docker Compose 配置,方便用户快速部署和管理服务器。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/pab1it0/prometheus-mcp-server.git
    cd prometheus-mcp-server
  2. 安装依赖 (推荐使用 uv): 首先确保已安装 'uv',安装方法参考 uv installation。 然后创建虚拟环境并安装项目依赖:

    uv venv
    source .venv/bin/activate  # Linux/macOS
    .venv\Scripts\activate     # Windows
    uv pip install -e .

    或者,您也可以使用 'pip' 和 'venv':

    python3 -m venv .venv
    source .venv/bin/activate  # Linux/macOS
    .venv\Scripts\activate     # Windows
    pip install -r requirements.txt

服务器配置

MCP 客户端 (例如 Claude Desktop) 需要配置 MCP 服务器的启动命令才能连接。以下是 Prometheus MCP Server 的配置示例,请根据您的实际情况进行调整。

配置示例 (JSON 格式,用于 MCP 客户端):

方式一:直接运行 Python 脚本

{
  "mcpServers": {
    "prometheus": {
      "command": "uv",  // 或者 "python3" 如果您使用 pip 安装
      "args": [
        "--directory",
        "<Prometheus MCP Server 仓库的完整路径>", // 将这里替换为您的 prometheus-mcp-server 仓库在您电脑上的绝对路径
        "run",
        "src/prometheus_mcp_server/main.py"
      ],
      "env": {
        "PROMETHEUS_URL": "http://your-prometheus-server:9090", // 替换为您的 Prometheus 服务器地址
        "PROMETHEUS_USERNAME": "your_username",    // (可选) 如果 Prometheus 需要认证,请填写用户名
        "PROMETHEUS_PASSWORD": "your_password",    // (可选) 如果 Prometheus 需要认证,请填写密码
        "PROMETHEUS_TOKEN": "your_token"          // (可选) 如果 Prometheus 使用 Bearer Token 认证,请填写 Token,优先级高于用户名密码
      }
    }
  }
}

方式二:使用 Docker 运行

首先构建 Docker 镜像:

docker build -t prometheus-mcp-server .

然后在 MCP 客户端中配置:

{
  "mcpServers": {
    "prometheus": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e", "PROMETHEUS_URL",          // 将环境变量传递给 Docker 容器
        "-e", "PROMETHEUS_USERNAME",     // 将环境变量传递给 Docker 容器
        "-e", "PROMETHEUS_PASSWORD",     // 将环境变量传递给 Docker 容器
        "-e", "PROMETHEUS_TOKEN",        // 将环境变量传递给 Docker 容器
        "prometheus-mcp-server"
      ],
      "env": {
        "PROMETHEUS_URL": "http://your-prometheus-server:9090", // 替换为您的 Prometheus 服务器地址
        "PROMETHEUS_USERNAME": "your_username",    // (可选) 如果 Prometheus 需要认证,请填写用户名
        "PROMETHEUS_PASSWORD": "your_password",    // (可选) 如果 Prometheus 需要认证,请填写密码
        "PROMETHEUS_TOKEN": "your_token"          // (可选) 如果 Prometheus 使用 Bearer Token 认证,请填写 Token,优先级高于用户名密码
      }
    }
  }
}

环境变量配置:

您可以通过以下方式配置 Prometheus 服务器连接信息:

  • '.env' 文件: 在 'prometheus-mcp-server' 仓库根目录下创建 '.env' 文件,并添加以下内容 (根据需要选择认证方式):

    PROMETHEUS_URL=http://your-prometheus-server:9090
    # Basic Auth (二选一)
    PROMETHEUS_USERNAME=your_username
    PROMETHEUS_PASSWORD=your_password
    # Bearer Token Auth (二选一)
    PROMETHEUS_TOKEN=your_token
  • 系统环境变量: 直接设置操作系统的环境变量 'PROMETHEUS_URL', 'PROMETHEUS_USERNAME', 'PROMETHEUS_PASSWORD', 'PROMETHEUS_TOKEN'。

基本使用方法

  1. 启动 MCP 服务器: 根据您选择的配置方式,启动 Prometheus MCP Server。如果直接运行 Python 脚本,请确保已激活虚拟环境,并在仓库根目录下执行:'uv run src/prometheus_mcp_server/main.py' 或 'python3 src/prometheus_mcp_server/main.py'。 如果使用 Docker,则按照 Docker 方式启动。

  2. 配置 MCP 客户端: 将上面生成的 JSON 配置信息添加到您的 MCP 客户端 (例如 Claude Desktop) 的配置文件中。

  3. 在 MCP 客户端中使用工具: 连接成功后,您可以在 MCP 客户端中使用以下工具与 Prometheus 交互:

    • 'execute_query': 执行 PromQL 即时查询,获取当前指标值。
    • 'execute_range_query': 执行 PromQL 范围查询,获取一段时间内的指标数据。
    • 'list_metrics': 列出 Prometheus 中所有可用的指标名称。
    • 'get_metric_metadata': 获取指定指标的元数据信息,例如指标类型和帮助信息。
    • 'get_targets': 获取 Prometheus 监控目标的状态信息。

    AI 助手会根据工具的描述和参数,智能地调用这些工具来获取 Prometheus 数据,并用于后续的分析和处理。

信息

分类

开发者工具