项目简介
Prometheus MCP 服务器是一个基于 Model Context Protocol (MCP) 实现的后端应用,专门用于与 Prometheus 监控系统进行交互。它将 Prometheus 的查询和元数据发现功能封装成 MCP 工具,使得大型语言模型 (LLM) 客户端能够通过标准化的 JSON-RPC 协议访问和操作 Prometheus 数据。该服务器支持通过标准输入/输出 (stdio) 或作为命令行工具运行,并提供了便捷的 Docker 部署方式。
主要功能点
- 即时查询与范围查询: 允许LLM执行Prometheus的即时查询(获取某一时间点的数据)和范围查询(获取一段时间内的数据序列)。
- 指标发现: 能够列出Prometheus中所有可用的指标名称。
- 元数据获取: 提供关于特定指标的详细元数据,如类型、帮助信息和单位。
- 序列选择器: 支持根据一系列标签匹配器获取匹配的时间序列信息。
- 标签值获取: 能够获取指定标签名称的所有可用标签值。
- 会话管理与能力声明: 实现MCP协议的会话初始化和服务器能力声明。
- Prometheus指标导出: 可选地暴露内部度量指标,以便Prometheus自身监控此MCP服务器的运行状态。
安装步骤
- 通过Cargo安装 (需要Rust环境):
- 确保您的系统安装了 Rust。
- 打开终端,运行 'cargo install prometheus-mcp'。
- 安装完成后,您可以通过 'prometheus-mcp --help' 检查安装是否成功。
- 使用预编译二进制文件:
- 访问项目的 GitHub Releases 页面下载适合您操作系统和架构的最新版本二进制文件。
- 解压文件,将可执行文件(例如 'prometheus-mcp')放置到系统 PATH 环境变量中的任意目录,或直接运行。
- 使用Docker (推荐):
- 确保您的系统安装了 Docker。
- 从 Docker Hub 或 GHCR 拉取镜像: 'docker pull brenoepics/prometheus-mcp:latest'
- 运行服务器: 'docker run --rm -it brenoepics/prometheus-mcp:latest --mcp --prometheus-url http://host.docker.internal:9090' (注意:'http://host.docker.internal:9090' 用于 Docker 容器访问宿主机上的 Prometheus,Linux 用户可能需要使用 '--network host' 或 '--add-host=host.docker.internal:host-gateway' 参数)。
服务器配置
MCP客户端(如Claude Desktop)需要通过以下JSON配置连接此服务器。您需要将 'command' 指定为 'prometheus-mcp' 可执行文件的路径或 Docker 命令,并传递必要的参数。
-
基本配置(通过Docker):
{ "mcpServers": { "prometheus": { "command": "docker", "args": [ "run", "--rm", "-i", "brenoepics/prometheus-mcp:latest", "--mcp", "--prometheus-url", "http://host.docker.internal:9090" // 替换为您的Prometheus服务器地址 ] } } } -
包含基本认证及内部指标暴露的配置(通过Docker):
{ "mcpServers": { "prometheus": { "command": "docker", "args": [ "run", "--rm", "-i", "-p", "9091:9091", // 将容器端口9091映射到宿主机9091,用于访问metrics "-e", "PROMETHEUS_USERNAME=api", // 替换为您的Prometheus用户名 "-e", "PROMETHEUS_PASSWORD=secret", // 替换为您的Prometheus密码 "brenoepics/prometheus-mcp:latest", "--mcp", "--prometheus-url", "https://prom.example.com", // 替换为您的Prometheus服务器地址 "--metrics-exporter", // 启用内部metrics导出 "--metrics-port", "9091" // 指定metrics端口 ] } } } -
配置参数说明:
- '--mcp': 启动MCP服务器模式(必须)。
- '--prometheus-url <URL>': 指定Prometheus服务器的URL地址,例如 'http://localhost:9090'。也可以通过环境变量 'PROMETHEUS_URL' 设置。
- '--prometheus-username <USERNAME>': Prometheus基本认证的用户名。也可以通过环境变量 'PROMETHEUS_USERNAME' 设置。
- '--prometheus-password <PASSWORD>': Prometheus基本认证的密码。也可以通过环境变量 'PROMETHEUS_PASSWORD' 设置。
- '--metrics-exporter': 启用服务器的内部性能指标导出功能,可通过 '/metrics' 路径访问。
- '--metrics-port <PORT>': 当 '--metrics-exporter' 启用时,指定指标导出的端口,默认为 '9091'。
基本使用方法 (作为MCP服务器)
- 按照上述“安装步骤”启动 'prometheus-mcp' 服务器(例如,使用 Docker 命令)。
- 在您的 MCP 客户端(如 Claude Desktop)中配置好服务器的启动命令。
- LLM 客户端即可通过调用 'prometheus_query'、'prometheus_list_metrics' 等工具来获取 Prometheus 监控数据。例如,LLM可能会自动生成并调用:
- 'prometheus_query({"query": "up"})'
- 'prometheus_list_metrics({})'
- 'prometheus_get_metadata({"metric": "node_cpu_seconds_total"})'
信息
分类
开发者工具