Persistent memory MCP server for Claude Code — zero tokens wasted on context rebuilding
22 tools with mixed quality. Strengths: all tools have descriptions (Italian, but present); input schemas visible with types and descriptions for most parameters. Weaknesses: descriptions are often terse (10-50 chars, below the 50-200 char LLM-optimized baseline); output schemas are undocumented (tools return YAML strings but structure not declared); no error handling guidance; no tool annotations (readOnlyHint/destructiveHint); parameter descriptions lack format/constraint details (e.g., 'Project identifier' without explaining valid format); no pagination guidance for list-like tools. Tools like brain_predict_files and brain_get_ticket_context are complex but lack detailed output schema documentation. Risk classifications present but not integrated into descriptions.
Verifica conflitti su file.
Check graduated conflicts (signature / hard / soft) contro le PR aperte. Parsa i diff delle PR a livello di simbolo per individuare: - signature: PR cambia firma di una funzione pubblica (più critico) - hard: PR tocca gli stessi simboli che vuoi toccare - soft: PR tocca lo stesso file su regioni diverse Ritorna YAML raggruppato per severity + guidance testuale.
Safe edit guard: valida un unified-diff PRIMA di applicarlo. Ritorna YAML con verdict (block/warn/ok) + reasons raggruppate. Check: breaking signature (rompe caller nel graph), conflict con PR aperte sugli stessi simboli, violazioni di memorie (avoid/failed/pattern), alto impact radius. Claude deve chiamare QUESTO tool prima di qualunque edit non banale.
Marca come stale/suspect le memorie non verificate di recente. Ritorna conteggio.
Report aggregato precision/recall/outcome count per un progetto, finestra mobile in giorni. Usato per monitorare la qualità delle predizioni nel tempo.
Output schemas undocumented. Tools return YAML strings (brain_predict_files, brain_check_conflicts_v2, brain_get_ticket_context, brain_check_patch, brain_record_outcome, brain_feedback_stats, brain_memory_health, brain_observability) but the structure of returned YAML is not declared in tool definitions. LLMs cannot plan downstream operations without knowing what fields to extract.
Descriptions too terse. 12 tools have descriptions under 50 characters (brain_get_context, brain_get_decisions, brain_get_git_snapshot, brain_release_ticket, brain_team_status, brain_install_hook). LLM-optimized descriptions should be 50-200 chars to provide context for tool selection without wasting tokens.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | <=2025-11-25 | v2 |
Contesto L1 compresso.
Decisioni L2.
Snapshot git corrente.
All-in-one boot di un ticket. Fetcha issue, predice i file (BM25+graph+semantic), rileva conflicts graduated contro PR aperte (signature/hard/soft), fa soft-claim dei file, recupera ticket passati simili. Ritorna YAML compatto con 5 sezioni: ticket / predicted_files / conflicts / claim / similar_past_tickets.
Inizializza un progetto nel brain.
Installa git hook.
Classifica le memorie per impatto sui risultati (miss - hit). Le memorie in cima sono quelle che generano più falsi positivi: candidate al retiring manuale se il sistema non le demote da solo.
Dashboard unificata: tool metrics (latency p50/p95, error rate), feedback stats (precision/recall ultimi N giorni), code graph stats, file index stats, memory counters, system info. Usa per diagnosi runtime e health check del brain.
Predice i file probabilmente da modificare per un ticket/issue. Usa BM25 (symbols+identifiers con IDF) + espansione via code graph (imported_by / called_by). Se use_semantic=True (default) e sentence-transformers è installato, aggiunge un rerank semantico. Ritorna YAML con: file, confidence, score, source, hops, why.
Registra l'esito di un ticket (completed/reverted/abandoned) e chiude il ciclo predizione→feedback. Calcola precision/recall delle predizioni, aggiorna hit/miss dei memory mostrati, e auto-tara i memory rumorosi (demote a suspect dopo 3+ miss consecutivi).
Rilascia claim.
Salva memoria.
Salva snapshot sessione.
Inizia lavoro su issue GitHub.
Come brain_start_ticket ma con spiegazione per ogni file predetto.
Stato team.
Ri-verifica una memoria stale/suspect (torna active).
No tool annotations. Tools lack readOnlyHint, destructiveHint, and idempotentHint metadata. Agents cannot distinguish safe reads from destructive writes (e.g., brain_remember, brain_save_session, brain_record_outcome are WRITE but unmarked). This violates current MCP spec (2026-07-28) which requires tool annotations for safe agent planning.
Parameter descriptions lack format/constraint details. Parameters like 'project' (appears in 20+ tools) are described as 'Project identifier' without specifying valid format, length, or character restrictions. This forces LLMs to guess valid input and increases error rates.
No error handling guidance. Tools return 'error: {e}' strings (visible in conflict_tool_v2.py, feedback_tool.py) without actionable recovery steps. LLMs cannot determine if errors are retryable, user-fixable, or fatal.