# lean-memory

Локальная память для MCP-агентов: факты из переписки складываются в SQLite-файл и достаются гибридным поиском. Данные не покидают машину.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 43
- Автор: Wuesteon
- Лицензия: Apache-2.0 · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/Wuesteon/lean-memory
- Обновлён: 2026-08-07
- HTML: https://affpapa.org/nevibecode/mcp/lean-memory

## Что делает

lean-memory хранит факты, которые агент узнаёт по ходу работы. Вы пишете их обычным языком, движок сам вытаскивает утверждения и раскладывает по пространствам имён: на каждое — свой файл SQLite под `LM_DATA_ROOT` (по умолчанию `~/.lean_memory`). Старые записи не стираются. Новый факт вытесняет прежний, но прежний остаётся доступен запросом на момент времени — это заметно, когда нужно понять, что агент знал раньше.

MCP-сервер даёт три инструмента: `memory_add`, `memory_search`, `memory_clear`. Поиск гибридный, плотный плюс разреженный. Без дополнений сервер работает офлайн на заглушках — для CI сойдёт, для реальной работы нет. Ставьте `lean-memory[mcp,models,extract]`: тогда подключаются настоящие эмбеддер и реранкер, а извлечение идёт через GLiNER2. При первом запуске скачиваются три открытые модели, около 2.0 GB суммарно, поэтому прогрев лучше сделать заранее, иначе клиент будет ждать загрузки.

Есть и обслуживание памяти: `lean-memory-maintain` дедуплицирует, суммирует и понижает в весе записи, которые давно не всплывали. По умолчанию это сухой прогон — команда только отчитывается, ничего не пишет; для правок нужен `--apply`. Запускать такое логично ночью по расписанию, а решения, которые нельзя принять автоматически, разбирать утром.

## Требования
- Нужно: Python и uv (команды через uvx)
- Переменные окружения: `LM_DATA_ROOT` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env LM_DATA_ROOT=<LM_DATA_ROOT> --transport stdio lean-memory -- uvx lean-memory
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from lean-memory <команда>

### Codex

**Командой платформы**
```bash
codex mcp add lean-memory --env LM_DATA_ROOT=<LM_DATA_ROOT> -- uvx lean-memory
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from lean-memory <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "lean-memory": {
            "command": "uvx",
            "args": [
                "lean-memory"
            ],
            "env": {
                "LM_DATA_ROOT": "<LM_DATA_ROOT>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from lean-memory <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "lean-memory": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "lean-memory"
            ],
            "env": {
                "LM_DATA_ROOT": "<LM_DATA_ROOT>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from lean-memory <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e LM_DATA_ROOT=<LM_DATA_ROOT> lean-memory uvx lean-memory
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from lean-memory <команда>

## Когда брать
- дать агенту память между сессиями без облачного сервиса
- найти актуальный факт, когда старая версия уже вытеснена новой
- посмотреть, что агент знал на конкретный момент времени
- почистить накопившиеся дубли и устаревшие записи
- развести память разных пользователей по отдельным файлам

## Примеры запросов агенту
- Запомни: я работаю в Globex.
- Что ты знаешь о моём месте работы?
- Прогони обслуживание памяти по всем пространствам имён и покажи отчёт без записи.

## Похожие
- [GitHub](https://affpapa.org/nevibecode/mcp/github.md) — MCP-сервер · ★ 33918
- [Netdata](https://affpapa.org/nevibecode/mcp/netdata.md) — MCP-сервер · ★ 81115
- [browser-use](https://affpapa.org/nevibecode/mcp/browser-use.md) — MCP-сервер · ★ 119160
- [Codebase Memory](https://affpapa.org/nevibecode/mcp/codebase-memory.md) — MCP-сервер · ★ 47392
- [mcp-server](https://affpapa.org/nevibecode/mcp/mcp-server.md) — MCP-сервер · ★ 43872
- [AIHawk](https://affpapa.org/nevibecode/mcp/aihawk.md) — MCP-сервер · ★ 32221

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
