Skip to main content
Glama

Rekindle

npm tests license Glama score

专为那些在每次会话时都要重新解释项目上下文而浪费时间的 Claude Code 用户设计。

npx rekindle init

你的 AI 会在会话之间遗忘一切。Rekindle 解决了这个问题。


Rekindle init demo

Rekindle 是一个 MCP 连续性引擎,它解决的不仅仅是存储问题,而是**会话导向(session orientation)**问题。在会话开始时进行导向,在会话结束时进行捕获,并在会话中期的压缩过程中存活下来。全部本地化,全部基于 SQLite,无需 API 密钥。

v0.3.0 — “在漫长的中间阶段存活” — PreCompact 捕获系统、开放循环、审查跟踪。发布说明

快速开始

npx rekindle init

这将在你的项目中创建一个 .rekindle/ 目录,其中包含 SQLite 数据库、身份模板、捕获目录和转录目录。然后为你的客户端添加 MCP 服务器配置:

添加到 ~/.claude.json:

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

启用 PreCompact 保护(在会话中期压缩前捕获上下文):

npx rekindle setup-hooks

添加到 claude_desktop_config.json(macOS: ~/Library/Application Support/Claude/,Windows: %APPDATA%\Claude\):

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

添加到项目根目录的 .cursor/mcp.json 中:

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

然后填写 .rekindle/identity.md 并将引导指令粘贴到你项目的 CLAUDE.md 中。

会话 1 存储。会话 2 记忆。会话 10 预判。


Related MCP server: claude-session-continuity-mcp

问题所在(43 个会话的数据)

在 43 个会话中,我们测量了 AI 助手在会话开始时未能加载的内容:

指标

数值

分析的会话数

43

干净启动(加载所有上下文)

33%

高信号失败(5+ 个缺口)

26%

总检索失败

173

现有的记忆工具(Mem0, Letta, Zep)优化的是检索准确性:AI 能否找到它存储的内容?这是必要的,但还不够。它们都没有解决 AI 是否为本次会话加载了正确的上下文,或者它是否能检测到它错过了什么。

Rekindle 解决了会话导向问题:在助手开始工作前,加载身份、近期上下文、记忆健康状况和缺失上下文的警告。

查看 docs/gap-analysis.md 获取完整的研究数据集。


它能做什么

启动:在会话开始时进行导向

boot_report 在任何工作开始前运行一个导向流水线:

boot_report
  +-- Read identity document (who am I working with?)
  +-- Scan memory stats (what do I know?)
  +-- Find latest checkpoint (where did we leave off?)
  +-- Read last transcript (what actually happened?)
  +-- Surface open loops (what needs follow-up?)
  +-- Surface PreCompact captures (what survived compaction?)
  +-- Detect gaps (what am I missing?)
  +-- Calculate orientation score (how oriented am I?)
  --> "Carrying forward: [context loaded, gaps identified, score: 80/100]"

在漫长的中间阶段存活:PreCompact 捕获 (v0.3)

会话中期的压缩会破坏推理链、失败的方法、关系纹理和语气。PreCompact 钩子会在压缩前自动触发,并保存那些本会被丢失的内容:

PreCompact hook fires
  +-- Parse JSONL transcript (last N messages)
  +-- Write raw Markdown capture (.rekindle/captures/)
  +-- Write structured JSON snapshot (decisions, open loops, files)
  +-- Update manifest for cheap listing
  --> boot_report surfaces captures on next session start
  --> end_session warns if captures exist but weren't reviewed

三种读取模式可控制 Token 成本:

  • summary — 一个段落,廉价

  • structured — 决策/循环/警告,适中

  • raw — 完整的转录摘录,昂贵(仅在需要时使用)

捕获:在会话结束时闭环

end_session 存储结构化的连续性记录 — 而不仅仅是摘要:

字段

捕获内容

checkpoint

我们离开的地方(必需)

decisions

决定了什么以及为什么

open_loops

未解决的任务或问题

constraints

不得违反的边界

relational_delta

工作关系中发生了什么变化

next_session_focus

下次会话从哪里恢复

preferences

学到的新用户偏好

warnings

下次会话应注意的事项

所有记录都带有 type、source 和 session_id 元数据。下一次 boot_report 会自动加载检查点。

会话之间:搜索和管理

工具

描述

store_memory

存储内容、类别、重要性(1-10)和项目范围

search_memory

全文搜索,带有 BM25 排名,并根据重要性加权

list_memories

浏览记忆,最新的优先。按类别或项目过滤

delete_memory

按 ID 删除

update_memory

更新内容、类别或重要性

list_captures

列出 PreCompact 捕获(可选按会话过滤)

read_capture

以摘要、结构化或原始模式读取捕获

capture_now

按需手动捕获当前会话上下文

类别: preference lesson context relationship general


为什么不仅仅使用 CLAUDE.md?

静态文件是被动的。你的 AI 可以读取它,但无法搜索它、对其排名、跟踪已检索的内容或告诉你缺少什么。Rekindle 增加了:

  • 搜索 — 带有重要性加权排名的全文搜索

  • 结构 — 跨记忆的类别和项目范围划分

  • 导向 — 在启动时主动加载上下文,而不仅仅是按需检索

  • 缺口检测 — 标记缺失的身份、空类别、陈旧数据

  • 评分 — 透明的检查清单,让你知道 AI 的导向程度如何

  • 会话捕获 — 带有检查点、决策和开放循环的结构化关闭

  • 压缩生存 — PreCompact 捕获保留了摘要会扁平化的内容


v0.3.0 亮点

  • 10 个 MCP 工具 — 增加了 list_captures, read_capture, capture_now

  • PreCompact 捕获系统 — 会话中期压缩前的自动上下文保留

  • boot_report 中的开放循环 — 呈现之前会话中未解决的任务

  • 审查跟踪 — read_capture 后标记为已审查;end_session 会在未审查时发出警告

  • 钩子设置 — npx rekindle setup-hooks 配置 Claude Code PreCompact 钩子

  • 自动发现 — capture_now 无需手动路径即可发现会话转录

  • 101 个自动化测试 — 单元、集成、捕获管理器、钩子设置


CLI 命令

命令

描述

npx rekindle init

在当前目录设置 .rekindle/

npx rekindle init --global

在主目录设置

npx rekindle init --with-hooks

初始化 + 配置 PreCompact 钩子

npx rekindle setup-hooks

配置 PreCompact 钩子(独立)

npx rekindle precompact-capture

在压缩前捕获上下文(钩子)

npx rekindle capture-now

手动捕获当前会话上下文

npx rekindle

启动 MCP 服务器(由 Claude Code 使用)


从源码安装

git clone https://github.com/Skitchy/rekindle.git
cd rekindle
npm install
npm run build
node dist/init/cli.js init

setup-hooks 命令将此写入 .claude/settings.local.json:

{
  "hooks": {
    "PreCompact": [
      {
        "matcher": "auto",
        "hooks": [
          {
            "type": "command",
            "command": "npx rekindle precompact-capture",
            "timeout": 60
          }
        ]
      },
      {
        "matcher": "manual",
        "hooks": [
          {
            "type": "command",
            "command": "npx rekindle precompact-capture",
            "timeout": 60
          }
        ]
      }
    ]
  }
}

钩子通过 stdin 接收会话上下文(session_id, transcript_path, cwd, hook_event_name)并将捕获内容写入 .rekindle/captures/。

变量

默认值

描述

REKINDLE_PRECOMPACT_MAX_MESSAGES

80

要捕获的最大消息数

REKINDLE_PRECOMPACT_MAX_CHARS

120000

要捕获的最大字符数

REKINDLE_BASE_DIR

自动检测

.rekindle/ 的基目录

  • 所有数据均为本地。 不会发送到外部服务器。

  • 无网络调用。 MCP 服务器通过 stdio 通信。无 HTTP,无遥测,无分析。

  • 转录包含对话文本。 如果你的会话包含秘密或凭据,请勿启用转录捕获。

  • 钩子安装是可选的。 setup-hooks 必须显式运行(init 不会自动安装)。

  • SQLite 数据库是常规文件。 未加密。如有需要,请使用操作系统级磁盘加密。

  • .rekindle/ 已被 gitignore。 init 命令会自动处理此问题。

  • boot_report 读取本地文件。 路径未沙盒化。仅与你信任的 MCP 客户端和提示词一起使用。

兼容性

客户端

传输

状态

Claude Code (macOS)

stdio

已测试

Claude Code (Linux/WSL2)

stdio

已测试

Claude Code (Windows)

stdio

已测试

Claude Desktop

stdio

兼容(相同的 MCP 配置格式)

Cursor

stdio

兼容(相同的 MCP 配置格式)

任何 MCP stdio 客户端

stdio

兼容

rekindle/
  src/
    index.ts          MCP server entry point
    server.ts         Server setup, tool registration (10 tools)
    storage/
      sqlite.ts       SQLite + FTS5, schema migration, sessions
    orientation/
      types.ts        OrientationResult, Gap, ScoreItem
      GapDetector.ts  Structural gap detection (8 codes)
      Scorer.ts       Orientation scoring (6 criteria, 100pts)
      OrientationService.ts   Orchestrator
      OrientationRenderer.ts  Markdown + JSON output
    captures/
      types.ts        CaptureEntry, StructuredSnapshot, HookInput
      CaptureManager.ts   Parse, capture, list, read, review tracking
      discover-transcript.ts  Auto-discover session transcripts
      precompact-capture.ts   CLI hook entry point
      capture-now.ts          Manual capture CLI
    tools/
      boot-report.ts  Orientation + open loops + capture awareness
      end-session.ts  Structured session close + capture warning
      list-captures.ts  List PreCompact captures
      read-capture.ts   Read captures in 3 modes
      capture-now.ts    Model-triggered manual capture
      store.ts search.ts list.ts delete.ts update.ts
    init/
      cli.ts scaffold.ts setup-hooks.ts templates/

存储: 通过 better-sqlite3 使用 SQLite + FTS5。BM25 排名由重要性加权。带有 type、source、session_id 的类型化记录。

传输: stdio(标准 MCP)。可直接与 Claude Code 一起使用。

测试

npm test

101 个测试:存储 CRUD + FTS5 排名、导向领域(缺口检测、评分、服务、渲染)、捕获管理器(解析、限制、审查跟踪、格式化)、钩子设置(模式、幂等性)以及 MCP 集成(所有 10 个工具)。

路线图

v0.4: “它以网络方式思考” — 扩散激活、通过嵌入进行语义搜索、缺口分析工具、评估工具集。

许可证

MIT

Available Tools

10 tools
boot_reportA

Generate a session orientation report. Read-only — does not modify any stored data. Reads the identity document from disk, scans the memory database for statistics and the latest checkpoint, finds the most recent transcript file, detects structural gaps (missing identity, stale memories, no checkpoint, etc.), and calculates a 0-100 orientation score across 6 criteria. Also surfaces open loops from prior sessions and any PreCompact captures that preserve context from compacted sessions. Workflow: call boot_report first thing every session, before any substantive work. Orientation scores are structural checks, not guarantees that every relevant context item was loaded.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectNoActive project name for scoped orientation. When provided, the orientation score includes a project-specific criterion and memory statistics are filtered to this project.
identity_pathYesAbsolute 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_dirYesAbsolute 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.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It clearly states it is read-only and does not modify stored data, and it discloses that orientation scores are structural checks, not guarantees of loaded context. This adds valuable context beyond the basic function, though it doesn't detail the output format or potential edge-case errors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured: the first sentence states the core purpose, the second sentence explains the data sources and operations, and the third provides workflow and caveats. Every sentence contributes meaningful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multiple inputs, calculations, and output), the description covers inputs, actions, and output semantics (orientation score, open loops, captures). No output schema exists, so the description does well to mention what the report includes. It lacks explicit return format details, but the description is strong overall.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already well-documented. The description adds no additional parameter-specific details beyond what the schema provides, but it does reiterate the purpose of identity and transcript paths. This matches the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates a session orientation report, with a specific verb (generate) and resource (session orientation report). It distinguishes itself from sibling tools by detailing its unique function of reading identity, scanning memory, and calculating an orientation score, which none of the siblings perform.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly provides a workflow directive: 'call boot_report first thing every session, before any substantive work.' This gives clear contextual guidance on when to use it. However, it does not explicitly mention alternatives or when not to use it, but none are needed given its unique role.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

capture_nowA

Manually capture current session context to .rekindle/captures/. Use this when you want to preserve the current conversation state — before a complex operation, when context feels at risk, or when the user requests it. Produces the same artifact as the automatic PreCompact hook but triggered on demand. session_id and transcript_path are optional — if omitted, the most recent transcript is discovered automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoWhy this capture is being made (stored in the structured snapshot).
session_idNoCurrent session ID. If omitted, discovered from the most recent transcript file.
transcript_pathNoPath to the current session's JSONL transcript file. If omitted, the most recent transcript is discovered automatically.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses file creation location, artifact equivalence with PreCompact, and optional parameters with auto-discovery. No annotations provided, so description carries full burden. Could mention idempotency or error handling but still provides solid behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. First sentence clearly states action and output. Second provides usage and parameter notes. Perfectly front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Describes artifact and auto-discovery for parameters, but does not explicitly state return value or success indication. With no output schema, the description could mention what the tool returns (e.g., path to capture). Still, very informative overall.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% description coverage. Description adds value by noting that session_id and transcript_path can be omitted and auto-discovered, going beyond schema. Reason parameter is not elaborated in description but schema covers it. Extra context earns above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states specific verb ('capture') and resource ('current session context') and target location ('.rekindle/captures/'). Clearly distinguishes from siblings like list_captures and read_capture, as this is the creation tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'before a complex operation, when context feels at risk, or when the user requests it.' Also contrasts with automatic PreCompact hook. Lacks explicit 'when not to use' but positive guidance is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_memoryA

Permanently delete a single memory from the local SQLite database by its ID. This action is irreversible — the row and its full-text search index entry are removed immediately. Use when a memory is outdated, incorrect, or no longer relevant. Returns {success: true} if the memory was found and deleted, or {success: false, message: 'Memory not found'} if the ID does not exist. Does not affect other memories or session records.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe UUID of the memory to delete. Obtain from store_memory, search_memory, or list_memories results.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully covers behavioral traits: it warns of irreversibility ('This action is irreversible'), explains immediate deletion of both row and full-text search index entry, and details return values for both success and failure cases ('Returns {success: true} if found... or {success: false, message: 'Memory not found'} if ID does not exist'). It also states that other memories or session records are unaffected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no unnecessary words. The first sentence immediately conveys the action and scope. Each subsequent sentence adds important detail (irreversibility, usage guidance, return values). Everything is front-loaded and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only one parameter, no output schema, and no annotations, the description covers all necessary aspects: what it does, when to use it, behavioral implications (irreversibility), parameter sourcing, and return values. It is fully complete for this simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'id' is already described in the input schema ('The UUID of the memory to delete. Obtain from store_memory, search_memory, or list_memories results.'). The tool description reinforces this by mentioning how to obtain the ID. With 100% schema coverage, baseline is 3; the extra context in the description (e.g., 'Obtain from...') adds value, justifying a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb ('Permanently delete') and resource ('a single memory from the local SQLite database'), clearly distinguishing it from sibling tools like store_memory, update_memory, or list_memories. The action is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'Use when a memory is outdated, incorrect, or no longer relevant.' This provides clear context. However, it does not explicitly mention when not to use it or suggest alternatives (e.g., update_memory for correction), so it falls slightly short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

end_sessionA

Capture a structured session handoff. Writes multiple records to the local SQLite database: one checkpoint (required), plus optional decisions, open loops, preferences, constraints, warnings, relational delta, and next session focus. Each record is stored with a typed 'type' column (not content prefixes) and linked to a session record via session_id. Also creates a session row in the sessions table with a summary, orientation score, and gap count. The checkpoint is retrievable by boot_report on the next session start. All records are searchable via search_memory and list_memories. Workflow: call end_session at the end of every substantive session so the next session can pick up the thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectNoProject name to scope all records to. Passed through to each stored memory's project field.
warningsNoHazards or risks the next session should be aware of. Each entry is stored as type='warning' with importance 8.
decisionsNoKey decisions made this session and their rationale. Each entry is stored as a separate memory with type='decision' and importance 7.
checkpointYesWhere 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.
open_loopsNoUnresolved questions, pending tasks, or threads that need follow-up. Each entry is stored as type='open_loop' with importance 7.
session_idNoCurrent 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.
constraintsNoBoundaries that must not be violated — violating these causes trust damage. Each entry is stored as type='constraint' with importance 9 (highest default).
preferencesNoNew user preferences or working style observations learned this session. Each entry is stored as type='preference' with importance 6.
transcript_pathNoFile path to the session transcript, stored on the session record for reference by boot_report.
relational_deltaNoWhat changed in the working relationship this session — trust shifts, tension, repair, tone changes. Stored as type='relational_delta' with importance 8.
next_session_focusNoWhere to resume next session, which may differ from where we stopped. Stored as type='next_session_focus' with importance 7.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It explicitly discloses multiple behavioral traits: writes to a local SQLite database, stores records with a typed 'type' column, links to session_id, creates a session row with summary/orientation/gap count, includes a warning for unreviewed PreCompact captures, and mentions searchability and boot_report retrieval. This is thorough and non-misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Although the description is moderately long, it is dense and well-structured. It begins with the core purpose, flows into storage details, and concludes with the workflow. Every sentence adds operational information, and there is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 11 parameters, no output schema, and no annotations, the description covers all critical aspects: what gets written, how records are typed and linked, how to retrieve them later, the session row side-effect, and the warning behavior. It also explains the intended workflow. This is a complete description for a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful value beyond the schema by explaining the overall storage model (typed column, session_id linkage), the relationship to boot_report, and the workflow. However, it does not add much per-parameter detail that isn't already in the schema, so a 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb and resource: 'Capture a structured session handoff.' It clearly distinguishes from siblings like list_captures or store_memory by focusing on session-end aggregation and persistence. The phrase 'Writes multiple records to the local SQLite database' further specifies scope and behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states a clear usage trigger: 'call end_session at the end of every substantive session so the next session can pick up the thread.' It provides clear context but does not explicitly name alternative tools or when not to use it, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_capturesA

List PreCompact captures for the current or recent sessions. PreCompact captures preserve context that would otherwise be lost during mid-session compaction. Workflow: if boot_report lists PreCompact captures, call list_captures then read_capture to recover pre-compaction context before relying on the checkpoint. Before calling end_session, check for unreviewed captures.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoFilter to a specific session. If omitted, returns all captures sorted by recency.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It reveals the behavioral context of PreCompact captures and the recovery workflow, but doesn't detail return format or side effects, which are minimal for a list operation. Adds value beyond a simple 'list captures'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: purpose, context, and workflow. Front-loaded with the primary action, concise with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with one optional parameter and no output schema, the description provides sufficient context for selection and invocation. It also integrates with sibling tools (boot_report, read_capture, end_session), making the workflow complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of the parameters, so baseline is 3. The description does not add any extra semantic detail about session_id; it is fully explained in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists PreCompact captures, with a specific verb and resource. It distinguishes from siblings like read_capture by focusing on listing, and adds context about preserving pre-compaction context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit workflow is given: if boot_report lists PreCompact captures, call list_captures then read_capture to recover context before relying on the checkpoint; also check for unreviewed captures before end_session. This clearly indicates when to use the tool versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_memoriesA

List stored memories from the local SQLite database, ordered newest first. Unlike search_memory, this does not require a query — it returns all memories matching the optional filters. Read-only; does not modify any data. Use to browse what has been stored, audit memory contents, or check memory counts per category or project. Returns an array of memories with id, content, category, importance, project, and created_at.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of memories to return. Default 50. Newest memories are returned first regardless of limit.
projectNoFilter to a specific project. Omit to list memories across all projects.
categoryNoFilter to a single category. Omit to list memories across all categories.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses read-only nature ('Read-only; does not modify any data'), ordering (newest first), and return fields. It does not cover potential pagination beyond the limit parameter or error handling, but overall provides solid transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences, front-loaded with the main action, and each sentence adds value. No unnecessary words or repetition. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (3 optional parameters, no output schema, no annotations), the description covers purpose, usage guidance, behavior, return format, and ordering. It is complete enough for an agent to understand how and when to use the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description need not add much. It reinforces the ordering ('Newest memories are returned first regardless of limit') and lists return fields, which is helpful but not essential. The description does not significantly deepen understanding of the parameters beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list', the resource 'memories', and the key distinction from sibling 'search_memory' by noting it does not require a query. It specifies the ordering (newest first) and return fields, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use: 'to browse what has been stored, audit memory contents, or check memory counts per category or project'. It also contrasts with 'search_memory' (requires a query). However, it does not explicitly state when not to use or provide alternative tools beyond the mention of search_memory.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_captureA

Read a PreCompact capture by ID. Use this to recover context that was lost during mid-session compaction. Three modes control token cost: 'summary' (one paragraph, cheap), 'structured' (decisions/loops/warnings, moderate), 'raw' (full transcript excerpt, expensive — only when summary or structured is insufficient). Workflow: read recovered captures before relying on the latest checkpoint; start with the lightest mode that answers your question.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCapture ID from list_captures (e.g., 'precompact-abc123-001')
modeNoReading mode. 'summary': one-paragraph overview. 'structured': decisions, open loops, warnings, context shifts. 'raw': full transcript excerpt.structured

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It details three modes with token cost implications ('summary' cheap, 'structured' moderate, 'raw' expensive) and advises using raw only when lighter modes are insufficient. This goes beyond a simple read, giving the agent actionable behavioral guidance without contradicting any structured metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is about five sentences and front-loaded with the core purpose, then provides mode details and a workflow. It is efficient and avoids redundancy, though it lacks bullet-point formatting that could improve scannability. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a moderate complexity (2 params, 3 modes) and no output schema. The description gives enough context for the agent to understand what to expect from each mode and how to use the tool effectively, covering purpose, mode selection, cost, and workflow. It does not describe error cases or exact return structures, but these are not critical for basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds meaningful extra semantics, especially for the mode parameter: it expands on the schema by explaining 'summary' as one paragraph, 'structured' as decisions/loops/warnings, and 'raw' as full transcript excerpt, plus cost guidance. This enriches the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Read' and the resource 'PreCompact capture by ID', and specifically ties it to recovering context lost during mid-session compaction. This distinguishes it from sibling tools like list_captures or capture_now by focusing on reading a specific capture.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says when to use the tool ('recover context lost during mid-session compaction') and provides a workflow: 'read recovered captures before relying on the latest checkpoint; start with the lightest mode that answers your question.' This gives clear context and usage strategy, though it does not explicitly mention alternatives to other sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_memoryA

Search stored memories using SQLite full-text search (FTS5). Returns results ranked by relevance with higher-importance memories boosted. Each search increments the retrieval_count on matched memories, tracking which memories are accessed most. Use at session start to load relevant context, or mid-session to recall specific information. Returns an array of matching memories with id, content, category, importance, project, created_at, and retrieval_count. Returns an empty array if no matches are found.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return. Default 10. Results are ranked by relevance and importance before truncation.
queryYesFull-text search query. Supports keywords, phrases, and SQLite FTS5 syntax (e.g., 'database AND migration', '"exact phrase"'). Broader queries return more results.
projectNoFilter results to a specific project. Omit to search across all projects.
categoryNoFilter results to a single category. Omit to search across all categories.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses key behaviors: uses FTS5, results ranked by relevance and importance, increments retrieval_count on matched memories, returns specific fields, and returns empty array on no match. This is comprehensive given no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise and well-structured (~90 words), each sentence serves a purpose: purpose, ranking info, side effect, usage, return structure, and empty case. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all essential aspects: search mechanism, ranking criteria, side effect (increment retrieval_count), return fields, and empty result handling. No output schema but description adequately describes return structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already has descriptions for all parameters (100% coverage). The description adds value by explaining query semantics ('Broader queries return more results') and limit behavior ('Results are ranked by relevance and importance before truncation').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a full-text search on stored memories using SQLite FTS5, distinguishing it from sibling tools like list_memories (which likely lists all memories) and other CRUD tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage scenarios: 'Use at session start to load relevant context, or mid-session to recall specific information.' While it does not explicitly exclude alternatives, the guidance is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

store_memoryA

Store a new memory in the local SQLite database. Creates a persistent row with an auto-generated UUID, timestamp, and the provided content. Use for preferences, lessons learned, project context, relationship notes, or general information worth remembering across sessions. Memories persist across sessions and are surfaced by boot_report, search_memory, and list_memories. Returns the generated ID on success. Does not deduplicate — calling twice with the same content creates two separate memories.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe memory content to store. Plain text, no length limit. Should be self-contained — future retrieval may return this memory without surrounding context.
projectNoProject name to scope this memory to. When set, boot_report can filter orientation to this project. Omit for cross-project memories.
categoryNoMemory 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.general
importanceNoImportance 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.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses persistence across sessions, no deduplication, return value (generated ID), and that content should be self-contained. It also notes that memories are surfaced by other tools. No destructive behavior is relevant, and the description covers the key behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph of about 6 sentences, well-structured: action, details, usage examples, cross-references to other tools, return value, and a caveat. Every sentence earns its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters with full schema descriptions, no output schema but return value explained, and no nested objects, the description is complete. It covers persistence, deduplication, and cross-tool integration, leaving no significant gaps for an AI agent to use this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds significant value beyond the schema descriptions. For 'content' it specifies plain text with no length limit; for 'category' it explains impact on orientation scoring; for 'importance' it clarifies ranking and defaults for specific use cases; for 'project' it explains scoping and omission. This enriches the agent's understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Store' and the resource 'memory', and identifies it as persistent with auto-generated UUID and timestamp. It lists specific use cases (preferences, lessons, etc.) and explicitly connects to sibling tools (boot_report, search_memory, list_memories), distinguishing this creation tool from retrieval and deletion tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description enumerates appropriate use cases (preferences, lessons, project context, etc.) and warns about the lack of deduplication. While it does not explicitly state when not to use, the positive guidance is strong and the deduplication caveat helps avoid misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_memoryA

Update an existing memory in the local SQLite database. Modifies only the fields you provide — omitted fields are left unchanged. The updated_at timestamp is set automatically. If content is changed, the full-text search index is rebuilt for this memory. Returns the full updated memory object on success, or {success: false, message: 'Memory not found'} if the ID does not exist. Use to correct inaccurate memories, adjust importance, or reclassify a memory's category without deleting and re-creating it.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe UUID of the memory to update. Obtain from store_memory, search_memory, or list_memories results.
contentNoReplacement content for the memory. Omit to keep the existing content unchanged.
categoryNoNew category for the memory. Omit to keep the existing category unchanged.
importanceNoNew importance score from 1 (low) to 10 (critical). Omit to keep the existing score unchanged.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility. It discloses key behaviors: partial field updates (omitted fields left unchanged), automatic updated_at timestamp, full-text search index rebuild on content change, and the exact return format for success and failure. This is comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences long, well-structured: first sentence states main purpose, second clarifies partial update behavior, third lists side effects, fourth gives use cases. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (partial updates, side effects like FTS rebuild, no output schema), the description covers all critical aspects: what fields can be updated, what happens to omitted fields, automatic timestamp, index rebuild, and the exact return format for both success and failure cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter already described in the schema. The description adds minimal additional context, such as 'id' being obtainable from other tools. The partial update behavior is implied by the schema's 'Omit to keep' statements, so the description just reinforces. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: updating an existing memory in a local SQLite database. It specifies the verb 'update' and the resource 'memory', and distinguishes from sibling tools like store_memory and delete_memory by mentioning it avoids deleting and re-creating.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides use cases: 'correct inaccurate memories, adjust importance, or reclassify a memory's category'. It implies not to use for creation (use store_memory) or deletion (use delete_memory), though it doesn't explicitly list when not to use or name alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updatesv0.3.0
    • Changedboot_report3 fields changed
      • changedInput schema / properties / identity_path / description
        Previous value: -"Path to identity.md (e.g., .rekindle/identity.md)"New value: +"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."
      • changedInput schema / properties / project / description
        Previous value: -"Active project name for scoped orientation"New value: +"Active project name for scoped orientation. When provided, the orientation score includes a project-specific criterion and memory statistics are filtered to this project."
      • changedInput schema / properties / transcript_dir / description
        Previous value: -"Path to transcripts directory (e.g., .rekindle/transcripts)"New value: +"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."
    • Addedcapture_now
    • Changeddelete_memory1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"The memory ID to delete"New value: +"The UUID of the memory to delete. Obtain from store_memory, search_memory, or list_memories results."
    • Changedend_session11 fields changed
      • changedInput schema / properties / checkpoint / description
        Previous value: -"Where we left off — the single most important handoff artifact"New value: +"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."
      • changedInput schema / properties / constraints / description
        Previous value: -"Boundaries that must not be violated — violating these causes trust damage"New value: +"Boundaries that must not be violated — violating these causes trust damage. Each entry is stored as type='constraint' with importance 9 (highest default)."
      • changedInput schema / properties / decisions / description
        Previous value: -"What was decided and why"New value: +"Key decisions made this session and their rationale. Each entry is stored as a separate memory with type='decision' and importance 7."
      • changedInput schema / properties / next_session_focus / description
        Previous value: -"Where to resume next session (vs where we stopped)"New value: +"Where to resume next session, which may differ from where we stopped. Stored as type='next_session_focus' with importance 7."
      • changedInput schema / properties / open_loops / description
        Previous value: -"Unresolved questions or tasks"New value: +"Unresolved questions, pending tasks, or threads that need follow-up. Each entry is stored as type='open_loop' with importance 7."
      • changedInput schema / properties / preferences / description
        Previous value: -"New user preferences learned this session"New value: +"New user preferences or working style observations learned this session. Each entry is stored as type='preference' with importance 6."
      • changedInput schema / properties / project / description
        Previous value: -"Project scope"New value: +"Project name to scope all records to. Passed through to each stored memory's project field."
      • changedInput schema / properties / relational_delta / description
        Previous value: -"What changed in the working relationship this session — trust changes, tension, repair, tone shifts"New value: +"What changed in the working relationship this session — trust shifts, tension, repair, tone changes. Stored as type='relational_delta' with importance 8."
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "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.",
        +  "type": "string"
        +}
      • changedInput schema / properties / transcript_path / description
        Previous value: -"Path to session transcript file"New value: +"File path to the session transcript, stored on the session record for reference by boot_report."
      • changedInput schema / properties / warnings / description
        Previous value: -"Things the next session should be careful about"New value: +"Hazards or risks the next session should be aware of. Each entry is stored as type='warning' with importance 8."
    • Addedlist_captures
    • Changedlist_memories3 fields changed
      • changedInput schema / properties / category / description
        Previous value: -"Filter by category"New value: +"Filter to a single category. Omit to list memories across all categories."
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum results to return"New value: +"Maximum number of memories to return. Default 50. Newest memories are returned first regardless of limit."
      • changedInput schema / properties / project / description
        Previous value: -"Filter by project"New value: +"Filter to a specific project. Omit to list memories across all projects."
    • Addedread_capture
    • Changedsearch_memory4 fields changed
      • changedInput schema / properties / category / description
        Previous value: -"Filter by category"New value: +"Filter results to a single category. Omit to search across all categories."
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum results to return"New value: +"Maximum number of results to return. Default 10. Results are ranked by relevance and importance before truncation."
      • changedInput schema / properties / project / description
        Previous value: -"Filter by project"New value: +"Filter results to a specific project. Omit to search across all projects."
      • changedInput schema / properties / query / description
        Previous value: -"Search query (keywords or phrases)"New value: +"Full-text search query. Supports keywords, phrases, and SQLite FTS5 syntax (e.g., 'database AND migration', '\"exact phrase\"'). Broader queries return more results."
    • Changedstore_memory4 fields changed
      • changedInput schema / properties / category / description
        Previous value: -"Memory category"New value: +"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."
      • changedInput schema / properties / content / description
        Previous value: -"The memory content to store"New value: +"The memory content to store. Plain text, no length limit. Should be self-contained — future retrieval may return this memory without surrounding context."
      • changedInput schema / properties / importance / description
        Previous value: -"Importance score 1-10 (higher = retrieved more often)"New value: +"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."
      • changedInput schema / properties / project / description
        Previous value: -"Project scope for this memory"New value: +"Project name to scope this memory to. When set, boot_report can filter orientation to this project. Omit for cross-project memories."
    • Changedupdate_memory4 fields changed
      • changedInput schema / properties / category / description
        Previous value: -"New category"New value: +"New category for the memory. Omit to keep the existing category unchanged."
      • changedInput schema / properties / content / description
        Previous value: -"New content"New value: +"Replacement content for the memory. Omit to keep the existing content unchanged."
      • changedInput schema / properties / id / description
        Previous value: -"The memory ID to update"New value: +"The UUID of the memory to update. Obtain from store_memory, search_memory, or list_memories results."
      • changedInput schema / properties / importance / description
        Previous value: -"New importance score"New value: +"New importance score from 1 (low) to 10 (critical). Omit to keep the existing score unchanged."
  2. 7 tool updatesv0.2.0
    • First observedboot_report
    • First observeddelete_memory
    • First observedend_session
    • First observedlist_memories
    • First observedsearch_memory
    • First observedstore_memory
    • First observedupdate_memory

TDQS

A4.4/5.0

Scored across 10 tools

Disambiguation4/5

Most tools have distinct purposes: memory CRUD vs. session handoff vs. capture recovery. The only potential confusion is between capture_now and end_session, but descriptions clarify that end_session creates a structured handoff while capture_now preserves raw context for compaction recovery.

Naming Consistency5/5

All tool names follow a consistent snake_case verb-first pattern: end_session, list_captures, read_capture, store_memory, search_memory, list_memories, delete_memory, update_memory. Even boot_report and capture_now fit the verb-first style. No mixed conventions or unpredictable naming.

Tool Count5/5

Ten tools is well within the ideal 3-15 range and each tool serves a clear function in the memory/session management domain. No redundancy or bloat; the set feels appropriately scoped for the server's purpose.

Completeness4/5

Memory CRUD is covered (store, search, list, update, delete) and session handoff/orientation is addressed with end_session and boot_report. However, there's no direct 'get memory by ID' tool, which could force agents to use search or list and manually filter, a minor gap in the read path.

Maintenance

ActivityStale
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI coding assistants like Claude Code, Cursor, and Codex to share chat logs, terminal history, and session context with each other. Eliminates the need to re-explain context when switching between different AI coding tools.
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    2-5x longer Claude Code sessions before compaction. Saves 30-40% on input token costs. Remembers your rules and corrections so Claude stops repeating mistakes after compaction. Auto-runs in the background, just install once and forget about it.
    160 PyPI
    421
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Persistent memory for Claude Code — a self-evolving knowledge layer that survives across sessions, grows from every conversation, and surfaces relevant context automatically.
    14
    MIT