项目简介

Prometheus MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 提供访问 Prometheus 监控系统数据的能力。通过此 MCP 服务器,LLM 可以调用预定义的工具函数,检索、分析 Prometheus 数据库中的海量指标数据,从而实现更强大的监控数据分析和应用集成。

主要功能点

  • 指标数据检索: 从 Prometheus 数据库中获取指定的指标或指标数据范围。
  • 指标分析: 对检索到的指标数据进行统计分析。
  • 指标使用搜索: 查找和探索指标的使用模式。
  • 复杂查询: 执行高级 PromQL 查询,进行深入的数据探索。

安装步骤

  1. 准备 Python 运行环境: 首先,您需要安装 Python 虚拟环境。在仓库 'src/prometheus_mcp_server' 目录下执行以下命令:

    python3 -m venv .venv

    激活虚拟环境:

    # Linux/macOS:
    source .venv/bin/activate
    
    # Windows:
    .venv\Scripts\activate
  2. 安装依赖包: 确保您的虚拟环境中已安装 'pip'。如果 'pip' 未安装,请先安装 'pip':

    wget https://bootstrap.pypa.io/get-pip.py
    python3 get-pip.py

    然后安装项目所需的 Python 包:

    pip install -r requirements.txt

服务器配置

MCP 服务器需要配置在 MCP 客户端中才能使用。以 Claude Desktop 为例,您需要在 Claude 的配置文件 '~/Library/Application Support/Claude/claude_desktop_config.json' (macOS) 中添加如下服务器配置信息:

{
    "mcpServers": {
        "prometheus": {
            "command": "uv",
            "args": [
                "--directory",
                "/path/to/prometheus_mcp_server",
                "run",
                "server.py"
            ],
            "env": {
                "PROMETHEUS_HOST": "http://localhost:9090"
            }
        }
    }
}

配置参数说明:

  • server name: 'prometheus' - 服务器名称,在 Claude Desktop 中用于标识和调用该 MCP 服务器。
  • command: 'uv' - 启动服务器的命令,这里使用 'uv' (可能是 'uvicorn'),确保已安装 'uvicorn' 或 'uv'。
  • args: 启动命令的参数列表。
    • '--directory': '/path/to/prometheus_mcp_server' - Prometheus MCP Server 仓库 'src/prometheus_mcp_server' 目录的绝对路径。请替换为您的实际路径
    • 'run': 'run' 命令指示 'uv' 运行 Python 模块或脚本。
    • 'server.py': 指定要运行的服务器脚本为 'server.py'。
  • env: 环境变量配置。
    • 'PROMETHEUS_HOST': 'http://localhost:9090' - Prometheus 服务器的地址。请根据您的 Prometheus 服务器实际地址进行修改。如果 Prometheus 服务器运行在本地 9090 端口,则无需修改。

注意: 请将 '/path/to/prometheus_mcp_server' 替换为您本地 Prometheus MCP Server 仓库 'src/prometheus_mcp_server' 目录的实际绝对路径。

基本使用方法

  1. 启动 Prometheus 服务器: 确保您的 Prometheus 服务器正在运行,并且地址与 MCP 服务器配置中的 'PROMETHEUS_HOST' 一致。

  2. 启动 MCP 服务器:

    • 通过 MCP 客户端 (如 Claude Desktop) 启动: 配置好 Claude Desktop 的 'claude_desktop_config.json' 文件后,启动 Claude Desktop 应用程序,MCP 服务器将会自动启动。
    • 独立启动 MCP 服务器: 您也可以在虚拟环境中手动启动 MCP 服务器。
      • uv 方法: 在 'src/prometheus_mcp_server' 目录下执行:
        uv --directory . run server.py
      • Python 方法: 在 'src/prometheus_mcp_server' 目录下执行:
        python3 server.py
  3. 在 LLM 应用中使用: 在支持 MCP 协议的 LLM 应用 (如 Claude Desktop) 中,您可以通过配置的服务器名称 ('prometheus') 调用 Prometheus MCP Server 提供的工具和资源,从而利用 Prometheus 指标数据进行更智能的交互和分析。具体使用方式取决于 LLM 应用的功能和界面。例如,在 Claude Desktop 中,您可能可以使用 '@prometheus:resource_name' 的方式引用 Prometheus 资源,或使用工具名称调用工具函数。

例如,在 Claude 中,您可以指示 Claude 使用 'fetch_metric' 工具来获取指标数据:

请使用 prometheus 服务器的 fetch_metric 工具,获取指标 go_gc_duration_seconds 的最近 5 分钟的数据。

LLM 应用会解析您的指令,并调用 Prometheus MCP Server 的 'fetch_metric' 工具,并将结果返回给您。

信息

分类

开发者工具