Persistent cognitive memory layer for AI agents, built on ragmcp principles
memorymcp defines 16 tools with complete input schemas and descriptions. Naming follows verb_noun convention (query_memory, store_fact, add_episode). Descriptions are present but vary in quality, some are concise and actionable (e.g., query_memory at 127 chars), others are vague (memory_config at 67 chars). All parameters have type definitions and most have descriptions, but several lack guidance on constraints, valid ranges, or when to use them. Output schemas are not documented, LLMs cannot predict response structure. Error handling is absent from descriptions. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels (WRITE, DESTRUCTIVE). Parameter descriptions often omit format/constraint details (e.g., 'importance' score lacks range; 'max_hops' lacks bounds). The server targets semantic memory patterns well but lacks production-grade error recovery guidance.
Add a message to the episodic stream
Assemble memory context for prompt injection
Export all facts for a namespace as JSON
Run fact extraction on unprocessed episodes and return stored facts
Find all contradicting fact pairs in the graph
Delete a fact from long-term memory
Get the current session episodic window
Output schemas not documented. LLMs cannot predict response structure, forcing them to guess what fields are returned and how to chain tools. Every tool lacks a documented return type.
Tool annotations missing. forget_fact is DESTRUCTIVE and extract_facts is WRITE, but no destructiveHint or readOnlyHint annotations present. LLMs cannot distinguish safe reads from irreversible operations.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | <=2025-11-25 | v2 |
Get current task working memory snapshot
Import facts from exported JSON data
Get detailed analytics: fact distribution, decay analysis, retrieval patterns
Get current backend configuration (episodic, semantic, graph, etc.)
Get memory health stats
Semantic search in long-term memory with decay scoring. Use sort_by_recency=true for queries about recent/last activity.
Set a key in working memory for current task
Explicitly store a high-value fact
Traverse the fact graph from a starting fact, following typed relations
Parameter constraints underdocumented. 'importance' (store_fact) lacks range; 'max_hops' (traverse_graph) lacks bounds; 'max_tokens' (assemble_context) lacks guidance. Descriptions do not state format, min/max, or valid ranges.
Error handling absent from tool descriptions. No guidance on retryability, user-fixable errors, or recovery steps. LLMs cannot self-correct on failures.
Vague descriptions on utility tools. memory_config (67 chars) and memory_stats (50 chars) lack context on when to call them or what structure they reveal. Descriptions should explain discovery purpose.