Persistent long-term memory for Claude Code via MCP — captures coding decisions, bugfixes, and context across sessions. Hybrid FTS5 + TF-IDF search with episode batching. Single SQLite DB, no external services. A lighter, lower-cost alternative to claude-mem (episode batching + a smaller model; cost savings are an internal estimate, not a measured benchmark).
claude-mem-lite demonstrates strong definition quality with well-documented tools and comprehensive parameter schemas. 11/11 tools have descriptions (100% coverage). All tools expose explicit input schemas with type definitions and parameter descriptions. Tool naming follows verb_noun patterns consistently (mem_search, mem_save, mem_delete, etc.). Most parameters include type constraints, enums where appropriate, and actionable descriptions. However, some parameters lack detailed format/range guidance, and output schemas are not explicitly documented in the source. Error handling descriptions are sparse, most tools do not explain recovery paths or error categorization. The 'deep' parameter in mem_search uses a tri-state pattern (true/false/omit=AUTO) which is non-standard and may confuse LLMs unfamiliar with this pattern. Overall, the server is well above average for community MCP implementations.
Browse memory as a filtered, paginated list: observations by type, project, date range, or importance with human-readable summary.
Archive old observations into compressed summaries to control database growth while preserving decision history. Moves observations older than a threshold into summary form.
Delete one or more specific memory entries by observation ID. Supports comma-separated IDs, ranges, and arrays.
Retrieve a specific memory entry by ID, supporting observation IDs, prompt IDs (P#N), session IDs (S#N), event IDs (E#N), and deferred work IDs (D#N).
Run database maintenance: vacuum, verify integrity, repair FTS5 index, clean orphaned files, and apply optimizations.
Contextual memory recall for a specific code file being edited — inject lessons learned about this file, decisions made, and past issues encountered.
No documented output schemas. Tools define input schemas explicitly but source code does not expose return value documentation. LLMs cannot plan downstream chaining or field extraction without knowing the structure of results.
Tri-state parameter 'deep' (true/false/omit=AUTO) in mem_search is non-standard. LLMs expect binary or enum parameters. The 'omit=AUTO' pattern requires special handling and is not self-documenting in JSON Schema alone.
Error handling guidance absent. No error responses documented. Tools like mem_delete (IRREVERSIBLE) and mem_save (WRITE) should explain failure modes and recovery paths (e.g., 'If import fails, validate format with mem_stats first').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 66 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Retrieve recent observations from the current session or past N days, optionally filtered by project or observation type.
Persist a coding decision, lesson learned, bugfix, or observation to long-term memory with automatic project inference, optional importance ranking, and metadata capture.
Search long-term memory using hybrid FTS5 + TF-IDF scoring. Supports query strings, type/obs_type filtering, date ranges, importance levels, git branch filtering, memory tiers, sorting by relevance/time/importance, and optional LLM-powered deep search with reranking.
Show database statistics: total observations, space used, decay tier distribution, per-project breakdown, observation type counts.
Show memory history for a file, session, or project as a chronological timeline of observations with summaries.
Confirmation/dry-run pattern missing from destructive operations. mem_delete and mem_compress modify or remove data irreversibly but do not document a --dry-run or confirmation mechanism.
Parameter format guidance incomplete. mem_recall's 'context' parameter, mem_search's 'query' parameter, and date range parameters (date_from, date_to, date_since) lack explicit format examples and constraint documentation beyond bare type definitions.
Response field naming alignment unclear. Output documentation missing makes it impossible to verify that mem_search results include the 'obs_id' or 'id' fields needed by downstream mem_get and mem_delete calls.