MCP: подключение и ограничения

MCP предоставляет доверенным AI-клиентам инструменты приложения. Это чувствительный доступ к терминалам и данным, а не только справочный чат. Внутренние имена вроде list_electerm_tabs сохранены для совместимости.

Локальный клиент

  1. Запустите приложение и откройте Widgets → MCP Server; проверьте состояние сервера.
  2. В source-конфигурации по умолчанию используются loopback, порт 30837 и путь /mcp. Приоритет имеет фактически показанный URL.
  3. В MCP-клиенте выберите Streamable HTTP, укажите URL и заголовок Authorization: Bearer <токен> через защищённое хранилище клиента, не аргументы запуска.
  4. Локальный токен в managed admin-режиме скрыт от renderer/UI. Только уполномоченный локальный администратор предоставляет его доверенному клиенту из защищённого admin-mcp-token; ключ не публикуется и не копируется в issue.
  5. Выполните MCP initialize и tools/list, затем read-only вызов list_electerm_tabs. Обычный GET адреса без MCP session ID не проверяет исправность протокола.

Не отключайте аутентификацию и не выставляйте локальный listener наружу. Ошибка чтения/создания токена должна остановить сервер, а не включить anonymous-доступ.

Удалённый клиент

В Managed devices используйте MCP access: панель выдаёт URL и отдельный временный Bearer-токен для /mcp. Нужны approved/online устройство и готовый локальный MCP-виджет. Локальный ключ подставляет адаптер; management-токен для MCP не подходит.

Грант живёт не более часа и разрешает GET/POST/DELETE для MCP, не UI/API/WebSocket. Истечение и Revoke закрывают активные потоки; перезапуск gateway требует нового гранта.

Границы

Состав tools/list зависит от включённых возможностей и готовности renderer. Команды могут менять данные; blacklist не заменяет изоляцию и доверие к клиенту. Начинайте с минимальных прав.

execute_electerm_command возвращает структурированный результат; проверяйте exitCode, timedOut, truncated. В локальном PowerShell PTY неинтерактивная команда работает в дочернем PowerShell без профилей и не наследует функции/переменные интерактивного сеанса. Tasks с wait=false требуют совместимого клиента; это не обещание бессрочного фонового задания.

Пароль/состояние headless workspace и браузерный вход — отдельные проверки. Admin/user описывает точные границы.

AI · Безопасность · Главная