Перейти к основному содержанию

Claude Code и перегрузка контекста MCP: почему лишние серверы съедают окно и как его сжать

A
12 мин чтенияClaude Code

Проблема не только в числе MCP-серверов. Используйте бюджет контекста, чтобы понять, что именно съедает окно Claude Code, и выбрать keep, defer, disable, split или redesign.

Claude Code и перегрузка контекста MCP: почему лишние серверы съедают окно и как его сжать

Когда к Claude Code подключено слишком много MCP-серверов, ощущение обычно одно: сессия быстрее доходит до compaction, модель хуже выбирает инструмент, а после одного большого запроса к логам или базе теряет главный вопрос. Причина редко сводится к голому числу серверов. Контекст расходуют четыре разных вещи: определения инструментов, результаты вызовов, следы длинной сессии и слишком широкая поверхность выбора.

По состоянию на 23 мая 2026 года Claude Code документирует MCP-настройки, Tool Search и предупреждение для MCP-вывода больше 10 000 tokens. Tool Search полезен, потому что может отложить загрузку определений инструментов там, где это поддержано. Но он не делает бесплатными нерелевантные серверы, огромные ответы, старые ветки разговора или поведение прокси-провайдера, которое вы не проверяли в своей среде.

Начните не со списка популярных MCP, а с бюджета:

ЗатратаКак выглядитПервое исправление
ОпределенияДо первого внешнего вызова модель уже видит много названий, описаний и схем.Проверьте Tool Search и отключите серверы без текущего владельца задачи.
РезультатыПосле вызова логов, таблицы, issue или базы сессия резко тяжелеет.Возвращайте summary, фильтр, page, limit, cursor или handle.
Следы сессииСтарые ошибки, планы и неудачные ветки остаются в рабочей памяти.Сведите текущее решение в короткое резюме или начните чистый поток.
Поверхность выбораНесколько серверов дают похожие search, read, list, fetch.Оставьте одного владельца workflow или разделите широкий сервер.

Практический первый шаг: выполните /mcp, посмотрите активные серверы для этой задачи и пометьте каждый как keep, defer, disable, split или redesign. Если не хватает повторяемого метода, это работа для skill. Если нужен внешний доступ или действие, оставьте только MCP-сервер, который владеет этим workflow, и сжимайте то, что он возвращает.

Начните с бюджета контекста

MCP-сервер - это не просто строка в конфиге. Инструмент MCP имеет имя, описание, входную schema, иногда output schema и возвращаемый content. В зависимости от клиента и загрузки часть этих данных может попасть в видимый контекст еще до вызова инструмента. Поэтому набор подключенных серверов влияет на рабочую память даже до реальных запросов.

Но первая затрата не единственная. Один database MCP может перегрузить сессию сильнее, чем несколько тихих серверов, если он возвращает тысячи строк, полный trace или целые документы. И наоборот, несколько узких серверов с короткими описаниями и маленькими ответами могут быть нормальными, если у каждого есть понятный владелец задачи.

Четыре категории расходов контекста MCP: определения, результаты, следы сессии и поверхность выбора

Диагностика должна идти по месту боли. Если Claude Code медлит еще до tool call, смотрите определения, дублирующиеся имена и список активных серверов. Если все ломается после одного вызова, смотрите размер output. Если качество падает после десяти попыток исправления, проблема может быть в следах сессии, а не в MCP как таковом.

СимптомВероятная причинаГде смотреть
Медленно до внешнего вызоваdefinitions или decision surface/mcp, claude mcp list, похожие имена инструментов
Нормально до одного вызова, потом шумresult loadразмер логов, таблиц, файлов, trace, строк базы
Модель спорит со старыми решениямиsession residueстарые ошибки, планы, выводы, незакрытые ветки
Выбирается не тот инструментdecision surfaceнесколько серверов с одинаковыми read/search/list

Этот подход важен потому, что простое удаление всего - плохая долгосрочная стратегия. Вам нужен компактный активный набор, а не пустая среда. Сервер должен оставаться активным только тогда, когда он действительно владеет текущим workflow.

Tool Search помогает, но не сжимает ответы

Современный нюанс Claude Code - Tool Search. Он меняет старый совет о том, что каждый MCP всегда полностью грузит schema в контекст. На поддерживаемом пути Tool Search может откладывать discovery и загрузку tool definitions до момента, когда они понадобятся.

Но это только одна часть бюджета. Как только Claude вызывает инструмент, результат вызова все равно становится частью разговора. Большая таблица, полный лог, HTML-снимок, список файлов или raw API payload будут занимать окно независимо от того, были ли определения загружены заранее.

Tool Search уменьшает upfront definitions, но tool results все равно занимают контекст

Держите три границы отдельно:

ГраницаЧто может Tool SearchЧто он не исправляет
ОпределенияОтложить загрузку tool schema и описаний на поддержанном пути.Плохие имена, длинные описания, похожие владельцы workflow.
РезультатыСам по себе ничего.Большие логи, таблицы, trace, файлы, raw payload.
История сессииСам по себе ничего.Долгий диалог, повторы, старые ошибки, незакрытые решения.

Если вы используете ANTHROPIC_BASE_URL, совместимый gateway, альтернативный provider или custom model path, проверяйте поведение внутри своей среды. После проверки Tool Search сделайте один настоящий workflow. Если боль осталась до вызова инструмента, чистите определения и активные серверы. Если боль появляется после вызова, переходите к output compression.

Keep, defer, disable, split, redesign

Хороший список MCP не обязан быть минимальным, но он должен быть объяснимым. Каждый активный сервер должен отвечать на фразу: "В этой задаче этот сервер владеет ____". Если вместо ответа получается "вдруг пригодится", сервер не должен висеть в основной сессии.

РешениеКогда применятьПример
KeepСервер нужен прямо сейчас и не заменяется локальными файлами, memory или skill.GitHub MCP во время PR review, docs MCP при миграции framework.
DeferНужен позже, но не на текущем этапе.Browser QA включить после UI-правки, а не во время чтения backend-кода.
DisableНе помогает текущему workflow или дублирует другой сервер.Два docs-сервера отвечают на один и тот же library вопрос.
SplitОдин custom server смешивает unrelated read, write, deploy, metrics.Разделить read-only search и write/deploy actions.
RedesignСервер ваш, а инструмент возвращает слишком много или слишком неопределенно.Заменить dump_database на search_errors(service, time_range, limit).

В Claude Code используйте /mcp для текущей сессии. В терминале используйте claude mcp list, claude mcp get и claude mcp remove, когда нужно пройтись по конфигу. Но цель не в том, чтобы хвастаться числом отключенных серверов. Цель - оставить список, где у каждого active item есть понятная работа.

Если вы еще выбираете первые интеграции, читайте англоязычный каталог Best Claude Code MCP Servers. Эта статья про другой момент: setup уже вырос, и теперь его нужно вернуть в рабочий размер.

Сжимайте output до входа в разговор

После Tool Search часто выясняется, что главный вред делает не количество серверов, а один объемный ответ. Playwright snapshot, список GitHub issues, выгрузка логов, таблица базы или полный файл могут съесть больше контекста, чем несколько тихих серверов вместе.

Предупреждение Claude Code о 10 000 tokens и MAX_MCP_OUTPUT_TOKENS стоит воспринимать как guardrail. Цель не в том, чтобы ответ едва помещался под лимит. Цель в том, чтобы Claude получил самый маленький ответ, который все еще помогает принять следующее решение.

ПравилоПлохая формаЛучшая форма
Summary firstвесь log streamcounts, anomalies, three examples
Filter at sourceвсе rowsrows by service, time range, status, owner
Paginateодин giant responseinitial batch plus next_cursor
Default capunlimited matcheslimit 20 with explicit override
Return handlesполный file или datasetfile path, object id, job id, stored result
Preview before rawraw payload сразуcompact preview, raw only on request

Пользователь тоже влияет на форму. Вместо "прочитай базу" спросите: "top 20 errors за 24 часа, сгруппируй по service, дай count и один sample trace". Вместо "покажи logs" спросите: "только failed deployment logs после timestamp X, без health checks". Узкий вопрос не только экономит tokens; он заставляет tool выбрать полезную форму ответа.

Проектируйте компактные MCP-серверы

Если MCP-сервер ваш, лучшее исправление - не переключатель, а форма tools. Компактный сервер дает модели меньше, но точнее: короткие названия, короткие descriptions, один owner на tool, безопасные defaults, summary by default и отдельный путь к raw detail.

Чеклист компактного MCP server design с примерами before and after

Проверьте сервер по этому списку:

  1. Один tool - одна работа. Не смешивайте issues, logs, metrics, files и deployments в одном вызове.
  2. Называйте результат, а не внутреннюю реализацию. search_recent_errors лучше, чем query_system.
  3. Description должен помогать выбрать tool, а не документировать весь backend.
  4. Используйте mode: summary/detail/export вместо трех почти одинаковых tools.
  5. Summary должен быть default. Raw output - только через явный параметр.
  6. Для больших данных обязательны filter, limit, pagination или cursor.
  7. Для тяжелого payload возвращайте path, id или handle.
  8. Разделяйте read-only exploration и write/destructive actions.

Плохой tool - get_everything_from_database(), который возвращает rows, logs, traces и metadata. Хороший tool - search_errors(service, time_range, limit), который возвращает summary, top rows и next_cursor. Второй не просто меньше. Он дает Claude структуру для следующего шага.

Выносите шум из main thread

Иногда правильный ответ - не меньше MCP вообще, а меньше MCP в основном потоке. Subagents в Claude Code полезны, когда нужно исследовать шумные данные: отдельный agent с узким набором tools может прочитать логи, проверить branch hypothesis и вернуть summary, а main thread останется местом решения.

Но subagent помогает только при аккуратном scope. Если он наследует все tools, то не становится границей сжатия. Дайте ему только нужные server/tools и попросите вернуть findings, counts, paths, risks и next actions, а не raw dump.

Skills решают другой класс задач. Если вам нужен повторяемый метод, checklist, reference bundle или последовательность scripts, это skill. Если нужен внешний доступ или action surface, это MCP. Если нужно и то и другое, проектируйте вместе: MCP дает reach, skill задает operating method. Для durable rules лучше использовать memory, а не надеяться, что длинный transcript всегда останется чистым.

20-минутная чистка MCP

Когда Claude Code начинает преждевременно compact, ошибается с tools или замедляется после расширения setup, сделайте короткий проход:

  1. Выполните /mcp и выпишите активные серверы.
  2. Для каждого поставьте keep, defer, disable, split или redesign.
  3. Отключите все без current workflow owner.
  4. Запустите ту же маленькую задачу и посмотрите, где появляется боль.
  5. До tool call - проверяйте definitions, names, descriptions, Tool Search support.
  6. После tool call - проверяйте output size и форму возвращаемых данных.
  7. После многих попыток - подведите summary и начните чистую сессию.
  8. Если не хватает метода, пишите skill, а не добавляйте еще один server.

Хорошая метрика - не общее число configured servers. Важны число активных выборов в текущей задаче и размер данных, которые tool calls возвращают в разговор. Самый полезный MCP setup часто выглядит скучно: мало активных owners, маленькие outputs, понятные boundaries.

FAQ

Tool Search полностью решает перегрузку MCP-контекста?

Нет. Он помогает с upfront tool definitions на поддержанном пути. Он не сжимает tool results, не убирает старые turns, не чинит широкие custom tools и не делает лишние серверы полезными.

Сколько MCP-серверов включать в Claude Code?

Универсального числа нет. Включайте серверы, которые владеют текущим workflow. Один шумный database MCP может быть хуже пяти узких серверов, если он возвращает огромные dumps.

Что делать с огромным MCP output?

Сжимать в источнике: summary, filters, pagination, limits, cursors, paths, ids и handles. Raw data должен быть отдельным запросом, а не default.

Когда skill лучше MCP?

Skill лучше, когда проблема - метод. MCP нужен, когда Claude должен достать внешние данные или выполнить действие. Если нужны оба слоя, разделите роли: MCP для доступа, skill для способа работы.

Как проектировать компактный MCP server?

Меньше tools, более ясные names, короткие descriptions, bounded output, filters, limits, cursors, summary first и read/write separation. Не заставляйте Claude читать всю систему, чтобы ответить на один вопрос.

Полностью отключить MCP - самый безопасный путь?

Полное отключение полезно как диагностика. Долгосрочно лучше компактный active set: оставить нужный доступ, отложить все остальное и переделать tools, которые возвращают слишком много.

Перегрузка Claude Code MCP контекстом исправляется, когда вы перестаете считать интеграции и начинаете считать рабочую память. Оставляйте только владельцев текущего workflow, сжимайте результаты до входа в conversation, переносите методы в skills, а шумные исследования - в узкие контексты. Это не делает setup беднее; это делает его пригодным для рассуждения.

Поделиться:

laozhang.ai

Один API, все модели ИИ

AI Изображения

Gemini 3 Pro Image

$0.05/изобр.
-80%
AI Видео

Sora 2 · Veo 3.1

$0.15/видео
Async API
AI Чат

GPT · Claude · Gemini

200+ моделей
Офиц. цена
Обслужено 100K+ разработчиков
|@laozhang_cn|$0.1 бонус