Skip to main content
Glama
akmalovaa

proxmox-mcp

by akmalovaa

Proxmox-mcp

CI Release License: MIT Python 3.14 GHCR 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": { ... } в конфигурации.

Related MCP server: nandi-proxmox-mcp

Конфигурация

Все настройки задаются через переменные окружения — укажите их в профиле оболочки, передайте встроенно в docker run -e или объявите в блоке env вашего MCP-клиента.

Переменная

По умолчанию

Описание

PROXMOX_HOST

Хост Proxmox (IP или имя)

PROXMOX_USER

root@pam

Пользователь API

Auth

токен или пароль — см. ниже

PROXMOX_PORT

8006

Порт API

PROXMOX_VERIFY_SSL

false

Проверка TLS-сертификата

PROXMOX_RISK_LEVEL

read

read / lifecycle / all

Аутентификация: токен или пароль

Выберите один вариант. Если заданы оба, приоритет у токена.

Токен (рекомендуется) — создайте в интерфейсе 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 ограничивает деструктивные операции:

Уровень

Добавляет

read (по умолчанию)

инструменты только для чтения

lifecycle

+ запуск / остановка / перезагрузка / приостановка / клонирование / создание снимка

all

+ удаление снимка / откат к снимку

Каждый вызов с повышенными правами записывается в stderr (ALLOW / DENY + инструмент + уровень).

Инструменты

Узлы (7)

Инструмент

Описание

list_nodes

Список всех узлов кластера со статусом, CPU, памятью, временем работы

get_node_status

Подробные метрики узла (CPU, память, диск, нагрузка, ядро)

get_node_networks

Сетевые интерфейсы на узле

get_node_disks

Физические диски на узле

get_node_tasks

Недавние задачи на узле

get_task_status

Статус конкретной задачи по UPID

get_task_log

Лог выполнения задачи

Виртуальные машины QEMU (14)

Инструмент

Уровень

Описание

list_vms

read

Список всех ВМ, опционально фильтрация по узлу

get_vm_status

read

Текущий статус ВМ (запущена/остановлена, CPU, память)

get_vm_config

read

Конфигурация ВМ (оборудование, диски, сеть)

list_vm_snapshots

read

Список всех снимков ВМ

start_vm

lifecycle

Запуск ВМ

stop_vm

lifecycle

Принудительная остановка ВМ

shutdown_vm

lifecycle

Корректное выключение ACPI с таймаутом

reboot_vm

lifecycle

Перезагрузка через ACPI

suspend_vm

lifecycle

Приостановка ВМ

resume_vm

lifecycle

Возобновление работы приостановленной ВМ

clone_vm

lifecycle

Полное или связанное клонирование

create_vm_snapshot

lifecycle

Создание снимка

delete_vm_snapshot

all

Удаление снимка

rollback_vm_snapshot

all

Откат к снимку

Контейнеры LXC (11)

Инструмент

Уровень

Описание

list_containers

read

Список всех контейнеров LXC, опционально фильтрация по узлу

get_container_status

read

Текущий статус контейнера

get_container_config

read

Конфигурация контейнера

list_container_snapshots

read

Список всех снимков

start_container

lifecycle

Запуск контейнера

stop_container

lifecycle

Принудительная остановка контейнера

shutdown_container

lifecycle

Корректное выключение с таймаутом

reboot_container

lifecycle

Перезагрузка контейнера

create_container_snapshot

lifecycle

Создание снимка

delete_container_snapshot

all

Удаление снимка

rollback_container_snapshot

all

Откат к снимку

Хранилища (2)

Инструмент

Описание

list_storage

Пулы хранилищ с использованием, опционально фильтрация по узлу

get_storage_content

Содержимое пула хранилища (ISO, бэкапы, образы, шаблоны)

Кластер (4)

Инструмент

Описание

get_cluster_status

Состояние кластера, кворум, членство узлов

get_cluster_resources

Все ресурсы (ВМ, контейнеры, хранилища, узлы)

get_cluster_backups

Настроенные задачи резервного копирования

get_next_vmid

Следующий доступный 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

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
6Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • A MCP server built for developers enabling Git based project management with project and personal…

  • Go MCP server for GitLab: 2 dynamic tools reach 1000+ REST/GraphQL actions. Free/CE, no paid tier.

  • Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.

View all MCP Connectors

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