MCP server that exposes WhatsApp (via the Evolution API) as tools for Claude and any MCP client — send/read messages, templates, and manage instances.
Server has 9 tools with complete input schemas and descriptions. Naming follows verb_noun convention (send_text, find_chats, create_instance). Descriptions are present but brief (avg ~60 chars, below the 194-char baseline). Parameters are typed with Zod and mostly described, but lack detail on constraints, formats, and error recovery. Output schemas are not documented, responses are JSON-stringified without field-level guidance. Error handling returns raw messages but lacks actionable recovery steps or categorization. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Missing pagination guidance for list tools.
Point the instance webhook to a public URL for inbound events.
Check whether the instance is connected (state "open").
Create a new Evolution instance (a WhatsApp connection slot).
Log out / disconnect the WhatsApp number from the instance.
List the WhatsApp chats/conversations on the instance.
Read the message history of a chat (by phone or JID).
Output schemas not documented. Tools return JSON-stringified responses without field-level guidance. LLMs cannot plan downstream calls or extract specific fields reliably.
Tool descriptions lack actionable context. Avg 60 chars vs 194-char baseline. Missing WHEN to use, prerequisites, and what the tool returns. E.g., 'List the WhatsApp chats' does not explain if results are paginated or what fields are returned.
Error handling returns raw messages without recovery guidance. No categorization (retryable vs user-fixable vs fatal). LLM cannot determine next action on failure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Get the QR code (base64) to link a WhatsApp number to the instance.
Send an image, video, document or audio via URL or base64.
Send a WhatsApp text message to a phone number.
No tool annotations despite clear risk levels. send_text and send_media are WRITE operations; disconnect_instance is DESTRUCTIVE. Missing readOnlyHint/destructiveHint annotations prevent LLM from understanding safety implications.
find_chats and find_messages lack pagination guidance. No limit parameter on find_chats; find_messages has optional limit but no default or max stated. Large result sets risk context window exhaustion.