Skip to content

MCPBox v1.4.2

Latest

Choose a tag to compare

@ArturSaleev ArturSaleev released this 23 Oct 05:52
· 2 commits to main since this release

English

MCPBox 1.4.2 fixes public OAuth/MCP connections behind reverse proxies and improves CLI execution, including SSH support.

Highlights

  • Fixed remote HTTP MCP response reading: automatic default Accept header, JSON/SSE decoding in health checks and working calls, matching JSON-RPC IDs, and no automatic request replay. Legacy JSON responses remain supported.

  • OAuth discovery and /oauth/ endpoints are served by the MCP listener (default port 38182). With separate listeners, these routes are no longer served by the administration listener (38181).

  • Fixed the WWW-Authenticate header for protected MCP endpoints: the metadata URL now includes the public origin and the project-specific resource path.

  • Added MCPBOX_PUBLIC_MCP_URL to explicitly configure the public HTTPS origin used for OAuth discovery, resource metadata, and the preferred project MCP URL.

  • Fixed the project connection URL displayed and copied in the UI when the administration panel and public MCP endpoint use different domains or ports. The UI now respects the backend-provided URL.

CLI Improvements

  • Added project-level CLI working folders: allow listed folders and subfolders, or explicitly allow all folders accessible to the MCPBox account. The model can select working_directory on each call; operation and argument allowlists remain enforced. Settings are independent for projects sharing the same CLI.

  • Added an optional Project directory for CLI field to the project editor. An explicitly configured directory must exist on the MCPBox host.

  • CLI commands can now run without a project directory. Each invocation uses a fresh private temporary directory that is removed after execution. This controls the working directory; it is not a filesystem sandbox.

  • SSH commands receive the MCPBox service account's HOME and SSH_AUTH_SOCK, when available, enabling use of its SSH configuration, keys, known hosts, and agent. Other CLI programs retain the restricted environment.

  • Existing operation and exact-argument allowlists remain enforced, including for SSH remote commands.

  • Added regression tests for CLI execution, persistence across restarts, OAuth listener routing, and public connection URLs. Updated the CLI documentation in English and Russian.

Upgrade and Compatibility Notes

  • For a public MCP endpoint, set an HTTPS origin without a path, for example: MCPBOX_PUBLIC_MCP_URL=https://mcp.example.com. Without a valid explicit origin, request/proxy-based address detection remains in use.
  • Forward /mcp/, /oauth/, and /.well-known/ to the MCP listener. Keep the administration panel private. Default ports remain 38181 for administration and 38182 for MCP.
  • Set the project CLI directory for workspace-dependent tools such as Git, Go, and Composer. MCP server working directories and FilesSystemMCP paths are separate settings.
  • Configure SSH keys, known hosts, and non-interactive authentication under the account running MCPBox. Host key checking remains enabled.
  • The previous development notes report a successful ChatGPT OAuth connection through Tailscale Funnel on Ubuntu. This does not establish verification of every deployment or release platform.

Русский

MCPBox 1.4.2 исправляет публичные OAuth/MCP-подключения через обратный прокси и улучшает запуск CLI, включая поддержку SSH.

Основные изменения

  • Исправлено чтение ответов удалённых HTTP MCP: автоматический Accept по умолчанию, разбор JSON/SSE в проверке и рабочих вызовах, сопоставление JSON-RPC ID без повторной отправки запроса. Поддержка прежних JSON-ответов сохранена.

  • OAuth discovery и маршруты /oauth/ обслуживаются MCP listener (по умолчанию порт 38182). При раздельных listener эти маршруты больше не обслуживаются административным listener (38181).

  • Исправлен заголовок WWW-Authenticate защищённых MCP-эндпоинтов: URL метаданных теперь содержит публичный origin и путь ресурса конкретного проекта.

  • Добавлена переменная MCPBOX_PUBLIC_MCP_URL для явного указания публичного HTTPS origin, используемого в OAuth discovery, метаданных ресурса и основном MCP URL проекта.

  • Исправлено отображение и копирование URL подключения в интерфейсе, когда административная панель и публичный MCP-эндпоинт используют разные домены или порты. Интерфейс использует адрес, предоставленный бэкендом.

Улучшения CLI

  • Добавлены рабочие папки CLI на уровне проекта: список с подкаталогами либо явное разрешение всех папок, доступных учётной записи MCPBox. Модель может выбирать working_directory при каждом вызове; проверка операций и аргументов сохраняется. Настройки независимы для проектов, использующих один CLI.

  • В редактор проекта добавлено необязательное поле «Каталог проекта для CLI». Явно указанный каталог должен существовать на хосте MCPBox.

  • CLI-команды теперь можно запускать без каталога проекта. Для каждого вызова создаётся отдельный временный каталог, который удаляется после выполнения. Это правило выбора рабочего каталога, а не изоляция доступа к файловой системе.

  • SSH-команды получают HOME и SSH_AUTH_SOCK учётной записи, под которой запущен MCPBox, если эти значения доступны. Это позволяет использовать её настройки SSH, ключи, known_hosts и агент. Для остальных CLI сохраняется ограниченное окружение.

  • Сохраняется проверка разрешённых операций и точных наборов аргументов, в том числе для удалённых SSH-команд.

  • Добавлены регрессионные тесты запуска CLI, сохранения настроек после перезапуска, маршрутизации OAuth между listener и публичных URL подключения. Документация CLI обновлена на английском и русском.

Обновление и совместимость

  • Для публичного MCP-эндпоинта задайте HTTPS origin без пути, например: MCPBOX_PUBLIC_MCP_URL=https://mcp.example.com. Без корректного явного origin сохраняется определение адреса по запросу и заголовкам прокси.
  • Направляйте /mcp/, /oauth/ и /.well-known/ на MCP listener. Административную панель оставляйте закрытой от публичного доступа. Порты по умолчанию прежние: 38181 для администрирования и 38182 для MCP.
  • Для инструментов, работающих с файлами проекта, например Git, Go и Composer, задайте каталог проекта для CLI. Рабочие каталоги MCP-серверов и пути FilesSystemMCP настраиваются отдельно.
  • Настройте SSH-ключи, known_hosts и неинтерактивную аутентификацию для учётной записи, запускающей MCPBox. Проверка ключей хоста остаётся включённой.
  • В предыдущих заметках разработки зафиксировано успешное подключение ChatGPT через OAuth и Tailscale Funnel на Ubuntu. Это не подтверждает проверку всех вариантов развёртывания и релизных платформ.