MCP Server para SmileAPI - Servidor MCP para integração com a API do WhatsApp
SmileAPI MCP exposes 5 messaging tools with complete JSON schemas and basic descriptions. However, naming violates verb_noun conventions (envia_texto instead of send_text), descriptions lack context on when/why to use each tool, and parameter descriptions are minimal. No output schemas documented. Error handling is present but generic. Tool definitions are explicitly registered in TOOL_DEFINITIONS array with proper inputSchema, but lack depth expected of production tools.
Envia um áudio via SmileAPI
Envia um documento via SmileAPI
Envia uma imagem via SmileAPI
Envia mensagem de texto via SmileAPI
Envia um vídeo via SmileAPI
Tool names do not follow verb_noun convention. All tools use Portuguese imperative form (envia_*) instead of English verb_noun (send_text, send_image, etc.). LLMs rely on English verb prefixes to infer intent and disambiguate tools.
Descriptions lack context on WHEN to use each tool and WHY it differs from others. All 5 tools send media via SmileAPI but descriptions do not explain the distinction (text vs image vs video vs audio vs document) or when an LLM should choose one over another.
No output schema documented. Tools return SmileAPI response data but LLMs cannot plan downstream actions without knowing what fields to expect (e.g., message_id, status, timestamp). Responses are unstructured.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Parameter descriptions are minimal and lack format/constraint guidance. E.g., 'to' parameter says 'Número do destinatário com DDI e DDD (ex: 5543996611437)' but does not specify: is it required to be exactly 13 digits? Can it include spaces or dashes? What happens if format is wrong?
Error handling returns generic SmileAPI errors without recovery guidance. callSmileAPI() throws 'Erro na SmileAPI: ...' but does not tell the LLM whether to retry, ask the user, or abort. No error classification (retryable vs user-fixable vs fatal).