MCP Server for Mem0 memory operations - provides persistent memory capabilities for AI agents
Server has 9 tools with basic Zod schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-200 chars, baseline 194), and input schemas are present with type definitions. However, parameter descriptions are minimal (often single phrases), output schemas are undocumented, and error handling is generic. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Destructive tools (deleteAllMemories, resetAllMemorySystems) lack confirmation patterns. Tool composition is reasonable (single responsibility), but parameter naming could be more explicit (e.g., 'id' should be 'memoryId'). No pagination support on getAllMemories despite potential for large result sets.
Delete all memories for the current user. This is a destructive operation that removes all stored memories.
Delete a specific memory by its ID. This permanently removes the memory from storage.
Retrieve all memories stored for the current user. This returns the complete list of memories without any filtering.
Retrieve a specific memory by its unique ID. Use this when you need to access a particular memory you know the ID for.
Retrieve the history of changes for a specific memory. This shows all previous versions and modifications of the memory.
Reset the entire memory system. This clears all memories for all users and is a global operation.
No output schemas documented. Tools return JSON.stringify() results without specifying field structure, types, or pagination. LLMs cannot plan downstream calls or extract specific fields reliably.
Destructive tools (deleteMemory, deleteAllMemories, resetAllMemorySystems) lack confirmation/dry-run patterns. No tool annotations (destructiveHint) to signal irreversibility. Agents can accidentally wipe all memories without safeguards.
getAllMemories has no pagination (limit, offset, cursor). If a user has thousands of memories, the tool returns all at once, exhausting context window and degrading LLM reasoning.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
Search for memories using semantic search. This finds memories that are conceptually related to your query, not just exact keyword matches.
Store a new memory in the Mem0 system. This allows you to save conversation history or important information for later retrieval.
Update the content of an existing memory. This modifies a memory while preserving its ID and creation timestamp.
Parameter naming lacks specificity. 'id' should be 'memoryId' to avoid confusion with other ID types. 'content' in updateMemory is ambiguous, does it replace the entire memory or merge? Descriptions do not clarify.
Error handling is generic ('Error storing memory: ${error}'). Does not categorize errors as retryable, user-fixable, or fatal. Does not suggest recovery steps (e.g., 'Memory not found. Try searchMemories() first.').