prometheus-mcp-server

prometheus-mcp-server

1

Prometheus MCP Server is designed to simplify Prometheus metrics querying by offering AI-friendly output formats. It supports a variety of MCP tools for searching, querying, and analyzing metrics, making it ideal for AI and data analysis use cases.

Prometheus MCP 服务器

这是一个简化版的Prometheus MCP服务器,用于查询指标提供 ai 分析。

快速开始

启动

  1. 设置Prometheus地址环境变量:
export PROMETHEUS_URL=your_Prometheus_endpoint
  1. 启动服务器:
go run cmd/server/main.go sse

服务器将在:8081端口启动,可以通过以下URL访问:

  1. (可选) 设置日志文件路径:
export APP_LOG_FILE=/path/to/logfile.log

测试

npx @modelcontextprotocol/inspector node build/index.js

功能特性

AI友好化分析指标

  1. JSON格式输出:所有查询结果均以JSON格式返回,便于AI系统解析处理

MCP工具

  1. search_metrics - 按正则表达式搜索指标

    • 参数: pattern (指标名称模式,支持正则表达式)
    • 示例: http_.* 匹配所有以http_开头的指标
    • 返回: 匹配的指标名称列表(JSON格式)
  2. get_metric_labels - 获取指标的所有标签

    • 参数: name (指标名称)
    • 示例: http_requests_total
    • 返回: 该指标的所有标签列表(JSON格式,不包括__name__标签)
  3. get_metric_label_values - 获取指标标签的所有值

    • 参数:
      • name (指标名称)
      • label (标签名称)
    • 示例: 获取http_requests_total指标的method标签的所有值
    • 返回: 指定标签的所有值列表(JSON格式)
  4. query - 执行PromQL即时查询

    • 参数:
      • query (PromQL查询语句)
      • time (查询时间戳,格式为RFC3339或Unix时间戳,可选)
    • 示例: 查询当前CPU使用率
    • 返回: 查询结果(JSON格式)
  5. query_range - 执行PromQL范围查询

    • 参数:
      • query (PromQL查询语句)
      • start (开始时间,格式为RFC3339或Unix时间戳(毫秒))
      • end (结束时间,格式为RFC3339或Unix时间戳(毫秒))
      • step (查询步长,例如'15s'、'1m')
    • 示例: 查询过去1小时CPU使用率变化,每15秒一个数据点
    • 返回: 范围查询结果(JSON格式)
  6. query_chart - 执行PromQL范围查询并生成图表

    • 参数:
      • query (PromQL查询语句)
      • start (开始时间,格式为RFC3339或Unix时间戳(毫秒))
      • end (结束时间,格式为RFC3339或Unix时间戳(毫秒))
      • step (查询步长,例如'15s'、'1m')
      • title (图表标题,可选)
    • 示例: 查询过去1小时CPU使用率变化并生成图表
    • 返回: 图表图片(base64编码的PNG格式)

服务器端

  1. 设置Prometheus地址:
export PROMETHEUS_URL=your_Prometheus_endpoint
  1. 启动服务器:
go run cmd/server/main.go sse

服务器默认将在:8081端口暴露Prometheus指标。

mcp 客户端配置

配置示例:

{
  "mcpServers": {
    "products-sse": {
      "url": "http://localhost:8081/sse"
    }
  }
}

项目结构

.
├── cmd/           # 命令行程序入口
│   └── server/   # 服务器代码
├── internal/      # 内部实现
├── pkg/           # 可复用包
│   └── prometheus # Prometheus相关实现
└── go.mod         # Go模块定义