Long-term memory for AI via MCP × Vector DB. Solves the context-window problem with pluggable vector backends, semantic + hybrid search, decay scoring, and summarization.
Mnema has well-structured tool definitions with consistent naming (verb_noun pattern: remember, recall, search, get, update, forget, decay, summarize). All 11 tools have descriptions and input schemas with typed parameters. However, descriptions are brief (avg ~60 chars, below the 194-char baseline), parameter descriptions lack depth (e.g., 'Optional scope identifier' vs. explaining when/why to use scope), and output schemas are not documented. Error handling guidance is absent, tools do not indicate what to do on failure. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Composition is sound: tools chain well (recall→get→update→forget), and pagination is supported (limit/offset). Security: no secrets in params, but no audit trail or permission gates documented.
Apply decay scoring to memories based on age and access patterns
Delete a memory by ID
Delete all memories in a specific scope
Retrieve a specific memory by ID
List all scopes and their memory counts
Semantically search memories using natural language query
Store a memory with optional scope, tags, importance, and metadata
Hybrid search combining semantic and keyword matching with optional tag filtering
Output schemas not documented. LLMs cannot infer what fields recall(), search(), get(), stats(), or summarize() return, forcing them to guess downstream field names and risk broken tool chains.
Tool descriptions are too brief (avg 60 chars vs. 194-char baseline). E.g., 'Retrieve a specific memory by ID' lacks context on when to use get() vs. recall(). Descriptions should explain WHAT, WHEN, and WHAT IT RETURNS.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (DESTRUCTIVE: forget, forget_scope; WRITE: remember, update, decay). Agents cannot distinguish safe from dangerous operations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Get aggregate statistics about stored memories
Generate a summary of memories in a scope or matching a query
Update an existing memory's text, tags, importance, or metadata
Parameter descriptions lack actionable constraints. E.g., 'Optional scope identifier' does not explain valid format, length, or when scope is required vs. optional. 'Importance level 1-10' is good, but most params lack this specificity.
No error handling guidance. Tools do not document what happens on invalid memory_id, out-of-range importance, or backend failures. LLMs have no recovery path.