Persistent memory system for Claude Code, Codex CLI, and MCP clients with smart search, timeline context, and observation management
Critical gaps across all dimensions. Tool definitions lack proper JSON Schema with typed properties, all 8 tools show empty or minimal property objects with additionalProperties:true, making schemas unvalidatable. Descriptions are present but many are vague or procedural rather than LLM-optimized. The __IMPORTANT tool is a meta-instruction, not a real tool. Parameter descriptions are sparse or missing entirely. No output schemas documented. Error handling and recovery guidance absent. This server prioritizes internal workflow documentation over agent-usable tool definitions.
3-LAYER WORKFLOW (ALWAYS FOLLOW): 1. search(query) → Get index with IDs (~50-100 tokens/result) 2. timeline(anchor=ID) → Get context around interesting results 3. get_observations([IDs]) → Fetch full details ONLY for filtered IDs NEVER fetch full details without filtering first. 10x token savings.
Step 0: Build a compact memory brief before deeper recall. Prefer cwd for repo-aware recall. Params: goal or query, cwd, repoRoot, repoId, project, limit, recent_limit
Step 3: Fetch full details for filtered IDs. Params: ids (array of observation IDs, required), orderBy, limit, project
Step 1: Search memory. Returns index with IDs. Params: query, limit, project, type, obs_type, dateStart, dateEnd, offset, orderBy
Get a folded outline of all symbols in a file (functions, classes, methods, variables). Returns a tree view with line numbers and token counts. Use to navigate large files.
Search codebase for symbols, functions, classes using tree-sitter AST parsing. Returns folded structural views with token counts. Use path parameter to scope the search.
Empty or minimal input schemas: 6 of 8 tools declare properties:{} with additionalProperties:true, making them unvalidatable. JSON Schema requires explicit type definitions for each parameter.
__IMPORTANT is a meta-instruction, not a tool. It should not be registered as a callable tool, it confuses the agent about what actions are available and wastes a tool slot.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., observation IDs for chaining). Responses are opaque.
Parameter descriptions are sparse or missing. 'query', 'anchor', 'ids' lack detail on format, constraints, or examples. LLMs cannot infer whether 'anchor' is a string ID or numeric.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | <=2025-11-25 | v2 |
Expand a specific symbol (function, class, method) from a file. Returns the full source code of just that symbol. Use after smart_search or smart_outline to read specific code.
Step 2: Get context around results. Params: anchor (observation ID) OR query (finds anchor automatically), depth_before, depth_after, project
No error handling or recovery guidance. Tools do not document what happens on invalid query, missing ID, or service failure. Agents have no fallback strategy.