MCP server that exposes ScallopBot's long-term memory store to any MCP client. Provides three tools for storing and recalling memories using hybrid retrieval (BM25 + embeddings) and temporal queries against a shared SQLite database.
Three tools with well-structured schemas and clear descriptions. memory_store and memory_recall have comprehensive parameter documentation with proper types, ranges, and constraints. memory_temporal uses enums for named ranges and includes optional parameters with clear semantics. All tools declare their risk level (WRITE vs READ_ONLY). Descriptions are substantive (100-200 chars), explaining WHAT the tool does and WHEN to use it. However, output schemas are not documented in the provided source, LLMs cannot see what fields to expect from results. Error handling guidance is absent; tools do not explain recovery paths for common failures (e.g., 'no memories found', 'embedding provider unavailable'). Tool composition is sound: each tool has one responsibility, and parameters chain logically (query → limit, start/end → range alternatives).
Recall memories relevant to a query using ScallopBot hybrid retrieval (BM25 keyword scoring fused with embedding similarity, plus optional LLM re-ranking). Falls back to keyword-only scoring when no embedding provider is configured; the result says which mode was used.
Store a memory in ScallopBot long-term memory. The memory is written to the same database the bot reads, so it becomes part of the assistant's recall immediately. Dates mentioned in the text are extracted automatically.
Answer "what happened between X and Y" over ScallopBot memory. Give either an explicit start/end pair or a named range (thisWeek, lastWeek, thisMonth). Results are ordered by event date, most recent first. Add an optional query to rank within the window instead of listing it chronologically.
Output schemas not documented. LLMs cannot see what fields memory_store, memory_recall, and memory_temporal return. This forces agents to guess at response structure and risks failed downstream chaining.
No error recovery guidance. Tools do not explain what to do if memory_recall finds no results, embedding provider is unavailable, or temporal window is invalid. Agents have no recovery path.
memory_temporal has optional start/end and optional range, but no description of mutual exclusivity. LLMs may pass both or neither, causing ambiguous calls.
memory_recall limit parameter defaults to 10 but memory_temporal defaults to 20. Inconsistent defaults across similar tools increase cognitive load for LLMs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
memory_store importance parameter description lacks guidance on when to use high vs low values. LLMs cannot reason about decay semantics without examples or heuristics.