Local MCP server bridging Claude Code and Mem0 (local vector memory). Provides semantic memory storage and retrieval using Ollama LLM and Qdrant vector database.
Server has 4 tools with basic schemas and descriptions, but significant gaps prevent production use. All tools have descriptions (10-20 chars baseline met), but lack depth and LLM-optimization guidance. Input schemas are present but minimal, parameters have types but descriptions are sparse or generic. No output schemas documented. Error handling is absent; tools return plain strings without recovery guidance. No parameter validation, enums, or constraints. Naming follows verb_noun convention (memory_add, memory_search, memory_list, memory_delete) which is good, but descriptions don't explain WHEN to use each tool or dependencies between them. The memory_delete tool is destructive but has no confirmation pattern or dry-run support.
Ajouter un fait, une observation ou une préférence à la Mémoire Cinétique. Mem0 extrait automatiquement les faits pertinents du texte.
Supprimer une mémoire spécifique par son ID.
Lister toutes les mémoires stockées pour un utilisateur.
Rechercher dans la Mémoire Cinétique par similarité sémantique.
No output schemas documented. LLMs cannot predict response structure or chain tools. memory_add returns a formatted string; memory_search returns scored results; memory_list returns a list. Each should declare expected fields (e.g., {facts: string[], count: int}, {results: [{score: float, memory: string}]}).
memory_delete is destructive but lacks confirmation or dry-run pattern. No error guidance if memory_id is invalid. LLM could delete wrong memories without warning. Should support a confirm_before_execute pattern or return 'Memory not found' with recovery steps.
Parameter descriptions are generic or missing. 'user_id' defaults to 'vision' but no explanation why or when to override. 'limit' in memory_search has no min/max bounds, LLM could pass 0 or 10000. 'text' in memory_add has no length guidance. Descriptions should state constraints: 'limit: 1-100 (default 5)', 'text: 1-5000 chars'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
No error handling or recovery guidance. If Mem0 fails (Ollama down, Qdrant unavailable), tools return raw exceptions or empty results. LLM has no guidance: retry? Check service? Fallback? Should return structured errors: {error: 'service_unavailable', message: 'Ollama not responding at http://localhost:11434', retry: true}.
Tool descriptions lack WHEN/WHY guidance. memory_search and memory_list both retrieve memories but distinction is unclear. memory_search uses semantic similarity; memory_list returns all. Descriptions should clarify: 'Use memory_search for semantic queries (e.g., "What do I know about Alice?"). Use memory_list to audit all stored facts.'