Skitchy/rekindle

Skitchy/rekindle

от skitchy
MCP-сервер Rekindle решает проблему потери контекста AI-ассистента между сессиями. Он ориентирует в начале, захватывает структурированные записи в конце, сохраняет контекст при сжатии. Всё локально в SQLite, без API-ключей. Полезен разработчикам Claude Code для непрерывной работы.

Rekindle

npm tests license Glama score

For Claude Code users who lose time re-explaining project context every session.

npx rekindle init

Your AI forgets everything between sessions. Rekindle fixes that.


Rekindle init demo

Rekindle is an MCP continuity engine that solves session orientation, not just storage. Orient at session start, capture at session end, survive mid-session compaction. All local, all SQLite, zero API keys.

v0.3.0 — "Survive the Long Middle" — PreCompact capture system, open loops, review tracking. Release notes

Quick Start

npx rekindle init

This creates .rekindle/ in your project with a SQLite database, identity template, captures directory, and transcript directory. Then add the MCP server config for your client:

Claude Code

Add to ~/.claude.json:

{
  "mcpServers": {
    "rekindle": {
      "command": "npx",
      "args": ["-y", "rekindle"]
    }
  }
}

Enable PreCompact protection (captures context before mid-session compaction):

npx rekindle setup-hooks
Claude Desktop

Add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):

Инструменты были проиндексированы:
boot_report

Генерирует отчёт об ориентации сессии. Только чтение: не изменяет никакие сохранённые данные. Читает файл идентификации с диска, сканирует базу данных памяти для получения статистики и последней контрольной точки, находит самый последний файл стенограммы, обнаруживает структурные пробелы (отсутствие идентификации, устаревшие воспоминания, отсутствие контрольной точки и т.д.) и вычисляет оценку ориентации от 0 до 100 по 6 критериям. Также выявляет открытые циклы из предыдущих сессий и любые захваты PreCompact, которые сохраняют контекст из уплотнённых сессий. Если существуют захваты PreCompact, вызовите list_captures и read_capture для восстановления контекста до уплотнения перед продолжением работы. Вызывайте это в самом начале каждой сессии, чтобы установить контекст перед выполнением любой работы.

Параметры
  • identity_pathstringобязательный

    Absolute or relative path to the identity document (e.g., '.rekindle/identity.md'). This file describes who the user is and how to work with them. If the file does not exist, a critical gap is reported.

  • projectstring

    Active project name for scoped orientation. When provided, the orientation score includes a project-specific criterion and memory statistics are filtered to this project.

  • transcript_dirstringобязательный

    Absolute or relative path to the transcripts directory (e.g., '.rekindle/transcripts'). The most recent .md file in this directory is read and included in the report. If the directory is empty or missing, an info-level gap is reported.

capture_now

Вручную захватить текущий контекст сессии в .rekindle/captures/. Используйте это, когда хотите сохранить текущее состояние разговора - перед сложной операцией, когда контекст под угрозой, или когда пользователь это запрашивает. Создает тот же артефакт, что и автоматический хук PreCompact, но запускается по требованию.

Параметры
  • reasonstring

    Why this capture is being made (stored in the structured snapshot).

  • session_idstring

    Current session ID. If omitted, discovered from the most recent transcript file.

  • transcript_pathstring

    Path to the current session's JSONL transcript file. If omitted, the most recent transcript is discovered automatically.

delete_memory

Навсегда удаляет одно воспоминание из локальной базы данных SQLite по его ID. Это действие необратимо — строка и её запись в полнотекстовом поисковом индексе удаляются немедленно. Используйте, когда воспоминание устарело, содержит ошибку или больше не актуально. Возвращает {success: true}, если воспоминание найдено и удалено, или {success: false, message: 'Memory not found'}, если ID не существует. Не затрагивает другие воспоминания или записи сессии.

Параметры
  • idstringобязательный

    The UUID of the memory to delete. Obtain from store_memory, search_memory, or list_memories results.

end_session

Записывает структурированную передачу сессии. Записывает несколько записей в локальную базу данных SQLite: одну контрольную точку (обязательно), а также опциональные решения, открытые циклы, предпочтения, ограничения, предупреждения, реляционную дельту и фокус следующей сессии. Каждая запись хранится с типизированной колонкой 'type' (не префиксы содержимого) и связывается с записью сессии через session_id. Также создаёт строку сессии в таблице sessions с кратким описанием, показателем ориентации и количеством пробелов. Контрольная точка доступна для извлечения через boot_report при следующем запуске сессии. Все записи доступны для поиска через search_memory и list_memories. Вызывайте это в конце каждой содержательной сессии, чтобы следующая сессия могла подхватить нить.

Параметры
  • checkpointstringобязательный

    Where we left off — the single most important handoff artifact. Stored as type='checkpoint' with importance 8. This is what boot_report loads as the latest checkpoint on the next session start.

  • constraintsstring[]

    Boundaries that must not be violated — violating these causes trust damage. Each entry is stored as type='constraint' with importance 9 (highest default).

  • decisionsstring[]

    Key decisions made this session and their rationale. Each entry is stored as a separate memory with type='decision' and importance 7.

  • next_session_focusstring

    Where to resume next session, which may differ from where we stopped. Stored as type='next_session_focus' with importance 7.

  • open_loopsstring[]

    Unresolved questions, pending tasks, or threads that need follow-up. Each entry is stored as type='open_loop' with importance 7.

  • preferencesstring[]

    New user preferences or working style observations learned this session. Each entry is stored as type='preference' with importance 6.

  • projectstring

    Project name to scope all records to. Passed through to each stored memory's project field.

  • relational_deltastring

    What changed in the working relationship this session — trust shifts, tension, repair, tone changes. Stored as type='relational_delta' with importance 8.

  • session_idstring

    Current session ID. Used to check for unreviewed PreCompact captures. If captures exist for this session that were not read via read_capture, a warning is included in the response.

  • transcript_pathstring

    File path to the session transcript, stored on the session record for reference by boot_report.

  • warningsstring[]

    Hazards or risks the next session should be aware of. Each entry is stored as type='warning' with importance 8.

list_captures

Вывести список PreCompact-захватов для текущей или недавних сессий. PreCompact-захваты сохраняют контекст, который иначе теряется при промежуточном сжатии сессии. Если для текущей сессии существует PreCompact-захват и вам нужен контекст из более ранней части сессии, сначала вызовите этот инструмент, затем read_capture перед ответом. Перед вызовом end_session всегда проверяйте наличие непросмотренных захватов.

Параметры
  • session_idstring

    Filter to a specific session. If omitted, returns all captures sorted by recency.

list_memories

Выводит сохранённые воспоминания из локальной базы данных SQLite, отсортированные по убыванию даты (новые сверху). В отличие от search_memory, этот метод не требует запроса — он возвращает все воспоминания, соответствующие необязательным фильтрам. Только чтение; не изменяет никакие данные. Используйте, чтобы просмотреть, что было сохранено, проверить содержимое памяти или посчитать количество воспоминаний по категории или проекту. Возвращает массив воспоминаний с полями id, content, category, importance, project и created_at.

Параметры
  • categoryenum

    Filter to a single category. Omit to list memories across all categories.

  • limitnumber

    Maximum number of memories to return. Default 50. Newest memories are returned first regardless of limit.

  • projectstring

    Filter to a specific project. Omit to list memories across all projects.

read_capture

Читает PreCompact-захват по идентификатору. Используйте это, чтобы восстановить контекст, потерянный при уплотнении в середине сессии. Три режима управляют затратами токенов: «summary» (один абзац, дёшево), «structured» (решения/циклы/предупреждения, умеренно), «raw» (фрагмент полного транскрипта, дорого — только когда summary или structured недостаточно). Начинайте с самого лёгкого режима, который отвечает на ваш вопрос.

Параметры
  • idstringобязательный

    Capture ID from list_captures (e.g., 'precompact-abc123-001')

  • modeenum

    Reading mode. 'summary': one-paragraph overview. 'structured': decisions, open loops, warnings, context shifts. 'raw': full transcript excerpt.

search_memory

Ищет сохранённые воспоминания с помощью полнотекстового поиска SQLite (FTS5). Возвращает результаты, отсортированные по релевантности, с повышением приоритета для более важных воспоминаний. Каждый поиск увеличивает счётчик retrieval_count у найденных воспоминаний, отслеживая, к каким воспоминаниям обращаются чаще всего. Используйте при запуске сессии, чтобы загрузить релевантный контекст, или в середине сессии, чтобы вспомнить конкретную информацию. Возвращает массив совпадающих воспоминаний с полями id, content, category, importance, project, created_at и retrieval_count. Возвращает пустой массив, если совпадений не найдено.

Параметры
  • categoryenum

    Filter results to a single category. Omit to search across all categories.

  • limitnumber

    Maximum number of results to return. Default 10. Results are ranked by relevance and importance before truncation.

  • projectstring

    Filter results to a specific project. Omit to search across all projects.

  • querystringобязательный

    Full-text search query. Supports keywords, phrases, and SQLite FTS5 syntax (e.g., 'database AND migration', '"exact phrase"'). Broader queries return more results.

store_memory

Сохраняет новую память в локальной базе данных SQLite. Создаёт постоянную запись с автосгенерированным UUID, временной меткой и переданным содержимым. Используйте для хранения предпочтений, усвоенных уроков, контекста проекта, заметок о взаимоотношениях или любой другой информации, которую стоит запомнить между сессиями. Память сохраняется между сессиями и отображается в boot_report, search_memory и list_memories. В случае успеха возвращает сгенерированный ID. Не выполняет дедупликацию: двойной вызов с одним и тем же содержимым создаёт две отдельные записи.

Параметры
  • categoryenum

    Memory category. Determines how the memory is weighted during orientation: 'preference' and 'relationship' contribute to the orientation score. 'context' is used for checkpoints and session handoffs. 'lesson' is used for constraints and warnings. 'general' is the default catch-all.

  • contentstringобязательный

    The memory content to store. Plain text, no length limit. Should be self-contained — future retrieval may return this memory without surrounding context.

  • importancenumber

    Importance score from 1 (low) to 10 (critical). Higher-importance memories are ranked first in search results. Constraints default to 9, checkpoints to 8, general notes to 5.

  • projectstring

    Project name to scope this memory to. When set, boot_report can filter orientation to this project. Omit for cross-project memories.

update_memory

Обновляет существующую память в локальной SQLite-базе. Меняет только те поля, которые ты передал — пропущенные остаются без изменений. Поле updated_at обновляется автоматически. Если изменён content, для этой памяти перестраивается полнотекстовый поисковый индекс. В случае успеха возвращает полный объект обновлённой памяти, иначе — {success: false, message: 'Memory not found'}, если ID не существует. Используй, чтобы исправить неточные воспоминания, изменить важность или переклассифицировать категорию памяти без удаления и повторного создания.

Параметры
  • categoryenum

    New category for the memory. Omit to keep the existing category unchanged.

  • contentstring

    Replacement content for the memory. Omit to keep the existing content unchanged.

  • idstringобязательный

    The UUID of the memory to update. Obtain from store_memory, search_memory, or list_memories results.

  • importancenumber

    New importance score from 1 (low) to 10 (critical). Omit to keep the existing score unchanged.

Похожие MCP-сервера

leesgit/claude-session-continuity-mcp

leesgit/claude-session-continuity-mcp

Автоматически сохраняет контекст между сессиями Claude Code — больше не нужно повторять настройки. Использует семантический поиск, захват ошибок и решений, делает работу непрерывной. Для разработчи...

TypeScript6
timmx7/acheron-mcp-server

timmx7/acheron-mcp-server

MCP сервер Acheron даёт постоянную память, общую между Claude Chat, Code и Cowork. Сохраняй решения, ищи заметки и просматривай историю — всё локально, без облака. Полезен всем, кто хочет не терять контекст между сессиями.

TypeScript6
aitytech/agentkits-memory

aitytech/agentkits-memory

MCP сервер AgentKits Memory даёт AI-ассистентам постоянную память: сохраняет решения, паттерны и ошибки между сессиями. Всё хранится локально в SQLite, легко интегрируется с Claude Code, Cursor и д...

TypeScript64
hifriendbot/cogmemai-mcp

hifriendbot/cogmemai-mcp

MCP сервер CogmemAi добавляет AI-ассистентам (Claude Code, Cursor и др.) постоянную семантическую память с точностью 95% (LongMemEval). Автономно фиксирует решения, проактивно вспоминает контекст — знания не теряются между сессиями и командами.

TypeScript7
kj455/mcp-kibela

kj455/mcp-kibela

MCP-сервер для интеграции AI-ассистентов с корпоративной базой знаний Kibela. Умеет искать заметки по ключевым словам, получать содержимое по ID или пути, создавать и редактировать записи — идеальн...

TypeScript13
PrinceGabriel-lgtm/freshcontext-mcp

PrinceGabriel-lgtm/freshcontext-mcp

FreshContext — контекстный слой для AI-агентов: оценивает свежесть и релевантность данных между поиском и рассуждением. Решает проблему устаревшего контекста в RAG-пайплайнах. Полезен разработчикам...

TypeScript11
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин