CLI-интеграции
CLI-интеграции позволяют ИИ-клиенту вызывать явно разрешённые операции программ на машине с MCPBox. Они управляются отдельно от MCP-серверов и пакетов Маркета.
Добавление программы
- Установите программу на машину с MCPBox.
- Откройте общий раздел CLI. Запустите проверку и добавление найденных программ либо создайте запись вручную.
- Задайте постоянный ID в нижнем регистре (
slug), исполняемый файл, описание и разрешённые операции. - Проверьте ограничения и включите запись.
- Подключите её в разделе CLI нужного проекта.
Обнаружение проверяет ОС сервера и PATH, не устанавливая и не запуская программы. Автоматическая проверка при старте добавляет только отсутствующие доступные записи, сохраняя настройки и связи проектов. Удалённые ID каталога запоминаются и не восстанавливаются автоматически.
Начальный каталог — https://mcpbox.sh/cli.json. При ошибке загрузки используется встроенный вариант. Существующие определения меняются только через явный просмотр и применение изменений. Наличие docker в PATH, например, не подтверждает работу Docker daemon.
Разрешённые операции
Операция — точная команда, например status или mcp list. Дополнительные аргументы запрещены, пока не разрешён весь их упорядоченный набор.
Пример конфигурации операций:
[
{ "command": "status" },
{ "command": "diff" },
{ "command": "log", "argument_sets": [["-n", "5"], ["--oneline", "-n", "10"]] }
]В интерфейсе необязательный JSON наборов аргументов использует имена операций как ключи, например {"log":[["-n","5"]]}. Вызов зарегистрированной операции без дополнительных аргументов разрешён. Это не проверка по префиксу и не wildcard. Слова операции разделяются пробелами; для одного буквального аргумента с пробелами используйте набор аргументов.
Использование через MCP
Проект с активными CLI-подключениями публикует три инструмента:
| Инструмент | Назначение |
|---|---|
cli_list | Доступные CLI ID проекта и их описания. |
cli_describe | Разрешённые операции, наборы аргументов и ограничения. |
cli_execute | Выполнение разрешённой операции. |
Проект может предоставлять CLI без MCP-сервера. Права проверяются при каждом запуске: отключение программы или связи блокирует следующие вызовы. Уже запущенный процесс не останавливается от изменения записи.
Ограничения выполнения
Команды запускаются напрямую, без shell. Рабочие папки настраиваются на вкладке CLI проекта: список существующих абсолютных путей на хосте с подкаталогами либо явное разрешение «Все папки». Настройка действует для всех CLI этого проекта. Запрос может выбрать разрешённую рабочую папку; замена окружения запрещена. Относительные пути к исполняемым файлам и распространённые shell-программы запрещены; используйте имя из PATH сервера или абсолютный путь. Интерактивный ввод не поддерживается.
По умолчанию: 30 секунд и 1 МиБ суммарного вывода. Настраиваемые пределы: 1–300 секунд и 1 КиБ–4 МиБ. Результат содержит stdout, stderr, код завершения, признаки таймаута и обрезки. Изменение CLI и административный запуск требуют pro:admin.
Это список разрешений, управляемый администратором, а не системная песочница. Разрешённые программы могут менять файлы, обращаться в сеть и выполнять собственные скрипты. Аргументы и вывод не включаются в аудит CLI. На Windows отмена по таймауту пока завершает прямой дочерний процесс, а не всё дерево процессов.
SSH-операции
Только ssh/ssh.exe дополнительно получает HOME и SSH_AUTH_SOCK служебной учётной записи, если они доступны; остальные CLI сохраняют ограниченное окружение. Настройте SSH-ключи, known_hosts и BatchMode yes для учётной записи, запускающей MCPBox. Проверка ключей хоста остаётся включённой. Используйте доверенный абсолютный путь к исполняемому файлу, если PATH может меняться.
Для программы ssh зарегистрируйте alias хоста, например операцию mcpbox-linux, с точными наборами аргументов [["hostname"], ["docker ps"]]. Вызов {"cli":"ssh-linux","command":"mcpbox-linux","args":["docker ps"]} использует этот зарегистрированный CLI ID и операцию. SSH передаёт удалённую команду удалённой оболочке: разрешайте только точные доверенные строки. Wildcard-разрешения не добавляются.
Для Git, Go, Composer и других операций с файлами проекта добавьте постоянные папки на вкладке CLI проекта. Временный рабочий каталог не изолирует доступ к файловой системе; файлы для следующих вызовов сохраняйте в явно настроенном постоянном месте.
Выбор рабочей папки
Настройки папок принадлежат проекту и действуют для всех его CLI. Разрешённая папка включает подкаталоги; режим «Все папки» разрешает любую существующую папку, доступную учётной записи MCPBox. Это выбор рабочей папки, а не изоляция файловой системы. Права FilesSystemMCP и рабочие папки MCP-серверов задаются отдельно.
Получите directory_policy через cli_describe, затем передайте абсолютный working_directory в cli_execute, например {"cli":"git","command":"fetch","working_directory":"/srv/repos/app"}. Операция и аргументы по-прежнему должны быть разрешены. Относительные, отсутствующие и недопустимые папки отклоняются; перед проверкой вложенности разрешаются символические ссылки.
При сохранённом списке без указания папки используется его первый пункт, а при пустом списке — временная папка. В режиме «Все папки» используется root_path, а если он пуст — временная папка. Существующие проекты сохраняют прежнее поведение до сохранения политики папок. Временные папки удаляются после вызова. Сохранение настроек требует pro:admin.
