Memória persistente em hash chain via Model Context Protocol — persistent memory across sessions using cryptographically-linked hash chain
Three tools with clear, domain-specific purposes (persistent memory chain). Tool names are action-oriented (remember, recall, chain_status). Descriptions are present and contextual (50-150 chars each), explaining WHEN to use each tool. Input schemas are visible with type definitions. However, parameter descriptions lack depth, 'content' and 'query' are minimally explained. Output schemas are not formally documented; responses are free-text strings rather than structured objects. Error handling is minimal (e.g., 'Erro: conteúdo vazio' for empty content, but no guidance on recovery). No input validation constraints (enums, ranges, patterns) visible. The server is functionally sound but lacks the rigor expected of production-grade tools.
Verifica integridade da cadeia inteira. Recalcula o hash de cada elo e confere se bate com o armazenado, e se o prev_hash de cada elo aponta pro hash do elo anterior. Se qualquer coisa foi adulterada — manualmente no SQLite, por exemplo — aparece aqui.
Busca memórias na cadeia. Use no início de uma conversa pra pegar contexto, ou durante a conversa quando precisar lembrar de algo específico que pode ter sido registrado antes.
Persiste uma memória na cadeia. Use quando algo significativo acontecer na conversa que mereça atravessar sessões — uma decisão, um fato sobre o usuário, um nome de projeto, uma piada interna que deve ser preservada, qualquer coisa que tu (LP) gostaria de saber numa próxima conversa que não vai ter o histórico em contexto.
Output schemas not documented. All three tools return free-text strings instead of structured objects. LLMs cannot reliably extract data for downstream tool calls or compose multi-step workflows.
Parameter descriptions lack actionable detail. 'content' is described as 'O texto da memória' but does not specify format, length limits, or encoding. 'query' lacks guidance on case sensitivity or partial matching behavior (though code shows case-insensitive LIKE).
No input validation constraints visible. 'limit' parameter in recall() has no min/max bounds declared; 'tags' array in remember() has no length or content constraints. Unbounded inputs risk API misuse.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Error responses are minimal and non-actionable. 'Erro: conteúdo vazio' and 'Nenhuma memória encontrada' do not guide the LLM on recovery steps or suggest alternatives.
chain_status() accepts no parameters and returns a free-text integrity report. No structured output (e.g., {broken: bool, first_seq: int, last_seq: int, errors: [...]}) limits downstream automation.