An open long-term memory layer for AI agents. MCP server + REST API on Cloudflare Workers, backed by Supabase pgvector with Workers AI embeddings.
Recall demonstrates solid tool design with clear naming (verb-noun pattern), comprehensive parameter descriptions, and well-structured schemas. All 7 tools have explicit definitions in src/tools.ts with inputSchema, descriptions, and proper typing. Descriptions average ~150 chars, within the 10-1024 baseline. Parameters are well-documented with constraints (e.g., limit 1-50, min_similarity 0-1). However, output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal; no recovery guidance or actionable error messages visible. Tool composition is strong (each does one thing), but missing idempotency guarantees and confirmation patterns for destructive operations (forget).
Ask a natural-language question and get an answer synthesized from your memories (retrieval-augmented). Returns the answer plus the source memories.
Permanently delete a memory by its id.
List the most recently stored memories, newest first. Optionally filter by tag.
Semantically search your memories for anything relevant to a query. Returns the closest matches with a similarity score. Use this before answering when past context might help.
Save a durable memory for later. Use this to persist facts, decisions, preferences, or context you'll want to recall in a future session. Returns the stored memory's id.
Get a summary of this memory space (how many memories it holds).
Output schemas not documented. LLMs cannot predict response structure (e.g., what fields does 'ask' return? Is 'similarity' always present in recall results?). This forces agents to guess and risks parsing errors.
Destructive tool 'forget' lacks confirmation or dry-run pattern. Agents can permanently delete memories without a safety gate, risking accidental data loss.
No error handling guidance visible. If a memory ID is invalid, what error is returned? Can the agent retry? Should it search first? Responses must guide recovery.
'stats' tool description is minimal (11 words). Lacks context on when to call it or what the response structure is. Should explain that it returns memory_count and other metadata.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2025-06-18+ | v2 |
Edit an existing memory by id. Provide any of content, tags, or metadata. Changing content re-embeds it so future recall stays accurate.
No idempotency guarantees documented. If 'remember' is called twice with identical content, does it create duplicates or return the same ID? Agents need to know for safe retries.