prometheus_mcp_server
by: CaesarYangs
A Model Context Protocol (MCP) server enabling LLMs to query, analyze, and interact with Prometheus databases through predefined routes.
📌Overview
Purpose: To provide a Model Context Protocol (MCP) server that enables Large Language Models (LLMs) to easily retrieve and analyze data from Prometheus databases.
Overview: The MCP Server for Prometheus allows for efficient data handling, enabling users to perform complex queries, analyze metrics, and explore data usage patterns through predefined routes. This server enhances control and usability for LLMs interacting with metric data.
Key Features:
-
Data Retrieval: Allows users to fetch specific metrics or data ranges from Prometheus, facilitating targeted analysis.
-
Metric Analysis: Provides tools for performing statistical analysis on the retrieved metrics, ensuring insightful data interpretation.
-
Usage Search: Empowers users to find and explore metric usage patterns, aiding in the understanding and optimization of metric applications.
-
Complex Querying: Supports advanced PromQL queries for in-depth exploration of metric data, enhancing analytical capabilities.
MCP Server for Prometheus
A Model Context Protocol (MCP) server for retrieving data from Prometheus databases. This MCP server enables Large Language Models (LLMs) to invoke tool functions that retrieve and analyze vast amounts of metric data, search metric usage, execute complex queries, and perform other related tasks through pre-defined routes with enhanced control over usage.
- Data Retrieval: Fetch specific metrics or ranges of data from Prometheus.
- Metric Analysis: Perform statistical analysis on retrieved metrics.
- Usage Search: Find and explore metric usage patterns.
- Complex Querying: Execute advanced PromQL queries for in-depth data exploration.
Capabilities
- Retrieve comprehensive metric information, including names and descriptions, from Prometheus
- Fetch and analyze specific metric data using metric names
- Analyze metric data within custom time ranges
- Filter and match data using specific labels (in development)
- Additional features planned
Getting Started
MCP requires a Python virtual environment (venv); all packages should be installed into this venv so the MCP server can be automatically started.
Installing via Smithery
To install Prometheus MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @CaesarYangs/prometheus_mcp_server --client claude
Manual Installation
Prepare Python environment
cd ./src/prometheus_mcp_server
python3 -m venv .venv
Activate the virtual environment:
# Linux/macOS:
source .venv/bin/activate
# Windows:
.venv\Scripts\activate
Install required packages
If pip is missing in your virtual environment, install it manually:
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
Then install all required packages:
pip install -r requirements.txt
Usage
With Cursor Env
Set this in the MCP section in Cursor Settings:
uv --directory /path/to/prometheus_mcp_server run server.py
With MCP Client (including Claude Desktop)
Configure your Claude Desktop app's configuration at ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS):
{
"mcpServers": {
"prometheus": {
"command": "uv",
"args": [
"--directory",
"/path/to/prometheus_mcp_server",
"run",
"server.py"
],
"env": {
"PROMETHEUS_HOST": "http://localhost:9090"
}
}
}
}
Standalone MCP Server
Start the MCP server alone:
uv method
uv --directory /path/to/prometheus_mcp_server run server.py
This method also aligns with how Claude Desktop automatically starts the server.
Regular python method
python3 server.py
Contributing
Contributions are welcome! Here's a quick guide:
- Fork the repo
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
For major changes, please open an issue first to discuss what you would like to change.
Thank you for your contributions!
License
MIT License
References & Acknowledgments
This project was inspired by or uses code from the following open-source projects:
- Prometheus API Client - The Prometheus API calling code is modified based on this library
- MySQL MCP Server - A similar database oriented MCP server implementation