MCP Server for direct MySQL access to Perfex CRM with optimized performance and security
Server provides 10 tools with generally complete schemas and reasonable descriptions, but significant gaps exist in description quality, parameter documentation, and error handling. Most tools follow verb_noun naming conventions (get_*, create_*). However, descriptions are often too brief (under 50 chars) or lack actionable context. Parameter descriptions are present but sometimes generic. Output schemas are inferred from code structure rather than explicitly documented. No tool annotations (readOnlyHint/destructiveHint) present. Error handling guidance is minimal. This is solid foundational work that would benefit from depth improvements to reach production-grade quality.
Criar novo contrato
Criar nova nota de crédito
Criar novo cliente no sistema
Listar contratos com filtros avançados
Obter detalhes de uma nota de crédito específica
Listar notas de crédito com filtros avançados
Obter detalhes completos de um cliente específico
Missing output schema documentation for all tools. Tool descriptions do not state what fields are returned or their types. LLM must infer structure from trial-and-error.
Tool descriptions are too brief (18-49 chars, below 50-char baseline) and lack actionable context. Many descriptions are simple Portuguese translations of tool names, do not explain WHEN to use, prerequisites, or side effects.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. LLM cannot distinguish safe read-only tools from destructive writes without explicit guidance.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 66 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 38 | - | v1 |
Lista clientes com filtros avançados
Pesquisa avançada de clientes multi-campo
Atualizar contrato existente
Pagination limits not documented in descriptions. Tools like get_contracts accept limit and offset but descriptions do not state default (50) or maximum allowed values.
Parameter descriptions are present but often generic. E.g., 'Filtrar por cliente' (18 chars) does not explain whether client_id is required, nullable, or what happens if missing.
No error handling guidance. Tool descriptions do not explain what happens on invalid input (e.g., invalid date format, non-existent client_id, duplicate company name on create).
Idempotency not documented. Create and update tools do not state whether repeated calls with identical params produce the same result or duplicate records.