Persistent brain database for Claude Code. Search, save, and query knowledge from all conversation history. Backed by SQLite with full-text search and optional vector embeddings.
Memory Engine provides 8 tools with reasonably detailed descriptions and structured input schemas. Most tools have descriptions (100%) and parameter documentation is generally present, but there are several gaps that prevent a higher score: (1) Output schemas are not documented for any tool, the rubric requires this for A-grade work; (2) Error handling guidance is absent, tools do not indicate what to do on failure, retryability, or recovery steps; (3) Some parameter descriptions lack constraints (e.g., days accepts 0 for 'all time' but this boundary is implicit, not explicit); (4) Tool composition could be improved, memory_search and memory_search_knowledge are very similar and risk LLM confusion; (5) The memory_save tool accepts a 'review_trigger' parameter described only as 'When to re-evaluate this knowledge', no valid values or format are specified. Per-tool scores range from 55 - 72, with search/read tools scoring higher (clearer intent) and write tools lower (missing error context).
Add a session to a project.
Get all knowledge for a specific agent.
Ingest JSONL conversation history into the database.
List all projects with session counts and metadata.
Save or update a knowledge entry. Auto-deduplicates by topic+agent.
Search all conversation history. Returns matching entries ranked by relevance.
Search the curated knowledge base (classified, tagged entries).
Output schemas not documented. None of the 8 tools specify what fields are returned or their types. LLMs cannot plan downstream tool calls or extract data without this information.
Error handling and recovery guidance missing. No tool description indicates what happens on failure, whether errors are retryable, or what the agent should do next. This violates pattern:recovery-guide.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Show what happened in a time range. Returns entries chronologically.
memory_search and memory_search_knowledge are too similar. Both search for entries by query with agent and filter params. The distinction (conversation history vs curated knowledge) is not obvious from names alone. LLMs may conflate them.
Parameter constraints not formalized. 'days' param accepts 0 for 'all time' but this is implicit in description, not explicit enum/minimum. 'status' in memory_search_knowledge lists valid values (ACTIVE, STALE, ARCHIVED) as text but not as an enum constraint. This invites LLM hallucination of invalid values.
memory_save parameter 'review_trigger' lacks format specification. Description says 'When to re-evaluate this knowledge' but provides no valid values, date format, or examples. LLM cannot know what to pass.
memory_ingest 'source' parameter description lists literal options ('all', 'latest', 'session', 'prompts') as text rather than enum. Parameter should formally declare these as the only valid values.
Pagination not fully specified. memory_search and memory_search_knowledge accept 'limit' but do not mention offset, next_cursor, or total_count in responses. Large result sets may exceed context window without explicit pagination guidance.