# Proxmox VE

MCP-сервер, через который агент видит ноды Proxmox VE, виртуальные машины, контейнеры, хранилища и снимки. По умолчанию только чтение.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 5
- Автор: akmalovaa
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/akmalovaa/proxmox-mcp
- Обновлён: 2026-10-01
- HTML: https://affpapa.org/nevibecode/mcp/proxmox-ve

## Что делает

Сервер отдаёт агенту 50 инструментов: ноды, QEMU-машины, LXC-контейнеры, хранилища, кластер, снимки. На старте активен уровень `read` — это 32 инструмента без права что-либо менять. Разрушительные операции включаются переменной `PROXMOX_RISK_LEVEL`: `lifecycle` добавляет запуск, остановку, перезагрузку, клонирование, миграцию и создание снимка, `all` — удаление и откат снимка. Инструменты выше активного уровня просто не регистрируются, поэтому в списке клиента их не видно.

Настройка целиком на переменных окружения: ни конфигов, ни базы, ни состояния. Нужны `PROXMOX_HOST` и либо пара `PROXMOX_TOKEN_NAME` с `PROXMOX_TOKEN_VALUE`, либо `PROXMOX_PASSWORD`. Если задать только половину токена, сервер не запустится — молчаливого отката на пароль нет. Транспорт stdio или Streamable HTTP, переключается одной переменной; HTTP слушает loopback. Запуск — контейнер `ghcr.io/akmalovaa/proxmox-mcp:latest` под `amd64` и `arm64`.

Токену нужны права, иначе часть вызовов вернёт 403. Роль `PVEAuditor` покрывает все 32 инструмента чтения, `PVEVMAdmin` на `/vms` открывает жизненный цикл гостей и снимки. Для `migrate_vm` понадобится `VM.Migrate` на целевой ноде, для `clone_vm` — `Datastore.AllocateSpace` на целевом хранилище. Отдельный пользователь и отдельный токен вместо `root@pam` — разумный минимум, потому что сервер доступен модели, которая читает текст, написанный не ею.

## Требования
- Нужно: Python и uv (команды через uvx)
- Переменные окружения: `PROXMOX_HOST`, `PROXMOX_PORT`, `PROXMOX_VERIFY_SSL`, `PROXMOX_TIMEOUT`, `PROXMOX_USER`, `PROXMOX_TOKEN_NAME`, `PROXMOX_TOKEN_VALUE`, `PROXMOX_PASSWORD`, `PROXMOX_RISK_LEVEL`, `PROXMOX_TOOLS_ALLOW` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env PROXMOX_HOST=<PROXMOX_HOST> --env PROXMOX_PORT=<PROXMOX_PORT> --env PROXMOX_VERIFY_SSL=<PROXMOX_VERIFY_SSL> --env PROXMOX_TIMEOUT=<PROXMOX_TIMEOUT> --env PROXMOX_USER=<PROXMOX_USER> --transport stdio proxmox-ve -- uvx proxmox-ve-mcp
```
Вместо <…> подставьте свои значения. Ещё 14 переменных окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from proxmox-ve-mcp <команда>

### Codex

**Командой платформы**
```bash
codex mcp add proxmox-ve --env PROXMOX_HOST=<PROXMOX_HOST> --env PROXMOX_PORT=<PROXMOX_PORT> --env PROXMOX_VERIFY_SSL=<PROXMOX_VERIFY_SSL> --env PROXMOX_TIMEOUT=<PROXMOX_TIMEOUT> --env PROXMOX_USER=<PROXMOX_USER> -- uvx proxmox-ve-mcp
```
Вместо <…> подставьте свои значения. Ещё 14 переменных окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from proxmox-ve-mcp <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "proxmox-ve": {
            "command": "uvx",
            "args": [
                "proxmox-ve-mcp"
            ],
            "env": {
                "PROXMOX_HOST": "<PROXMOX_HOST>",
                "PROXMOX_PORT": "<PROXMOX_PORT>",
                "PROXMOX_VERIFY_SSL": "<PROXMOX_VERIFY_SSL>",
                "PROXMOX_TIMEOUT": "<PROXMOX_TIMEOUT>",
                "PROXMOX_USER": "<PROXMOX_USER>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 14 переменных окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from proxmox-ve-mcp <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "proxmox-ve": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "proxmox-ve-mcp"
            ],
            "env": {
                "PROXMOX_HOST": "<PROXMOX_HOST>",
                "PROXMOX_PORT": "<PROXMOX_PORT>",
                "PROXMOX_VERIFY_SSL": "<PROXMOX_VERIFY_SSL>",
                "PROXMOX_TIMEOUT": "<PROXMOX_TIMEOUT>",
                "PROXMOX_USER": "<PROXMOX_USER>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 14 переменных окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from proxmox-ve-mcp <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e PROXMOX_HOST=<PROXMOX_HOST> -e PROXMOX_PORT=<PROXMOX_PORT> -e PROXMOX_VERIFY_SSL=<PROXMOX_VERIFY_SSL> -e PROXMOX_TIMEOUT=<PROXMOX_TIMEOUT> -e PROXMOX_USER=<PROXMOX_USER> proxmox-ve uvx proxmox-ve-mcp
```
Вместо <…> подставьте свои значения. Ещё 14 переменных окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from proxmox-ve-mcp <команда>

## Когда брать
- посмотреть список нод и их состояние из чата
- запустить или остановить конкретную виртуальную машину
- сделать снимок перед рискованным изменением
- проверить, сколько места осталось на хранилище

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
