Servidor MCP para uma base local de notas em Markdown (second brain). Expõe sete tools, dois resources e dois prompts sobre um único diretório de notas.
Server has well-structured tool definitions with complete input schemas and descriptions for all 7 tools. Tool names follow verb_noun convention (criar_nota, ler_nota, etc.). Output schemas are explicitly defined via Pydantic models (NotaCompleta, ListaDeNotas, etc.). However, descriptions lack depth on WHEN to use each tool vs alternatives, and error handling guidance is minimal. Parameter descriptions are present but generic. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Composition is sound, tools are single-responsibility and chainable.
Remove uma nota da base permanentemente.
Atualiza uma nota existente.
Busca texto em todas as notas, ordenando por relevância. A pontuação pesa mais ocorrências no título e nas tags do que no corpo, e a comparação ignora acentuação e caixa.
Cria uma nota nova na base.
Calcula números agregados sobre a base inteira.
Lê o conteúdo integral de uma nota da base.
Lista as notas da base, opcionalmente filtrando por uma tag.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. apagar_nota is DESTRUCTIVE but unmarked; ler_nota, listar_notas, buscar_notas, estatisticas_base are READ_ONLY but unmarked. LLMs cannot infer safety without explicit hints.
Error handling is absent. No guidance on what to do if a note slug is invalid, already exists, or disk I/O fails. apagar_nota returns a plain string confirmation instead of structured error info. LLMs cannot self-correct without actionable error messages.
Tool descriptions lack WHEN-to-use guidance. 'Busca texto em todas as notas' explains WHAT but not WHEN to call buscar_notas vs listar_notas. No hints on prerequisites (e.g. 'call listar_notas first to discover available tags').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2025-06-18+ | v2 |
listar_notas lacks pagination support. No limit or offset parameters. If a base has thousands of notes, returning all summaries will exhaust context. Should accept limit (default 20) and offset/cursor.
estatisticas_base has vague name. 'Calcula números agregados' is generic. Better: 'get_note_statistics' or 'summarize_database'. Current name does not clearly signal what it returns.