-30% токенов в Claude Code за 15 минут: подключаем бесплатный NotebookLM через MCP
Один MCP-сервер. 15 минут установки. Тяжёлая документация уезжает в бесплатный Gemini. Расход токенов падает на треть.
В апреле 2026 Anthropic тихо открыл то, что многие годами обходили скриптами: Model Context Protocol научился ходить в Google NotebookLM напрямую из Claude Code. Поверх вышло три рабочих MCP-сервера от сообщества - jacob-bd, PleasePrompto и roomi-fields. У первого 4 700 звёзд на GitHub за два месяца, что для MCP-инфраструктуры много.
Я полгода работаю в Claude Code на крупных проектах. Полноценно, не «погонять для блога». И у меня была ровно та же проблема, что у всех на $200 Max-подписке: документация Stripe в business/, документация Anthropic SDK во второй папке, документация Yandex Cloud в третьей. Каждый запрос «как у меня настроен webhook» Claude поднимал в контекст 30-50K токенов справки. Половина этих токенов улетала на текст про «как настроить webhook в Ruby», который мне не нужен.
Pasquale Pillitteri выкатил гайд в апреле, где он прогнал десяток сессий Claude Code с тем же набором задач - один раз с документацией в CLAUDE.md, второй раз с документацией в NotebookLM через MCP. Разница в расходе токенов на одинаковых сессиях - минус 30%. У меня после первой недели вышло чуть меньше, ближе к 25%. Pillitteri тестировал на питон-проекте с большой документацией, у меня контекст разнообразнее. Но порядок цифр сходится.
Дальше я разбираю, почему это работает, как поставить за один вечер, и где это ломается. Без рекламы Google и Anthropic, без «нового короля контекст-инжиниринга».
1. Парадокс: чем больше документация - тем больше выигрыш
Логика контекста в Claude Code устроена просто. Когда стартует сессия, Claude поднимает в контекст три вещи: CLAUDE.md корневой, CLAUDE.md родительских директорий и всё, на что эти файлы ссылаются. Если в CLAUDE.md написано «работаем по документации Stripe» и приложен файл stripe-api.md на 40K токенов - все 40K улетят в каждое сообщение сессии.
Так задумано архитектурно. Anthropic делает ставку на длинный контекст: 200K у Sonnet 4.6, 1М у Opus 4.7 в API. Идея в том, что модель сама разберётся, какой кусок документации брать. На практике она берёт всю папку и считает токены. Я уже разбирал как правильно настроить память Claude и CLAUDE.md без перегруза токенами, но даже после чистки CLAUDE.md упирается в свой предел: документация внешних SDK в него физически не лезет.
NotebookLM через MCP меняет схему. Документация физически лежит в Google: PDF, markdown, GitHub-репозитории, видео-транскрипты. Claude знает про существование notebook'а как про инструмент. Когда он видит запрос «как настроить webhook в Stripe», он не подгружает 40K документации - он шлёт через MCP запрос «найди в notebook'е Stripe Documentation как настроить webhook». NotebookLM на стороне Google делает свой RAG, синтезирует ответ в 1500-3000 токенов и отдаёт обратно.
Конкретный пример из моих сессий. Документация Stripe API в формате markdown - 178 000 токенов. Через NotebookLM один запрос возвращает 1800 токенов синтезированного ответа со ссылками на разделы. Разница в input-токенах на одну сессию: было 7 200 000, стало 120 000. На запросе. 60 раз меньше.
Так выглядит готовая команда установки, которая делает всё за один шаг:
Первая строка ставит CLI через uv (Python-tooling от Astral). Вторая открывает браузер с Google OAuth - один клик. Третья записывает JSON-конфиг в ~/.claude.json автоматически, ничего руками править не нужно. Если что-то пошло не так, nlm doctor показывает где сломалось.
После этого в Claude Code появляется набор инструментов с префиксом mcp__notebooklm__: создать notebook, добавить источник, отправить запрос, получить ответ, получить ссылки на разделы.
2. Как это работает по шагам: один промпт = один запрос в NotebookLM
Поведенчески выглядит так. Я в Claude Code пишу: «Проверь как у меня настроен webhook на возврат подписки, сравни с тем как должно быть по Stripe API». Claude дёргает Read на мой файл с webhook'ом, потом видит инструмент mcp__notebooklm__query и понимает, что есть notebook со Stripe Documentation. Шлёт туда запрос.
NotebookLM на стороне Google делает то, что в платных RAG-сервисах стоит $200 в месяц: разбивает документацию на чанки, делает эмбеддинги через Gemini, ищет релевантные куски, синтезирует ответ. Возвращает 1800 токенов текста плюс цитаты с указанием раздела.
Claude получает этот ответ, прикладывает к моему коду и пишет вывод. У меня в контексте никогда не было 178К токенов Stripe-документации. Они физически живут на серверах Google.
Tool Search в Claude Code 2.1 (запустился в июне 2026) помогает удержать сам каталог инструментов. Когда у тебя 12-15 MCP-серверов, описание каждого инструмента - тоже токены. Tool Search показывает Claude только те инструменты, которые могут пригодиться текущему запросу. На моём наборе MCP это даёт ещё 8-10% экономии сверху.
Важная деталь, которую я понял не сразу. NotebookLM Free на платной Google-почте даёт 50 chat-запросов в день. Считается по походам Claude в NotebookLM, не по моим промптам в редакторе. Один мой запрос порождает два-три захода в notebook, если Claude уточняет. У меня в активный день уходит 35-45 заходов. На лимит наталкивался дважды за месяц.
3. Установка за 15 минут: что положить в notebook и в каком формате
Я держу четыре notebook'а под разные зоны работы.
Первый - внешние SDK и API. Туда залит markdown-экспорт документации Anthropic SDK, OpenAI SDK, Yandex Cloud SDK, Telegram Bot API. Веса там - 600K токенов, что выкинуть в CLAUDE.md физически нельзя. NotebookLM держит спокойно.
Второй - внутренние конвенции рабочего проекта. MDX-файлы с описанием домена, договорённости команды по именованию переменных, описание схемы базы данных текстом. 80K токенов. Обновляется раз в неделю.
Третий - юридические шаблоны. Договора подряда, NDA, требования регуляторов по обработке персональных данных. 120K токенов. Claude никогда не должен это видеть целиком - подгружается по конкретному запросу, когда я правлю текст договора.
Четвёртый - архив моих публичных материалов. Транскрипции выступлений и заметки за полгода. 1.4М токенов. В контекст это вообще не пихнуть никак. Сюда я хожу, когда пишу что-то новое и помню, что про эту тему уже что-то говорил.
Что подойдёт как источник в notebook'е:
- markdown-файлы (лучший вариант, цитирование работает идеально)
- PDF (распознавание ОК, но цитаты иногда промахиваются по странице)
- ссылки на GitHub-репозитории (NotebookLM сам качает и парсит)
- ссылки на YouTube-видео (включая транскрипцию автомата)
- Google Docs (синхронизация в реальном времени)
Что НЕ подойдёт:
- скриншоты кода (картинки не индексируются)
- архивы .zip (нужно распаковать)
- бинарные форматы .docx, .pptx (выгрузить как PDF или markdown)
4. Три рабочих MCP-сервера: чем отличаются и какой брать
В сообществе три живых проекта. Я попробовал все три по неделе. Выводы.
jacob-bd/notebooklm-mcp-cli - самый зрелый. 4 700 звёзд, обновляется три раза в неделю, есть CLI nlm для управления notebook'ами из терминала, поддерживает все девять «studio-фич» NotebookLM (Audio Overview, Video Overview, Mind Map, Briefing Doc, FAQ, Timeline, Study Guide). У него же есть автоматическая интеграция в ~/.claude.json через одну команду. Минус - тяжеловат, тащит за собой Playwright (для скрейпа UI NotebookLM, чтобы вынимать «studio-фичи»). На MacBook Air M1 кушает 200-300 МБ оперативки в фоне.
PleasePrompto/notebooklm-mcp - лёгкий и про правильное цитирование. 2 600 звёзд, фокус на DOM-цитировании: ответ возвращается с разметкой «откуда конкретно эта мысль». Удобно, когда работаешь с юридической документацией - нужна точная ссылка на раздел. Минус - нет CLI, всё через MCP, и нет studio-фич.
roomi-fields/notebooklm-mcp - заточен под n8n-сценарии. 800 звёзд, простой API, можно дёргать из workflow n8n параллельно с Claude Code. У меня этот стоит отдельно, через него n8n автоматически добавляет в notebook свежие материалы, когда они появляются.
Если ставишь первый раз - jacob-bd. Если важна точная атрибуция (юр-задачи, академический рисёрч, анализ материалов с цитированием) - PleasePrompto. Если строишь автоматизацию через no-code оркестратор - roomi-fields.
Все три одновременно ставить не надо. Конфликта в claude.json не будет (имена инструментов разные), но три MCP-сервера в одном Claude Code - это лишние 12-15K токенов на описание инструментов. Tool Search спасает, но не до конца.
5. Где это ломается и что делать
За месяц использования набралось пять реальных проблем.
Free tier 50 запросов в день кончается раньше, чем рабочий день. В дни, когда я пишу тексты или разбираю документацию, лимит выгребается за 4 часа. Решение - кэшировать ответы. У jacob-bd есть флаг --cache-ttl 3600, который кладёт ответ в локальный SQLite на час. Повторный запрос за тот же час идёт мимо NotebookLM. Я держу TTL 6 часов, чтобы не выжечь лимит на повторных вопросах.
Большие PDF индексируются по 10-15 минут. Если закинул 200-страничный PDF, час он будет недоступен для запросов. У меня это случилось с проектной документацией клиента: пока перерыв на обед, документ становится поисковым. Не пихать в Sources за 5 минут до сессии.
Google иногда выкатывает Captcha. NotebookLM на Free-аккаунте раз в две недели спрашивает «вы не робот». Если игнорить, MCP-сервер начинает возвращать 403. Лечится открытием notebooklm.google.com в браузере, прохождением капчи руками. Pro-аккаунт ($20/мес) эту проблему снимает, лимит chat-запросов поднимается до 500/день.
Синхронизация между notebook'ами и локальными файлами. Если у меня документ обновился локально, NotebookLM это не узнает - надо перезалить. У PleasePrompto есть watch-режим, который отслеживает изменения в файлах и сам синхронит. У jacob-bd этого нет, я написал маленький bash-скрипт на 12 строк, который раз в сутки прогоняет nlm source update по списку файлов.
MCP-сервер падает после долгой паузы. Если Claude Code не дёргал MCP пару часов, при следующем запросе бывает timeout. nlm doctor обычно показывает «session expired», лечится одним nlm login. Я держу cron-job каждые 3 часа, который дёргает nlm ping - не идеально, но работает.
Эти пять проблем - стоимость использования. Они никуда не денутся, пока NotebookLM Free живёт в текущих лимитах. Если апгрейд на Google One AI Premium ($20/мес) - первые три снимаются.
6. Как это влияет на счёт в Claude Code
Считаю на своих метриках. До NotebookLM моя средняя сессия Claude Code Max ($200/мес) выжирала лимит к 18-19 числу. На Anthropic-приоритете я сидел почти каждый месяц - использовал доплатный API для добивания. Доплата плавала $40-70 в месяц сверху.
После перехода на NotebookLM-MCP лимит Claude Code Max уходит ровно к концу месяца. Доплат через API я не делал ни разу за май и за начало июня. Pillitteri в своём тесте получил -30%, у меня по факту вышло -28%. Логика та же.
Если ты на Sonnet-only с API (Tier 4, ~$50-100/мес расхода), то -28% даст $14-28 экономии. Окупаемость подключения - пара дней, дальше чистый выигрыш.
Если ты на Opus 4.7 ($15 input / $75 output) и гоняешь крупный проект - экономия будет ещё больше. Опус дороже Sonnet в три раза, и каждые 30K сэкономленных входных токенов дают $0.45 на запрос. На 200 запросах в месяц - $90.
Прогноз на 2026-2027: эта схема (модель в одном облаке, RAG в другом, оркестрация через MCP) станет стандартом. Anthropic тихо пушит «not in context window» как best practice, OpenAI выкатил похожую модель с Connectors для ChatGPT в апреле, Google продвигает NotebookLM как back-end. Через год спорят уже про выбор RAG-провайдера, а не про сам факт.
Что выносить с собой
- NotebookLM через MCP - один из самых дешёвых способов снизить расход токенов в Claude Code. Pillitteri зафиксировал -30%, у меня вышло -28%.
- Установка - 15 минут через uv tool install notebooklm-mcp-cli плюс Google OAuth. Конфиг записывается автоматически.
- Free tier 50 chat-запросов в день. Хватает на лёгкий день, на тяжёлый - нет. Кэширование через --cache-ttl спасает.
- Из трёх MCP-серверов первым ставить jacob-bd: он зрелый, поддерживает все studio-фичи и пишет конфиг сам.
- Не пихать всё в один notebook. Разделить по зонам: внешние SDK, внутренний фреймворк, юр-документы, архив материалов.
- Прогноз: к концу 2026 «модель в одном облаке, RAG в другом» станет стандартной архитектурой для серьёзной работы в ИИ-агентах.
Главное тут даже не про токены. Главное - что появилось чёткое разделение слоёв. Контекст Claude - оперативная память агента. NotebookLM - его внешняя библиотека. Раньше мы заваливали оперативку всем подряд и удивлялись, почему модель тупит. Теперь у неё есть отдельный шкаф с книгами, в который она идёт по запросу.
А ты считал, сколько у тебя сейчас улетает токенов в Claude Code на документацию, которую модель видела двести раз в сессии? Подели на месяц - получится твоя личная цифра экономии. Напиши свою цифру в комментариях.
Все три MCP-сервера, готовые команды установки и полная инструкция по установке NotebookLM-MCP с командами и скриншотами - в моём отдельном гайде. Там же про то, как складывать Sources правильно и где смотреть статистику расхода токенов в Claude Code.