An MCP server providing semantic memory storage and retrieval with vector embeddings, hybrid search, entity extraction, and TTL-based memory management.
Server has 8 well-structured tools with complete JSON schemas and descriptions. All tools have proper type definitions, constraints (min/max), and required field declarations. Naming follows verb_noun pattern (memory.add, memory.search, etc.). However, descriptions are generic and lack LLM-optimized guidance on WHEN to use each tool vs alternatives. Parameter descriptions are adequate but lack actionable format/constraint details. Output schemas are not documented, LLMs cannot infer what fields to expect from responses. Error handling and recovery guidance are absent. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels.
Add a new memory to the memory store. Memories can be facts, notes, preferences, todos, or other types of information to remember.
Delete a memory by ID. This operation cannot be undone.
Extract and list entities mentioned in a memory.
Export memories to JSONL format. Returns a string containing the exported data that can be saved to a file.
Import memories from JSONL format. Each line should be a JSON object representing a memory.
Find memories related to a given memory through shared entities.
Output schemas not documented. LLMs cannot infer response structure (fields, types, pagination). Forces agents to guess what data is returned and how to chain tools.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). memory.delete is marked DESTRUCTIVE but lacks destructiveHint annotation. memory.search is READ_ONLY but lacks readOnlyHint. Agents cannot infer safety/retry semantics.
Descriptions lack LLM-optimized guidance. Generic descriptions (e.g. 'Search for relevant memories') do not explain WHEN to use this tool vs alternatives, what the agent should expect, or how to interpret results. Baseline: 50-200 chars with clear intent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Search for relevant memories using semantic (vector) and/or lexical (text) similarity. Returns ranked results based on relevance to the query.
Update an existing memory by ID. Only the fields provided in the patch will be updated.
No error handling or recovery guidance. Tools do not document what errors can occur, whether they are retryable, or what the agent should do next. E.g., memory.delete says 'cannot be undone' but offers no confirmation/dry-run pattern.
memory.search returns 'ranked results' but no pagination parameters (offset, limit, cursor) visible in schema. Large result sets will blow context window. Baseline: paginated tools must accept limit and return total count or next_cursor.