MCP server for persistent AI memory — MongoDB-backed with file fallback
Server has 9 tools with complete input schemas and descriptions. Naming follows verb_noun convention (get_*, save_*, load_*, delete_*, list_*, suggest_*, etc.). Descriptions are present and moderately detailed (avg ~150 chars), exceeding the 10-char minimum but falling short of the 50-200 char LLM-optimized range. Parameters have types and descriptions. However, output schemas are not documented in the source code, LLMs cannot see what fields to expect from responses. Error handling is minimal; no recovery guidance or actionable error messages visible. Security validation exists (key pattern checks, workspace root enforcement) but is not reflected in tool descriptions. Tool composition is reasonable (single responsibility), but some tools like suggest_history combine multiple concerns (query + k + budget parameters suggest complex internal logic that could be split).
Delete a key from persistent memory.
Get git diff between commits or branches.
Get git commit history for a repository.
Get the file/folder structure of a GitHub repository as minified JSON. max_depth controls how many directory levels to include (1–10, default 5). Use a lower value for large monorepos, higher for small repos needing full detail.
Get the file/folder structure of a local directory as minified JSON.
List all keys in persistent memory for a project.
Load a value from persistent memory by key.
Output schemas not documented. LLMs cannot see what fields responses contain, forcing them to guess downstream tool inputs and risking broken tool chains.
Error handling lacks recovery guidance. No visible error messages that tell LLMs what to do next (e.g., 'User not found. Try search_users() first'). Stack traces or bare error codes provide no actionable path forward.
delete_memory lacks confirmation/dry-run pattern. Destructive operations should support a confirmation step to prevent accidental data loss when agents make mistakes.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | <=2025-11-25 | v2 |
Save a key-value pair to persistent memory (local JSON or MongoDB).
Retrieve relevant conversation history chunks based on a query.
suggest_history combines multiple concerns (query, k, budget). Consider splitting into separate tools or clarifying when each parameter is needed to reduce LLM reasoning overhead.
save_memory key validation rules (1-100 chars, alphanumeric, _, -, no leading _) are enforced in code but not clearly stated in parameter description. LLMs may pass invalid keys without understanding constraints.