MCP server wrapping a self-hosted mem0 REST API for Claude Desktop/Code
mem0-mcp provides 6 well-named tools with complete input schemas and descriptions. Naming follows verb_noun convention (add_memory, search_memories, list_memories, get_memory, update_memory, delete_memory). All tools have descriptions (avg 95 chars) and parameters are typed with descriptions. However, output schemas are not documented, LLMs cannot predict response structure for chaining. Error handling is basic (RuntimeError with API detail extraction) but lacks recovery guidance or categorization. No pagination support despite list_memories accepting top_k. Destructive operations (delete_memory, update_memory) lack confirmation patterns. Parameter descriptions are adequate but could specify constraints (e.g., top_k range, metadata object structure). Overall solid foundation but missing production-grade error handling and output documentation.
Store a new memory. Provide at least one of user_id, agent_id, or run_id to scope it; if none are given, falls back to MEM0_DEFAULT_USER_ID. Tagged with MEM0_DEFAULT_AGENT_ID unless agent_id is given explicitly.
Delete a single memory by its id. Confirm the memory_id with the user first if it wasn't just returned by another tool call.
Retrieve a single memory by its id.
List stored memories for a given user_id/agent_id/run_id.
Semantic search over stored memories, scoped to a user_id/agent_id/run_id.
Update an existing memory's text and/or metadata. Confirm the memory_id with the user first if it wasn't just returned by another tool call.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nested objects) for downstream tool chaining or data extraction.
Error handling lacks recovery guidance. _raise_for_status() returns raw API errors without actionable next steps (e.g., 'Try search_memories() with a partial query').
Destructive operations (delete_memory, update_memory) lack confirmation or dry-run patterns. Agents can permanently delete memories without explicit user approval.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
list_memories accepts top_k but no pagination cursor/offset. Large result sets will be truncated without a way to fetch remaining items.
Parameter descriptions lack constraint details. top_k has no min/max bounds; metadata object structure undefined; no guidance on required vs optional scoping (user_id/agent_id/run_id).