Persistent memory system for AI assistants. Provides Long-Term Memory (LTM), Knowledge Base (KB), and Short-Term Memory (STM) via MCP tools. Exposes memory management, knowledge base operations, session tracking, and trigger analysis capabilities.
21 tools with consistent verb-noun naming (memory_*, kb_*, session_*). All have descriptions (avg ~120 chars, within baseline 34-392). Input schemas present with typed parameters and descriptions. However, output schemas are NOT documented, critical gap for LLM planning. Error handling is minimal; no recovery guidance or actionable error messages. Destructive operations (memory_delete, kb_delete) use a confirm flag pattern, which is good, but no dry-run or preview capability. Parameter descriptions lack format constraints (e.g., no regex, length limits, or enum enforcement for category/task_type fields). Missing per-tool output schema documentation is a major blocker for production use.
Add a new entry to the knowledge base. Use this to store reusable technical knowledge, best practices, documentation, or domain expertise that should be searchable and retrievable.
Delete a knowledge base entry. IMPORTANT: confirm must be set to true to actually execute the deletion.
Bulk-import large text into the knowledge base. Automatically splits text into logical chunks and creates searchable entries.
List the knowledge base index (entry metadata without full content). Useful for browsing available knowledge.
Search the knowledge base by keyword. Returns matching entries with relevance ranking.
Update the title, content, tags, or category of an existing knowledge base entry.
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., entry_id from memory_save, session_id from session_start). This forces agents to guess response structure.
Parameter descriptions lack format constraints. 'category' accepts enum values (profile, preference, project, decision, habit, credential, other) but description does not enforce this, LLMs may hallucinate invalid categories. Same for task_type and event_type.
No error handling guidance. Tools return JSON with 'error' field (seen in verify_mcp_tools.py) but no recovery hints. E.g., if memory_recall finds nothing, should the agent try a broader query or suggest memory_save? No guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Delete a long-term memory entry. IMPORTANT: confirm must be set to true to actually execute the deletion. Always confirm with the user before calling this.
Retrieve a single long-term memory entry by its exact ID.
List all long-term memory entries, optionally filtered by category.
Get a structured summary of the user profile from long-term memory. Call this at the start of every conversation to personalize responses.
Search long-term memory by keyword. Use this at the start of every conversation to load relevant context, or when the user asks about past conversations, preferences, or projects.
Save a new entry to long-term memory (LTM). Use this when the user shares personal information, preferences, project details, decisions, habits, or any content worth remembering across conversations. Sensitive data is auto-detected and redacted.
Get overall system status and statistics. Returns counts of LTM entries, KB entries, active sessions, and system health.
Update the content, tags, or category of an existing LTM entry.
End a session and get a summary. Optionally auto-save all pending items.
Log an event to the session timeline. Use this to record significant moments, decisions, or memory triggers during a conversation.
Get all pending saves queued in the current session.
Queue an item for pending save in the current session. Use this to defer memory saves until the session ends.
Start a new conversation session. Returns a session ID for tracking context, events, and pending saves across a conversation.
Update session context by setting a key-value pair. Use this to track evolving context during a conversation.
Analyze text for memory triggers and get suggestions for what to save. Use this to help identify important information worth remembering.
Pagination not implemented. memory_list, kb_index, and memory_recall accept max_results/limit but no offset/cursor. Large result sets will blow context window; no guidance on handling truncation.
Destructive operations (memory_delete, kb_delete) require confirm=true but no dry-run preview. Agents cannot see what will be deleted before confirming, risking accidental data loss.