04
Команды, MCP и ACP: три разных границы
Как ограничить выполнение терминальных команд
Файловые права и права Shell — разные уровни контроля. Агент может не иметь доступа к части каталога, но при этом получить команду, которая сама прочитает переменные среды, найдёт подключённые диски или отправит данные наружу.
Мы рекомендуем разделить команды на три группы.
Разрешать без дополнительного подтверждения только:
- чтение статуса Git;
- просмотр различий;
- запуск заранее определённого набора тестов;
- локальную сборку выбранной схемы;
- статический анализ без изменения конфигурации.
Запрашивать каждый раз:
- изменение файлов проекта;
- установку зависимостей;
- изменение настроек сборки;
- запуск скриптов;
- сетевые запросы;
- работу с симулятором и подключённым устройством;
- изменение
Info.plist, Entitlements и параметров подписи.
Запрещать на этапе пилота:
- удаление файлов и каталогов;
- операции с ключами и сертификатами;
- публикацию в App Store Connect;
- изменение профилей подписи;
- чтение производственных переменных среды;
- передачу содержимого проекта во внешние сервисы без отдельного согласования;
- команды с неограниченным доступом к Shell.
Внешний агент, подключённый через MCP, и агент, работающий внутри Xcode, не являются одной и той же сущностью. Документация Apple о внешних агентах показывает, что внешний процесс получает доступ к инструментам Xcode через MCP-сервер и требует отдельного включения в настройках Intelligence. Apple также указывает проверочную команду xcrun mcpbridge для подключения внешнего процесса.
MCP — это механизм предоставления инструментов и контекста. Agent Client Protocol — интерфейс, через который клиент редактора взаимодействует с внешним агентом. ACP сам по себе не делает агента безопасным: архитектура протокола предполагает, что редактор предоставляет агенту доступ к локальным файлам и MCP-серверам, поэтому контроль инструментов должен оставаться на стороне клиента и операционной среды. Архитектура Agent Client Protocol подтверждает это разделение.
Плагины требуют отдельной проверки. В них могут находиться навыки, MCP-серверы и конфигурации ACP. Поэтому установка плагина должна проходить через тот же процесс, что и выдача нового системного разрешения: источник, версия, список инструментов, сетевые адреса, область файлов и процедура удаления.