Four tools with clear, well-structured definitions using Zod schemas. All tools have descriptions (194 - 250 chars, within baseline 34 - 392 range) and documented parameters. Naming follows verb_noun convention (recall, remember, forget, list_memories). Input schemas are properly typed with enums for scope. However, output schemas are not formally documented, responses are text-formatted strings rather than structured objects. Error handling is minimal (no recovery guidance or actionable error messages). Missing tool annotations (readOnlyHint, destructiveHint) despite clear risk profiles.
Delete a stored memory by its id (obtained from a prior recall) when it is wrong or outdated. To update a fact, forget the old one and remember the corrected one.
List stored memories, optionally filtered by scope. Useful for review or when you want the full set rather than a search.
Retrieve stored facts relevant to the user question. Call this whenever the answer may depend on remembered personal or household facts, preferences, people, places, routines, devices, or prior context. Returns matching memories with their ids.
Store a durable, normalized fact about the household, a person, a place, a preference, a routine, a device, or a project. Use when the user asks you to remember something, or states a stable fact/preference worth recalling later. Store a concise fact, never a whole transcript. To UPDATE a fact, forget the old one then remember the new one.
Output schemas not documented. Tools return text-formatted strings (fmt() helper) instead of structured JSON objects. LLMs cannot reliably parse or chain results.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). 'forget' is destructive and 'remember' is write-only, but MCP spec annotations are absent.
Error handling lacks recovery guidance. 'No memory with that id' is bare; should suggest 'Call recall() first to find valid memory IDs.'
Parameter 'category' in remember() lacks enum constraint. Description lists options ('preference | person | place | routine | device | project | misc') but no formal enum, inviting hallucinated values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
No pagination support. list_memories() returns all results; large memory stores will blow context windows. Missing limit/offset parameters and total count.