MCP Memory Manager Agent — scores, routes, compresses, decays, and retrieves long-term memories
Memory Manager Agent has well-structured tool definitions with complete schemas and descriptions. All 7 tools are explicitly registered with Zod schemas, parameter descriptions, and return types. However, descriptions are verbose (200+ chars) and some parameter relationships are underdocumented. Error handling is basic (try/catch with generic error text). Tool naming follows verb_noun convention (memory_evaluate, memory_retrieve, memory_compress_now, memory_stats, memory_decay_run, memory_export, memory_import). Schemas are comprehensive with proper type constraints (enums, min/max, defaults). Output is structured JSON. Main gaps: no actionable error guidance, no recovery hints, no permission/scope declarations, and no tool annotations (readOnlyHint/destructiveHint).
Force-compress all memories matching a topic into one summary. Useful for manual housekeeping.
Manually trigger the decay pass: applies 3% daily decay to all memories, archives old low-decay memories into cluster summaries.
Score a memory candidate and route it to store, compress, or discard. Returns the action taken and score breakdown.
Export all memories to a JSON backup file.
Import memories from a JSON backup file.
Retrieve the top-K most relevant memories for a query, ranked by similarity × decay_weight. Bumps access count on results.
Error handling returns generic 'Error: <message>' text without recovery guidance. LLMs cannot determine if errors are retryable, user-fixable, or fatal.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). memory_decay_run and memory_import are destructive but unmarked; memory_retrieve and memory_stats are read-only but unmarked.
Tool descriptions are verbose (200+ chars) and lack WHEN-to-use guidance. 'Score a memory candidate and route it to store, compress, or discard' does not explain when to call memory_evaluate vs memory_retrieve or how they compose.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Returns aggregate statistics: total stored, compressed, discarded, average decay weight, and storage size.
No permission/scope declarations. Tools like memory_import and memory_decay_run modify state but do not declare required permissions (e.g., 'write:memory', 'admin:decay'). Agents cannot be configured with least-privilege access.
memory_export and memory_import accept filepath parameters without validation or sanitization. No path traversal guards documented. LLMs could be tricked into writing/reading arbitrary files.