prometheus-mcp 0.0.1

Prometheus Model Context Protocol (MCP) Rust server
Documentation
# Usage

This project provides two ways to interact with Prometheus:
- CLI subcommands for one-off queries
- An MCP server (JSON-RPC over stdio) for use with MCP-compatible apps (for example Claude Desktop)

If you’re new here, start with CLI to verify connectivity, then enable MCP mode.

## CLI

The CLI mirrors the Prometheus tools exposed by the MCP server.

- Instant query

```bash
prometheus-mcp query --query 'up' --prometheus-url http://localhost:9090
# optionally set an evaluation time
prometheus-mcp query --query 'up' --time '2025-09-27T12:00:00Z'
```

- Range query

```bash
prometheus-mcp range --query 'rate(http_requests_total[5m])' \
  --start '2025-09-27T12:00:00Z' --end '2025-09-27T13:00:00Z' --step '30s'
```

- List metrics

```bash
prometheus-mcp list-metrics
```

- Metric metadata

```bash
prometheus-mcp metadata --metric 'up'
```

- Series selectors (repeat --selector)

```bash
prometheus-mcp series --selector 'up' --selector 'node_cpu_seconds_total{mode="idle"}'
```

- Label values

```bash
prometheus-mcp label-values --label 'job'
```

Notes
- Time parameters are passed to Prometheus as-is; use RFC3339 (e.g., 2025-09-27T12:00:00Z), Unix epoch seconds, or Prometheus-compatible times.

## MCP server (stdio JSON-RPC)

Start the MCP server over stdio:

```bash
prometheus-mcp --mcp --prometheus-url http://localhost:9090
```

Optional: enable the built-in Prometheus metrics exporter (HTTP /metrics):

```bash
prometheus-mcp --mcp --metrics-exporter --metrics-port 9091
```

The MCP transport is stdio only. Bindings for HTTP/SSE are not provided by this binary.

## Build from source

- With Cargo (debug):

```bash
cargo run -- --help
cargo run -- --mcp --prometheus-url http://localhost:9090
```

- With Cargo (release):

```bash
cargo build --release
./target/release/prometheus-mcp --mcp --prometheus-url http://localhost:9090
```