Уже все поняли, что грузить агента кучей MCP tools – вредно (ведь поняли же?).
Во первых, сжираем драгоценный контекст (чаще упираемся в rate limits), а во вторых – путаем модель – если у тебя в руках молоток, то все выглядит как гвоздь. А для LLMок этот принцип еще актуальнее.
По хорошему, использование tools должно быть точечным. Это касается не только MCP, но и встроенных тулов кодинг агентов – всякое редактирование файлов, запуск консольных команд, веб поиск.
- На этапе планирования возможность поредачить файлы будет сбивать.
- И наоборот, когда применяем изменения – не нужно читать документацию.
- А UX тестировщик должен иметь доступ к браузеру, но не должен перезаписывать файлы (а то он быстро требования подгонит под реальность)
В целом, ничего нового не сказал, это база. Но как это настроить? Оказалось, не так просто найти адекватные способы (я это пост уже четвертый день пишу)
Cursor:
В окне агента создаем новый мод, называем его Default, назначаем хоткей, выключаем все лишнее (Скрин1). Отдельно добавляем специализированные моды. У меня такие три:
1. Поисковик – у него Context7 и WebSearch
2. Тестировщик – browsermcp
3. Планировщик – не может писать в файлы
Выбирать там отдельные тулы в рамках одного MCP нельзя, но все лишнее можно отрубить глобально в настройках Cursor.
Claude Code:
Тут все сильно поинтереснее. В CC есть кастомные слэш команды. Там можно прописать промпт и определить allowed-tools. Сработает ли это как мы хотим?
Нет. Все тулы будут передаваться в контекст в любом случае. allowed-tools – это просто разрешение запускать их без одобрения пользователя.
Аналогично и с главными /permissions, но там можно хотя бы есть Deny для запрета вызова тулов (которые зачем-то все равно передаются в контекст и даже без пометки, что ими нельзя пользоваться 🥴)
Что делать в итоге?
Новая фича с субагентами. Вот там настоящее раздолье. Это же буквально весь смысл нескольких "агентов" – иметь ограниченный набор инструментов и узкую задачу, чтобы разделять ответственность и дополнять друг друга.
Идем в
/agents, создаем нового агента, описываем текстом, что он должен делать, в настройках выбираем, какие инструменты давать, а какие забрать (скрин 2).В отличие от курсора, можно провалиться в конкретные тулы каждого MCP сервера и выбирать только нужные. Особенно полезно на всяких MCP монстрах типа GitHub MCP, где под сотню тулов, из которых нужны 5-10.
Получаем назависимых агентов, у каждого свой промпт и набор инструментов. Более того, в отличие от курсора, или слэш-комманд, основной агент будет сам их роутить – например, не обязательно явно указывать переход от планирования к исполнению или к тестированию.
Если контрол фрики, то прописываем в CLAUDE.md, чтобы вызывал не больше одного субагента за раз.
TL;DR
Использовать хоть сколько-нибудь сложный набор тулов можно только с субагентами. При этом, ограничения им только помогают, потому что не дают терять фокус. Но оградить основного агента Claude Code от свалки тулов в контексте – нельзя.
В курсоре можно настроить наборы MCP, но в рамках одного MCP сервера все равно нельзя выбирать отдельные тулы. Зато, как @kdoronin_blog напомнил, можно отрубить их глобально в настройках курсора.
P.s. Динамически можно сделать через вот это, но я решил, что уже совсем задротство
Такой вот мини рисерч

