Skip to content

CLI-интеграции ​

CLI-интеграции позволяют ИИ-клиенту вызывать явно разрешённые операции программ на машине с MCPBox. Они управляются отдельно от MCP-серверов и пакетов Маркета.

Добавление программы ​

  1. Установите программу на машину с MCPBox.
  2. Откройте общий раздел CLI. Запустите проверку и добавление найденных программ либо создайте запись вручную.
  3. Задайте постоянный ID в нижнем регистре (slug), исполняемый файл, описание и разрешённые операции.
  4. Проверьте ограничения и включите запись.
  5. Подключите её в разделе CLI нужного проекта.

Обнаружение проверяет ОС сервера и PATH, не устанавливая и не запуская программы. Автоматическая проверка при старте добавляет только отсутствующие доступные записи, сохраняя настройки и связи проектов. Удалённые ID каталога запоминаются и не восстанавливаются автоматически.

Начальный каталог — https://mcpbox.sh/cli.json. При ошибке загрузки используется встроенный вариант. Существующие определения меняются только через явный просмотр и применение изменений. Наличие docker в PATH, например, не подтверждает работу Docker daemon.

Разрешённые операции ​

Операция — точная команда, например status или mcp list. Дополнительные аргументы запрещены, пока не разрешён весь их упорядоченный набор.

Пример конфигурации операций:

json
[
  { "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.