MCP server with semantic memory using local embeddings and SQLite
Server has 8 tools with complete input schemas and descriptions. Naming follows verb_noun convention (save_, search_, get_, delete_, list_, set_, update_). Descriptions are present and adequate (avg ~120 chars), meeting the 10-1024 char baseline. However, several critical gaps: (1) no output schemas documented for any tool, forcing LLMs to guess response structure; (2) parameter descriptions lack format/constraint details (e.g., 'id' has no length/pattern guidance, 'threshold' lacks 0-1 range explanation in description); (3) no error handling guidance, tools don't explain what happens on failure or how to recover; (4) destructive operations (delete_memory, set_user_bio) lack confirmation/dry-run patterns; (5) search_memory returns 'n_results' but output structure undefined. Schemas are well-formed JSON Schema with types and required fields, but incomplete per pattern:tool-chain and pattern:response-shaper standards.
Delete a memory by its ID
Get a specific memory by its ID
Get the user's biographical information. Returns a structured profile with basic info, tech stack, and personal details. All fields are optional.
List all memory IDs and their metadata
Save a memory with semantic search capability. The text will be embedded and stored for later retrieval.
Search memories using semantic similarity. Returns the most relevant memories based on the query text.
Set or update the complete user biography. All fields are optional - you can provide only the fields you want to set. Other fields will remain unchanged if bio already exists, or be null if creating new.
No output schemas documented. LLMs cannot infer response structure for any tool. search_memory returns results but format is undefined; get_memory returns a memory but fields are unknown; list_all_memories returns 'all memory IDs and metadata' but structure is opaque.
Destructive operations lack confirmation/dry-run. delete_memory and set_user_bio can permanently alter state with no recovery path. Agents may accidentally delete all memories or overwrite user bio.
Parameter descriptions lack format/constraint details. 'id' has no length or pattern guidance; 'threshold' (0-1 range) not explained in description; 'n_results' has no min/max bounds. LLMs may pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Update a specific field in the user's biography. Only updates the specified field, leaving others unchanged.
No error handling guidance. Tools don't explain what happens on failure (e.g., 'memory not found', 'duplicate id', 'invalid threshold'). Agents have no recovery path.
search_memory lacks pagination. No limit cap, offset, or cursor documented. Returning all matching memories could exhaust context window.