Mini Memory MCP is a simple memory management system for AI tools.
Strong tool naming (verb_noun pattern), comprehensive descriptions with actionable guidance, and well-defined schemas with Zod validation. All 6 tools have clear names, descriptions, and input schemas. However, output schemas are not formally documented, responses are JSON-stringified text rather than structured objects with typed fields. Error handling is minimal (only 'Not found' and deletion status). Missing tool annotations (readOnlyHint, destructiveHint) despite clear risk classifications. Descriptions are detailed but verbose (200+ chars), exceeding the 50-200 char LLM-optimized range. No pagination support for list/search despite potential for large result sets.
Create a new persistent memory. BEFORE calling: check memory_list to avoid duplicates - update existing memories instead of creating new ones. Content should be compressed using the following rules before saving: WRITE COMPRESSED: Drop articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries (sure/certainly/of course), hedging (might be worth/could consider), connective fluff (however/furthermore/additionally). Use fragments & short synonyms: 'fix' not 'implement a solution for', 'use' not 'utilize'. State actions directly: 'run tests before push' not 'you should make sure to run tests'. Symbols: →=leads to, &=and, w/=with, +=also, >>=prefer, @=at, vs=versus. Abbreviations: cfg=config, fn=function, impl=implementation, req=required, opt=optional, env=environment, dep=dependency, repo=repository, dev=development, auth=authentication, db=database, pkg=package, msg=message, err=error, usr=user. Keep under 100 words. Preserve all technical terms, code, paths, URLs exactly.
Permanently delete a memory by ID. Use only when a memory is irrelevant or fully superseded. For corrections or refinements, use memory_update instead.
List all saved memories (newest first). MUST be called at the start of every session to load prior context before doing any work. Use tags parameter to filter by category when the list is large.
Retrieve the full content of a single memory by ID. Use when you need the complete text of a specific memory after seeing its summary in memory_list or memory_search.
Output schemas not formally documented. Tools return JSON-stringified text in a generic 'text' field rather than structured objects with typed fields. LLMs cannot infer response structure for downstream tool chaining.
Tool annotations missing. Despite clear risk classifications (READ_ONLY, WRITE, DESTRUCTIVE), tools lack readOnlyHint, destructiveHint, and idempotentHint annotations in schema. Agents cannot determine which tools are safe to retry.
No pagination support. memory_list and memory_search return unbounded results as JSON strings. Large memory stores will blow context windows. No limit, offset, or cursor parameters.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
Full-text search across all memory titles and content (SQLite FTS5). Use when looking for specific information and memory_list returns too many results. Supports quoted phrases ("exact match") and negation (-excluded). Results ranked by relevance.
Update an existing memory. Only provide fields that changed - omitted fields stay the same. Prefer this over delete+create when correcting or refining content. WRITE COMPRESSED: Drop articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries (sure/certainly/of course), hedging (might be worth/could consider), connective fluff (however/furthermore/additionally). Use fragments & short synonyms: 'fix' not 'implement a solution for', 'use' not 'utilize'. State actions directly: 'run tests before push' not 'you should make sure to run tests'. Symbols: →=leads to, &=and, w/=with, +=also, >>=prefer, @=at, vs=versus. Abbreviations: cfg=config, fn=function, impl=implementation, req=required, opt=optional, env=environment, dep=dependency, repo=repository, dev=development, auth=authentication, db=database, pkg=package, msg=message, err=error, usr=user. Keep under 100 words. Preserve all technical terms, code, paths, URLs exactly.
Minimal error handling. Only 'Not found' and deletion status returned. No recovery guidance, error classification, or actionable messages. LLMs cannot self-correct on failures.
Descriptions exceed LLM-optimized length. memory_create and memory_update descriptions include full compression rules inline (400+ chars), wasting tokens. Should reference rules once or use parameter constraints.