MCP desktop extension for registry and consume of data between AI instances
Mnemosyne has complete input/output schemas and basic descriptions for all 12 tools, but falls short on description quality and parameter guidance. Tool descriptions are minimal (10-30 chars), lacking context on WHEN to use each tool or what distinguishes similar operations (e.g., message_get_latest_unreaded vs message_get_oldest_unreaded). Parameter descriptions are present but generic ('Agent name of the AI instance' repeated 8+ times). No enum constraints, no format guidance, no error recovery hints. Output schemas are defined but not documented in tool descriptions. No tool annotations (readOnlyHint/destructiveHint) despite clear READ/WRITE semantics. Naming is verb-first and mostly clear, but lacks natural-identifier support (agent_name is opaque string, no email/username fallback). No pagination support on list-like tools (messages_get_unreaded, agents_get_details). Security: no visible input validation, no rate limiting, no audit logging in handler code.
Create an agent
Get the status of an agent
Get the details of all agents
Create a message
Get a message by ID
Get the latest unreaded message
Get the oldest unreaded message
Tool descriptions are critically short (10-30 chars), below the 194-char baseline for production tools. Descriptions like 'Save a state' and 'Get the latest state' lack context on WHEN to use each tool, what distinguishes similar operations, or what the tool returns. LLMs cannot reliably select the right tool without richer guidance.
Parameter descriptions are generic and repeated verbatim across tools ('Agent name of the AI instance' appears 8+ times). No guidance on format, constraints, or valid values. LLMs cannot infer whether agent_name accepts emails, usernames, or opaque IDs, forcing trial-and-error.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2025-06-18+ | v2 |
Set a message as readed
Get unreaded messages
Get the latest state
Save a state
Get the latest states
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear READ/WRITE semantics. Tools like state_save and message_create are destructive but unmarked. Agents cannot distinguish safe retry candidates from irreversible operations.
List-like tools (messages_get_unreaded, agents_get_details) lack pagination support (limit, offset, cursor). No indication of result count limits. Returning unbounded lists risks context window exhaustion and degraded LLM reasoning.
No visible input validation or error recovery guidance in handler code. Tools accept string parameters without format checks. Error responses likely return raw exceptions rather than actionable guidance (e.g., 'Agent not found. Try agent_create() first.').