Skip to main content
Glama
yshngg
by yshngg

Prometheus MCP Server

codecov

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

Related MCP server: mcp-victoriametrics

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 viago 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

Add to claude_desktop_config.json:

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

With Docker:

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

Add to opencode.json (guide):

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

Run the server with HTTP transport:

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

Then configure your client to use http://localhost:8080/mcp.

For authenticated access, set AUTH_TOKEN:

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

Your client must then include Authorization: Bearer my-token in requests to /mcp.

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

Related MCP Connectors

Related MCP Servers