A SQLite-backed MCP memory server with local workspace storage.
Solid foundation with complete schemas and descriptions for all 12 tools. Tool naming follows verb_noun convention (store_, get_, delete_, search_, recall_, update_, create_, get_relationships). All tools have descriptions (avg ~80 chars, within baseline 34-392). Input schemas are fully defined with types and parameter descriptions. However, output schemas are not documented, responses are structured but LLMs cannot see the expected return fields. Error handling uses structured responses (ok/error format) but lacks recovery guidance. No pagination support on list-like tools (search_memories, recall_memories). Batch tools (store_memories, delete_memories) are well-designed but lack per-item error reporting. Tool descriptions are functional but brief, they state WHAT but not WHEN or WHY to use each tool.
Create a relationship between two memories
Delete multiple memories by hash. Returns per-item results with partial success support.
Delete by hash
Delete a relationship between two memories
Retrieve memory by hash
Get relationships for a memory
Get memory database statistics
Output schemas not documented. LLMs cannot see what fields search_memories, recall_memories, get_relationships, or memory_stats return. This forces LLMs to guess field names for downstream tool calls and risks broken chains.
No pagination support on search_memories and recall_memories. Both accept optional 'limit' but no offset/cursor or total_count. Large result sets will blow context windows; LLMs cannot iterate through results.
Error responses lack recovery guidance. Structured error format (ok/error) is present but messages like 'Memory hash identifier' do not tell LLMs what to do next. No suggestions for retryable vs fatal errors.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2025-06-18+ | v2 |
Recall memories by tags and/or importance
Search memories by content using full-text search
Store multiple memories in a single batch operation. Returns per-item results with partial success support.
Store a new memory with tags
Update memory content and/or tags
Batch tools (store_memories, delete_memories) lack per-item success/failure reporting. If one item fails, LLM cannot determine which succeeded and which need retry.
Destructive operations (delete_memory, delete_memories, delete_relationship) lack confirmation or dry-run support. Agents can accidentally delete memories without safeguards.