Shared memory for Claude, Ollama, and GPT. Local. Private. One pip install. MCP server exposing memory tools to Claude Code and any MCP client.
MemoryMesh provides 5 tools with complete input schemas and descriptions. Naming follows verb_noun convention (remember_, recall_, get_, forget_, memory_). However, descriptions are minimal (10-80 chars, below the 50-200 char baseline for LLM optimization), parameter descriptions lack detail on constraints and formats, and output schemas are not documented. Error handling returns generic text responses without recovery guidance. No tool annotations (readOnlyHint, destructiveHint) despite clear risk profiles (WRITE, DESTRUCTIVE operations present).
Delete a memory by its ID.
Get formatted memory context string for injection into prompts.
Show memory store statistics.
Search memories by keyword query. Use exact keywords, not natural language questions.
Store a memory. Returns the memory ID.
Descriptions are too brief (10-80 chars vs. 50-200 char baseline). LLMs cannot determine when to select tools or distinguish between recall_memory and get_context without richer context.
Output schemas are not documented. Callers cannot predict response structure (e.g., does recall_memory return an array or paginated result? What fields are in each memory object?).
No tool annotations despite clear risk profiles. forget_memory is DESTRUCTIVE but lacks destructiveHint. remember_memory is a WRITE operation but lacks annotation. LLMs cannot infer safety implications.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Parameter descriptions lack constraint details. 'importance' accepts 0.0-1.0 but description does not state range. 'limit' has no min/max bounds. LLMs may pass invalid values.
Error handling returns generic text ('Unknown tool', 'Memory not found') without recovery guidance. LLMs cannot determine if an error is retryable or requires user intervention.