MCP server that persists Claude Code memory to a git-tracked file
Three tools with clear verb-noun naming (memory_read, memory_write, memory_list) and basic descriptions. All tools have input schemas with type definitions. However, descriptions are minimal (34 - 72 chars, below the 50 - 200 char baseline for LLM optimization), parameter descriptions lack context about constraints and use cases, and output schemas are not documented. No error handling guidance, no parameter validation rules stated, and no indication of idempotency or side effects. The server is functional but lacks the depth needed for confident agent deployment.
List all keys currently stored in this project's memory.
Read a value from Claude's persistent project memory. Returns the stored value or a 'not found' message.
Write a value to Claude's persistent project memory. Persisted to .claude-memory.md — commit it to git.
Descriptions are too brief (34 - 72 chars vs. 50 - 200 char baseline). 'Read a value from Claude's persistent project memory. Returns the stored value or a 'not found' message.' lacks context on when to use this tool, what 'not found' means, and how it differs from memory_list.
Parameter descriptions are missing or minimal. 'key' and 'value' parameters have one-word descriptions ('Memory key to read', 'Value to store') with no guidance on format, length, allowed characters, or examples of valid keys.
Output schema is not documented. Callers cannot predict the structure of TextContent responses or plan downstream tool calls. memory_read returns either a value or '(no memory for key: X)', the format is implicit, not explicit.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
No error handling guidance. If memory_write fails (e.g., file permission denied, disk full), the tool returns a generic error. The LLM has no recovery path, should it retry? Ask the user? Abort the plan?
No idempotency or side-effect declaration. memory_write modifies state (persists to .claude-memory.md), but the description does not state this explicitly. Agents need to know which calls are safe to retry.