MCP server implementation of Claude's native memory tool for persistent storage across conversations
Memory MCP provides 6 file-system tools with complete input schemas and descriptions. Naming follows verb_noun convention (memory_view, memory_create, etc.). Descriptions are present but generic (avg ~60 chars, below 194-char baseline). Parameters have types and descriptions, but lack constraints (enums, ranges, patterns). Output schemas are not documented. Error handling is basic, no recovery guidance or actionable error messages. Path validation is strong (prevents traversal), but no confirmation step for destructive operations (delete, rename). Tool composition is sound: each tool has one responsibility, and outputs chain well (paths are consistent). Missing: pagination for directory listings, per-item error reporting for batch operations, and dry-run support for destructive tools.
Create or overwrite a file in memory
Delete a file or directory from memory
Insert text at a specific line in a memory file
Rename or move a file or directory in memory
Replace unique text in a memory file
Show directory contents or file contents with optional line ranges
No output schemas documented. LLMs cannot predict response structure or plan downstream calls. memory_view returns string (directory listing or file content), but format is unspecified. memory_create/str_replace/insert/delete/rename return success messages, but structure is not formally defined.
Destructive operations (memory_delete, memory_rename) lack confirmation or dry-run support. Agents can irreversibly delete or move files without a safety gate. No pattern:confirmation-request implementation.
Error messages are generic ('Path not found', 'Text not found'). No recovery guidance. When memory_str_replace fails because text appears multiple times, the error says 'Text appears N times' but does not suggest viewing the file or using memory_insert instead. Violates pattern:recovery-guide.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Parameter descriptions lack constraints. view_range is described as 'Optional line range [start, end]' but does not specify: are indices 0-based or 1-based? What does -1 mean? (Docs show -1 = EOF, but description omits this.) insert_line lacks bounds. LLMs cannot validate inputs without explicit constraints.
memory_view does not support pagination for large directories. If /memories contains 1000 files, the tool returns all in one response, wasting tokens and risking context overflow. No limit parameter or next_cursor support.