Configuration
This server can be configured via environment variables and a few CLI flags. CLI flags take precedence over environment variables for the same setting.
Precedence
CLI flag > environment variable > built-in default
Quick reference
| Name | Type | Default | CLI flag | Description |
|---|---|---|---|---|
PROMETHEUS_URL | string (URL) | http://localhost:9090 | --prometheus-url | Base URL of your Prometheus server |
PROMETHEUS_TIMEOUT | integer (seconds) | 10 | — | HTTP request timeout |
PROMETHEUS_RETRIES | integer | 3 | — | Number of retries for Prometheus API calls |
PROMETHEUS_RETRY_BACKOFF_MS | integer (ms) | 500 | — | Time to wait between retries |
PROMETHEUS_MIN_INTERVAL_MS | integer (ms) | none | — | If set, enforces a minimum interval between query requests (basic rate limit) |
PROMETHEUS_CACHE_TTL_SECS | integer (seconds) | none | — | TTL for simple in-process caches (list metrics and label values) |
PROMETHEUS_USERNAME | string | none | --prometheus-username | Basic auth username |
PROMETHEUS_PASSWORD | string | none | --prometheus-password | Basic auth password |
| — | boolean | false | --mcp | Start MCP server over stdio |
| — | boolean | false | --metrics-exporter | Enable internal Prometheus metrics at /metrics |
| — | integer (port) | 9091 | --metrics-port | Port to expose the internal /metrics endpoint when enabled |
::: note Advanced HTTP behavior (timeout, retries, backoff, rate limiting) is environment-only. Caches are per-process and reset on restart. :::
Basic Authentication
You can configure Basic Auth using either environment variables or CLI flags.
bash
export PROMETHEUS_URL=https://prom.example.com
export PROMETHEUS_USERNAME=api
export PROMETHEUS_PASSWORD=secret
prometheus-mcp --mcpbash
prometheus-mcp --mcp \
--prometheus-url https://prom.example.com \
--prometheus-username api \
--prometheus-password secretbash
docker run --rm -it \
-e PROMETHEUS_URL=https://prom.example.com \
-e PROMETHEUS_USERNAME=api \
-e PROMETHEUS_PASSWORD=secret \
prometheus-mcp:latest --mcpSecurity
Avoid committing secrets. Prefer environment variables, Docker secrets, or a host secret manager.
Metrics Exporter
If enabled with --metrics-exporter, the binary exposes its own Prometheus metrics at /metrics on --metrics-port ( default 9091).
bash
prometheus-mcp --mcp --metrics-exporter --metrics-port 9091
curl -s http://localhost:9091/metrics | head