code-memory — MCP-сервер для Claude Code: что делает и как установить
Локальный семантический поиск по кодовой базе и истории Git без внешних API-ключей. Помогает передавать ИИ-агенту точные фрагменты кода вместо целых файлов.
claude mcp add --env CODE_MEMORY_LOG_LEVEL=<CODE_MEMORY_LOG_LEVEL> --env EMBEDDING_MODEL=<EMBEDDING_MODEL> --transport stdio code-memory -- uvx code-memoryЧто делает code-memory
Сервер создаёт локальный индекс кодовой базы через sentence-transformers и SQLite vec. Для языков вроде Python, TypeScript, Java, Go и Rust используется AST-парсер с выделением символов, а для конфигураций, SQL и Markdown работает индексация файлов целиком. Файлы из .gitignore отсекаются автоматически.
В распоряжение агента поступают четыре инструмента: search_code для определений через гибридный поиск BM25 и векторных эмбеддингов, search_docs для документации, search_history для анализа коммитов Git и index_codebase для перестроения индекса. Телеметрия отсутствует, данные наружу не уходят.
Для запуска нужен Python не ниже версии 3.13 либо отдельный бинарный файл. При первом старте сервер скачивает модель весом около 600 МБ в кэш Hugging Face, поэтому первичному запуску требуется интернет. Если запускать инструмент отдельно для каждого каталога, модель займёт 1–2 ГБ оперативной памяти на каждый процесс, поэтому для нескольких проектов предусмотрен общий запуск через SSE.
Какие задачи решает
- находить определения и ссылки в коде через гибридный поиск BM25 и векторов
- искать причины изменений и регрессий по истории коммитов Git
- сокращать расход токенов в контекстном окне LLM без отправки полных файлов
- индексировать структуру проекта без передачи исходников на сторонние серверы
Примеры запросов агенту
- Найди через search_code, где в проекте объявляется класс UserSession.
- Проверь историю Git через search_history и объясни, почему изменилась логика авторизации.
- Переиндексируй текущую кодовую базу с помощью index_codebase.
Как установить code-memory
Командой платформы
claude mcp add --env CODE_MEMORY_LOG_LEVEL=<CODE_MEMORY_LOG_LEVEL> --env EMBEDDING_MODEL=<EMBEDDING_MODEL> --transport stdio code-memory -- uvx code-memoryВместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from code-memory <команда>
Командой платформы
codex mcp add code-memory --env CODE_MEMORY_LOG_LEVEL=<CODE_MEMORY_LOG_LEVEL> --env EMBEDDING_MODEL=<EMBEDDING_MODEL> -- uvx code-memoryВместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from code-memory <команда>
Файл настроек
{
"mcpServers": {
"code-memory": {
"command": "uvx",
"args": [
"code-memory"
],
"env": {
"CODE_MEMORY_LOG_LEVEL": "<CODE_MEMORY_LOG_LEVEL>",
"EMBEDDING_MODEL": "<EMBEDDING_MODEL>"
}
}
}
}Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from code-memory <команда>
Файл настроек
{
"servers": {
"code-memory": {
"type": "stdio",
"command": "uvx",
"args": [
"code-memory"
],
"env": {
"CODE_MEMORY_LOG_LEVEL": "<CODE_MEMORY_LOG_LEVEL>",
"EMBEDDING_MODEL": "<EMBEDDING_MODEL>"
}
}
}
}Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from code-memory <команда>
Командой платформы
gemini mcp add -e CODE_MEMORY_LOG_LEVEL=<CODE_MEMORY_LOG_LEVEL> -e EMBEDDING_MODEL=<EMBEDDING_MODEL> code-memory uvx code-memoryВместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from code-memory <команда>
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о code-memory
Как установить code-memory в Claude Code?
В терминале выполните команду claude mcp add code-memory -- uvx code-memory. Если нужно передать переменные окружения, используйте `claude mcp add --env CODE_MEMORY_LOG_LEVEL=<CODE_MEMORY_LOG_LEVEL> --env EMBEDDING_MODEL=<EMBEDDING_MODEL> --transport stdio code-memory -- uvx code-memory`.
Нужен ли внешний API-ключ для работы сервера?
Внешний ключ не требуется, поскольку эмбеддинги строятся локально с помощью sentence-transformers. Все поисковые операции выполняются прямо на вашей машине без отправки кода в облако.
Как снизить потребление оперативной памяти при работе с несколькими проектами?
Запустите единый общий сервер командой uvx code-memory --transport sse, который слушает адрес http://127.0.0.1:8765/sse. Затем настройте клиенты на работу через этот URL, чтобы не дублировать модель в памяти.