MCP Prometheus 服务端

使用说明(Markdown 格式)

  • 项目简介

    • mcp-prometheus 是一个基于 MCP(Model Context Protocol)的后端服务器,面向 Prometheus 监控数据。它把 Prometheus 的查询、元数据、目标信息等能力暴露为 MCP 工具,通过 JSON-RPC 风格的调用供 AI 助手查询、分析和操作。
  • 主要功能点

    • 查询执行工具:执行 PromQL 的即时查询和区间查询,支持时间参数、超时、结果限制、统计信息等增强选项。
    • 指标发现与元数据:列出指标、获取指标元数据、标签名和值的查询、按标签筛选系列等。
    • 目标与系统信息:获取 Targets、构建信息、运行时信息、配置、TSDB 统计、就绪性检查等。
    • 高级工具与安全性:查询示例、目标元数据等工具组合;支持基本认证、Bearer 令牌以及多租户(OrgID)隔离。
    • 观测性与运维:Prometheus 指标、健康与就绪探针,OpenTelemetry 支持(默认无-op,OTLP 时上报)。
    • 多传输协议:stdio(默认)、SSE、Streamable HTTP 等,便于不同客户端接入。
  • 安装步骤

    • 克隆代码并编译:
      • go 给出二进制文件 mcp-prometheus
    • 运行示例(默认为 stdio 传输,直接在控制台启动)
    • 如需 HTTP 传输,可以使用 SSE/HTTP 终端,示例命令见下方使用方式。
  • 服务器配置

    • MCP 客户端连接 MCP 服务器时需要的配置信息(以 JSON 格式表示,包含服务器名称、命令与参数等;注意此处提供的是客户端配置示例,实际使用时按你的环境填入路径和参数): { "mcpServers": { "prometheus": { "name": "Prometheus MCP Server", "command": "/path/to/mcp-prometheus", "args": ["serve"], "env": { "PROMETHEUS_URL": "http://prometheus:9090", "PROMETHEUS_ORGID": "default" } // 说明:上述环境变量可覆盖 MCP 服务器默认的 Prometheus 连接及组织标识。 } } }
  • 基本使用方法

    • 启动服务器(stdio,默认):
      • ./mcp-prometheus
    • 启动 SSE 传输的服务器(HTTP 端口 8080,SSE 路径 /sse,消息路径 /message):
      • ./mcp-prometheus serve --transport sse --http-addr :8080
    • 启动 Streamable HTTP 传输的服务器(HTTP 端口及 Endpoint 路径可配置):
      • ./mcp-prometheus serve --transport streamable-http --http-addr :8080
  • 额外说明

    • 代码覆盖 MCP 服务端核心能力:处理 MCP 请求/响应、工具注册、权限校验、会话与多租户管理、可观测性指标等。
    • 通过 prometheus-tools 的工具集合实现 Prometheus 的查询与元数据能力的 MCP 封装。

服务器信息