Prometheus MCP Server 使用说明
项目简介
Prometheus MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为大型语言模型(LLMs)提供访问 Prometheus 监控数据的能力。通过此 MCP 服务器,LLMs 可以检索实时的系统和应用指标,从而在对话和任务执行中融入更丰富的上下文信息,例如:
- 监控系统性能
- 分析应用行为
- 辅助故障排查
主要功能点
- 指标数据检索: 允许 LLMs 通过指定指标名称,从 Prometheus 中获取实时的监控数据。
- 指标信息发现: 支持 LLMs 查询 Prometheus 中可用的指标列表及其详细描述。
- 时间范围查询: LLMs 可以指定时间范围,获取特定时间段内的指标数据,进行趋势分析或历史回顾。
- 工具集成: 提供 'fetch_metric' 工具,使得 LLMs 可以通过调用工具的方式,自动化地获取和使用 Prometheus 数据。
安装步骤
-
克隆仓库
git clone https://github.com/CaesarYangs/prometheus_mcp_server cd prometheus_mcp_server -
进入服务器代码目录
cd src/prometheus_mcp_server -
创建 Python 虚拟环境
python3 -m venv .venv -
激活虚拟环境
- Linux/macOS:
source .venv/bin/activate - Windows:
.venv\Scripts\activate
- Linux/macOS:
-
安装依赖包
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 服务器运行在不同的主机或端口,请务必更新此配置。
基本使用方法
-
启动 MCP 服务器: 配置完成后,当您的 MCP 客户端(如 Claude Desktop)启动并需要与 Prometheus 服务器交互时,它将根据您提供的配置自动启动 Prometheus MCP Server。您也可以在虚拟环境中手动运行 'uv --directory /path/to/prometheus_mcp_server run server.py' 或 'python3 server.py' 命令来启动服务器。
-
在 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 的数据返回给您。
信息
分类
开发者工具