Skip to main content

Prometheus MCP Server

A Model Context Protocol (MCP) server for Prometheus.

This provides access to your Prometheus metrics and queries through standardized MCP interfaces, allowing AI assistants to execute PromQL queries and analyze your metrics data.

Prometheus Server MCP server

Quick Start

🚀 For End Users (PyPI)

# Install and run in one command
uvx --from raihan0824-prometheus-mcp-server prometheus-mcp-server

🛠️ For Developers (Local)

# Clone and install in development mode
git clone https://github.com/raihan0824/prometheus-mcp-server.git
cd prometheus-mcp-server
uv pip install -e .
prometheus-mcp-server

Features

  • Execute PromQL queries against Prometheus

  • Discover and explore metrics

    • List available metrics
    • Get metadata for specific metrics
    • View instant query results
    • View range query results with different step intervals
  • Authentication support

    • Basic auth from environment variables
    • Bearer token auth from environment variables
  • Docker containerization support

  • Provide interactive tools for AI assistants

The list of tools is configurable, so you can choose which tools you want to make available to the MCP client. This is useful if you don't use certain functionality or if you don't want to take up too much of the context window.

Installation

Option 1: Install from PyPI (Recommended for Users)

# Using uvx (recommended for Claude Desktop)
uvx --from raihan0824-prometheus-mcp-server prometheus-mcp-server

# Using pip
pip install raihan0824-prometheus-mcp-server

# Using uv
uv add raihan0824-prometheus-mcp-server

Option 2: Install from Source (For Development)

# Clone the repository
git clone https://github.com/raihan0824/prometheus-mcp-server.git
cd prometheus-mcp-server

# Install with uv (development mode)
uv pip install -e .

# Or install with pip (development mode)
pip install -e .

Usage

For End Users (Using PyPI Package)

If you want to use the pre-built package from PyPI:

# Install and run in one command
uvx --from raihan0824-prometheus-mcp-server prometheus-mcp-server

# Or install permanently
pip install raihan0824-prometheus-mcp-server
prometheus-mcp-server

For Developers (Local Development)

If you want to modify the code or contribute:

# Clone and install in development mode
git clone https://github.com/raihan0824/prometheus-mcp-server.git
cd prometheus-mcp-server
uv pip install -e .

# Run the development version
prometheus-mcp-server

  1. Ensure your Prometheus server is accessible from the environment where you'll run this MCP server.

  2. Configure the environment variables for your Prometheus server, either through a .env file or system environment variables:

# Required: Prometheus configuration
PROMETHEUS_URL=http://your-prometheus-server:9090

# Optional: Authentication credentials (if needed)
# Choose one of the following authentication methods if required:

# For basic auth
PROMETHEUS_USERNAME=your_username
PROMETHEUS_PASSWORD=your_password

# For bearer token auth
PROMETHEUS_TOKEN=your_token

# Optional: Custom MCP configuration
PROMETHEUS_MCP_SERVER_TRANSPORT=stdio # Choose between http, stdio, sse. If undefined, stdio is set as the default transport.

# Optional: Only relevant for non-stdio transports
PROMETHEUS_MCP_BIND_HOST=localhost # if undefined, 127.0.0.1 is set by default.
PROMETHEUS_MCP_BIND_PORT=8080 # if undefined, 8080 is set by default.

# Optional: For multi-tenant setups like Cortex, Mimir or Thanos
ORG_ID=your_organization_id
  1. Add the server configuration to your client configuration file. For example, for Claude Desktop:

Option A: Using uvx with PyPI package (Recommended for Users)

{
  "mcpServers": {
    "prometheus": {
      "command": "uvx",
      "args": [
        "--from",
        "raihan0824-prometheus-mcp-server",
        "prometheus-mcp-server"
      ],
      "env": {
        "PROMETHEUS_URL": "<your-prometheus-url>",
        "PROMETHEUS_USERNAME": "<your-username>",
        "PROMETHEUS_PASSWORD": "<your-password>"
      }
    }
  }
}

Option B: Using uvx with local repository

{
  "mcpServers": {
    "prometheus": {
      "command": "uvx",
      "args": [
        "--directory",
        "/path/to/prometheus-mcp-server",
        "run",
        "prometheus-mcp-server"
      ],
      "env": {
        "PROMETHEUS_URL": "<your-prometheus-url>",
        "PROMETHEUS_USERNAME": "<your-username>",
        "PROMETHEUS_PASSWORD": "<your-password>"
      }
    }
  }
}

Option C: Using uvx with Git repository

{
  "mcpServers": {
    "prometheus": {
      "command": "uvx",
      "args": [
        "run",
        "--from",
        "git+https://github.com/raihan0824/prometheus-mcp-server.git",
        "prometheus-mcp-server"
      ],
      "env": {
        "PROMETHEUS_URL": "<your-prometheus-url>",
        "PROMETHEUS_USERNAME": "<your-username>",
        "PROMETHEUS_PASSWORD": "<your-password>"
      }
    }
  }
}

Option D: Using Docker (Legacy)

{
  "mcpServers": {
    "prometheus": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "PROMETHEUS_URL",
        "ghcr.io/pab1it0/prometheus-mcp-server:latest"
      ],
      "env": {
        "PROMETHEUS_URL": "<url>",
        "PROMETHEUS_MCP_SERVER_TRANSPORT": "http",
        "PROMETHEUS_MCP_BIND_HOST": "localhost",
        "PROMETHEUS_MCP_BIND_PORT": "8080"
      }
    }
  }
}

Development

Contributions are welcome! Please open an issue or submit a pull request if you have any suggestions or improvements.

This project uses uv to manage dependencies. Install uv following the instructions for your platform:

curl -LsSf https://astral.sh/uv/install.sh | sh

You can then create a virtual environment and install the dependencies with:

uv venv
source .venv/bin/activate  # On Unix/macOS
.venv\Scripts\activate     # On Windows
uv pip install -e .

Project Structure

The project has been organized with a src directory structure:

prometheus-mcp-server/
├── src/
│   └── prometheus_mcp_server/
│       ├── __init__.py      # Package initialization
│       ├── server.py        # MCP server implementation
│       ├── main.py          # Main application logic
├── Dockerfile               # Docker configuration
├── docker-compose.yml       # Docker Compose configuration
├── .dockerignore            # Docker ignore file
├── pyproject.toml           # Project configuration
└── README.md                # This file

Testing

The project includes a comprehensive test suite that ensures functionality and helps prevent regressions.

Run the tests with pytest:

# Install development dependencies
uv pip install -e ".[dev]"

# Run the tests
pytest

# Run with coverage report
pytest --cov=src --cov-report=term-missing

Tests are organized into:

  • Configuration validation tests
  • Server functionality tests
  • Error handling tests
  • Main application tests

When adding new features, please also add corresponding tests.

Tools

Tool Category Description
execute_query Query Execute a PromQL instant query against Prometheus
execute_range_query Query Execute a PromQL range query with start time, end time, and step interval
list_metrics Discovery List all available metrics in Prometheus
get_metric_metadata Discovery Get metadata for a specific metric
get_targets Discovery Get information about all scrape targets

License

MIT


Metadata

Release files for raihan0824-prometheus-mcp-server 1.2.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for raihan0824-prometheus-mcp-server 1.2.13
File Size Uploaded
raihan0824_prometheus_mcp_server-1.2.13.tar.gz 22.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for raihan0824-prometheus-mcp-server 1.2.13
File Interpreter ABI Platform
raihan0824_prometheus_mcp_server-1.2.13-py3-none-any.whl Python 3 none any Details

Total release size: 34.3 kB

Release files / raihan0824_prometheus_mcp_server-1.2.13.tar.gz

Download URL raihan0824_prometheus_mcp_server-1.2.13.tar.gz
Size 22.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f90ee855f8a3dfb4accc468b9e2ccfbcfade38d751a2f5811781fe3b4260e2eb
BLAKE2b-256 checksum
How to use checksums
14ab7c75f2ba28b58e9d25ebc5ccff31961efb56806e209b5d1b9e1c71f85b82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.11

Release files / raihan0824_prometheus_mcp_server-1.2.13-py3-none-any.whl

Download URL raihan0824_prometheus_mcp_server-1.2.13-py3-none-any.whl
Size 12.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3ac1e1b6d0533e46095f4e33a818893657d143674c00266524cf7f67131298bd
BLAKE2b-256 checksum
How to use checksums
7a0767b533f4c349a641d68b767449c0469338aa44a5cf730250d1e123c9f8bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.11

Release history Release notifications | RSS feed

This release

1.2.13 This release

2 release files

1.2.12

2 release files

1.2.11

2 release files

1.2.10

2 release files

1.2.9

2 release files

1.2.8

2 release files

1.2.7

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page