From af060d9e567ac5ce665d407bd12bc7cd6fb70428 Mon Sep 17 00:00:00 2001 From: host Date: Wed, 5 Aug 2026 20:28:21 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BF=D1=83=D1=82=D1=8C=20=D0=BF=D0=BE=D0=B4=D0=BA?= =?UTF-8?q?=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20OpenAPI-=D1=81?= =?UTF-8?q?=D0=B5=D1=80=D0=B2=D0=B5=D1=80=D0=BE=D0=B2=20=D0=B2=20Open=20We?= =?UTF-8?q?bUI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- proxmox-mcp-open-webui-setup.md | 83 ++++++++++++++++++++------------- 1 file changed, 50 insertions(+), 33 deletions(-) diff --git a/proxmox-mcp-open-webui-setup.md b/proxmox-mcp-open-webui-setup.md index 55484a5..3866639 100644 --- a/proxmox-mcp-open-webui-setup.md +++ b/proxmox-mcp-open-webui-setup.md @@ -30,7 +30,7 @@ mkdir -p /mnt/ssd/apps/mcp/{pve,kybinka,pve1} ``` -> Важно: `dev_mode` находится внутри блока `security`, а не в корне JSON. Именно такую структуру ожидает ProxmoxMCP-Plus. +Для самоподписанных сертификатов Proxmox используй `verify_ssl: false` и `security.dev_mode: true`. ### Конфигурация `pve` @@ -107,7 +107,7 @@ cat > /mnt/ssd/apps/mcp/pve1/config.json << 'EOF' EOF ``` -Проверь корректность JSON-файлов: +Проверь JSON-файлы: ```bash python3 -m json.tool /mnt/ssd/apps/mcp/pve/config.json @@ -115,25 +115,17 @@ python3 -m json.tool /mnt/ssd/apps/mcp/kybinka/config.json python3 -m json.tool /mnt/ssd/apps/mcp/pve1/config.json ``` -Ограничь права доступа к файлам с токенами: - -```bash -chmod 600 /mnt/ssd/apps/mcp/{pve,kybinka,pve1}/config.json -``` - -`verify_ssl: false` используется для самоподписанных сертификатов Proxmox. Для production следует установить доверенный сертификат и использовать `verify_ssl: true` вместе с `security.dev_mode: false`. - --- ## Шаг 3. Запустить три контейнера через Dockge -В Dockge создай один Stack с именем `proxmox-mcp` и рабочей директорией: +В Dockge создай один Stack `proxmox-mcp` с рабочей директорией: ```text /mnt/ssd/apps/mcp ``` -Вставь в редактор Dockge один compose-файл: +Используй один compose-файл: ```yaml services: @@ -171,7 +163,7 @@ services: - /mnt/ssd/apps/mcp/pve1/config.json:/app/proxmox-config/config.json:ro ``` -Не добавляй несколько блоков `services:` подряд. Нажми **Save**, затем **Down** и **Deploy/Up**. После изменения JSON-файлов контейнеры нужно перезапустить или пересоздать. +Нажми **Save**, затем **Down** и **Deploy/Up**. --- @@ -194,25 +186,56 @@ curl -H "Authorization: Bearer ЗАМЕНИТЬ_КЛЮЧ_PVE" \ ## Шаг 5. Подключить к Open WebUI -Добавь три OpenAPI Tool Server: +В текущем интерфейсе Open WebUI добавление OpenAPI-серверов выполняется не через раздел **Инструменты** и не через кнопку **Новый инструмент**. -- `http://192.168.31.100:8811/openapi.json` — `Proxmox pve`; -- `http://192.168.31.100:8812/openapi.json` — `Proxmox kybinka`; -- `http://192.168.31.100:8813/openapi.json` — `Proxmox pve1`. +Используй следующий путь: -Для каждого сервера укажи соответствующий Bearer-ключ из `PROXMOX_API_KEY`. +```text +Настройки → Интеграции → External Tool Servers → «+» +``` + +В открывшейся форме добавь сервер `pve`: + +```text +Название: Proxmox pve +URL: http://192.168.31.100:8811/openapi.json +Авторизация: Bearer +Токен: значение PROXMOX_API_KEY для proxmox-mcp-pve +``` + +Нажми **Сохранить**. + +Затем добавь два остальных сервера: + +```text +Название: Proxmox kybinka +URL: http://192.168.31.100:8812/openapi.json +Авторизация: Bearer +Токен: значение PROXMOX_API_KEY для proxmox-mcp-kybinka +``` + +```text +Название: Proxmox pve1 +URL: http://192.168.31.100:8813/openapi.json +Авторизация: Bearer +Токен: значение PROXMOX_API_KEY для proxmox-mcp-pve1 +``` + +Важно: + +- нажимай «+» именно в строке **External Tool Servers**; +- не используй «+» возле **Open Terminal**; +- не используй **Новый инструмент** на странице пользовательских Tools; +- для каждого сервера указывай отдельный Bearer-токен из compose-файла; +- `PROXMOX_API_KEY` — это ключ OpenAPI-сервера, он отличается от `auth.token_value` в `config.json`. + +После сохранения открой новый чат, нажми значок инструментов и включи нужный сервер, например `Proxmox pve`. --- ## Диагностика -Если появляется ошибка: - -```text -Insecure TLS configuration blocked -``` - -проверь, что внутри каждого файла присутствует: +Если появляется ошибка `Insecure TLS configuration blocked`, проверь наличие блока: ```json "security": { @@ -220,6 +243,8 @@ Insecure TLS configuration blocked } ``` +Если появляется `McpError: Connection closed`, сначала ищи выше в логе первичную ошибку конфигурации. + Проверка volume-маунта: ```bash @@ -233,12 +258,4 @@ docker inspect proxmox-mcp-pve \ /mnt/ssd/apps/mcp/pve/config.json -> /app/proxmox-config/config.json ``` -Проверка файла внутри контейнера: - -```bash -docker exec proxmox-mcp-pve cat /app/proxmox-config/config.json -``` - -`McpError: Connection closed` является вторичной ошибкой: MCP OpenAPI Proxy закрывается после ошибки валидации конфигурации. - > Не публикуй реальные значения `PROXMOX_API_KEY` и `auth.token_value` в чат или репозиторий. Если они были опубликованы, их следует заменить.