proxmox-mcp
Proxmox-mcp
Простой Proxmox MCP
MCP-сервер для управления Proxmox VE
38 инструментов — узлы, виртуальные машины QEMU, контейнеры LXC, хранилища, кластер, снимки.
Почему именно этот?
Один образ, мультиархитектурный —
docker run ghcr.io/akmalovaa/proxmox-mcp:latestи готовоТолько переменные окружения — никаких файлов конфигурации, баз данных или состояний
По умолчанию «только чтение» — деструктивные операции защищены явным параметром
PROXMOX_RISK_LEVELМинималистичный код — чистый stdio MCP поверх Proxmoxer, без HTTP-сервера, уровня аутентификации и лишних компонентов
Вывод в формате Raw JSON — без форматирования и эмодзи; LLM получает «чистые» данные
Быстрый старт
Образ: ghcr.io/akmalovaa/proxmox-mcp:latest (мультиархитектурный: amd64 + arm64).
1. Экспортируйте учетные данные в профиле вашей оболочки (~/.zprofile, ~/.zshrc или ~/.bashrc):
# base environment:
export PROXMOX_HOST=192.168.1.100
export PROXMOX_USER=root@pam
export PROXMOX_PASSWORD=your-password
# or use token auth (recommended):
export PROXMOX_TOKEN_NAME=mcp
export PROXMOX_TOKEN_VALUE=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
# optional:
export PROXMOX_RISK_LEVEL=readПерезагрузите: source ~/.zprofile (или перезапустите оболочку).
2. Добавьте в ~/.claude/settings.json (Claude Code) или claude_desktop_config.json (Claude Desktop)`:
{
"mcpServers": {
"proxmox": {
"command": "docker",
"args": ["run", "-i", "--rm",
"-e", "PROXMOX_HOST",
"-e", "PROXMOX_USER",
"-e", "PROXMOX_PASSWORD",
"ghcr.io/akmalovaa/proxmox-mcp:latest"]
}
}
}или аутентификация по токену:
{
"mcpServers": {
"proxmox": {
"command": "docker",
"args": ["run", "-i", "--rm",
"-e", "PROXMOX_HOST",
"-e", "PROXMOX_USER",
"-e", "PROXMOX_TOKEN_NAME",
"-e", "PROXMOX_TOKEN_VALUE",
"ghcr.io/akmalovaa/proxmox-mcp:latest"]
}
}
}Команда docker run -e VAR без значения передает переменную хоста — никаких секретов в файле конфигурации. Перезапустите клиент — и 38 инструментов Proxmox станут доступны.
Для аутентификации по паролю замените переменные токена на PROXMOX_PASSWORD.
Примечание: Claude Desktop на macOS запускается через launchd и не наследует
~/.zprofile/~/.zshrc. Либо добавьте экспорт в~/.zshenv, либо используйте встроенный блок"env": { ... }в конфигурации.
Конфигурация
Все настройки задаются через переменные окружения — укажите их в профиле оболочки, передайте встроенно в docker run -e или объявите в блоке env вашего MCP-клиента.
Переменная | По умолчанию | Описание |
| — | Хост Proxmox (IP или имя) |
|
| Пользователь API |
Auth | — | |
|
| Порт API |
|
| Проверка TLS-сертификата |
|
|
|
Аутентификация: токен или пароль
Выберите один вариант. Если заданы оба, приоритет у токена.
Токен (рекомендуется) — создайте в интерфейсе Proxmox: Datacenter → Permissions → API Tokens → Add (снимите галочку Privilege Separation). Затем:
export PROXMOX_TOKEN_NAME=mcp
export PROXMOX_TOKEN_VALUE=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxПароль (резервный вариант):
export PROXMOX_PASSWORD=your-passwordУровни риска
PROXMOX_RISK_LEVEL ограничивает деструктивные операции:
Уровень | Добавляет |
| инструменты только для чтения |
| + запуск / остановка / перезагрузка / приостановка / клонирование / создание снимка |
| + удаление снимка / откат к снимку |
Каждый вызов с повышенными правами записывается в stderr (ALLOW / DENY + инструмент + уровень).
Инструменты
Узлы (7)
Инструмент | Описание |
| Список всех узлов кластера со статусом, CPU, памятью, временем работы |
| Подробные метрики узла (CPU, память, диск, нагрузка, ядро) |
| Сетевые интерфейсы на узле |
| Физические диски на узле |
| Недавние задачи на узле |
| Статус конкретной задачи по UPID |
| Лог выполнения задачи |
Виртуальные машины QEMU (14)
Инструмент | Уровень | Описание |
| read | Список всех ВМ, опционально фильтрация по узлу |
| read | Текущий статус ВМ (запущена/остановлена, CPU, память) |
| read | Конфигурация ВМ (оборудование, диски, сеть) |
| read | Список всех снимков ВМ |
| lifecycle | Запуск ВМ |
| lifecycle | Принудительная остановка ВМ |
| lifecycle | Корректное выключение ACPI с таймаутом |
| lifecycle | Перезагрузка через ACPI |
| lifecycle | Приостановка ВМ |
| lifecycle | Возобновление работы приостановленной ВМ |
| lifecycle | Полное или связанное клонирование |
| lifecycle | Создание снимка |
| all | Удаление снимка |
| all | Откат к снимку |
Контейнеры LXC (11)
Инструмент | Уровень | Описание |
| read | Список всех контейнеров LXC, опционально фильтрация по узлу |
| read | Текущий статус контейнера |
| read | Конфигурация контейнера |
| read | Список всех снимков |
| lifecycle | Запуск контейнера |
| lifecycle | Принудительная остановка контейнера |
| lifecycle | Корректное выключение с таймаутом |
| lifecycle | Перезагрузка контейнера |
| lifecycle | Создание снимка |
| all | Удаление снимка |
| all | Откат к снимку |
Хранилища (2)
Инструмент | Описание |
| Пулы хранилищ с использованием, опционально фильтрация по узлу |
| Содержимое пула хранилища (ISO, бэкапы, образы, шаблоны) |
Кластер (4)
Инструмент | Описание |
| Состояние кластера, кворум, членство узлов |
| Все ресурсы (ВМ, контейнеры, хранилища, узлы) |
| Настроенные задачи резервного копирования |
| Следующий доступный ID для ВМ/контейнера |
Архитектура
src/proxmox_mcp/
├── server.py # FastMCP instance + entry point
├── config.py # Pydantic Settings (PROXMOX_ prefix)
├── client.py # Proxmoxer connection via lifespan
└── tools/ # nodes, vms, containers, storage, clusterПо умолчанию «только чтение» — инструменты с повышенными правами защищены
PROXMOX_RISK_LEVELЕдиное соединение — клиент Proxmoxer создается один раз при запуске и используется совместно в течение жизненного цикла
Вывод в формате Raw JSON — без форматирования; LLM получает данные напрямую
Разработка
Запуск в автономном режиме (тестирование)
export PROXMOX_HOST=192.168.1.100
export PROXMOX_USER=root@pam
export PROXMOX_TOKEN_NAME=mcp
export PROXMOX_TOKEN_VALUE=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
docker run -i --rm \
-e PROXMOX_HOST -e PROXMOX_USER \
-e PROXMOX_TOKEN_NAME -e PROXMOX_TOKEN_VALUE \
ghcr.io/akmalovaa/proxmox-mcp:latestБез Docker (UV)
git clone https://github.com/akmalovaa/proxmox-mcp.git && cd proxmox-mcp && uv syncКонфигурация MCP-клиента:
{
"mcpServers": {
"proxmox": {
"command": "uv",
"args": ["run", "--directory", "/path/to/proxmox-mcp", "proxmox-mcp"],
"env": {
"PROXMOX_HOST": "192.168.1.100",
"PROXMOX_TOKEN_NAME": "mcp",
"PROXMOX_TOKEN_VALUE": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}
}Сборка из исходного кода
git clone https://github.com/akmalovaa/proxmox-mcp.git
cd proxmox-mcp
docker build -t proxmox-mcp .Лицензия
MIT
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/akmalovaa/proxmox-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server