MCP-сервер для запросов к Prometheus. Выполняет PromQL-запросы, получает метрики, исследует алерты и историю метрик через LLM-интерфейс для DevOps-аналитики.
# Claude Desktop — claude_desktop_config.json:
{ "mcpServers": { "prometheus": { "command": "uvx", "args": ["prometheus-mcp-server"], "env": { "PROMETHEUS_URL": "http://localhost:9090" } } } }
# Claude Code (CLI):
claude mcp add prometheus --env PROMETHEUS_URL=http://localhost:9090 -- uvx prometheus-mcp-server
# OpenCode — ~/.config/opencode/opencode.json:
{ "mcp": { "prometheus": { "type": "local", "command": ["uvx", "prometheus-mcp-server"], "environment": { "PROMETHEUS_URL": "http://localhost:9090" } } } }
Дайте ассистентам на базе ИИ возможность запрашивать ваши метрики Prometheus.
MCP-сервер (Протокол контекста модели), который предоставляет доступ к вашим метрикам и запросам Prometheus через стандартизированные интерфейсы MCP, позволяя ассистентам на базе ИИ выполнять запросы PromQL и анализировать данные ваших метрик.
Claude Desktop
Добавьте в конфигурацию Claude Desktop:
{
"mcpServers": {
"prometheus": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PROMETHEUS_URL",
"ghcr.io/pab1it0/prometheus-mcp-server:latest"
],
"env": {
"PROMETHEUS_URL": "<your-prometheus-url>"
}
}
}
}
Claude Code
Установите через CLI Claude Code:
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
Добавьте в настройки MCP в соответствующей IDE:
{
"prometheus": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PROMETHEUS_URL",
"ghcr.io/pab1it0/prometheus-mcp-server:latest"
],
"env": {
"PROMETHEUS_URL": "<your-prometheus-url>"
}
}
}
Docker Desktop
Самый простой способ запустить MCP-сервер Prometheus — через Docker Desktop:
Через каталог MCP: Посетите MCP-сервер Prometheus на Docker Hub и нажмите кнопку выше.
Через набор инструментов MCP: Используйте расширение MCP Toolkit в Docker Desktop для обнаружения и установки сервера.
Настройте подключение с помощью переменных окружения (см. параметры конфигурации ниже).
Ручная настройка Docker
Запускайте напрямую с помощью Docker:
# С переменными окружения
docker run -i --rm \
-e PROMETHEUS_URL="http://your-prometheus:9090" \
ghcr.io/pab1it0/prometheus-mcp-server:latest
# С аутентификацией
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
Helm Chart (Kubernetes)
Разверните в Kubernetes с помощью Helm-чарта из OCI-реестра:
helm install prometheus-mcp-server \
oci://ghcr.io/pab1it0/charts/prometheus-mcp-server \
--version 1.0.0 \
--set prometheus.url="http://prometheus:9090"
С аутентификацией:
helm install prometheus-mcp-server \
oci://ghcr.io/pab1it0/charts/prometheus-mcp-server \
--version 1.0.0 \
--set prometheus.url="http://prometheus:9090" \
--set auth.username="admin" \
--set auth.password="secret"
С пользовательским файлом значений:
helm install prometheus-mcp-server \
oci://ghcr.io/pab1it0/charts/prometheus-mcp-server \
--version 1.0.0 \
-f values.yaml
Смотрите значения чарта для полного списка доступных параметров конфигурации.
| Переменная | Описание | Обязательность |
|---|---|---|
PROMETHEUS_URL |
URL-адрес вашего сервера Prometheus | Да |
PROMETHEUS_URL_SSL_VERIFY |
Установите в False для отключения проверки SSL | Нет |
PROMETHEUS_DISABLE_LINKS |
Установите в True для отключения ссылок на интерфейс Prometheus в результатах запросов (экономит токены контекста) | Нет |
PROMETHEUS_REQUEST_TIMEOUT |
Тайм-аут запроса в секундах для предотвращения зависания запросов (защита от DDoS) | Нет (по умолчанию: 30) |
PROMETHEUS_USERNAME |
Имя пользователя для базовой аутентификации | Нет |
PROMETHEUS_PASSWORD |
Пароль для базовой аутентификации | Нет |
PROMETHEUS_TOKEN |
Bearer-токен для аутентификации | Нет |
PROMETHEUS_CLIENT_CERT |
Путь к файлу клиентского сертификата для взаимной аутентификации TLS | Нет |
PROMETHEUS_CLIENT_KEY |
Путь к файлу закрытого ключа клиента для взаимной аутентификации TLS | Нет |
REQUESTS_CA_BUNDLE |
Путь к файлу CA-бандла для проверки сертификата TLS сервера (стандартная переменная окружения библиотеки requests) |
Нет |
ORG_ID |
ID организации для конфигураций с многотенантностью | Нет |
PROMETHEUS_MCP_SERVER_TRANSPORT |
Режим транспорта (stdio, http, sse) | Нет (по умолчанию: stdio) |
PROMETHEUS_MCP_BIND_HOST |
Хост для HTTP-транспорта | Нет (по умолчанию: 127.0.0.1) |
PROMETHEUS_MCP_BIND_PORT |
Порт для HTTP-транспорта | Нет (по умолчанию: 8080) |
PROMETHEUS_MCP_STATELESS_HTTP |
Включить безсостоятельный HTTP-режим для поддержки нескольких реплик | Нет (по умолчанию: False) |
PROMETHEUS_CUSTOM_HEADERS |
Пользовательские заголовки в виде JSON-строки | Нет |
TOOL_PREFIX |
Префикс для всех имен инструментов (например, staging превратится в staging_execute_query). Полезно для запуска нескольких экземпляров, нацеленных на разные окружения, в Cursor |
Нет |
| Инструмент | Категория | Описание |
|---|---|---|
health_check |
Система | Эндпоинт проверки работоспособности для мониторинга контейнеров и проверки статуса |
execute_query |
Запрос | Выполнение мгновенного PromQL-запроса к Prometheus |
execute_range_query |
Запрос | Выполнение диапазонного PromQL-запроса с указанием времени начала, времени конца и интервала шага |
list_metrics |
Обнаружение | Список всех доступных метрик в Prometheus с поддержкой постраничной навигации и фильтрации |
get_metric_metadata |
Обнаружение | Получение метаданных для одной метрики или пакетное получение метаданных с возможностью фильтрации |
get_targets |
Обнаружение | Получение информации обо всех скрапинг-целях |
Список инструментов является настраиваемым, поэтому вы можете выбрать, какие инструменты будут доступны MCP-клиенту. Это полезно, если вы не используете определенный функционал или не хотите слишком сильно загружать окно контекста.
Мы приветствуем вклад! Пожалуйста, ознакомьтесь с нашим Руководством по внесению вклада для получения подробной информации о том, как начать работу, стандарты кодирования и процесс создания запроса на слияние.
Этот проект использует uv для управления зависимостями. Установите uv, следуя инструкциям для вашей платформы:
curl -LsSf https://astral.sh/uv/install.sh | sh
Затем вы можете создать виртуальное окружение и установить зависимости с помощью:
uv venv
source .venv/bin/activate # В Unix/macOS
.venv\Scripts\activate # В Windows
uv pip install -e .
Проект включает всесторонний набор тестов, который обеспечивает работоспособность функционала и помогает предотвратить регрессии.
Запустите тесты с помощью pytest:
# Установите зависимости для разработки
uv pip install -e ".[dev]"
# Запустите тесты
pytest
# Запустите с отчетом о покрытии
pytest --cov=src --cov-report=term-missing
При добавлении новых возможностей, пожалуйста, также добавляйте соответствующие тесты.
MIT