Перейти к содержимому
Назад
14 мин чтения

Почему AI-агенты уходят от MCP к CLI — и при чём тут экономика токенов

Разбираемся, почему инструменты для AI-агентов массово переходят с протокола MCP на CLI, и как это влияет на стоимость, надёжность и качество работы

AI MCP CLI AI Agents LLM

Почему AI-агенты уходят от MCP к CLI — и при чём тут экономика токенов

Представьте, что вы нанимаете помощника для работы в офисе. Есть два варианта: первый — помощник, который в начале каждого рабочего дня вываливает на стол полный каталог всех своих навыков (на 500 страницах) и только потом приступает к делу. Второй — помощник, который просто спрашивает «что нужно?» и гуглит инструкцию только когда реально сталкивается с незнакомой задачей.

Какой из них эффективнее? Ответ очевиден. И именно эта разница объясняет, почему в мире AI-агентов прямо сейчас происходит тектонический сдвиг: инструменты, которые раньше работали через модный протокол MCP (Model Context Protocol), массово переупаковываются в старые добрые CLI — командные интерфейсы.

Звучит как шаг назад? На самом деле это, возможно, самое важное изменение в архитектуре AI-инструментов с момента появления самих агентов. И чтобы понять почему, нам нужно разобраться в нескольких фундаментальных вещах.


Словарь: о чём вообще речь

Прежде чем нырять вглубь, давайте договоримся о терминах. Если вы не программист — это нормально, и через пять минут вы будете ориентироваться не хуже многих разработчиков, потому что большинство из них тоже не до конца понимают эту тему.

Что такое AI-агент

AI-агент — это не просто чат-бот. Это AI, который умеет делать вещи: читать файлы, запускать программы, ходить в интернет, редактировать код. Представьте ChatGPT, но с руками. Примеры: Claude Code от Anthropic, GitHub Copilot CLI, Cursor, Codex CLI от OpenAI.

Агент получает задачу от человека, думает, что делать, и выполняет последовательность действий — вызывает инструменты, анализирует результаты, принимает решения. Всё это автоматически.

Что такое контекстное окно и токены

Вот тут начинается самое важное.

Токен — это кусочек текста, которым «думает» AI. Одно слово — это обычно 1-2 токена. Предложение — 15-25 токенов. Страница текста — примерно 500 токенов.

Контекстное окно — это «оперативная память» агента. У каждой AI-модели есть лимит на количество токенов, которые она может одновременно держать в голове. У Claude, например, это 200,000 токенов. Звучит как много? Но туда должно влезть всё: ваш запрос, описания инструментов, история разговора, файлы с кодом, ответы внешних сервисов.

Аналогия: представьте, что вы — шахматист, но у вас есть лимит: вы можете одновременно помнить только 100 фигур и ходов. Если кто-то загружает вам в голову описание каждой фигуры на 3 страницах вместо одного слова — вы забудете позицию на доске, не успев начать играть.

Токены — это не просто метрика стоимости. Это напрямую мыслительная ёмкость агента. Каждый потраченный впустую токен — это токен, который агент не потратил на решение вашей задачи.

Что такое MCP

MCP (Model Context Protocol) — открытый протокол, созданный Anthropic в ноябре 2024 года. Его часто называют «USB-C для AI» — универсальный стандарт, через который AI-модели подключаются к внешним инструментам и данным.

Как это работает:

  1. Есть MCP-сервер — программа, которая предоставляет набор инструментов (tools). Например, Playwright MCP даёт агенту возможность управлять браузером.
  2. Есть MCP-клиент — встроен в AI-агента. Он подключается к серверу и получает список всех доступных инструментов.
  3. Общение идёт через JSON-RPC 2.0 — структурированный формат обмена сообщениями.

Ключевой момент: при подключении MCP-сервер выгружает полные схемы всех инструментов в контекстное окно агента. Описание каждого инструмента, всех параметров, типов данных, примеров — всё это в формате JSON забрасывается в «оперативку» агента. Даже если из 93 инструментов агенту нужен только один.

Что такое CLI

CLI (Command Line Interface) — это командная строка. Терминал. Та самая чёрная (или белая) консоль, в которой программисты пишут команды.

git commit -m "fixed a bug" — это CLI-команда. gh pr list --state open — это CLI-команда. docker ps — это CLI-команда.

CLI-инструменты существуют с 1970-х годов. Они появились раньше графических интерфейсов, раньше веба, раньше смартфонов. И это, как выяснилось, их суперсила в мире AI.


Фундаментальная разница: как агент «видит» инструменты

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

MCP: «вот тебе каталог на входе»

Когда AI-агент подключается к MCP-серверу, происходит следующее:

  1. Сервер отправляет полный каталог всех своих инструментов
  2. Каждый инструмент описан в JSON: название, параметры, типы, описание
  3. Всё это загружается в контекстное окно агента до начала работы
  4. Агент «видит» этот каталог на протяжении всей сессии

Это как если бы перед каждым рабочим днём вам выдавали энциклопедию всех возможных рабочих процессов. Даже если сегодня вам нужно просто отправить одно письмо.

CLI: «я уже знаю, а если забыл — подсмотрю»

Когда AI-агент использует CLI, схема совершенно другая:

  1. Агент уже знает большинство CLI-инструментов из своих обучающих данных
  2. Модели обучены на миллиардах строк терминальных команд — Stack Overflow, GitHub-репозитории, документация, туториалы
  3. Если агент не уверен в синтаксисе — он может вызвать --help по требованию
  4. В контекстное окно попадает только то, что реально нужно прямо сейчас

Это как опытный сотрудник, который уже знает свою работу. Если забыл, как называется конкретная кнопка в программе — быстро подсмотрел в справке. Но ему не нужна 500-страничная инструкция на столе.

Manveer Chawla сформулировал это различие точнее всего: MCP — это runtime schema injection (загрузка схем в момент выполнения), а CLI — это latent knowledge (скрытые знания, уже зашитые в модель при обучении).

И это различие определяет всё.


Кейс 1: Playwright — браузерная автоматизация

Самый яркий и хорошо задокументированный пример. Microsoft Playwright — инструмент для автоматизации браузера. Его используют для тестирования веб-приложений: «открой страницу, кликни на кнопку, проверь что отобразился текст».

Playwright MCP: сервер для AI-агентов

Playwright MCP — это MCP-сервер, который даёт AI-агенту возможность управлять браузером. Агент подключается и получает набор инструментов: browser_navigate, browser_click, browser_snapshot и так далее.

Проблема: при каждом действии MCP-сервер возвращает в контекст агента полное дерево доступности страницы (accessibility tree) — структурированное описание всех элементов. На сложной странице это тысячи узлов и 12,000+ символов за один клик.

Плюс 26 определений инструментов при подключении — ~3,600 токенов до начала работы.

Playwright CLI: командная строка для агентов

В начале 2026 года Microsoft выпустила Playwright CLI (@playwright/cli) — CLI-инструмент, созданный специально для AI-агентов. И это не просто обёртка — это фундаментально другой подход.

# Открыть страницу
playwright-cli goto https://example.com

# Получить снимок интерактивных элементов
playwright-cli snapshot
# → Компактный YAML-файл с метками e21, e35 и т.д.

# Кликнуть по элементу
playwright-cli click e21

# Сделать скриншот — сохранён на диск, не в контекст
playwright-cli screenshot

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

Цифры

Бенчмарки от команды Playwright:

МетрикаPlaywright MCPPlaywright CLI
Токенов на типичную задачу~114,000~27,000
Начальная «стоимость» подключения~3,600 токенов~68 токенов
Ответ на клик по кнопке12,891 символов6 символов (✓ Done)
СкриншотыПопадают в контекстСохраняются на диск

4x разница в потреблении. В длинных сессиях — до 10x, потому что с MCP в контексте накапливаются все предыдущие снимки страниц.

Better Stack показали: CLI использовал 16% контекстного окна для многошаговой задачи, MCP — 18%… при том что с MCP задача не была полностью выполнена (шаг скриншота провалился).

Microsoft в README прямо написала: «Если вы используете coding agent, вам, вероятно, лучше использовать CLI+SKILLS вместо MCP».

Vercel agent-browser: ещё дальше

Отдельно стоит упомянуть agent-browser от Vercel — CLI, написанный на Rust, который довёл идею до абсолюта. Архитектура: быстрый нативный бинарник → долгоживущий Node.js-демон → браузер через CDP.

Результат: упрощение с 17 инструментов до 2 дало 3.5x ускорение, 37% меньше токенов, рост success rate с 80% до 100%. При одинаковом бюджете контекста agent-browser выполняет 5.7x больше тестовых циклов, чем Playwright MCP.


Кейс 2: GitHub — 275-кратная разница

Если Playwright — это про браузеры, то GitHub — самый массовый пример. Миллионы разработчиков, и AI-агенты — не исключение.

GitHub MCP Server: 93 инструмента, которые вам не нужны

GitHub MCP Server — официальный MCP-сервер. Pull requests, issues, actions, releases, gists, webhooks и десятки других функций.

Хотите просто создать тикет? Получите заодно схемы для управления вебхуками, gists, organization settings, code scanning и ещё 87 других штук. ~55,000 токенов — только на описания инструментов. До того, как агент прочитал хоть один файл вашего проекта.

А если нужны ещё Jira, база данных и Microsoft Graph? ~150,000+ токенов только на описания инструментов. Это больше, чем весь контекст некоторых моделей.

gh CLI: 200 токенов на ту же задачу

GitHub CLI (gh) — официальный CLI от GitHub:

gh issue create --title "Баг в авторизации" --body "Шаги воспроизведения..."
gh pr list --state open
gh run list --limit 5

Модель уже знает команду gh из обучающих данных. Ноль токенов на инициализацию. Вся операция — ~200 токенов.

Как написали на Reddit: «GitHub MCP server → 93 инструмента → 55,000 токенов. Та же задача через gh CLI? ~200 токенов. Это не маргинальная разница. Это разница в 275 раз.»

Бенчмарк Scalekit: 75 прогонов

Scalekit провели строгий бенчмарк: 75 прогонов, одинаковые задачи, Claude Sonnet 4, три подхода.

ЗадачаCLIMCPРазница
Язык и лицензия репо1,36544,02632x
Детали PR и статус ревью1,64832,27920x
Метаданные и установка9,38682,8359x
Merged PR по контрибьюторам5,01033,7127x
Последний релиз8,75037,4024x

Надёжность: CLI — 25/25 (100%). MCP — 18/25 (72%). Семь из 25 запросов провалились по таймауту — удалённый сервер просто не ответил.

В деньгах (при 10,000 операций/месяц): CLI — $3.20/мес, MCP — $55.20/мес. 17-кратная разница за ту же работу.


Кейс 3: Microsoft Graph — корпоративная автоматизация

Третий кейс — из статьи Jannik Reinhard, который автоматизировал проверку compliance устройств через Microsoft Intune.

Задача

Проверить compliance всех устройств в Intune, найти нарушения, сопоставить с группами в Entra ID, сгенерировать отчёт.

MCP: три сервера, 36% контекста на «сантехнику»

Контекстное окно агента (128K):
├── Системный промпт:          ~2,000 токенов
├── Graph MCP-схема:           ~28,000 токенов
├── Compliance MCP-схема:       ~8,500 токенов
├── Reporting MCP-схема:        ~5,200 токенов
├── История разговора:          ~4,000 токенов
└── Доступно для мышления:     ~82,300 токенов (64%)

Агент справился, но заметно медленнее. Рассуждения ломались после 3-4 вызовов, потому что накопленный контекст сдвигал агента в «хвост» окна, где качество внимания падает. Пришлось разбивать на несколько сессий.

Итого на 50 устройств: ~145,000 токенов.

CLI: mgc + az, 95% контекста свободно

mgc devices list --filter "complianceState eq 'noncompliant'" `
    --select "id,deviceName,complianceState,userPrincipalName" --output json |
ConvertFrom-Json | ForEach-Object {
    $groups = mgc users list-member-of --user-id $_.userPrincipalName `
        --output json | ConvertFrom-Json
    [PSCustomObject]@{
        DeviceName = $_.deviceName
        User       = $_.userPrincipalName
        Compliance = $_.complianceState
        Groups     = ($groups.displayName -join "; ")
    }
} | Export-Csv -Path "compliance-report.csv" -NoTypeInformation
Контекстное окно:
├── Системный промпт:          ~2,000 токенов
├── Схемы инструментов:         0 токенов
├── История разговора:          ~1,500 токенов
├── Вывод команд:               ~3,200 токенов
└── Доступно для мышления:     ~121,300 токенов (95%)

Агент составил весь пайплайн за один подход, обработал edge-кейсы, завершил за одну сессию.

Итого на 50 устройств: ~4,150 токенов. В 35 раз меньше.


Почему CLI работает лучше: три фундаментальных причины

1. Скрытые знания vs. загрузка на лету

AI-модели обучены на миллиардах строк терминальных взаимодействий. Когда вы просите Claude использовать git, docker, kubectl или gh — это глубоко выученные паттерны. Модель не нуждается в схеме, чтобы знать, что git log --oneline -10 покажет последние 10 коммитов.

MCP-серверы — это кастомные схемы, которые модель видит впервые. Даже с хорошими описаниями модели приходится разбираться на лету. Это дополнительная когнитивная нагрузка, конкурирующая с основной задачей.

Андрей Карпатый, бывший директор по AI в Tesla, написал:

«CLI — это суперзахватывающе, именно потому что это «устаревшая» технология. AI-агенты могут нативно и легко использовать их, комбинировать, взаимодействовать через весь терминальный тулкит.»

А Саймон Уиллисон отметил:

«Мой интерес к MCP угас с тех пор, как я начал серьёзно работать с coding agents. Почти всё, что я мог бы сделать через MCP, можно сделать через CLI-инструмент. LLM-ки умеют вызывать cli-tool --help, а значит, не нужно тратить кучу токенов на описание.»

2. Данные на диске vs. данные в контексте

MCP: сервер контролирует, что попадает в контекст. Каждый вызов возвращает результат прямо в контекстное окно. Перешли на страницу? Полное дерево — тысяча токенов. Кликнули? Обновлённое дерево — ещё тысяча. После пяти переходов в контексте ~5,000 токенов устаревших данных.

CLI: данные сохраняются на диск. Снимок — YAML-файл. Скриншот — PNG. Агент получает путь (~20 токенов) и сам решает, нужно ли читать.

Аналогия: два способа работы с документами. Первый — все документы распечатаны и на столе, даже ненужные. Второй — в шкафу, достаёте по одному. При каком подходе стол чище?

3. Композиция: философия Unix встречает AI

CLI-инструменты спроектированы по философии Unix: каждый делает одну вещь, можно комбинировать через пайпы (|). MCP не поддерживает пайплайны — каждый вызов проходит через модель: вызвал A → получил → осмыслил → вызвал B.

С CLI агент составляет конвейер за один вызов:

curl -s api.example.com/orders?date=today | jq '[.[] | .total] | add'

Через MCP: вызов API → все заказы в контекст → рассуждение → вычисление. С CLI: одна команда, ~200 токенов.

И AI-модели отлично справляются с такой композицией — они видели grep | awk | jq тысячи раз в обучающих данных. У MCP-композиции мало обучающих примеров.

Один комментатор на Hacker News: суммирование данных по 150 заказам. Через MCP — 150 вызовов, десятки тысяч токенов. Через CLI — один for с обработкой, ~500 токенов. 1% от MCP.


Когда MCP всё ещё побеждает

Было бы нечестно представить это как однозначную победу CLI. MCP остаётся лучшим выбором в нескольких сценариях.

Многопользовательские системы. CLI работает от имени одного пользователя. Но если ваш продукт автоматизирует workflow для разных клиентов — нужен OAuth 2.1, per-session RBAC, audit trails. Это встроено в MCP. Как отметили в Scalekit: «CLI невероятно эффективен, когда пользователь — разработчик. Но если ваш продукт автоматизирует workflow для клиентов, каждое преимущество CLI становится архитектурной уязвимостью.»

Сервисы без CLI. Notion, Salesforce, HubSpot — у многих сервисов нет CLI. MCP — единственный способ дать агенту структурированный доступ.

Среды без терминала. Claude Desktop, веб-приложения, мобильные ассистенты — нет shell, CLI невозможен.

Корпоративная безопасность. AI-агент с неограниченным shell-доступом в корпоративной среде — это инцидент безопасности, ждущий своего часа. MCP даёт структурированный контроль.


Skills: третий путь

А что если не нужно выбирать? Skills (навыки) — абстракция, которая оборачивает любой транспорт (CLI или MCP) в единый интерфейс для агента.

Вместо загрузки всего Jira MCP (~400 эндпоинтов, ~55,000 токенов):

skill:
  name: create_finance_ticket
  description: "Создаёт тикет в Finance-борде"
  context:
    project_key: "FIN"
    priority: "High"
  implementation:
    type: mcp          # Может быть CLI — агент не знает
    endpoint: jira-mcp-server
    tool_name: create_issue
  exposed_parameters:
    - summary
    - description

С ~55,000 токенов до ~300 токенов. Надёжность сохраняется, бизнес-контекст добавляется.

Claude Code уже работает по этому принципу: CLI для локальных задач, MCP для внешних интеграций. Пользователь вызывает Skill, Skill маршрутизирует на нужный транспорт. Этот же подход используют Cowork (для бизнес-пользователей) и Copilot CLI.

Anthropic тоже двигается в эту сторону: в Claude Code появился экспериментальный MCP-CLI режим, который загружает MCP-инструменты через CLI-обёртку mcp-cli вместо прямого inject’а в контекст. Результат — до 80% экономии контекста: с 63% занятого контекста до 11%.


Куда всё движется

1. CLI побеждает для developer tools. Если агент в терминале — CLI однозначно эффективнее. Меньше токенов, выше надёжность, лучше composability.

2. MCP остаётся для enterprise и SaaS. Авторизация, аудит, multi-tenant — незаменим. Но нуждается в правильной реализации.

3. Skills — будущее. Абстракция над обоими транспортами. Агент вызывает Skill, Skill решает, какой транспорт использовать.

4. Тренд MCP-to-CLI. Инструменты (mcpshim, CLIHub, MCPorter) конвертируют MCP-серверы в CLI. Паттерн: MCP для авторизации и реестра, CLI для исполнения.

5. Контекстное окно — главный ресурс. Стоимость токенов падает. Но качество внимания модели деградирует с заполнением контекста. Экономия токенов — это экономия мыслительной мощности.

Как написал один разработчик: «MCP was a mistake. Bash is better.» Резковато, но зерно истины есть. Ближе к реальности: MCP — не ошибка, а преждевременная абстракция для сценариев, где достаточно CLI.

Лучший инструментарий для AI-агентов — не самый навороченный. Это самый лёгкий путь между моделью и действием. И прямо сейчас этот путь проходит через терминал.


Источники: Scalekit benchmark · TestCollab: Playwright CLI · Better Stack: CLI vs MCP · Jannik Reinhard · Manveer Chawla · DEV.to: Writing CLI for AI · Vercel agent-browser · Anthropic Engineering · Simon Willison · Andrej Karpathy · Microsoft Playwright MCP · OneUptime · Claude Code MCP-CLI · Zuplo: MCP or CLI? · The New Stack: Agentic CLI Era