Набор скиллов для Claude, который конвертирует любой MCP-сервер в «кодовый SDK»: вместо того чтобы грузить схемы всех тулов в контекст модели на каждый запрос, Claude пишет обычный код, который вызывает те же тулы. Паттерн описан в engineering-блоге Anthropic «Code execution with MCP» (в их примере экономия — со 150 000 токенов до 2 000, т.е. 98,7%).
Работает в Claude Code и в Cowork / claude.ai (нужна включённая функция code execution / «выполнение кода и создание файлов»).
| Компонент | Что делает |
|---|---|
skills/mcp-to-code |
Билдер. Подключается к любому MCP-серверу, выгружает схемы тулов и генерирует python-пакет mcp_sdk/<server>/ с обёртками + считает экономию токенов |
skills/mcp-to-code/presets |
Топ-10 серверов для вайбкода с готовыми командами подключения: GitHub, Supabase, Playwright, Context7, Notion, Figma, Stripe, Sentry, Linear, Mixpanel |
skills/skill-harvester |
Харвестер. Сохраняет рабочий код из сессии как переиспользуемый скилл — агент постепенно строит себе toolbox |
examples/everything-demo |
Живой пример: что получается на выходе билдера |
dist/*.zip |
Готовые ZIP скиллов для загрузки в claude.ai / Cowork |
При прямом подключении MCP большинство клиентов кладут схемы всех тулов в контекст на каждый запрос. 40 тулов ≈ десятки тысяч токенов, даже если ты спросил «привет». Плюс каждый промежуточный результат (например, здоровенный JSON из Mixpanel) дважды прокачивается через модель: на выходе одного тула и на входе следующего.
С кодовым SDK:
- Модель читает только
INDEX.md— одна строка на тул. - Полную схему открывает только для тула, который реально нужен.
- Данные между вызовами живут в переменных python-скрипта, а не в контексте.
- Циклы/фильтры/ретраи выполняются кодом, а не цепочкой «tool call → ответ → tool call».
Точка окупаемости по замерам сообщества — примерно от 6 тулов на сервере. Если у сервера 2–3 тула — оставь его как есть, диета не нужна.
git clone https://github.com/haraldalder-vibemogger/mcp-diet
# скиллы проекта:
mkdir -p .claude/skills && cp -r mcp-diet/skills/* .claude/skills/
# или глобально для всех проектов:
mkdir -p ~/.claude/skills && cp -r mcp-diet/skills/* ~/.claude/skills/Перезапусти сессию Claude Code — скиллы подхватятся автоматически.
- Скачай
dist/mcp-to-code.zipиdist/skill-harvester.zip(или собери сам: ZIP, внутри которого лежит папка скилла со SKILL.md). - В приложении: Customize → Skills → «+» → загрузить ZIP (в вебе: Настройки → Возможности). Включи скилл тумблером.
- Убедись, что включено «Выполнение кода и создание файлов» (Code execution). Скиллы, включённые в аккаунте claude.ai, автоматически доступны и в Cowork.
Кинь Клоду папку/архив репозитория и напиши: «Прочитай skills/mcp-to-code/SKILL.md и оптимизируй мой Mixpanel MCP по этой инструкции». Работает везде, где есть code execution.
Скажи Клоду:
Используй скилл mcp-to-code и сконвертируй Mixpanel MCP в кодовый SDK
Под капотом произойдёт:
pip install mcp
python3 scripts/introspect.py --name mixpanel \
--cmd "npx -y mcp-remote https://mcp.mixpanel.com/mcp" # откроется OAuth в браузере
python3 scripts/gen_wrappers.py tools_mixpanel.json --out ./mcp_sdkНа выходе — пакет mcp_sdk/mixpanel/, отчёт «во сколько токенов обходились схемы vs
сколько стало» (заскринь и кинь в комменты 😉) и блок правил в CLAUDE.md проекта.
После этого прямое MCP-подключение Mixpanel в клиенте можно отключить.
Дальше Claude работает так:
from mcp_sdk.mixpanel import tools as mp
events = mp.query_events(...) # имена тулов — в mcp_sdk/mixpanel/INDEX.md
signups = [e for e in events if e["name"] == "signup"] # фильтрация В КОДЕ, не в контексте
print(len(signups)) # в модель уходит одна цифра, а не весь JSON- python 3.10+ и пакет
mcp:pip install mcp(в песочнице Claude —pip install mcp --break-system-packages) - node 18+ — только для stdio-серверов и OAuth через
mcp-remote - Ничего из этого не нужно ставить руками заранее: скилл сам поставит и сам скажет, чего не хватает
| Где запускаешь | OAuth-серверы (Mixpanel, Notion, Figma...) | Серверы с токеном (GitHub PAT, Stripe key...) |
|---|---|---|
| Claude Code на твоей машине | ✅ работает (браузер откроется) | ✅ работает |
| Cowork / claude.ai (облачная песочница) | ❌ браузер не откроется | ✅ работает через --url + --header |
Обходной путь для OAuth в облаке: запусти introspect.py локально у себя (это один файл
без зависимостей кроме mcp), получи tools_<server>.json и загрузи его Клоду — генерация
и дальнейшая работа секретов не требуют. Либо используй Claude Code.
Секреты никогда не сохраняются в файлы. В config.json попадают только имена
env-переменных. Перед запуском: export MY_TOKEN=....
В skills/mcp-to-code/presets/*.json — готовые команды подключения для:
GitHub · Supabase · Playwright · Context7 · Notion · Figma · Stripe · Sentry · Linear · Mixpanel.
docs
из этого же файла, возьми актуальное подключение, поправь пресет у себя и пришли PR,
чтобы починилось у всех. Так этот репозиторий и поддерживается.
Свой сервер добавить просто: скопируй любой пресет, поменяй name, introspect_cmd и docs.
Когда Claude решил тебе нетривиальную задачу кодом — скажи «сохрани как скилл». Он выделит переиспользуемое ядро, уберёт секреты, оформит SKILL.md по стандарту и скажет, как установить (Claude Code / claude.ai). Через месяц у тебя личная библиотека навыков вместо повторного изобретения велосипедов (и повторной оплаты токенов за них).
- Сгенерированные обёртки вызывают реальные тулы реальных сервисов. Тул
delete_projectудалит проект по-настоящему. Скилл по умолчанию тестирует только read-only тулы, но ответственность за write-операции — на тебе. - Code execution означает исполнение кода. Ревьюй, что запускаешь, особенно чужие форки этого репозитория.
- Данные из твоих сервисов через MCP попадают в контекст модели — читай политики своего AI-провайдера и вендора (например, Mixpanel прямо предупреждает об этом в доке).
| Симптом | Лечение |
|---|---|
ImportError: streamablehttp_client |
Версии библиотеки mcp переименовали клиент. Скрипты в репо совместимы с обеими — обнови файлы скилла до свежих из репозитория |
Переменная окружения X пуста |
export X=твой_токен в той же сессии терминала и перезапусти |
| Таймаут при интроспекции OAuth-сервера | Ты в облачной песочнице — см. раздел «Авторизация» |
npm error SELF_SIGNED_CERT в песочнице |
npm config set strict-ssl false (только в песочнице, не на своей машине) |
Cannot uninstall PyJWT при pip install mcp |
pip install mcp --break-system-packages --ignore-installed PyJWT |
| Тул возвращает ошибку авторизации, хотя интроспекция прошла | Токен протух или у него нет нужных скоупов — перевыпусти |
В tools.py нет тула, который есть в доке сервиса |
Сервер отдаёт тулы в зависимости от прав. Перелогинься с нужными скоупами и перегенерируй |
| Хочу перегенерировать после обновления сервера | Просто запусти шаги 1–2 заново — генерация детерминированная, локальные правки в mcp_sdk не делай |
Это замена MCP? Нет. MCP остаётся транспортом (подключение, авторизация, discovery) — мы убираем только прямую экспозицию схем в контекст модели.
Почему python, а не TypeScript как в блоге Anthropic? Python-рантайм гарантированно есть и в Claude Code, и в песочнице Cowork/claude.ai. Паттерн тот же.
Стоит ли конвертировать сервер с 3 тулами? Нет, окупается примерно от 6 тулов.
Можно несколько серверов? Да, они складываются в один пакет mcp_sdk/ и живут рядом.
Кросс-серверные сценарии (взять из Mixpanel → записать в Notion) — главный профит: данные
идут напрямую в коде, минуя контекст.
Вопросы и баги — только через GitHub Issues (перед этим — «Траблшутинг» выше). Личные сообщения автору с вопросами по установке телепортируются в /dev/null 🙂 PR с новыми пресетами и починкой протухших эндпоинтов — самый ценный вклад.
MIT. Делай что хочешь, ссылка на источник приветствуется.
Сделано для подписчиков ika.explains. Идея паттерна — Anthropic Engineering, реализация — наша.