# Prometheus MCP Server

Lets your AI assistant query Prometheus metrics and run PromQL without leaving the chat.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 519
- Author: pab1it0
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/pab1it0/prometheus-mcp-server
- Updated: 2026-10-19
- HTML: https://affpapa.org/en/nevibecode/mcp/prometheus-mcp-server

## What it does

The server puts a standard MCP interface between your assistant and Prometheus. It exposes tools for instant queries (`execute_query`), range queries with start, end and step (`execute_range_query`), metric discovery with pagination (`list_metrics`), metadata lookup, scrape targets and a `health_check` for container monitoring.

It runs in Docker from `ghcr.io/pab1it0/prometheus-mcp-server:1.6.2`. One variable is required: `PROMETHEUS_URL` pointing at your Prometheus server. Everything else is optional — basic auth, bearer token, mutual TLS with a client cert and key, SSL verification toggle, request timeout, and `ORG_ID` for multi-tenant setups.

Watch your context budget. Query results include links back to the Prometheus UI by default, and those links cost tokens; `PROMETHEUS_DISABLE_LINKS=True` strips them. If you run several environments in Cursor, set `TOOL_PREFIX` so tool names carry a prefix and two instances stay apart. Transport defaults to stdio, with http and sse available along with host and port settings.

## Requirements
- Needs: Docker
- Environment variables: `PROMETHEUS_URL`, `PROMETHEUS_URL_SSL_VERIFY`, `PROMETHEUS_DISABLE_LINKS`, `PROMETHEUS_USERNAME`, `PROMETHEUS_PASSWORD`, `PROMETHEUS_TOKEN`, `ORG_ID`, `PROMETHEUS_CLIENT_CERT`, `PROMETHEUS_CLIENT_KEY`, `PROMETHEUS_MCP_SERVER_TRANSPORT` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env PROMETHEUS_URL=<PROMETHEUS_URL> --env PROMETHEUS_URL_SSL_VERIFY=<PROMETHEUS_URL_SSL_VERIFY> --env PROMETHEUS_DISABLE_LINKS=<PROMETHEUS_DISABLE_LINKS> --env PROMETHEUS_USERNAME=<PROMETHEUS_USERNAME> --env PROMETHEUS_PASSWORD=<PROMETHEUS_PASSWORD> --transport stdio prometheus-mcp-server -- docker run -i --rm -e PROMETHEUS_URL -e PROMETHEUS_URL_SSL_VERIFY -e PROMETHEUS_DISABLE_LINKS -e PROMETHEUS_USERNAME -e PROMETHEUS_PASSWORD ghcr.io/pab1it0/prometheus-mcp-server:1.6.2
```
Replace <…> with your own values. 9 more environment variables are in the server README

### Codex

**Platform CLI**
```bash
codex mcp add prometheus-mcp-server --env PROMETHEUS_URL=<PROMETHEUS_URL> --env PROMETHEUS_URL_SSL_VERIFY=<PROMETHEUS_URL_SSL_VERIFY> --env PROMETHEUS_DISABLE_LINKS=<PROMETHEUS_DISABLE_LINKS> --env PROMETHEUS_USERNAME=<PROMETHEUS_USERNAME> --env PROMETHEUS_PASSWORD=<PROMETHEUS_PASSWORD> -- docker run -i --rm -e PROMETHEUS_URL -e PROMETHEUS_URL_SSL_VERIFY -e PROMETHEUS_DISABLE_LINKS -e PROMETHEUS_USERNAME -e PROMETHEUS_PASSWORD ghcr.io/pab1it0/prometheus-mcp-server:1.6.2
```
Replace <…> with your own values. 9 more environment variables are in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "prometheus-mcp-server": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "-e",
                "PROMETHEUS_URL",
                "-e",
                "PROMETHEUS_URL_SSL_VERIFY",
                "-e",
                "PROMETHEUS_DISABLE_LINKS",
                "-e",
                "PROMETHEUS_USERNAME",
                "-e",
                "PROMETHEUS_PASSWORD",
                "ghcr.io/pab1it0/prometheus-mcp-server:1.6.2"
            ],
            "env": {
                "PROMETHEUS_URL": "<PROMETHEUS_URL>",
                "PROMETHEUS_URL_SSL_VERIFY": "<PROMETHEUS_URL_SSL_VERIFY>",
                "PROMETHEUS_DISABLE_LINKS": "<PROMETHEUS_DISABLE_LINKS>",
                "PROMETHEUS_USERNAME": "<PROMETHEUS_USERNAME>",
                "PROMETHEUS_PASSWORD": "<PROMETHEUS_PASSWORD>"
            }
        }
    }
}
```
Replace <…> with your own values. 9 more environment variables are in the server README

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "prometheus-mcp-server": {
            "type": "stdio",
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "-e",
                "PROMETHEUS_URL",
                "-e",
                "PROMETHEUS_URL_SSL_VERIFY",
                "-e",
                "PROMETHEUS_DISABLE_LINKS",
                "-e",
                "PROMETHEUS_USERNAME",
                "-e",
                "PROMETHEUS_PASSWORD",
                "ghcr.io/pab1it0/prometheus-mcp-server:1.6.2"
            ],
            "env": {
                "PROMETHEUS_URL": "<PROMETHEUS_URL>",
                "PROMETHEUS_URL_SSL_VERIFY": "<PROMETHEUS_URL_SSL_VERIFY>",
                "PROMETHEUS_DISABLE_LINKS": "<PROMETHEUS_DISABLE_LINKS>",
                "PROMETHEUS_USERNAME": "<PROMETHEUS_USERNAME>",
                "PROMETHEUS_PASSWORD": "<PROMETHEUS_PASSWORD>"
            }
        }
    }
}
```
Replace <…> with your own values. 9 more environment variables are in the server README

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e PROMETHEUS_URL=<PROMETHEUS_URL> -e PROMETHEUS_URL_SSL_VERIFY=<PROMETHEUS_URL_SSL_VERIFY> -e PROMETHEUS_DISABLE_LINKS=<PROMETHEUS_DISABLE_LINKS> -e PROMETHEUS_USERNAME=<PROMETHEUS_USERNAME> -e PROMETHEUS_PASSWORD=<PROMETHEUS_PASSWORD> prometheus-mcp-server docker run -i --rm -e PROMETHEUS_URL -e PROMETHEUS_URL_SSL_VERIFY -e PROMETHEUS_DISABLE_LINKS -e PROMETHEUS_USERNAME -e PROMETHEUS_PASSWORD ghcr.io/pab1it0/prometheus-mcp-server:1.6.2
```
Replace <…> with your own values. 9 more environment variables are in the server README

## When to use it
- run a PromQL query without opening the Prometheus UI
- list available metrics and read their metadata
- pull a range query over a chosen interval and step
- check scrape targets and their state
- keep two server instances for different environments apart in one editor

## Example prompts
- Run the instant query `up` and show me which targets are down
- Run a range query for `rate(http_requests_total[5m])` over the last hour with a 1m step
- List metrics starting with `node_` and their metadata

## Similar
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [Oh My Posh Validator](https://affpapa.org/en/nevibecode/mcp/oh-my-posh-validator.md) — MCP server · ★ 23643
- [Keploy](https://affpapa.org/en/nevibecode/mcp/keploy.md) — MCP server · ★ 18727
- [Coder](https://affpapa.org/en/nevibecode/mcp/coder.md) — MCP server · ★ 17160
- [mcp](https://affpapa.org/en/nevibecode/mcp/kubeshark-mcp.md) — MCP server · ★ 12109

## Other versions with the same name
- [Prometheus MCP Server · prometheus](https://affpapa.org/en/nevibecode/mcp/prometheus-prometheus-mcp-server.md) — ★ 127

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
