关于 pmcp
pmcp 是一个基于 Go 的 MCP 服务,提供 Prometheus 查询和管理能力,适用于需要查询指标、检查元数据或访问服务器操作与数据的 MCP 客户端。
主要功能
- 01即时与范围 PromQL 查询
- 02指标和标签元数据查询
- 03目标与告警发现
- 04TSDB 管理工具
- 05Prometheus 状态与运行时资源
适用场景
- 01通过 MCP 客户端查询指标
- 02检查目标、告警和规则元数据
- 03查看 Prometheus 运行时与 TSDB 详情
MCP 相关
该服务向 MCP 客户端提供 Prometheus 工具、资源和指标列表提示词,支持 stdio 与 HTTP 传输;HTTP 可选用 Bearer 令牌进行身份验证。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Prometheus MCP Server
一个基于 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 端点身份验证的 Bearer 令牌(可选) |
-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 pull ghcr.io/yshngg/prometheus-mcp-server:latest拉取 Docker 镜像。
如果尚未安装二进制文件,请使用 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 传输
使用 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
随后,客户端必须在向 /mcp 发送的请求中包含 Authorization: Bearer my-token。
工具
表达式: 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
资源
该服务通过 prom:/// 方案将 Prometheus 数据公开为可通过 URI 访问的资源:
| 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 License 2.0
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。