В посте про оптимизацию MCP я рассказывал, как набрал около 80 тысяч токенов контекста одними только описаниями инструментов. Подключил Notion, Telegram, Figma и другие сервисы, а потом стал разбираться, куда уходят лимиты.

Часть MCP я заменил на CLI и skills. Для остальных рассматривал mcpjungle. Он решает проблему процессов: лениво запускает MCP-серверы и убирает неактивные. Но описания инструментов всё равно попадают в контекст.

Чтобы убрать их из основной сессии, приходится отключать MCP-инструменты и выносить доступ к ним в субагентов.

Для экономии контекста CodeMode выглядит правильнее.


Как работает CodeMode⌗

CodeMode показывает модели компактный каталог MCP-инструментов. Если нужного инструмента нет в каталоге, модель ищет его и получает описание параметров.

Затем через execute модель пишет небольшой скрипт, вызывает инструменты и возвращает в диалог только нужный результат.

Например, можно получить список GitHub issues, отфильтровать его и вернуть только названия со ссылками. Вся промежуточная выдача в основной контекст не попадёт.


Результаты замера⌗

Я проверил CodeMode на одном сценарии с четырьмя MCP-серверами:

Режим Входные токены
CodeMode включён 32 тыс.
CodeMode выключен 152 тыс.
Экономия 120 тыс., около 79%

Особенно заметной экономия должна быть при запуске субагентов. Каждый из них создаёт собственный контекст, поэтому 120 тысяч токенов быстро превращаются в потраченные лимиты и деньги.

Кроме экономии контекста, CodeMode сокращает количество обращений к модели. Несколько связанных операций можно выполнить внутри одного скрипта, а независимые вызовы — запустить параллельно.


CodeMode и mcpjungle решают разные задачи⌗

mcpjungle при этом не становится бесполезным. Он по-прежнему управляет жизненным циклом MCP-серверов.

CodeMode решает другую задачу: определяет, какие инструменты и данные показывать модели.


Как включить⌗

Запусти OpenCode с экспериментальной переменной:

export OPENCODE_EXPERIMENTAL_CODE_MODE=1

Я добавил её в ~/.zshrc, открыл новый shell и перезапустил OpenCode.