MCP Server de memória persistente para LLMs usando PHP e SQLite
Server implements 9 memory management tools with complete JSON schemas and descriptions. All tools have proper input schemas with type definitions and parameter descriptions. However, descriptions are generic and lack LLM-optimized guidance on WHEN to use each tool vs. alternatives. No output schemas documented. Error handling is minimal, no recovery guidance or actionable error messages. Tool composition is reasonable (single responsibility per tool), but descriptions don't explain dependencies or multi-step workflows. Naming follows verb_noun convention consistently (memory_save, memory_get, memory_search, etc.), which is good. Parameter descriptions are present but lack constraints (e.g., no max length for 'key', no guidance on category enum values). No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels (WRITE, DESTRUCTIVE). Missing: output schema documentation, error recovery guidance, parameter constraints, and tool annotations.
Remove uma memória específica pelo sua chave.
Remove todas as memórias de uma categoria.
Recupera uma memória específica pela sua chave única.
Lista todas as memórias armazenadas, ordenadas por importância e data.
Lista memórias de uma categoria específica.
Busca memórias que possuem uma ou mais das tags especificadas.
Salva uma informação importante na memória persistente. Use para guardar fatos, preferências, decisões ou qualquer informação que deve ser lembrada em conversas futuras.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. E.g., memory_search returns results but structure is undocumented.
Descriptions lack LLM-optimized guidance. Generic descriptions (e.g., 'Recupera uma memória específica pela sua chave única') do not explain WHEN to use memory_get vs. memory_search, or what happens on cache miss. Descriptions should be 50-200 chars with clear intent.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. memory_delete and memory_delete_by_category are marked DESTRUCTIVE but lack destructiveHint annotation to warn LLMs.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | <=2025-11-25 | v2 |
Busca memórias por texto usando busca full-text. Encontra memórias que contêm as palavras pesquisadas.
Retorna estatísticas sobre as memórias armazenadas.
Parameter constraints missing. 'key' parameter has no max length, 'category' has no enum of valid values, 'limit' has no documented max (default 20-100 but no upper bound stated). Unconstrained params invite hallucinated values.
No error recovery guidance. If memory_get fails (key not found), no suggestion to call memory_search. If memory_delete_by_category fails, no guidance on partial success or compensation. Error messages must guide LLM's next step.