Pavel Shklovsky/prometheus-mcp-server
Built by Metorial, the integration platform for agentic AI.
Pavel Shklovsky/prometheus-mcp-server
Server Summary
Execute PromQL queries
List available metrics
Get metadata for specific metrics
View instant query results
View range query results with different step intervals
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.
Execute PromQL queries against Prometheus
Discover and explore metrics
Authentication support
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.
Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"prometheus": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PROMETHEUS_URL",
"ghcr.io/pab1it0/prometheus-mcp-server:latest"
],
"env": {
"PROMETHEUS_URL": ""
}
}
}
}
Claude Code
Install via the Claude Code CLI:
claude mcp add prometheus --env PROMETHEUS_URL=http://your-prometheus:9090 -- docker run -i --rm -e PROMETHEUS_URL ghcr.io/pab1it0/prometheus-mcp-server:latest
VS Code / Cursor / Windsurf
Add to your MCP settings in the respective IDE:
{
"prometheus": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PROMETHEUS_URL",
"ghcr.io/pab1it0/prometheus-mcp-server:latest"
],
"env": {
"PROMETHEUS_URL": ""
}
}
}
Docker Desktop
The easiest way to run the Prometheus MCP server is through Docker Desktop:
Via MCP Catalog: Visit the Prometheus MCP Server on Docker Hub and click the button above
Via MCP Toolkit: Use Docker Desktop's MCP Toolkit extension to discover and install the server
Configure your connection using environment variables (see Configuration Options below)
Manual Docker Setup
Run directly with Docker:
# With environment variables
docker run -i --rm \
-e PROMETHEUS_URL="http://your-prometheus:9090" \
ghcr.io/pab1it0/prometheus-mcp-server:latest
# With authentication
docker run -i --rm \
-e PROMETHEUS_URL="http://your-prometheus:9090" \
-e PROMETHEUS_USERNAME="admin" \
-e PROMETHEUS_PASSWORD="password" \
ghcr.io/pab1it0/prometheus-mcp-server:latest
Variable | Description | Required |
---|---|---|
PROMETHEUS_URL | URL of your Prometheus server | Yes |
PROMETHEUS_USERNAME | Username for basic authentication | No |
PROMETHEUS_PASSWORD | Password for basic authentication | No |
PROMETHEUS_TOKEN | Bearer token for authentication | No |
ORG_ID | Organization ID for multi-tenant setups | No |
PROMETHEUS_MCP_SERVER_TRANSPORT | Transport mode (stdio, http, sse) | No (default: stdio) |
PROMETHEUS_MCP_BIND_HOST | Host for HTTP transport | No (default: 127.0.0.1) |
PROMETHEUS_MCP_BIND_PORT | Port for HTTP transport | No (default: 8080) |
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 .
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
When adding new features, please also add corresponding tests.
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 |
MIT