Prometheus MCP Server 使用说明

项目简介

Prometheus MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为大型语言模型(LLMs)提供访问 Prometheus 监控数据的能力。通过此 MCP 服务器,LLMs 可以检索实时的系统和应用指标,从而在对话和任务执行中融入更丰富的上下文信息,例如:

  • 监控系统性能
  • 分析应用行为
  • 辅助故障排查

主要功能点

  • 指标数据检索: 允许 LLMs 通过指定指标名称,从 Prometheus 中获取实时的监控数据。
  • 指标信息发现: 支持 LLMs 查询 Prometheus 中可用的指标列表及其详细描述。
  • 时间范围查询: LLMs 可以指定时间范围,获取特定时间段内的指标数据,进行趋势分析或历史回顾。
  • 工具集成: 提供 'fetch_metric' 工具,使得 LLMs 可以通过调用工具的方式,自动化地获取和使用 Prometheus 数据。

安装步骤

  1. 克隆仓库

    git clone https://github.com/CaesarYangs/prometheus_mcp_server
    cd prometheus_mcp_server
  2. 进入服务器代码目录

    cd src/prometheus_mcp_server
  3. 创建 Python 虚拟环境

    python3 -m venv .venv
  4. 激活虚拟环境

    • Linux/macOS:
      source .venv/bin/activate
    • Windows:
      .venv\Scripts\activate
  5. 安装依赖包

    pip install -r requirements.txt

服务器配置 (MCP 客户端配置)

要将 Prometheus MCP Server 集成到 MCP 客户端(例如 Claude Desktop),您需要配置客户端以连接到此服务器。以下是典型的 JSON 格式配置,您需要将其添加到您的 MCP 客户端配置中。请将 '/path/to/prometheus_mcp_server' 替换为实际的仓库 'src/prometheus_mcp_server' 目录的绝对路径。

{
    "serverName": "prometheus",  //  服务器名称,您可以自定义,用于在客户端中标识
    "command": "uv",           //  启动服务器的命令,这里使用 uv,一个更快的 Python 虚拟环境运行器
    "args": [                  //  命令参数列表
        "--directory",
        "/path/to/prometheus_mcp_server", //  指向服务器代码目录的路径,请替换为实际路径
        "run",                  //  uv 命令的子命令,用于运行 Python 脚本
        "server.py"             //  服务器主脚本文件名
    ],
    "env": {                    //  环境变量配置
        "PROMETHEUS_HOST": "http://localhost:9090" //  Prometheus 服务器的地址,请根据您的 Prometheus 部署修改
    }
}

配置说明:

  • 'serverName': 为您的 MCP 服务器配置一个易于识别的名称,例如 "prometheus"。
  • 'command': 指定用于启动服务器的命令。这里推荐使用 'uv',它通常比直接使用 'venv' 的 'python3' 命令启动更快。如果您没有安装 'uv',或者希望直接使用 'venv',可以将 'command' 更改为 '"python3"' 并相应调整 'args'。
  • 'args': 'args' 数组包含了启动 'command' 所需的参数。
    • '--directory "/path/to/prometheus_mcp_server"': 指定 'uv' (或 'python3') 命令的工作目录为您的服务器代码目录。请务必将 '/path/to/prometheus_mcp_server' 替换为实际路径。
    • '"run"': 是 'uv' 命令的一个子命令,用于运行 Python 脚本。
    • '"server.py"': 指定要运行的 Python 服务器脚本。
  • 'env': 'env' 对象用于设置服务器运行时的环境变量。
    • '"PROMETHEUS_HOST": "http://localhost:9090"': 这是 Prometheus 服务器的访问地址。请根据您的 Prometheus 服务器实际部署地址进行修改。 如果您的 Prometheus 服务器运行在不同的主机或端口,请务必更新此配置。

基本使用方法

  1. 启动 MCP 服务器: 配置完成后,当您的 MCP 客户端(如 Claude Desktop)启动并需要与 Prometheus 服务器交互时,它将根据您提供的配置自动启动 Prometheus MCP Server。您也可以在虚拟环境中手动运行 'uv --directory /path/to/prometheus_mcp_server run server.py' 或 'python3 server.py' 命令来启动服务器。

  2. 在 LLM 中使用工具: 在您的 LLM 应用中,您可以使用 'fetch_metric' 工具来查询 Prometheus 指标。具体的工具调用方式取决于您使用的 LLM 客户端。例如,您可以通过自然语言指令指示 LLM 使用 'fetch_metric' 工具,并提供必要的参数,如 'metric_name'(指标名称)和 'metric_range'(时间范围,可选)。

    例如,您可以向 LLM 提出类似这样的问题: “从 Prometheus 获取过去 5 分钟的 'go_gc_duration_seconds' 指标数据”。 LLM 客户端会解析您的请求,并调用 Prometheus MCP Server 提供的 'fetch_metric' 工具,最终将 Prometheus 的数据返回给您。

信息

分类

开发者工具