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 для восстановления контекста до уплотнения перед продолжением работы. Вызывайте это в самом начале каждой сессии, чтобы установить контекст перед выполнением любой работы.

Генерирует отчёт об ориентации сессии. Только чтение: не изменяет никакие сохранённые данные. Читает файл идентификации с диска, сканирует базу данных памяти для получения статистики и последней контрольной точки, находит самый последний файл стенограммы, обнаруживает структурные пробелы (отсутствие идентификации, устаревшие воспоминания, отсутствие контрольной точки и т.д.) и вычисляет оценку ориентации от 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.

  • 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.

  • 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.

capture_now

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

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

Параметры

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

    Current session ID

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

    Path to the current session's JSONL transcript file

  • reasonstring

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

delete_memory

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

Навсегда удаляет одно воспоминание из локальной базы данных 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. Вызывайте это в конце каждой содержательной сессии, чтобы следующая сессия могла подхватить нить.

Записывает структурированную передачу сессии. Записывает несколько записей в локальную базу данных 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.

  • decisionsstring[]

    Key decisions made this session and their rationale. Each entry is stored as a separate memory with type='decision' and 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.

  • constraintsstring[]

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

  • warningsstring[]

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

  • relational_deltastring

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

  • next_session_focusstring

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

  • projectstring

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

  • transcript_pathstring

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

  • 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.

list_captures

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

Вывести список 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.

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

Параметры

  • categoryenum

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

    preferencelessoncontextrelationshipgeneral
  • projectstring

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

  • limitnumber

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

read_capture

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

Читает 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.

    summarystructuredraw
search_memory

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

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

Параметры

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

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

  • categoryenum

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

    preferencelessoncontextrelationshipgeneral
  • projectstring

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

  • limitnumber

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

store_memory

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

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

Параметры

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

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

  • 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.

    preferencelessoncontextrelationshipgeneral
  • 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 не существует. Используй, чтобы исправить неточные воспоминания, изменить важность или переклассифицировать категорию памяти без удаления и повторного создания.

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

Параметры

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

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

  • contentstring

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

  • categoryenum

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

    preferencelessoncontextrelationshipgeneral
  • importancenumber

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

Другие проверенные MCP-сервера

neo4j-contrib/mcp-neo4j

neo4j-contrib/mcp-neo4j

официальный

MCP-серверы Neo4j Labs: обрабатывают запросы на естественном языке, управляют облачными инстансами Aura и моделируют графовые схемы с хранением знаний. Совместимы с Claude Desktop и другими MCP-кли...

Python980
Coding-Solo/godot-mcp

Coding-Solo/godot-mcp

MCP-сервер для Godot: запускает редактор, выполняет проекты, захватывает отладку. Управляет сценами и проектами. Полезен разработчикам, использующим AI-агентов — даёт обратную связь от движка, уско...

JavaScript4784
Gitlab MCP

Gitlab MCP

GitLab MCP сервер для AI-клиентов: управляйте проектами, merge request, issues, pipelines, wiki и релизами. Поддерживает PAT, OAuth, read-only режим и удаленную авторизацию. Работает с VS Code, Claude, Cursor и другими MCP инструментами.

TypeScript1819
dynatrace-oss/dynatrace-mcp

dynatrace-oss/dynatrace-mcp

официальный

MCP сервер для интеграции AI-ассистентов с Dynatrace: подтягивает реальные данные observability, проблемы, логи и DQL-запросы прямо в ваш редактор. Поможет разработчикам и SRE быстрее дебажить и мониторить продакшн без переключения контекста.

TypeScript132
can4hou6joeng4/boss-agent-cli

can4hou6joeng4/boss-agent-cli

BOSS Agent CLI — 为 AI Agent 设计的 BOSS 直聘本地辅助工具。支持职位搜索、福利筛选(双休、五险一金等)、候选池管理,输出 JSON 信封。默认低风险只读模式,合规安全,适合求职者与招聘者。

Python1399
txn2/kubefwd

txn2/kubefwd

kubefwd — bulk порт-форвардинг для Kubernetes: сервисы из кластера становятся доступны локально по именам. Каждый сервис получает уникальный loopback IP, исключая конфликты портов. Авто-переподключ...

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

Лука Никитин