
yshngg/prometheus-mcp-server
Developer toolsA Prometheus Model Context Protocol Server.
Overview
A Go-based MCP server that exposes Prometheus query capabilities via the Model Context Protocol. All flags can be set via environment variables: PROM_ADDR, MCP_ADDR, TRANSPORT, AUTH_TOKEN. Add the following config to your MCP client: Install the binary via go install github.com/yshngg/prometheus-mcp-server@latest or pull the Docker image with docker pull ghcr.io/yshngg/prometheus-mcp-server:latest. If you don't have the binary installed, use Docker: Then configure your client to use http://localhost:8080/mcp. For authenticated access, set AUTH_TOKEN: Your client must then include Authorization: Bearer my-token in requests to /mcp.
README
Prometheus MCP Server
A Go-based MCP server that exposes Prometheus query capabilities via the Model Context Protocol.
Installation
go install github.com/yshngg/prometheus-mcp-server@latest
Or pull the Docker image:
docker pull ghcr.io/yshngg/prometheus-mcp-server:latest
Usage
prometheus-mcp-server --prom-addr="http://localhost:9090"
Flags
| Flag | Default | Description |
|---|---|---|
-prom-addr |
http://localhost:9090 |
Prometheus server URL |
-mcp-addr |
localhost:8080 |
MCP server listen address |
-transport |
stdio |
stdio or http |
-auth-token |
`` | Bearer token for MCP endpoint authentication (optional) |
-version |
Print version |
Environment Variables
All flags can be set via environment variables: PROM_ADDR, MCP_ADDR, TRANSPORT, AUTH_TOKEN.
MCP Client Configuration
Add the following config to your MCP client:
{
"mcpServers": {
"prometheus": {
"command": "prometheus-mcp-server",
"args": ["--prom-addr", "http://localhost:9090"]
}
}
}
[!NOTE] Install the binary via
go install github.com/yshngg/prometheus-mcp-server@latestor pull the Docker image withdocker pull ghcr.io/yshngg/prometheus-mcp-server:latest.
If you don’t have the binary installed, use Docker:
{
"mcpServers": {
"prometheus": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"ghcr.io/yshngg/prometheus-mcp-server:latest",
"--prom-addr",
"http://host.docker.internal:9090"
]
}
}
}
Client-specific configuration
Tools
Expression: instant_query, range_query
Metadata: find_series_by_labels, list_label_names, list_label_values, target_metadata_query, metric_metadata_query
Discovery: target_discovery, alert_query, rule_query, alertmanager_discovery
TSDB Admin: tsdb_snapshot, delete_series, clean_tombstones
Management: health_check, readiness_check, reload, quit
Resources
The server exposes Prometheus data as URI-addressable resources under the prom:/// scheme:
| URI | Description |
|---|---|
prom:///config |
Currently loaded configuration (YAML) |
prom:///flags |
Command-line flag values |
prom:///runtime-info |
Runtime information |
prom:///build-info |
Build information |
prom:///tsdb-stats |
TSDB cardinality statistics |
prom:///wal-replay-stats |
WAL replay state |
Resource Templates
URI templates for dynamic data access:
| Template | Description |
|---|---|
prom:///api/v1/query?query={promql} |
Instant PromQL query result |
prom:///api/v1/label/{name}/values |
Label values for a given label name |
Prompts
| Name | Arguments | Description |
|---|---|---|
all-available-metrics |
prefix (optional) |
Lists all metric names in the Prometheus instance |
License
Apache License 2.0
Install
docker run --rm -i ghcr.io/yshngg/prometheus-mcp-server:latest --prom-addr http://host.docker.internal:9090Configuration
{
"mcpServers": {
"prometheus": {
"command": "prometheus-mcp-server",
"args": ["--prom-addr", "http://localhost:9090"]
}
}
}