Каждый инструмент, который вы предоставляете агенту, отправляет свое определение модели при каждом запросе, и вы платите за это как за входные токены. Сервер Model Context Protocol (MCP) может добавить десятки тысяч токенов в контекстное окно. Обычные альтернативы — это инструмент командной строки (CLI) или навык.
Мы измерили это на одной задаче GitHub с помощью GitHub MCP server, gh CLI и навыка gh на моделях Claude Haiku 5.5, Claude Sonnet 5.5, GPT-6 Luna и Gemini 3.8 Flash. На Sonnet 5.5 все три варианта ответили правильно, но количество использованных входных токенов сильно различалось. CLI использовал 1421 токен, навык — 3315, а MCP-сервер — 59 417 при загруженных инструментах по умолчанию. Вот куда уходят токены и как их сократить с помощью нашего инструмента Tool Search.
TL;DR
- 46 инструментов по умолчанию на сервере GitHub MCP добавляют 19 436 токенов к каждому запросу на Claude Sonnet 5.5.
46 инструментов по умолчанию на сервере GitHub MCP добавляют 19 436 токенов к каждому запросу на Claude Sonnet 5.5.
- На Sonnet 5.5 результат одного инструмента, объекта релиза GitHub, стоил около 20 400 токенов, что больше, чем все 46 определений вместе взятые.
На Sonnet 5.5 результат одного инструмента, объекта релиза GitHub, стоил около 20 400 токенов, что больше, чем все 46 определений вместе взятые.
- Tool Search сократил первоначальные затраты на 46 инструментов до менее чем 600 токенов. За всю задачу он сократил расходы вдвое на Sonnet 5.5 и увеличил их на Claude Haiku 5.5.
Tool Search сократил первоначальные затраты на 46 инструментов до менее чем 600 токенов. За всю задачу он сократил расходы вдвое на Sonnet 5.5 и увеличил их на Claude Haiku 5.5.
В чем разница между MCP, CLI и навыком?
Все три предоставляют модели определенные возможности. Они различаются тем, что именно модель считывает, прежде чем сможет их использовать.
CLI полагается на то, что модель уже знает инструмент. Навык обучает модель использованию инструмента, и модель загружает полные инструкции только тогда, когда они нужны для задачи.
Сколько токенов добавляет MCP-сервер к каждому запросу?
Надежный способ подсчитать их — спросить саму модель. Каждый провайдер записывает определения инструментов в промпт в своем собственном формате перед подсчетом токенов, что пропускает локальный токенизатор. Отправьте один и тот же запрос с инструментами и без них: разница в usage.prompt_tokens и будет стоимостью инструментов на каждом шаге.
Сохраните это как mcp_cost.py. Он использует протокол MCP, который поддерживает сервер GitHub.
Передайте команду запуска сервера в качестве аргументов, как здесь для GitHub MCP server v2.0.2.
Стоимость растет с каждым добавленным инструментом. На Haiku 5.5 набор инструментов issues содержит 10 инструментов и добавляет 5801 токен. Набор users содержит один инструмент и добавляет 619.
Используемая модель также влияет на количество. Те же 46 инструментов стоят 19 436 токенов на Haiku 5.5, но 8903 на GPT-6 Luna, поэтому проводите измерения на той модели, которую планируете использовать.
Даже провайдер, предоставляющий модель, может изменить этот показатель. На Gemini 3.8 Flash 46 инструментов стоят 8525 токенов через Google Vertex и 13 010 через Google AI Studio. Вот почему скрипт всегда отправляет запросы Gemini в Google Vertex.
Сколько стоит одна и та же задача с CLI, навыком и MCP?
Мы спросили каждую модель: «Каков последний релиз репозитория GitHub cli/cli и какие три недавно открытых issue в этом репозитории имеют метку bug?». Каждый подход выполнялся как цикл вызова инструментов в нашем API ответов, и мы суммировали usage.input_tokens по всем запросам.
- CLI. Один инструмент run_shell и строка «GitHub CLI gh установлен и авторизован».
CLI. Один инструмент run_shell и строка «GitHub CLI gh установлен и авторизован».
- Навык. Тот же инструмент плюс однострочный индекс, указывающий на SKILL.md объемом 1492 символа с рецептами gh.
Навык. Тот же инструмент плюс однострочный индекс, указывающий на SKILL.md объемом 1492 символа с рецептами gh.
- MCP. Инструменты сервера, ограниченные двумя необходимыми для задачи, 46 по умолчанию или всеми 91.
MCP. Инструменты сервера, ограниченные двумя необходимыми для задачи, 46 по умолчанию или всеми 91.
Мы запускали каждую комбинацию трижды 20 октября 2026 года и показываем медианные значения. Haiku 5.5 считает промпт так же, как и Sonnet 5.5, но в некоторых запусках потребовалось больше шагов, поэтому мы приводим более стабильные данные по токенам и стоимости для Sonnet.
Каждый запуск в этой таблице дал правильный ответ. Сбои произошли при использовании Tool Search, о чем рассказано ниже. На Sonnet 5.5 стандартный MCP-сервер использовал в 42 раза больше входных токенов, чем CLI, и стоил в 17 раз дороже: 127 долларов против 7,50 долларов на 1000 задач. Выходные токены стоят в пять раз дороже входных на Sonnet 5.5, и 463 выходных токена в запуске CLI обошлись в 0,0046 доллара из его общей стоимости в 0,0075 доллара.
Навык стоил дороже, чем «голый» CLI, потому что файл остается в диалоге после того, как модель его прочитала. Для CLI-инструмента, который модель хорошо знает, навык необязателен. Для вашего собственного CLI навык — это способ, которым модель изучает команды.
Почему результаты инструментов MCP стоят столько же, сколько и их определения?
get_latest_release вернул полный объект релиза GitHub, 42 182 символа, из которых 87% описывали 22 загружаемых файла. Модели нужны были только тег и дата, что и возвращает gh release view.
Этот объект остается в контекстном окне и отправляется повторно с каждым последующим запросом, и на Sonnet 5.5 он добавил около 20 400 токенов. Ограничение сервера двумя инструментами сократило первый запрос с 19 487 токенов до 1406. Вся задача все равно стоила 23 228 токенов.
В таблице показаны два способа исправления. Во-первых, предоставляйте только те инструменты, которые нужны агенту, с помощью —tools=get_latest_release,list_issues или —toolsets=issues,repos. Во-вторых, сокращайте результаты на стороне клиента, прежде чем модель их увидит. Ограничение в 4000 символов сократило количество токенов для ограниченного маршрута до 5357 при правильном выполнении каждого запуска, так как GitHub размещает тег и дату в начале.
Ограничение сработало только из-за расположения полей. В сочетании с Tool Search это ограничение привело к тому, что Gemini 3.8 Flash и Haiku 5.5 дали только по одному правильному ответу из трех запусков, а Gemini однажды достигла нашего лимита в 12 запросов при повторных попытках.
Вместо этого сохраняйте целые поля, как это делает —json для CLI. Функция list_issues сервера GitHub принимает аргумент fields, и запрос только number, title и creation date сократил результат с 8336 символов до 714. Без этого модель сама решает, какой объем данных получить. В четырех из шести запусков с 46 или 91 загруженным инструментом GPT-6 Luna запрашивала 100 issue с полным текстом и получала 281 963 символа.
Решает ли Tool Search проблему контекста MCP?
Tool Search устраняет большую часть затрат на определения инструментов. Вы помечаете инструменты как defer_loading: true и добавляете {“type”: “openrouter:tool_search”}. Мы скрываем отложенные определения и отправляем инструмент поиска вместе с любыми инструментами, которые вы оставили загруженными. Модель ищет названия и описания инструментов с помощью регулярного выражения и вызывает совпадение на следующем шаге. Это бета-версия, работающая с любой моделью и провайдером в API Responses и Messages.
Со всеми 46 отложенными инструментами GitHub стоимость до любого поиска составляла 578 токенов на моделях Claude, 144 на GPT-6 Luna и 130 на Gemini 3.8 Flash.
Этот скрипт отправляет один вопрос со всеми 46 загруженными инструментами, а затем с отложенными. Сохраните его рядом с mcp_cost.py, так как он повторно использует list_mcp_tools.
Чтобы попробовать это на своем агенте, пометьте свои MCP-инструменты как defer_loading: true, добавьте {“type”: “openrouter:tool_search”} и сравните usage.input_tokens до и после.
Строки поиска инструментов зависят от того, как модель выполняет поиск. В пяти отдельных заходах этого скрипта модель Haiku 5.5 использовала от 2 134 до 13 225 токенов, и это количество росло с каждым поисковым запросом. GPT-6 Luna писала фразы вместо шаблонов, выполняла от трех до шести поисковых запросов, а один раз сдалась, так и не вызвав инструмент. Наша документация рекомендует оставлять загруженными от трех до пяти наиболее часто используемых инструментов.
Для всей задачи в целом результат зависел от модели.
Показатель загруженных инструментов для GPT-6 Luna включает описанный выше запрос на 100 проблем (issues).
У модели Sonnet 5.5 91 отложенный инструмент обошелся на 1 281 токен дороже, чем 46, в то время как загрузка всех 91 стоила примерно на 42 000 токенов больше. Поиск инструментов (Tool Search) не уменьшает результаты работы инструментов, и объект релиза по-прежнему заполнял большую часть второго запроса Sonnet.
Haiku 5.5 обошлась дороже с 46 отложенными инструментами, чем со всеми загруженными. Во всех трех запусках она запрашивала у list_issues поле, которое инструмент не поддерживает, а затем повторяла попытку три-четыре раза с аргументами неверного типа, например, передавая метки (labels) в виде строки вместо массива. При загрузке всех инструментов Haiku совершала ту же ошибку в двух запусках из трех и исправляла ее при следующем вызове. Ограничивайте количество запросов в своем цикле и проверяйте ошибки инструментов, когда стоимость запуска резко возрастает.
Поиск инструментов раскрывает инструменты путем расширения параметра tool_choice, поэтому запрос, который также принудительно вызывает инструмент (forces a tool call), завершается ошибкой.
Ошибка 400: конфликт `tool_choice` с `openrouter:tool_search`. Отложенные инструменты раскрываются через `tool_choice`, поэтому этот параметр нужно опустить или установить в значение `{“type”: “allowed_tools”, …}`. Удалите `tool_choice` или уберите `defer_loading` из ваших инструментов, чтобы использовать их как есть.
Chat Completions не принимает openrouter:tool_search и возвращает ошибку 400, поэтому сначала переведите этого агента на Responses или Messages API.
MCP против CLI против навыков (skills): что вам следует использовать?
Используйте CLI, когда он существует и ваш агент может выполнять команды. Когда не может — используйте MCP, с ограничением области видимости и небольшими результатами.
Если у вашего агента нет оболочки (shell), наш инструмент Shell server предоставляет ее любой модели в изолированной среде (sandboxed). В нашем Agent SDK модуль MCP Tools подключает удаленные MCP-серверы, а пример загрузчика навыков добавляет инструкции навыка только после того, как об этом попросит модель.
Мы протестировали один сервер на одной задаче, поэтому запустите mcp_cost.py на своих данных, прежде чем принимать решение.
Часто задаваемые вопросы
Что такое CLI в контексте ИИ-агента?
CLI (интерфейс командной строки) — это программа, которую вы запускаете с помощью вводимых команд. Агент получает инструмент оболочки и сам пишет команды. В наших тестах CLI gh использовал 1 421 входной токен для задачи на GitHub против 59 417 токенов для MCP-сервера GitHub.
В чем разница между MCP-сервером и коннектором?
MCP-сервер предоставляет инструменты по протоколу Model Context Protocol (MCP). Коннектор — это то, что такое приложение, как Claude, называет своей связью с удаленным MCP-сервером. Наш Agent SDK может подключать удаленные MCP-серверы через MCP Tools.
Заменяют ли навыки (skills) протокол MCP?
Нет. Навык — это инструкции, обычно для CLI, которые загружаются только тогда, когда это требуется для задачи. MCP предоставляет типизированные инструменты с собственной аутентификацией и работает без оболочки. На OpenRouter поиск инструментов (Tool Search) позволяет сохранять MCP и загружать каждый инструмент только по мере необходимости.
Решает ли кэширование промптов проблему стоимости токенов MCP?
Это снижает цену таких токенов, но не устраняет их. По состоянию на октябрь 2026 года на OpenRouter стоимость кэшированного ввода составляет одну десятую от обычной ставки для Claude Haiku 5.5 и GPT-6 Luna (согласно нашим актуальным ценам на модели), при этом кэш по-прежнему заполняет контекстное окно.
Сколько MCP-инструментов — это слишком много?
Наша документация по поиску инструментов предлагает откладывать загрузку инструментов, когда их определения превышают примерно 10 000 токенов или около 10 инструментов. 46 инструментов по умолчанию на MCP-сервере GitHub составили 19 436 токенов на Claude.
Дальнейшие шаги
- Поиск инструментов охватывает все параметры, включая max_results.
Поиск инструментов охватывает все параметры, включая max_results.
- «Создание надежного цикла агента для вызова инструментов» (Build a Reliable Tool-Calling Agent Loop) демонстрирует тип цикла, который использовали наши запуски, с ограничением числа итераций.
«Создание надежного цикла агента для вызова инструментов» (Build a Reliable Tool-Calling Agent Loop) демонстрирует тип цикла, который использовали наши запуски, с ограничением числа итераций.
- «Кэширование промптов в OpenRouter» (OpenRouter Prompt Caching) объясняет стоимость кэшированных токенов.
«Кэширование промптов в OpenRouter» (OpenRouter Prompt Caching) объясняет стоимость кэшированных токенов.












