Windows-compatible persistent memory for Claude Code
Server has well-structured tool definitions with complete JSON schemas and Zod validation. All 10 tools have descriptions and input schemas with typed parameters. However, descriptions are often terse (10-50 chars), lacking context on WHEN to use tools or HOW they chain together. Parameter descriptions are minimal. Output schemas are not documented, LLMs cannot predict response structure. Error handling guidance is absent. No tool annotations (readOnlyHint/destructiveHint) despite clear risk stratification (READ_ONLY, WRITE, DESTRUCTIVE). Naming is verb-forward and clear, but some tools like 'get_context' conflate multiple concerns (memories + preferences + patterns in one call).
Add a new observation to memory.
Record a user preference. Reinforces if already exists.
Delete old low-importance memories to keep database lean.
Get relevant context for a project - memories, preferences, and success patterns.
Fetch full observation details by IDs.
Get recorded patterns of what worked and what failed.
Get learned user preferences. Optionally filter by category (coding_style, framework, tool, pattern, naming).
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Forces agents to guess what data is returned and how to chain tools.
Tool descriptions are terse (10-50 chars). Missing WHEN to use, prerequisites, and chaining hints. E.g., 'search' says 'Returns index with IDs. Use get_observations to fetch full details' but doesn't explain when search is preferred over get_context.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Server internally classifies tools as READ_ONLY, WRITE, DESTRUCTIVE but does not expose this via MCP annotations. Agents cannot determine safety/retry semantics.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Get statistics about stored memories.
Search memory. Returns index with IDs. Use get_observations to fetch full details.
Get chronological context around an observation.
get_context conflates three concerns: fetching memories, preferences, and patterns in one call. Violates single-responsibility principle. Agents cannot selectively fetch only preferences without also getting memories.
No error recovery guidance. Tools lack descriptions of failure modes, retryability, or next steps. E.g., cleanup with minImportance=0.3 could delete nothing or everything, no guidance on interpreting results or handling edge cases.