MCP server for managing notes and posts with AI-powered classification and theme generation
The server defines 11 tools with schemas and descriptions present, but quality is inconsistent. Most tools have clear verb-noun naming and basic descriptions, but several critical gaps prevent a higher score: (1) Tool descriptions vary widely in quality, some are minimal (e.g., 'Deleta um post existente pelo ID.' is Portuguese and only 30 chars, violating the 50-200 char baseline); (2) Parameter descriptions are sparse or missing context (e.g., 'ID do post' provides minimal guidance on format or constraints); (3) Output schemas are not documented, tools return text/JSON responses but their structure is not formally declared; (4) No error handling guidance, error messages are generic ('Error deleting note: ...') without recovery hints; (5) Three tools have descriptions in Portuguese, making them inaccessible to English-speaking LLMs; (6) Parameter descriptions lack actionable constraints, enums are present (status, type) but most string parameters have no format/length guidance; (7) Missing security patterns, no audit trails, permission gates, or secret injection guidance visible in tool implementations.
Deletes an existing note by ID.
Deleta um post existente pelo ID.
Generates a theme from a single note
Obtém os detalhes completos de um post específico pelo ID.
Lists all user notes or searches notes by title/content. Use to find the note ID before updating or deleting.
Lista todos os posts do usuário ou busca posts por título/conteúdo. Use para encontrar o ID de um post antes de atualizar ou deletar.
Three tools (delete_post, get_post, list_posts) have Portuguese descriptions that are inaccessible to English-speaking LLMs and violate the 50+ character baseline. 'Deleta um post existente pelo ID.' (30 chars) provides minimal context for selection.
Output schemas are not documented. Tools return structured responses (list_notes shows {ok, items[]} structure) but the response format is not declared or validated. LLMs cannot plan downstream calls without knowing what fields to expect.
Error handling provides no recovery guidance. Errors like 'Error deleting note: <message>' are generic and do not tell the LLM what to do next (retry, ask user, investigate). Pattern: error-classification.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 53 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 52 | - | v1 |
OBRIGATÓRIO: Use esta ferramenta quando o usuário pedir para 'criar um post', 'fazer um post', 'escrever um post' ou similares. Gera e mostra uma prévia visual do post com título e conteúdo ANTES de salvar. Você deve criar o conteúdo do post baseado no pedido do usuário e então usar esta ferramenta para mostrar a prévia.
Saves a text note provided by the user. The note will be automatically classified.
Salva o post no sistema após o usuário confirmar. NUNCA use esta ferramenta sem antes ter usado 'preview_post' para mostrar uma prévia ao usuário. Esta ferramenta só deve ser chamada após confirmação explícita do usuário.
Updates an existing note. You can update the title, content, or both. The note will be automatically reclassified.
Atualiza um post existente. Pode atualizar título, conteúdo, status e/ou data de agendamento.
Destructive tools (delete_note, delete_post, update_note, update_post, save_post) lack confirmation/dry-run steps. An LLM error could delete user data without safeguards.
Parameter descriptions lack actionable constraints. String parameters (title, content) have no length limits, format guidance, or validation rules stated. 'Novo título do post' (18 chars) does not explain max length or character restrictions.
No pagination or result limits documented for list_notes and list_posts. These discovery tools could return large result sets that blow context windows. Baseline: cap at 20-50 items with pagination support.
Missing security patterns: no audit trails visible (who called what, when, with what params), no permission gates (verify authorization before delete), no scope declarations (read vs write). Tools accept DELETE requests without user/agent authorization checks.
Idempotency not declared. Operations like save_note and save_post do not state whether repeated calls with same params produce same result or create duplicates. Pattern: idempotent-operation.