MCP server for long term memory storage and retrieval with Mem0
Four tools with basic descriptions and minimal schemas. All tools have descriptions (10-200 chars range) and input parameters with type definitions, but lack depth in parameter descriptions and output schema documentation. No error handling guidance, no parameter constraints (enums, ranges), and no documentation of return structures. Naming is clear and verb-based (save_, update_, get_, search_). Tool composition is reasonable but lacks idempotency guarantees and chaining metadata.
Get all stored memories for the user. Call this tool when you need complete context of all previously memories. Returns a JSON formatted list of all stored memories, including when they were created and their content. Results are paginated with a default of 50 items per page.
Save information to your long-term memory. This tool is designed to store any type of information that might be useful in the future. The content will be processed and indexed for later retrieval through semantic search.
Search memories using semantic search. This tool should be called to find relevant information from your memory. Results are ranked by relevance. Always search your memories before making decisions to ensure you leverage your existing knowledge.
Update information in your long-term memory.
update_memory has minimal description (27 chars). LLM cannot determine when to use it vs save_memory or what 'key' parameter represents (memory ID? UUID? user-defined key?).
No output schemas documented. Tools return JSON strings but LLM does not know field names, types, or structure. Downstream tool chaining impossible without trial-and-error parsing.
No parameter constraints. 'limit' in search_memories has no min/max (could be 0, -1, 999999). 'query' has no length limit. 'text' in save_memory unbounded.
No error handling guidance. Exception messages returned as plain strings ('Error saving memory: ...') do not tell LLM whether to retry, ask user, or abort.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | <=2025-11-25 | v2 |
No idempotency guarantees. save_memory and update_memory lack documentation on whether repeated calls with same input produce duplicate records or are safe to retry.