MCP Prometheus

MCP MCP Servers Open Source v1.6.1 · 01.05.2026 активный

MCP-сервер для запросов к Prometheus. Выполняет PromQL-запросы, получает метрики, исследует алерты и историю метрик через LLM-интерфейс для DevOps-аналитики.

v1.6.1
01.05.2026 current
v0.3.0
01.04.2025
Добавлен 06.07.2026 · Обновлён 06.07.2026 · MCP Servers
Установка
# 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 Server

GitHub Container Registry Helm Chart GitHub Release Codecov Python License

Дайте ассистентам на базе ИИ возможность запрашивать ваши метрики Prometheus.

MCP-сервер (Протокол контекста модели), который предоставляет доступ к вашим метрикам и запросам Prometheus через стандартизированные интерфейсы MCP, позволяя ассистентам на базе ИИ выполнять запросы PromQL и анализировать данные ваших метрик.

Начало работы

Предварительные требования

  • Сервер Prometheus, доступный из вашей среды
  • Клиент, совместимый с MCP (Claude Desktop, VS Code, Cursor, Windsurf и т.д.)

Методы установки

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:

Add to Docker Desktop

  1. Через каталог MCP: Посетите MCP-сервер Prometheus на Docker Hub и нажмите кнопку выше.

  2. Через набор инструментов MCP: Используйте расширение MCP Toolkit в Docker Desktop для обнаружения и установки сервера.

  3. Настройте подключение с помощью переменных окружения (см. параметры конфигурации ниже).

Ручная настройка 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-клиенту. Это полезно, если вы не используете определенный функционал или не хотите слишком сильно загружать окно контекста.

Возможности

  • Выполнение PromQL-запросов к Prometheus
  • Обнаружение и изучение метрик
  • Список доступных метрик
  • Получение метаданных для конкретных метрик
  • Поиск метаданных метрик по имени или описанию за один вызов
  • Просмотр результатов мгновенных запросов
  • Просмотр результатов диапазонных запросов с различными интервалами шага
  • Поддержка аутентификации
  • Базовая аутентификация с помощью переменных окружения
  • Аутентификация Bearer-токеном с помощью переменных окружения
  • Поддержка контейнеризации с Docker
  • Предоставление интерактивных инструментов для ассистентов на базе ИИ

Разработка

Мы приветствуем вклад! Пожалуйста, ознакомьтесь с нашим Руководством по внесению вклада для получения подробной информации о том, как начать работу, стандарты кодирования и процесс создания запроса на слияние.

Этот проект использует 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

Комментарии
Войдите, чтобы оставить комментарий