Self-hosted MCP memory server with semantic search, swappable embedding models, and built-in benchmarking
mcp-recall demonstrates solid tool design with consistent naming (verb_noun pattern), complete input schemas using Zod, and clear descriptions. All 6 tools follow the memory_* naming convention and include parameter descriptions. However, output schemas are not formally documented, responses are text-only without structured field definitions. Error handling is basic (returns isError flag but lacks recovery guidance). Parameter constraints are present but could be more explicit (e.g., limit bounds not stated). Tool composition is clean: each tool has one responsibility, and memory_search/memory_list support pagination. Descriptions average ~120 chars, meeting the 10-1024 baseline. No security issues detected (no secrets in params). Missing: output schema documentation, actionable error messages, and tool annotations (readOnlyHint/destructiveHint).
Delete a memory by ID.
List stored memories, optionally filtered by tags.
Search memories by semantic similarity. Returns the most relevant memories for a given query.
Show memory database statistics.
Store a new memory. Use this to remember facts, decisions, preferences, or any information that should persist across conversations.
Update an existing memory by ID. Re-embeds if content changes.
Output schemas not documented. Tools return text-only responses without structured field definitions. LLMs cannot plan downstream calls or extract typed data reliably.
Error messages lack recovery guidance. memory_update and memory_delete return isError=true with plain text, but do not suggest next steps (e.g., 'Try memory_list to find valid IDs').
Parameter constraints not explicit. memory_search and memory_list accept 'limit' and 'offset' but do not document min/max bounds. Unbounded numbers risk timeouts or excessive memory use.
Tool annotations missing. No readOnlyHint, destructiveHint, or idempotentHint declared. Agents cannot infer which tools are safe to retry or have side effects.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | <=2025-11-25 | v2 |
memory_stats description is vague ('Show memory database statistics'). Does not explain when to call it or what insights it provides for agent planning.