YP

yshngg/prometheus-mcp-server

Developer tools
5 stars 5 forks Quality 74 Trend 27Apache-2.0

A 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@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:

{
  "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

View the full README on GitHub

Install

docker run --rm -i ghcr.io/yshngg/prometheus-mcp-server:latest --prom-addr http://host.docker.internal:9090
New to MCP? Start with the mcpskill.org guide →

Configuration

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