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 --mcp
bash
prometheus-mcp --mcp \
--prometheus-url https://prom.example.com \
--prometheus-username api \
--prometheus-password secret
bash
docker run --rm -it \
-e PROMETHEUS_URL=https://prom.example.com \
-e PROMETHEUS_USERNAME=api \
-e PROMETHEUS_PASSWORD=secret \
prometheus-mcp:latest --mcp
Security
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