A memory storage and retrieval system using vector embeddings with MCP protocol support. Stores memories with metadata and retrieves them based on semantic similarity.
Memori-MCP provides two tools with partial schema and description clarity, but has notable gaps in parameter documentation, output schema specification, and error handling guidance. Naming is clear and action-oriented (store_memory, recall), but parameter descriptions are minimal and lack constraints. Output structures are returned as JSON strings rather than structured typed objects. The server lacks the production-grade polish expected for recommendation, descriptions are adequate but brief, and no guidance is provided for multi-step workflows or error recovery.
Recall memories based on a query string.
Store a memory with given text, id, and optional metadata.
Output schemas not documented. Both tools return untyped JSON strings rather than structured objects. LLMs cannot infer downstream field names or types for chaining.
Parameter descriptions lack constraints and format hints. 'metadata' parameter in store_memory is described as 'Optional metadata dictionary' but does not specify what fields are valid, expected types, or cardinality. LLM is left guessing about valid keys.
recall tool lacks pagination support. No limit enforcement, no total_count return, no next_cursor. If hundreds of memories exist, LLM cannot paginate results, risking context window explosion.
Error handling does not guide recovery. store_memory returns 'Error: Text cannot be empty' but does not suggest a remedial action (e.g., 'Provide non-empty text and retry'). recall returns generic error JSON without actionable next steps.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Metadata parameter in store_memory lacks specificity. Type is 'object' with no schema. Field names, types, required keys not documented. LLMs cannot determine which metadata fields are safe to populate.
recall description does not explain when to use it vs. other discovery patterns, or what scores represent. 'Recall memories based on a query string' is minimal, does not hint at search semantics, relevance ranking, or expected use cases.