MCP server providing persistent memory for AI agents through the ALMA (Agent Learning Memory Architecture) system. Exposes memory retrieval, learning, preference management, and memory consolidation tools.
ALMA Memory MCP Server presents a moderately structured toolset with 16 tools covering memory retrieval, learning, and checkpointing. Strengths: All tools have descriptions (50-250 chars), most parameters are typed and described, input schemas are present and structured. Weaknesses: (1) Tool naming is inconsistent, mix of prefixes (alma_, async_alma_) makes discovery harder; some names are vague (alma_forget, alma_consolidate); async prefixes in tool names violate MCP conventions (async is implementation detail, not user-facing concern). (2) Error handling descriptions are absent, tools state what they do but not how to recover from failure or what error codes mean. (3) Output schemas are not documented, descriptions mention returns but no formal schema definitions appear in the source code. (4) Several tools lack depth in parameter descriptions, e.g., alma_merge_states has no description of what conflict_resolution values actually do, and alma_consolidate doesn't explain what 'dry_run' preview returns. (5) No permission/scope documentation, destructive tools (alma_forget, alma_consolidate, alma_cleanup_checkpoints) lack guidance on who can call them. Baseline comparison: average tool description ~140 chars (within 10 - 1024 range, good), params average ~3.5 per tool (reasonable), but descriptions read more as API docs than LLM-optimized selections guides.
Add domain knowledge within agent's scope. Knowledge is facts, not strategies.
Add a user preference to memory. Preferences persist across sessions.
Clean up old or unused checkpoints to save storage space.
Consolidate similar memories to reduce redundancy. Merges near-duplicate memories based on semantic similarity. Use dry_run=true first to preview what would be merged.
Prune stale or low-confidence memories to keep the system clean.
Health check for the ALMA server.
Record a task outcome for learning. Use after completing a task to help improve future performance.
Inconsistent tool naming with async_ prefix violates MCP conventions. Async is an implementation detail; user-facing tool names should not expose it. Causes discovery confusion and makes LLMs uncertain which variant to call.
No output schemas documented. Tool descriptions state what they return (e.g. 'Returns heuristics, domain knowledge...') but no formal JSON Schema or field definitions are visible. LLMs cannot reliably extract structured data from untyped responses.
Destructive/write operations lack error recovery guidance. Tools like alma_forget, alma_cleanup_checkpoints, alma_consolidate (with dry_run=false) state what they do but provide no guidance on error handling, partial failures, or recovery steps.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Merge memory states from multiple agents or sessions.
Retrieve relevant memories for a task. Returns heuristics, domain knowledge, anti-patterns, and user preferences.
Get memory statistics for monitoring and debugging.
Create a checkpoint of current memory state for later resumption.
Get artifacts linked to memories.
Link an artifact (file, URL, etc.) to a memory for reference.
Resume from a previously created checkpoint.
Retrieve memories with explicit scope filtering (agent-specific, project-specific, user-specific).
Learn from a complete workflow execution with multiple steps.
Parameter descriptions lack actionable constraints. alma_merge_states lists conflict_resolution enum values (keep_source, keep_target, merge, skip) in schema but descriptions don't explain what each does or when to use them. alma_consolidate similarity_threshold (0-1, default 0.85) lacks guidance on how sensitive 0.85 is or how to adjust it.
Vague tool names reduce LLM discoverability. alma_forget is colloquial (should be delete_memories or prune_memories); alma_consolidate could mean compress, merge, organize, or deduplicate without context. Verb_noun convention would improve clarity: prune_old_memories, merge_duplicate_memories.
No permission/scope declarations on sensitive tools. alma_forget (destructive), alma_merge_states (modifies multiple agents), alma_cleanup_checkpoints (deletes checkpoints) lack documentation of required permissions, audit implications, or authorization checks.