Prometheus MCP服务器

一个基于Go的MCP服务器,通过模型上下文协议提供Prometheus查询功能。

  • by yshngg
  • Go
  • 本地部署
  • 4 星标
  • 更新于

使用说明

普罗米修斯MCP服务器

一个基于Go的MCP服务器,通过模型上下文协议公开Prometheus查询功能。

安装

go install github.com/yshngg/prometheus-mcp-server@latest

或者拉取Docker镜像:

docker pull ghcr.io/yshngg/prometheus-mcp-server:latest

用法

prometheus-mcp-server --prom-addr="http://localhost:9090"

旗帜

标志 默认值 描述
-prom-addr http://localhost:9090 Prometheus服务器URL
-mcp-addr localhost:8080 MCP服务器侦听地址
-transport stdio stdio 或 http
-auth-token ` MCP端点身份验证的承载令牌(可选)
-version 打印版本

环境变量

所有标志都可以通过环境变量设置: PROM_ADDR, MCP_ADDR, TRANSPORT, AUTH_TOKEN.

MCP客户端配置

将以下配置添加到MCP客户端:

{
  "mcpServers": {
    "prometheus": {
      "command": "prometheus-mcp-server",
      "args": ["--prom-addr", "http://localhost:9090"]
    }
  }
}

[!注意] 通过安装二进制文件 go install github.com/yshngg/prometheus-mcp-server@latest 或者使用以下命令拉取Docker镜像 docker pull ghcr.io/yshngg/prometheus-mcp-server:latest.

如果你没有安装二进制文件,请使用Docker:

{
  "mcpServers": {
    "prometheus": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/yshngg/prometheus-mcp-server:latest",
        "--prom-addr",
        "http://host.docker.internal:9090"
      ]
    }
  }
}

客户端特定配置

Claude Desktop

增添 claude_desktop_config.json:

{
  "mcpServers": {
    "prometheus": {
      "command": "prometheus-mcp-server",
      "args": ["--prom-addr", "http://localhost:9090"]
    }
  }
}

使用Docker:

{
  "mcpServers": {
    "prometheus": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/yshngg/prometheus-mcp-server:latest",
        "--prom-addr",
        "http://host.docker.internal:9090"
      ]
    }
  }
}
OpenCode

增添 opencode.json (指南):

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "prometheus": {
      "type": "local",
      "command": [
        "prometheus-mcp-server",
        "--prom-addr",
        "http://localhost:9090"
      ]
    }
  }
}
HTTP Transport

使用HTTP传输运行服务器:

prometheus-mcp-server --transport=http --mcp-addr="localhost:8080"

然后配置您的客户端以使用 http://localhost:8080/mcp.

对于经过身份验证的访问,设置 AUTH_TOKEN:

AUTH_TOKEN=my-token prometheus-mcp-server --transport=http

然后,您的客户必须包括 Authorization: Bearer my-token 在请求中 /mcp.

工具

表达式: instant_query, range_query

元数据: find_series_by_labels, list_label_names, list_label_values, target_metadata_query, metric_metadata_query

发现: target_discovery, alert_query, rule_query, alertmanager_discovery

TSDB管理员: tsdb_snapshot, delete_series, clean_tombstones

管理层: health_check, readiness_check, reload, quit

资源

服务器将Prometheus数据作为URI可寻址资源公开在 prom:/// 方案:

URI 描述
prom:///config 当前加载的配置(YAML)
prom:///flags 命令行标志值
prom:///runtime-info 运行时间信息
prom:///build-info 构建信息
prom:///tsdb-stats TSDB基数统计
prom:///wal-replay-stats WAL回放状态

资源模板

用于动态数据访问的URI模板:

模板 说明
prom:///api/v1/query?query={promql} 即时PromQL查询结果
prom:///api/v1/label/{name}/values 给定标签名称的标签值

提示

名称 参数 描述
all-available-metrics prefix (可选) 列出Prometheus实例中的所有度量名称

许可证

Apache许可证2.0