Persistent memory system for AI coding agents with cross-session context recovery, semantic search, and team sync capabilities
Mnemo has 21 tools with consistent naming (verb_noun pattern: mem_*, skill_*, workflow_*, persona_*) and complete input schemas visible in the TypeScript plugin file. However, descriptions are uniformly terse (10-50 chars), falling well below the 50-200 char baseline for LLM-optimized tools. Parameter descriptions exist but are minimal ('Memory title', 'Search query'). No output schemas are documented, critical for tools like mem_search and mem_context that return structured data. Error handling and recovery guidance are absent. The server is HTTP-based (good for protocol readiness) but tool definitions appear inferred from a TypeScript plugin rather than directly registered in Go MCP code, capping individual tool scores at 50 per the rubric.
Passively capture context from the session
Get formatted context summary including memories, skills, and workflows
Delete a memory by ID
Retrieve a memory by ID
Save a memory to persistent storage
Save a user prompt for future reference
Hybrid full-text and semantic search across memories
End a coding session
Start a coding session
All tool descriptions are under 50 characters and lack context for LLM selection. E.g., 'Save a memory to persistent storage' (38 chars) does not explain WHEN to use mem_save vs mem_capture_passive, or what happens on conflict. Baseline for A-grade tools is 50-200 chars with WHEN/WHY guidance.
No output schemas documented for any tool. mem_search, mem_context, mem_get, and mem_timeline return structured data but LLMs cannot plan downstream calls without knowing field names and types. E.g., does mem_search return [{ id, title, content, score }] or { results: [...], total: N }?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Save session summary and end session
Get memory store statistics
Suggest a topic_key for a memory
Get cloud sync status
Get memory timeline
Update an existing memory
Get active persona configuration
Load a reusable skill by name
Mark a workflow phase as complete
Execute current phase of a workflow
Get phases of a named workflow
Start a new workflow run
mem_delete (DESTRUCTIVE) lacks confirmation or dry-run support. Agents can permanently delete memories without a safety gate. No error guidance for recovery (e.g., 'Memory deleted. Call mem_timeline to see recent deletions').
Parameter descriptions are minimal (e.g., 'Memory title (verb + what)' for mem_save.title). No guidance on format, length, or constraints. LLMs cannot validate inputs before calling. E.g., does 'topic_key' accept spaces? What is the max length?
Tool definitions appear inferred from TypeScript plugin (plugin/opencode/mnemo.ts) rather than directly visible in Go MCP server code. No explicit tool registration, schema validation, or error handling visible in the provided source.