An MCP server for managing persistent memories with vector search capabilities
Server has 6 well-named tools with complete input schemas and descriptions. Naming follows verb_noun pattern (create_memory, search_memories, etc.). All tools have 50-150 char descriptions and documented parameters with types. However, output schemas are not documented in the source, LLMs cannot see what fields to expect from responses. Error handling is minimal; no recovery guidance or actionable error messages. Parameter descriptions lack format constraints (e.g., 'limit' has no min/max bounds). No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Missing idempotency guidance for write operations.
Create a new memory entry with optional title, tags, and source
Delete a memory by ID
Retrieve a specific memory by ID with optional field filtering
List the most recently created memories with optional filtering
Search memories using vector similarity or keyword matching
Update an existing memory with new content, title, tags, or source
Output schemas not documented. LLMs cannot see what fields responses contain (e.g., does search_memories return relevance_score, embedding_distance, or just id/content?). This forces agents to guess field names for downstream operations.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). delete_memory and update_memory are marked DESTRUCTIVE/WRITE in metadata but lack schema annotations. Agents cannot determine retry safety without explicit hints.
Numeric parameters lack bounds. 'limit' defaults to 10 but has no min/max constraint documented. Agents could pass limit=999999, causing performance issues or timeouts.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
No error recovery guidance. If search_memories returns no results or embedding fails, the tool description does not explain fallback behavior (keyword search) or what the agent should do next.
Missing idempotency guarantees. create_memory and update_memory do not document whether repeated calls with identical input produce duplicate records or are safely idempotent. Agents retrying on ambiguous failures risk data duplication.