Agent-driven memory layer for LLMs with temporal facts, semantic retrieval, and structured curation
Remind MCP presents a memory system with three tools: remember, recall, and apply. Tool naming follows verb-noun conventions (remember, recall, apply), which is good. Descriptions are present and contextual, ranging from 51-124 characters, within acceptable bounds but on the brief side. Input schemas are visible and properly typed with parameter descriptions. However, significant gaps exist: output schemas are not documented, error handling guidance is minimal, and parameter constraints lack depth. The tools handle data persistence, semantic search, and batch operations, legitimate MCP capabilities, but the schema documentation and error recovery patterns fall short of production-grade tooling. No tool descriptions mention error cases, recovery steps, or constraints that would help an LLM reason about failure modes.
Apply a batch changeset to memory.
Retrieve relevant memories for a query.
Store an experience or observation in memory. This is a fast operation - no LLM calls. For fact-type episodes, creates a Fact row with deterministic cluster assignment and reports any potential collisions.
Output schemas not documented. Tool descriptions do not specify what each tool returns, making it difficult for LLMs to plan downstream operations or chain tools correctly.
Error handling guidance absent. None of the three tools document error cases, recovery steps, or actionable error messages. E.g., 'recall' might fail on timeouts or invalid queries, but the description does not mention this or suggest mitigation.
Parameter constraints underspecified. 'recall' accepts numeric parameters (k, episode_k, max_chars, min_score, timeout_ms) with no documented min/max bounds. LLMs may pass invalid values like k=99999 or timeout_ms=-1.
Parameter descriptions lack guidance on dependencies. 'remember' has optional fields (episode_type, entities, labels, source_type, etc.) but does not document whether certain combinations are invalid or meaningless.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | C | 63 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 26 | - | v1 |
'apply' tool description is vague. It mentions 'changeset in JSON or compact line format' but does not specify the schema, syntax, or valid fields. LLMs cannot reason about what changesets are valid.
No idempotence or dry-run guidance documented. 'apply' has a dry_run parameter but the description does not explain what dry-run does or why an LLM should use it.