Claude Code каждый раз перечитывает весь твой репозиторий с нуля — ты платишь токенами за то, что он уже «знал» 🔥
Каждый вопрос «а кто вызывает эту функцию?» превращается в веер grep и чтения файлов. Для большого репо это тысячи токенов на контекст, который модель уже видела десять раз. Codebase Memory MCP сканирует код один раз, строит граф функций / файлов / вызовов и отдаёт Claude ответы из индекса — модель больше не «ходит» по коду руками.
Это НЕ официальный Memory MCP (тот помнит твои решения и факты диалога). Здесь память про структуру кода, а не про контекст беседы. Пара к нему по духу — Context7 (свежие доки библиотек) и GitHub MCP (доступ к репе через API). Codebase Memory закрывает третью дыру: «где что лежит и что с чем связано» — локально, без облака.
Что это даёт ИИ
- Строит и хранит граф репозитория: функции, классы, импорты, цепочки вызовов, HTTP-роуты между сервисами.
- Отвечает на структурные вопросы из индекса: «кто вызывает
X», «что сломается, если тронутьY», обзор архитектуры, поиск мёртвого кода. - Ставится одним статическим бинарником: без Docker, без внешнего сервера БД, без облака и API-ключей. Граф хранится в локальном SQLite в
~/.cache/codebase-memory-mcp/(проверено: лицензия MIT, single static binary).
Пример: «Найди все места, где вызывается process_payment, и покажи, что сломается, если поменять её сигнатуру» — Claude берёт ответ из графа, а не читает пол-репозитория.
Подключение (точные шаги)
Сначала поставь бинарник (macOS/Linux). Установщик сам находит и настраивает поддерживаемые клиенты:
curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash
Есть также npm, PyPI, Homebrew, Scoop, AUR и готовые бинарники в GitHub Releases (для Windows — install.ps1 / Winget / Chocolatey). Перед запуском curl … | bash не лишним будет глянуть сам install.sh глазами.
Claude Code
Установщик прописывает Claude Code сам (плюс ещё десяток агентов: Codex, Gemini CLI, Zed и др.) в ~/.claude/.mcp.json — тогда шаг ниже можно пропустить. Вручную (бинарник называется codebase-memory-mcp):
claude mcp add codebase-memory-mcp -- codebase-memory-mcp
Проверить: claude mcp list.
Cursor / Claude Desktop
Автоустановщик Cursor не трогает — для него (и любого клиента с mcpServers) добавь блок вручную. Cursor: ~/.cursor/mcp.json или .cursor/mcp.json в корне проекта; Claude Code: ~/.claude/.mcp.json или .mcp.json в проекте.
{
"mcpServers": {
"codebase-memory-mcp": {
"command": "codebase-memory-mcp",
"args": []
}
}
}
Если бинарник не в PATH — впиши полный путь в command (например /usr/local/bin/codebase-memory-mcp).
Пример использования
Вот схема:
- Один раз проиндексируй проект — вызови инструмент
index_repositoryна корень репо (Claude сделает это по просьбе «проиндексируй этот проект»). - Проверь готовность:
index_status. - Спрашивай структурно: «who calls
create_order?», «трасса вызова от роутера до БД», «где мёртвый код вbilling/». Claude дёргаетsearch_graph/trace_path/get_architectureвместо чтения файлов. - После крупных правок — переиндексируй (
detect_changesподскажет, что устарело).
Результат: структурные вопросы Claude закрывает из графа, а не веером grep по всей репе — контекст на такие запросы заметно легче.
Безопасность
- Всё локально. Сервер и граф живут на твоей машине, код никуда не улетает — ни в облако, ни за API-ключ (их тут просто нет). Для приватных репозиториев это плюс.
- Минимум прав. Индексируй только нужную папку проекта, а не весь
$HOME. Граф-кэш (SQLite) лежит в~/.cache/codebase-memory-mcp/— это по сути слепок твоего кода; не коммить его в репозиторий и не клади в шаренные каталоги. - Проверяй установщик.
curl … | bashвыполняет чужой скрипт с твоими правами — откройinstall.shперед запуском или ставь из npm/Homebrew. - Опциональный 3D-UI поднимается на
localhost:9749— держи его только на localhost, не пробрасывай наружу. - Prompt-injection. Инструмент возвращает куски кода и комментарии из репо — а в них может быть враждебный текст («игнорируй прошлые инструкции…»). Относись к выводу MCP как к данным, а не как к командам; не давай модели на их основе выполнять действия без твоего подтверждения.
- Секреты (токены,
.env) в индекс не тащи — исключай их из области сканирования.
Подводные камни
- Это не долговременная память диалога. Помнит структуру кода, а не твои решения и договорённости — для этого смотри
Memory MCP(официальный) в базе. - Граф устаревает. После больших изменений нужна переиндексация, иначе ответы будут по старой карте (
index_status/detect_changesв помощь). - Экономия токенов — по замерам авторов. В README указаны цифры вроде «
120× / 99% меньше токенов» и бенчмарк на 31 репозитории (10×) — это заявление авторов, а не факт qvib. На твоём проекте и языке число будет другим; проверяй на себе. - Глубина разбора зависит от языка. Полное семантическое разрешение типов (Hybrid LSP) заявлено примерно для десятка языков (Python, TypeScript, Go, Rust, Java и др.); остальные из 158 разбираются только на tree-sitter — связи там грубее.
- Cursor из коробки не настраивается. Автоустановщик знает про Claude Code и ещё ~10 агентов, но Cursor в списке автодетекта нет — его подключаешь вручную (см. выше).
- Молодой проект. Версия дорелизная (0.x), набор из 14 инструментов и форматы могут меняться от релиза к релизу.
- Не заменяет чтение кода целиком. Структуру граф отдаёт быстро, но сложную бизнес-логику Claude всё равно читает построчно.