Сервер Prometheus MCP
Сервер протокола контекста модели (MCP) для Prometheus.
Это обеспечивает доступ к вашим метрикам и запросам Prometheus через стандартизированные интерфейсы MCP, позволяя помощникам на основе ИИ выполнять запросы PromQL и анализировать данные ваших метрик.
Функции
[x] Выполнение запросов PromQL к Prometheus
[x] Откройте для себя и изучите метрики
[x] Список доступных метрик
[x] Получить метаданные для определенных показателей
[x] Просмотр мгновенных результатов запроса
[x] Просмотр результатов запроса диапазона с различными интервалами шагов
[x] Поддержка аутентификации
[x] Базовая аутентификация из переменных окружения
[x] Аутентификация токена носителя из переменных среды
[x] Поддержка контейнеризации Docker
[x] Предоставьте интерактивные инструменты для помощников на основе искусственного интеллекта
Список инструментов настраивается, поэтому вы можете выбрать, какие инструменты вы хотите сделать доступными для клиента MCP. Это полезно, если вы не используете определенные функции или не хотите занимать слишком много места в окне контекста.
Related MCP server: Prometheus MCP Server
Использование
Убедитесь, что ваш сервер Prometheus доступен из среды, в которой вы будете запускать этот сервер MCP.
Настройте переменные среды для вашего сервера Prometheus с помощью файла
.envили системных переменных среды:
# 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: For multi-tenant setups like Cortex, Mimir or Thanos
ORG_ID=your_organization_idДобавьте конфигурацию сервера в файл конфигурации клиента. Например, для Claude Desktop:
{
"mcpServers": {
"prometheus": {
"command": "uv",
"args": [
"--directory",
"<full path to prometheus-mcp-server directory>",
"run",
"src/prometheus_mcp_server/main.py"
],
"env": {
"PROMETHEUS_URL": "http://your-prometheus-server:9090",
"PROMETHEUS_USERNAME": "your_username",
"PROMETHEUS_PASSWORD": "your_password"
}
}
}
}Примечание: если вы видите
Error: spawn uv ENOENTв Claude Desktop, вам может потребоваться указать полный путь кuvили задать переменную средыNO_UV=1в конфигурации.
Использование Докера
Этот проект включает поддержку Docker для простого развертывания и изоляции.
Готовый образ Docker
Самый простой способ использовать этот проект — использовать готовый образ из GitHub Container Registry:
docker pull ghcr.io/pab1it0/prometheus-mcp-server:latestВы также можете использовать определенные версии с тегами:
docker pull ghcr.io/pab1it0/prometheus-mcp-server:1.0.0Локальная сборка образа Docker
Если вы предпочитаете создать изображение самостоятельно:
docker build -t prometheus-mcp-server .Работа с Docker
Запустить сервер с помощью Docker можно несколькими способами:
Использование docker run с готовым образом:
docker run -it --rm \
-e PROMETHEUS_URL=http://your-prometheus-server:9090 \
-e PROMETHEUS_USERNAME=your_username \
-e PROMETHEUS_PASSWORD=your_password \
ghcr.io/pab1it0/prometheus-mcp-server:latestИспользование docker run с локально собранным образом:
docker run -it --rm \
-e PROMETHEUS_URL=http://your-prometheus-server:9090 \
-e PROMETHEUS_USERNAME=your_username \
-e PROMETHEUS_PASSWORD=your_password \
prometheus-mcp-serverИспользование docker-compose:
Создайте файл .env с вашими учетными данными Prometheus, а затем запустите:
docker-compose upРабота с Docker в Claude Desktop
Чтобы использовать контейнерный сервер с Claude Desktop, обновите конфигурацию для использования Docker с переменными среды:
{
"mcpServers": {
"prometheus": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e", "PROMETHEUS_URL",
"-e", "PROMETHEUS_USERNAME",
"-e", "PROMETHEUS_PASSWORD",
"ghcr.io/pab1it0/prometheus-mcp-server:latest"
],
"env": {
"PROMETHEUS_URL": "http://your-prometheus-server:9090",
"PROMETHEUS_USERNAME": "your_username",
"PROMETHEUS_PASSWORD": "your_password"
}
}
}
}Эта конфигурация передает переменные среды из Claude Desktop в контейнер Docker, используя флаг -e только с именем переменной и предоставляя фактические значения в объекте env .
Примечание о реализации Docker : настройка Docker была обновлена для соответствия структуре проекта chess-mcp, который, как было доказано, работает правильно с Claude. Новая реализация использует многоступенчатый процесс сборки и запускает скрипт точки входа напрямую без промежуточного скрипта оболочки. Такой подход обеспечивает правильную обработку stdin/stdout для связи MCP.
Разработка
Вклады приветствуются! Пожалуйста, откройте тему или отправьте запрос на извлечение, если у вас есть какие-либо предложения или улучшения.
Этот проект использует uv для управления зависимостями. Установите uv , следуя инструкциям для вашей платформы:
curl -LsSf https://astral.sh/uv/install.sh | shЗатем вы можете создать виртуальную среду и установить зависимости с помощью:
uv venv
source .venv/bin/activate # On Unix/macOS
.venv\Scripts\activate # On Windows
uv pip install -e .Структура проекта
Проект организован с использованием структуры каталогов src :
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Тестирование
Проект включает в себя комплексный набор тестов, который обеспечивает функциональность и помогает предотвратить регрессии.
Запустите тесты с помощью pytest:
# Install development dependencies
uv pip install -e ".[dev]"
# Run the tests
pytest
# Run with coverage report
pytest --cov=src --cov-report=term-missingТесты организованы следующим образом:
Тесты проверки конфигурации
Тесты функциональности сервера
Тесты обработки ошибок
Основные прикладные тесты
При добавлении новых функций, пожалуйста, также добавляйте соответствующие тесты.
Инструменты
Инструмент | Категория | Описание |
| Запрос | Выполнить мгновенный запрос PromQL к Prometheus |
| Запрос | Выполнить запрос диапазона PromQL с указанием начального времени, конечного времени и интервала шага |
| Открытие | Список всех доступных метрик в Prometheus |
| Открытие | Получить метаданные для определенной метрики |
| Открытие | Получить информацию обо всех целях скрапа |
Лицензия
Массачусетский технологический институт