Persistent memory system for AI coding agents (Cline, RooCode, KiloCode) to eliminate hallucinations through structured memory storage, search, and retrieval
agentMemory provides clear tool names with action verbs (memory_write, memory_read, memory_search, etc.), but suffers from incomplete descriptions, missing output schema documentation, and no error handling guidance. All 7 tools have input schemas with type definitions and parameter descriptions, which is good. However, tool descriptions are inconsistent in quality, some lack WHEN and WHY context. Output schemas are inferred from code but never explicitly documented in the tool definitions. No error classification, recovery guidance, or actionable error messages. The schema structure shows properties with descriptions, but there is no documented return type structure, and no guidance on pagination or result limits for list/search operations. The server appears to be a VSCode extension with STDIO transport, limiting its applicability to hosted MCP clients.
List by type
Read memory by exact key
Search memories by keyword, tags, or type
Usage analytics and statistics
Append to existing memory
Store new memory in the memory bank
Auto-detect workspace and initialize project
Output schemas not documented. All tools return unspecified data structures. LLMs cannot predict what fields to expect or plan downstream tool chains.
Tool descriptions lack WHEN and WHY context. 'Read memory by exact key' does not explain when an LLM should use this vs memory_search. Missing prerequisite hints and disambiguation.
No error handling or recovery guidance. Tools return success/failure with no explanation of what went wrong or how to recover. No error classification (retryable vs user-fixable vs fatal).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | D | 55 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 52 | - | v1 |
List and search tools have no documented pagination or result limits. memory_search accepts 'limit' parameter but description doesn't explain max allowed value or token impact. memory_list has no limit parameter at all.
Parameter 'type' in memory_write, memory_search, memory_list uses enum but descriptions do not explain when to use each type value (architecture vs pattern vs feature vs api vs bug vs decision). No guidance on selection criteria.
memory_search description mentions '100μs target' and memory_read mentions '2μs target', these are internal performance notes, not relevant to LLM selection criteria. Remove or move to comments.