Перейти до змісту

Сервер MCP

У BombVault вбудовано сервер для Model Context Protocol (MCP) — протоколу, через який ШІ-асистенти на кшталт Claude Code і Claude Desktop звертаються до зовнішніх інструментів. Через нього асистент може читати, як справи з вашими резервними копіями, і, якщо ви дозволите, запускати резервне копіювання або скасовувати запущене ним самим. Сервер вимкнений, доки ви не створите ключ або не ввімкнете вхід через OAuth: доти кінцева точка /mcp відповідає 404 на все.

Що асистент може, а чого ні

Інструмент Що робить Вид
get_health Версія, назва екземпляра, чи триває копіювання і що дозволено цьому ключу читання
get_status Стан захисту за доменами: остання успішна копія, очікуваний інтервал, перевірки та контроль off-site, найближчі запуски за розкладом, копії, що чекають простою застосунку, для контейнерів ще й останній тест запуску читання
get_coverage Що BombVault захищає, а що ні, з причиною для кожного читання
list_items Кожен захищений контейнер, VM і набір тек, флешка і налаштування застосунку, з розкладом, тим, що зупиняє копіювання, останньою копією та її тривалістю; контейнери баз даних показують і останній дамп; також перелічено набори даних ZFS із результатом їхньої останньої перевірки; кожен елемент має останню перевірку відновлення, контейнер ще останній тест запуску або причину, чому його не можна перевірити; контейнер, створений заново з іншими налаштуваннями після останньої копії, перелічує зміни читання
list_runs Історія запусків, нові згори, з фільтром за доменом, елементом, статусом, видом і часом; повільна копія, яку гальмувала одна річ, називає її читання
list_restore_points Точки відновлення одного елемента з його основного репозиторію, а для контейнера ще й дампи його баз даних; набір даних ZFS має одну точку відновлення на копію, зі снапшотом кожного набору даних під ним читання
get_activity Що виконується просто зараз, з фазою і відсотком читання
get_storage_stats Історія розміру основного репозиторію домену та його зростання за тиждень, а також зайняте, вільне й загальне місце на диску чи віддаленому сховищі кожного його репозиторію читання
get_size_breakdown Які теки й файли займають місце в найновішій копії контейнера, ВМ або набору тек і скільки з цього додала остання копія читання
list_anomalies Аномалії, які BombVault помітив у копіях, з фільтрами за станом, серйозністю та доменом і підсумком відкритих читання
get_anomaly Одна з цих знахідок із приміткою, залишеною під час її підтвердження читання
start_backup Одразу робить копію одного елемента запуск
start_domain_backup Робить копію кожного захищеного елемента домену запуск
start_backup_everything Запускає Повний бекап запуск
cancel_backup Скасовує поточне копіювання, запущене цим ключем скасування

У вебінтерфейсі залишаються: відновлення будь-якого виду (зокрема завантаження, збереження та імпорт дампу бази даних), видалення копій, prune, unlock, перевірки та навчання, реплікація off-site, налаштування, облікові дані й ключі MCP, а також скасування копіювання, запущеного розкладом, вебінтерфейсом або іншим ключем. Те саме стосується підтвердження аномалії чи позначення її як очікуваної: це робиться на сторінці Аномалії. Причина: відповіді інструментів містять назви й повідомлення про помилки з вашого сервера, і будь-яке з них може містити текст, написаний, щоб керувати асистентом. Асистент, який на це поведеться, у найгіршому разі запустить копіювання в межах обмежень нижче або скасує копіювання, яке запустив сам.

Якщо основний репозиторій елемента розташований деінде (S3, REST, SFTP, rclone), list_restore_points звертається до нього, і виклик може тривати певний час. Копії off-site через MCP не виводяться. На що дивляться перевірки аномалій, описано в розділі Можливості, а як елемент ZFS зберігає по одному знімку на кожен набір даних, у розділі Набори даних ZFS.

Що робить запущене копіювання

Копіювання, запущене асистентом, нічим не відрізняється від запущеного з вебінтерфейсу. Робочий контейнер зупиняється до кінця свого копіювання разом із контейнерами, налаштованими зупинятися разом із ним. VM з методом "graceful" вимикається й запускається знову. Набір даних ZFS зупиняє налаштовані для нього контейнери, поки робиться його снапшот. Набори тек, флешка й налаштування працюють далі. Потім BombVault застосовує політику зберігання і може скопіювати дані до репозиторію off-site. list_items повідомляє асистентові, що зупиняє елемент і скільки тривало його останнє копіювання, а описи інструментів просять його сказати вам про це, перш ніж щось запускати.

Оскільки копіювання зупиняє сервіси й витісняє старі точки відновлення, запуски через MCP обмежено:

  • 12 запущених копіювань на годину на ключ.
  • 15 хвилин між двома запусками через MCP того самого елемента, домену або Повного бекапу.
  • Не більше 4 запусків через MCP одного елемента за 24 години.
  • Захист зберігання. Коли домен зберігає фіксовану кількість точок відновлення (лише "зберігати останні N", без денного, тижневого чи місячного правила, локально або в місці off-site), кожна нова копія витісняє найстарішу. Тоді BombVault відмовляє в запуску через MCP для елемента, в якого всі N-1 останніх успішних копій запущено через MCP. Тож у збереженому наборі завжди лишається принаймні одна точка відновлення, створена розкладом або вами. За "зберігати останню 1" асистент узагалі не може зробити копію цього елемента. Наступне копіювання за розкладом знову звільняє місце. Саме лише річне правило вважається як "зберігати останню 1", бо за поточний рік воно зберігає лише одну точку відновлення.

Запуск домену або Повного бекапу пропускає елементи, які утримує якесь обмеження, і перелічує їх у відповіді. Жодне з цих обмежень не стосується вебінтерфейсу й розкладу. Годинний ліміт зберігається в пам'яті, тому перезапуск BombVault його обнуляє.

Запуски через API і з Home Assistant враховуються в тих самих обмеженнях на елемент, що й запуски через MCP, і в захисті зберігання.

Увімкнення

  1. Відкрийте Налаштування, Інтеграції, Сервер MCP і натисніть кнопку свого клієнта. Клієнт, якого немає в списку, підключається через Інший клієнт.
  2. У розділі Ключ залиште Новий ключ і запропоновану назву, тобто назву клієнта, або введіть таку, що каже, де використовується ключ, наприклад «Claude Code на ноутбуці». Один ключ на клієнта дає змогу відкликати один, не чіпаючи інших. Наявний ключ дає клієнту ключ, створений раніше.
  3. Увімкніть Дозволити запуск копіювання для ключа, який має вміти запускати резервні копії; без цього ключ може лише читати. Пізніше це можна змінити на плитці ключа, і зміна діє з наступного запиту асистента, без повторного підключення.
  4. Натисніть Створити ключ. Ключ показується один раз. BombVault зберігає лише його відбиток і показати ключ ще раз не зможе, тож скопіюйте його зараз. Якщо закрити вікно до того, як клієнт скористався ключем, картка й далі його показує, доки ви не підтвердите, що скопіювали його.

Без пароля входу сам вебінтерфейс відкритий для всіх у вашій мережі, і будь-хто, хто може його відкрити, може й створити ключ. Картка про це попереджає. Якщо ви відкриваєте BombVault під назвою, що виглядає публічною (наприклад, bombvault.example.com за зворотним проксі), а пароль входу не задано, з цієї адреси не можна створювати й замінювати ключі, щоб жодна сторінка в інтернеті не могла змусити ваш браузер створити ключ. Задайте пароль входу або відкрийте BombVault за IP-адресою чи за локальною назвою на кшталт tower або tower.local.

Ваші ключі та їхній журнал

Кожен ключ має на картці власну плитку. На ній видно ім'я ключа, чи може він запускати копіювання, чи лише читає, останні чотири символи ключа, коли його створено або востаннє замінено, коли клієнт востаннє ним користувався і скільки викликів він зробив сьогодні. На плитці ключ можна перейменувати, змінити йому права, замінити або відкликати. Відкликаний ключ переходить до списку відкликаних, де його можна видалити назавжди, щойно жоден запуск в історії його більше не згадує.

Поруч із назвою плитка показує логотип клієнта, для якого створено ключ. Ключ, створений через Інший клієнт або до того, як картка почала перелічувати клієнтів, показує натомість ключ.

Журнал на плитці відкриває те, що робив цей ключ. Спочатку йдуть запущені ним копії, кожна зі своїм станом і посиланням на цей запуск у журналі активності на панелі. Нижче його виклики, нові зверху, з інструментом і результатом. Відмова називає причину: ключ може лише читати, захист зберігання притримав копію, вже тривало інше копіювання, копіювання елемента запущено поза вебінтерфейсом кілька хвилин тому або ключ надіслав забагато запитів. Скасування посилається на запуск, про який ішлося.

BombVault зберігає записи кожного ключа не довше 30 днів: останні 500 успішних запусків і скасувань та окремо останні 200 інших викликів (читання, відмови й помилки), тож асистент, який раз у раз опитує резервне копіювання, що триває, або повторює відхилений виклик, не може витіснити з журналу його запуск. Для кожного виклику він зберігає інструмент, результат і запуск, який назвало скасування. Він ніколи не зберігає те, що надіслав асистент, і сам ключ чи його відбиток. Діагностичний пакет лише рахує записи, а експорт налаштувань їх не містить.

Підключення клієнта

Кожен клієнт має кнопку на картці, у групі На цьому комп'ютері або У хмарі. Кнопка відкриває вікно з трьох кроків: ключ; конфігурація для цього клієнта з адресою, за якою ви відкрили картку, кнопкою копіювання, місцем, де лежить конфігурація, а з власним сертифікатом BombVault ще й тим, що потрібно клієнту, щоб йому довіряти; і очікування першого виклику клієнта. Вікно стежить за останнім використанням ключа й стає зеленим, коли цей виклик надходить.

Вікно не пускає ключ у жоден командний рядок. Якщо клієнт уміє читати ключ зі змінної середовища (BOMBVAULT_MCP_KEY), із прихованого запиту або з власного файлу, конфігурація лише посилається на нього. Якщо клієнт такого способу не має, ключ лежить у його файлі конфігурації чи налаштуваннях, і вікно про це каже. Якщо документація клієнта не каже, як він поводиться з незнайомим сертифікатом, вікно описує цей крок як те, що робити, коли клієнт відхилить сертифікат BombVault.

Клієнт Налаштування Звідки береться ключ
AnythingLLM файл конфігурації файл конфігурації
Antigravity файл конфігурації змінна середовища
Claude Code команда файл ключа
Claude Desktop файл конфігурації файл ключа
Cline файл конфігурації файл конфігурації
Codex CLI файл конфігурації змінна середовища
Continue файл конфігурації ~/.continue/.env
Copilot CLI файл конфігурації файл конфігурації
Cursor файл конфігурації змінна середовища
Gemini CLI файл конфігурації змінна середовища
GitHub Copilot (VS Code) файл конфігурації прихований запит
Goose файл конфігурації змінна середовища
Jan форма в застосунку налаштування застосунку
JetBrains (AI Assistant, Junie) файл конфігурації файл конфігурації
Kimi Code файл конфігурації файл конфігурації
LM Studio файл конфігурації файл конфігурації
Mistral Vibe файл конфігурації змінна середовища
Msty форма в застосунку налаштування застосунку
n8n форма в застосунку облікові дані n8n
Open WebUI форма в застосунку налаштування застосунку
opencode файл конфігурації змінна середовища
Perplexity (Mac) форма в застосунку файл ключа
Qwen Code файл конфігурації змінна середовища
Roo Code файл конфігурації змінна середовища
Visual Studio файл конфігурації файл конфігурації
Warp файл конфігурації файл конфігурації
Windsurf файл конфігурації змінна середовища
Zed файл конфігурації файл конфігурації
Grok форма, у хмарі сервери постачальника
Le Chat форма, у хмарі сервери постачальника
ChatGPT вхід через OAuth, у хмарі токен доступу, див. нижче
Claude (claude.ai) вхід через OAuth, у хмарі токен доступу, див. нижче

Розділи нижче докладніше пояснюють налаштування Claude Code і Claude Desktop та перелічують, що потрібно будь-якому іншому клієнту.

Claude Code

Claude Code підключається до BombVault через mcp-remote, якому на цьому комп'ютері потрібен Node.js. Спершу збережіть ключ в окремому текстовому файлі, одним рядком:

X-API-Key: <your key>

Потім виконайте команду з картки один раз у терміналі, підставивши в неї шлях до цього файлу. За сертифікатом, якому довіряє ваш комп'ютер, вона виглядає так:

claude mcp add bombvault --scope user -- npx -y mcp-remote@latest https://bombvault.example.com/mcp --header-file "<path of the file with your key>"

З власним сертифікатом BombVault (див. TLS і сертифікати) команда ще й вказує Node.js на завантажений сертифікат:

claude mcp add bombvault --scope user -e "NODE_EXTRA_CA_CERTS=<path of the downloaded bombvault-cert.pem>" -- npx -y mcp-remote@latest https://192.168.1.10:3443/mcp --header-file "<path of the file with your key>"

Перевірте підключення командою /mcp усередині Claude Code. --scope user робить BombVault доступним у всіх ваших проєктах. Claude Code зберігає лише шлях до файлу з ключем, тож ключ не з'являється ні в команді та історії оболонки, ні в списку процесів. Тримайте файл там, де прочитати його можете лише ви, і поза будь-якою текою, яку ви комітите. @latest змушує npx завантажити актуальний mcp-remote; без нього використовувався б старіший, встановлений глобально, а той не підтримує --header-file.

Не пишіть ${BOMBVAULT_MCP_KEY} в аргументи mcp-remote для Claude Code. Claude Code підставляє таке посилання зі свого середовища ще до запуску mcp-remote, тож ключ потрапляє в командний рядок цього процесу, де його можуть прочитати інші програми й користувачі комп'ютера.

Без Node.js, і лише за сертифікатом, якому довіряє ваш комп'ютер, Claude Code може підключитися сам. Покладіть .mcp.json у теку проєкту:

{
  "mcpServers": {
    "bombvault": {
      "type": "http",
      "url": "https://bombvault.example.com/mcp",
      "headers": {
        "Authorization": "Bearer ${BOMBVAULT_MCP_KEY}"
      }
    }
  }
}

Задайте BOMBVAULT_MCP_KEY там, де запускається Claude Code, наприклад у "env" у ~/.claude/settings.json або в профілі оболонки, через текстовий редактор, а не набираючи в командному рядку. Тут посилання безпечне, бо Claude Code не запускає другого процесу, до якого потрапив би ключ. З власним сертифікатом BombVault так не вийде: з'єднання, яке Claude Code встановлює сам, відхиляє цей сертифікат навіть із заданим NODE_EXTRA_CA_CERTS. Ніколи не комітьте .mcp.json, у якому ключ записано відкрито.

Claude Desktop

Claude Desktop підключається до BombVault через mcp-remote, якому на цьому комп'ютері потрібен Node.js. Спершу збережіть ключ в окремому текстовому файлі одним рядком, як описано для Claude Code. Відкрийте файл конфігурації в Claude Desktop через Settings, Developer, Edit Config. У Windows він лежить у %APPDATA%\Claude\claude_desktop_config.json, у macOS у ~/Library/Application Support/Claude/claude_desktop_config.json. Додайте запис із картки всередину "mcpServers", поруч із наявними серверами, і перезапустіть Claude Desktop:

{
  "mcpServers": {
    "bombvault": {
      "command": "npx",
      "args": ["-y", "mcp-remote@latest", "https://192.168.1.10:3443/mcp", "--header-file", "<path of the file with your key>"],
      "env": {
        "NODE_EXTRA_CA_CERTS": "<path of the downloaded bombvault-cert.pem>"
      }
    }
  }
}
  • NODE_EXTRA_CA_CERTS потрібен лише для власного сертифіката BombVault. За сертифікатом, якому ваш комп'ютер уже довіряє, приберіть його.
  • --allow-http додається лише для простої адреси http://.
  • У Windows пишіть шляхи з прямими скісними рисками, наприклад C:/Users/sam/bombvault-key.txt, бо одинарна обернена скісна риска не є коректним JSON. Шлях до файлу з ключем має бути без пробілів: Claude Desktop у Windows передає шлях із пробілом у npx двома частинами.
  • У конфігурації вказано лише файл із ключем, тож ключ не з'являється ні в ній, ні в списку процесів. Тримайте файл там, де прочитати його можете лише ви.

Клієнти у хмарі

ChatGPT, Claude на claude.ai, Grok і Le Chat звертаються до BombVault із серверів свого постачальника, тому BombVault має бути доступним з інтернету з публічно довіреним сертифікатом, наприклад за зворотним проксі; Le Chat відхиляє самопідписані. Вхід на проксі може захищати веб-інтерфейс, але /mcp має доходити до BombVault без нього: ці сервіси не вміють входити на проксі, а BombVault сам перевіряє їхній ключ або токен. Grok і Le Chat надсилають постійний ключ, і їхні кнопки налаштовують їх так само, як інших. ChatGPT, а в більшості організацій і Claude на claude.ai, під'єднуються лише через вхід за OAuth, описаний нижче.

Вхід через OAuth

Для клієнта, який не приймає ключ, BombVault сам є сервером авторизації OAuth. Клієнт сам реєструється, відправляє вас на сторінку BombVault, і там ви входите зі своїм паролем для входу (і другим фактором, якщо він налаштований) і дозволяєте йому доступ. Потім клієнт отримує токен, який діє лише для кінцевої точки MCP цього BombVault, і сам його оновлює.

  1. Задайте пароль для входу в розділі Налаштування, Безпека. Без нього BombVault взагалі не пропонує входу, бо не було б у кого спитати згоди.
  2. Зробіть BombVault доступним з інтернету через https із сертифікатом, якому довіряють браузери, зазвичай через зворотний проксі. Клієнт звертається до /mcp, /oauth/ і /.well-known/ зі своїх серверів, тому проксі з власним входом має пропускати ці три шляхи до BombVault. Сторінка згоди за адресою /oauth/authorize відкривається у вашому власному браузері й може лишатися за входом проксі. Вкажіть проксі також у TRUSTED_PROXY (див. Налаштування). BombVault обмежує реєстрації клієнтів за адресою, і без цього кожен клієнт виглядає так, ніби приходить із проксі.
  3. На картці MCP увімкніть Вхід через OAuth і вкажіть Публічна адреса: адресу https без шляху, наприклад https://backup.example.com. Кожен токен прив'язаний до цієї адреси, тож після зміни кожному клієнту доведеться увійти знову.
  4. Натисніть кнопку ChatGPT або Claude. Діалог покаже URL конектора, тобто публічну адресу з /mcp у кінці, і куди її вписати в цьому клієнті. У ChatGPT увімкніть режим розробника в розділі Налаштування, Застосунки та конектори, Додаткові налаштування, виберіть Створити, вставте URL конектора як URL MCP-сервера й виберіть OAuth як автентифікацію. На claude.ai відкрийте Налаштування, Конектори, Додати власний конектор, вставте URL конектора, залиште порожніми ідентифікатор клієнта та секрет OAuth і виберіть Під'єднати.
  5. Клієнт відкриває сторінку згоди. На ній видно, хто просить доступ, куди вас поверне відповідь, і перемикач Дозволити запуск копіювання, який спершу вимкнений. Виберіть Дозволити або Відмовити.

Кожен клієнт, що увійшов, отримує плитку поруч із ключами, зі своїм значком, журналом, кнопками Відкликати та Дозволити запуск копіювання, і ті самі обмеження, що й ключ. Відкликання діє одразу. Коли той самий клієнт входить знову, новий дозвіл замінює старий, а дозвіл, яким ніхто не користувався 30 днів, спливає. Одночасно можуть бути в системі до 10 клієнтів, на додачу до 10 ключів.

Сторінка згоди приймає запит лише від зареєстрованого клієнта, який вказує рівно одну зі своїх зареєстрованих адрес повернення: https або адресу loopback на будь-якому порту для клієнта на вашому власному комп'ютері. Приймається лише потік із кодом авторизації та PKCE (S256), а ваша відповідь прив'язана до вашої сесії, тож жоден інший сайт не зможе надіслати її за вас. Токени доступу діють годину. Токен оновлення замінюється при кожному використанні, і якщо котрийсь із них потім з'являється знову, BombVault відкликає дозвіл, бо копія є в когось іншого. Клієнт, який повторює своє останнє оновлення протягом 30 секунд, бо відповідь до нього не дійшла, натомість отримує нові токени. BombVault не завантажує метадані клієнтів з інтернету, тому клієнти реєструються через динамічну реєстрацію клієнтів.

Інші клієнти

Підійде будь-який клієнт, що говорить Streamable HTTP:

  • URL: адреса вебінтерфейсу плюс /mcp, наприклад https://192.168.1.10:3443/mcp.
  • Ключ у Authorization: Bearer <key> або в X-API-Key: <key>. Якщо надійшли обидва, у них має бути той самий ключ.
  • POST з Content-Type: application/json і Accept: application/json, text/event-stream.
  • Одне повідомлення JSON-RPC на запит; пакети (batch) відхиляються.
  • Версії протоколу 2026-07-28, 2025-11-25, 2025-06-18 і 2025-03-26.

TLS і сертифікати

BombVault віддає HTTPS із сертифікатом, який випустив сам, і спочатку в цьому сертифікаті вказано лише localhost, 127.0.0.1 і ::1. Claude Code і mcp-remote відхиляють його на адресі локальної мережі. Способи це обійти, в порядку, що підходить більшості встановлень Unraid:

  1. Додати адресу в картці MCP. Якщо відкрити картку через HTTPS на адресі, якої немає в сертифікаті, вона про це повідомить і запропонує Додати цю адресу до сертифіката. Тоді BombVault заново випустить сертифікат із цією адресою (браузер попередить ще раз, як уперше). Потім натисніть Завантажити сертифікат; фрагменти задають NODE_EXTRA_CA_CERTS на завантажений файл, і клієнт довіряє саме цьому сертифікату. Це також означає, що будь-який клієнт, налаштований із раніше завантаженим файлом, перестає підключатися, щойно сертифікат випущено заново, на цьому комп'ютері й на будь-якому іншому, доки не отримає новий файл.
  2. Зворотний проксі з довіреним сертифікатом (Nginx Proxy Manager, SWAG, Caddy, Traefik). Клієнт тоді бачить сертифікат проксі, більше йому нічого не потрібно, і картка не попереджає про сертифікат BombVault.
  3. Tailscale. tailscale serve перед контейнером або інтеграція Tailscale в Unraid дає вам назву ts.net із довіреним сертифікатом.
  4. HTTP_ONLY=true, лише за проксі, що завершує TLS, або в мережі, якій ви повністю довіряєте. Перемикає весь вебінтерфейс на простий HTTP, вимагає змінити налаштування контейнера й передає ключ без шифрування.

Ніколи не задавайте NODE_TLS_REJECT_UNAUTHORIZED=0. Це вимикає перевірку сертифікатів для всього, з чим спілкується цей процес Node.js.

Зворотний проксі має передавати заголовок Authorization (або X-API-Key), що проксі роблять, якщо їм не наказано інакше, і не повинен буферизувати чи переписувати /mcp. Блок location для Nginx або Nginx Proxy Manager, який заодно перевіряє сертифікат BombVault:

location /mcp {
    proxy_pass https://192.168.1.10:3443;
    proxy_ssl_verify on;
    proxy_ssl_trusted_certificate /data/bombvault-cert.pem;
    proxy_ssl_name localhost;
    proxy_http_version 1.1;
    proxy_buffering off;
    proxy_set_header Host $host;
}

За проксі кожен запит несе адресу проксі. П'ять неправильних ключів від одного неправильно налаштованого клієнта тоді на хвилину блокують усіх клієнтів MCP за цим проксі. Вкажіть проксі в TRUSTED_PROXY (див. Налаштування), щоб лік ішов для кожного клієнта окремо.

Модель безпеки

  • Без активного ключа й за вимкненого входу через OAuth /mcp відповідає 404.
  • Вхід через OAuth пропонується, лише поки задано пароль для входу. Токени, коди й секрети клієнтів зберігаються лише як відбиток, а токен діє лише для тієї адреси, для якої був виданий.
  • З однієї адреси клієнт може зареєструватися не більше 10 разів на годину, а BombVault зберігає не більше 100 зареєстрованих клієнтів, через яких ніхто не увійшов, кожного протягом доби. Неправильні коди й токени оновлення враховуються в те саме блокування, що й неправильні ключі.
  • Дозволи поводяться як ключі під час відновлення резервної копії конфігурації або зміни APP_KEY: після відновлення кожному клієнту доведеться увійти знову.
  • Винятків за адресами немає. Запитам із localhost, з хоста Unraid, від зворотного проксі або від tailscale serve потрібен ключ, як і будь-яким іншим, навіть коли вебінтерфейс не має пароля входу.
  • Ключі зберігаються лише як відбитки, показуються один раз, їх можна перейменувати, замінити й відкликати. До 10 активних ключів, у кожного свій перемикач Дозволити запуск копіювання.
  • Кожне створення, заміна, зміна прав і відкликання надсилає сповіщення вашими каналами сповіщень з адресою, звідки прийшов запит, якщо сповіщення не вимкнено.
  • 5 неправильних ключів на хвилину з однієї адреси, далі 429. 120 запитів на хвилину і 12 запущених копіювань на годину на ключ, а також пауза й захист зберігання, описані вище.
  • Запити зі сторінки браузера з іншим джерелом (origin) відхиляються.
  • Доки пароль входу не задано, ключі не можна створювати з назви хоста, що виглядає публічною.
  • Кожне копіювання, запущене асистентом, і спричинені ним запуски prune та off-site позначаються "через MCP" з назвою ключа в журналі активності, на панелі помилок і в сповіщенні про копіювання.
  • Кожен виклик інструмента записується в журнал контейнера з id ключа та його останніми чотирма символами (ніколи з назвою) і враховується в /metrics (bombvault_mcp_requests_total, bombvault_mcp_tool_calls_total, bombvault_mcp_active_keys).
  • Відновлення резервної копії налаштувань відкликає всі ключі, бо відновлена база може містити ключі, які ви відкликали вже після її збереження. Після цього створіть нові ключі.
  • Ключ перестає працювати, коли змінюється APP_KEY (перевстановлення або відновлення в інший контейнер). Картка це помічає й позначає ключ, а Замінити ключ знову дає йому чинний секрет.
  • Поводьтеся з ключем як із паролем. Клієнт, який не вміє читати ключ ні зі змінної середовища, ні із запиту, ні з файлу ключа, тримає його відкритим текстом у своїй конфігурації чи налаштуваннях, і його вікно про це каже. На комп'ютері, якому ви довіряєте менше, краще використовуйте ключ лише для читання.

Що залишає машину

Усе, що читає асистент, іде до постачальника ШІ, який стоїть за ним: назви елементів, розклади, історія запусків із повідомленнями про помилки, id і час точок відновлення, назви рушіїв баз даних і розміри дампів, поточна активність, дані про сховище, покриття й стан. BombVault прибирає шляхи хоста, розташування репозиторіїв, назви хостів, облікові дані, команди хуків і ключі, перш ніж щось вийде назовні.

Усунення несправностей

Що ви бачите Що це означає
404 Немає активного ключа і вхід через OAuth вимкнений, або шлях неправильний, наприклад /api/mcp. Кінцева точка — /mcp.
401 Ключа немає, його набрано з помилкою, відкликано або замінено. Можливо, проксі відкидає заголовок Authorization (спробуйте X-API-Key). Якщо картка позначає ключ як більше не чинний, змінився APP_KEY: замініть ключ.
403 Запит надійшов зі сторінки браузера з іншим джерелом. Використовуйте настільний або консольний клієнт.
405 на GET Нормально. Точка підключення приймає лише POST.
400 "Accept must contain both 'application/json' and 'text/event-stream'" Клієнт застарий для Streamable HTTP. Оновіть його.
400 "batch requests are not accepted" Клієнт надсилає пакети JSON-RPC. Надсилайте одне повідомлення на запит.
429 Забагато неправильних ключів із цієї адреси або понад 120 запитів на хвилину з одним ключем. Зачекайте хвилину й перевірте, чи асистент не зациклився.
Помилки зі словами "certificate", "self-signed" або "unable to verify" Клієнт не довіряє сертифікату BombVault. Див. TLS і сертифікати.
busy Домен зайнятий іншим копіюванням або завданням обслуговування. Повторіть, коли воно завершиться.
cooldown Цей елемент, цей домен або Повний бекап запускали поза вебінтерфейсом менше ніж 15 хвилин тому.
retention_guard Ще одне копіювання через MCP залишило б у вікні "зберігати останні N" лише точки відновлення з MCP, або елемент уже отримав 4 копії через MCP за останні 24 години, враховуючи невдалі та скасовані. У першому випадку місце звільнить наступне копіювання за розкладом, у другому елемент знову стане доступним через 24 години після найстарішої з цих копій. У вебінтерфейсі його можна запустити будь-коли.
rate_limited Ключ витратив свої 12 запусків на цю годину.
not_permitted під час запуску Ключ може лише читати. Увімкніть Дозволити запуск копіювання в картці; перепідключатися не потрібно. Під час скасування це означає, що запуск зробив не цей ключ.
domain_off Цей вид копіювання вимкнено в налаштуваннях.
not_found BombVault не захищає цей елемент. Спочатку додайте його у вебінтерфейсі; MCP ніколи не створює налаштувань.
Клієнт не знаходить сервер авторизації Вхід через OAuth вимкнений, пароль для входу не задано, або проксі не пропускає /.well-known/ до BombVault.
Сторінка згоди повідомляє про незареєстровану адресу повернення Клієнт надіслав адресу повернення, яку не реєстрував. Видаліть конектор у клієнті й додайте його знову.
Клієнт, що увійшов, отримує 401 Його дозвіл відкликано, він сплив після 30 днів без використання, або змінилася публічна адреса. Клієнт увійде знову.

Не задавайте контейнеру змінну середовища MCPGODEBUG. Вона змінює поведінку бібліотеки MCP, а неправильне значення зупиняє BombVault під час запуску ще до того, як він запише хоч один рядок у журнал.