# Toon Memory

Локальная память для кодинг-агентов без облака. Хранит архитектурные решения и договорённости проекта между сессиями в формате TOON.

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

## Что делает

Сервер сохраняет принятые решения по кодовой базе, соглашения о библиотеках и контекст исправленных ошибок прямо на диске разработчика. Для этого не нужны облачные сервисы: данные лежат локально в каталоге `.toon-memory/memory/`, который утилита автоматически добавляет в `.gitignore`. Формат разметки TOON расходует на 22% меньше токенов по сравнению с привычным JSON.

Внутри находится набор из 35 MCP-инструментов. Метод `memory_smart_recall` извлекает релевантный контекст перед началом задачи, `memory_checkpoint` делает снимки сессий с временем жизни 7 дней, а `memory_secret` защищает конфиденциальные данные с помощью шифрования AES-256-GCM. Записи объединяются ссылками в граф памяти: алгоритм BM25 комбинируется с анализом связности узлов без вызова сторонних эмбеддингов.

При начальной инициализации `toon-memory init` сканирует манифесты вроде `package.json` или `requirements.txt` для автоматического присвоения тегов по зависимостям. Если вы хотите шифровать хранилище или синхронизировать записи через GitHub Gist, в окружении обязательно понадобятся переменные `TOON_MEMORY_KEY` и `GITHUB_TOKEN`.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `TOON_MEMORY_KEY`, `TOON_MEMORY_CAPTURE`, `TOON_MEMORY_SESSION_ID`, `TOON_MEMORY_BRANCH`, `TOON_MEMORY_NO_SESSION`, `GITHUB_TOKEN` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

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

**Командой платформы**
```bash
claude mcp add --env TOON_MEMORY_KEY=<TOON_MEMORY_KEY> --env TOON_MEMORY_CAPTURE=<TOON_MEMORY_CAPTURE> --env TOON_MEMORY_SESSION_ID=<TOON_MEMORY_SESSION_ID> --env TOON_MEMORY_BRANCH=<TOON_MEMORY_BRANCH> --env TOON_MEMORY_NO_SESSION=<TOON_MEMORY_NO_SESSION> --transport stdio toon-memory -- npx -y toon-memory
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

### Codex

**Командой платформы**
```bash
codex mcp add toon-memory --env TOON_MEMORY_KEY=<TOON_MEMORY_KEY> --env TOON_MEMORY_CAPTURE=<TOON_MEMORY_CAPTURE> --env TOON_MEMORY_SESSION_ID=<TOON_MEMORY_SESSION_ID> --env TOON_MEMORY_BRANCH=<TOON_MEMORY_BRANCH> --env TOON_MEMORY_NO_SESSION=<TOON_MEMORY_NO_SESSION> -- npx -y toon-memory
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "toon-memory": {
            "command": "npx",
            "args": [
                "-y",
                "toon-memory"
            ],
            "env": {
                "TOON_MEMORY_KEY": "<TOON_MEMORY_KEY>",
                "TOON_MEMORY_CAPTURE": "<TOON_MEMORY_CAPTURE>",
                "TOON_MEMORY_SESSION_ID": "<TOON_MEMORY_SESSION_ID>",
                "TOON_MEMORY_BRANCH": "<TOON_MEMORY_BRANCH>",
                "TOON_MEMORY_NO_SESSION": "<TOON_MEMORY_NO_SESSION>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "toon-memory": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "toon-memory"
            ],
            "env": {
                "TOON_MEMORY_KEY": "<TOON_MEMORY_KEY>",
                "TOON_MEMORY_CAPTURE": "<TOON_MEMORY_CAPTURE>",
                "TOON_MEMORY_SESSION_ID": "<TOON_MEMORY_SESSION_ID>",
                "TOON_MEMORY_BRANCH": "<TOON_MEMORY_BRANCH>",
                "TOON_MEMORY_NO_SESSION": "<TOON_MEMORY_NO_SESSION>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e TOON_MEMORY_KEY=<TOON_MEMORY_KEY> -e TOON_MEMORY_CAPTURE=<TOON_MEMORY_CAPTURE> -e TOON_MEMORY_SESSION_ID=<TOON_MEMORY_SESSION_ID> -e TOON_MEMORY_BRANCH=<TOON_MEMORY_BRANCH> -e TOON_MEMORY_NO_SESSION=<TOON_MEMORY_NO_SESSION> toon-memory npx -y toon-memory
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

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

## Примеры запросов агенту
- Найди в памяти проекта, почему мы выбрали именно эту библиотеку для валидации
- Сохрани в память исправление пула соединений базы данных с тегом backend
- Сделай чекпоинт текущей сессии с фиксацией изменений архитектуры

## Похожие
- [memory-discipline](https://affpapa.org/nevibecode/skills/memory-discipline.md) — скилл · 3900 установок
- [claude-memory-curator](https://affpapa.org/nevibecode/skills/claude-memory-curator.md) — скилл · 2600 установок
- [memory-continue](https://affpapa.org/nevibecode/skills/memory-continue.md) — скилл · 1300 установок

_Часть страницы не вошла по размеру — она есть в HTML-версии._

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