Production-grade vector memory MCP server with DuckDB + semantic search. Provides persistent, per-project memory for decisions, rules, architecture notes, sprint goals, and session summaries.
Memory MCP has 19 tools with consistent naming (memory_* prefix) and descriptions present for all. However, parameter descriptions are minimal (often single-word or 5-10 chars), and output schemas are not documented in the source. Input schemas are visible and properly typed. Error handling is basic, no recovery guidance or actionable error messages evident. Tool composition is reasonable (each does one thing), but descriptions lack the 50-200 char LLM-optimized range (most are 40-80 chars). No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications in the spec.
Add a rule (mandatory or forbidden) to the project.
Create or find the asoode project and board for this project.
Mirror the local task list onto the asoode board.
Check the asoode integration status and whether a PAT is stored.
Delete a rule from the project.
Get all mandatory and forbidden rules for the project.
Search project memories using semantic search.
Output schemas not documented. No tool returns a documented response structure, forcing LLMs to infer what fields are available and breaking downstream tool chaining.
Tool annotations missing. Despite clear risk classifications (READ_ONLY, WRITE, DESTRUCTIVE), no readOnlyHint, destructiveHint, or idempotentHint annotations are present in tool definitions.
Parameter descriptions are minimal (5-15 chars). E.g., 'Project slug' for project param lacks context on format, constraints, or when to use active project default.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 75 | 2026-07-28+ | v2 |
End the current session and release all task claims, with a summary for continuity.
Start a memory session for a project, loading mandatory rules, forbidden rules, last session summary, sprint goals, and recent decisions.
Store a memory (decision, architecture note, sprint goal, etc.) in the project's memory store.
Add a new task to the project's task queue.
Claim the next available task in the queue for this session.
Mark a task as done and stop the clock.
Record a multi-deliverable request and decompose it into separate tasks.
Start working on a task, beginning the clock.
Stop a task and leave the state unchanged.
Update a task's state (paused, blocked, etc.) without finishing it.
Update an existing rule.
Set the active project for the current session.
No error handling guidance. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next (e.g., 'Project not found. Try memory_session_start first.').
Destructive operations lack confirmation step. memory_delete_rule and memory_session_end (which releases task claims) have no dry-run or confirmation mechanism to prevent accidental data loss.