WhatsApp MCP has 15 tools with basic schemas and descriptions, but significant gaps prevent higher scores. All tools have descriptions (10-50 chars, mostly short), and input schemas are present with type definitions. However, descriptions lack LLM-optimized guidance on WHEN to use each tool vs. alternatives, parameter relationships are undocumented (e.g., mediaUrl vs mediaPath in send_message), and output schemas are entirely absent from the source. Error handling is minimal, no recovery guidance, no actionable error messages, no categorization of retryable vs. fatal failures. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Naming is generally good (verb_noun pattern), but some tools conflate concerns (whatsapp_setup handles 7 distinct actions via enum). The server lacks pagination support despite list_chats accepting a limit parameter with no documented max or default.
Create a new WhatsApp group
Download media from a message and save to a file
Forward a message to another chat
Get info about a contact or group
Get detailed info about a WhatsApp group
Add participants to a group
Remove participants from a group
No output schemas documented. LLMs cannot predict response structure, forcing them to guess at field names for downstream tool calls. E.g., whatsapp_list_chats returns unread counts but no schema specifies field names or types.
Descriptions are too short (10-50 chars) and lack LLM-optimized guidance. E.g., 'Detailed WhatsApp connection status' does not explain WHEN to call it vs. other tools, what fields it returns, or what 'detailed' means. Baseline for A+ tools is 50-200 chars with WHAT/WHEN/WHY.
whatsapp_send_message has mutually exclusive parameters (mediaUrl vs mediaPath) but no documentation of this constraint. LLMs will pass both, causing ambiguous behavior. Parameter relationships must be explicit.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | <=2025-11-25 | v2 |
Leave a WhatsApp group
List recent WhatsApp chats with unread counts
React to a message with an emoji
Read messages from a chat
Search for a chat by name or phone number
Send a message (text, reply, or with media)
Manage WhatsApp profiles. Create, list, remove profiles or switch between them.
Detailed WhatsApp connection status
No error handling guidance. Tools return failures but do not tell LLMs whether to retry, ask the user, or give up. E.g., 'Chat not found' vs 'Rate limited' both need different recovery strategies but are not categorized.
whatsapp_setup combines 7 distinct actions (list_profiles, add_chrome_profile, add_qr_profile, remove_profile, switch_profile, scan_chrome, clone_session) into one tool via enum. This violates single-responsibility principle and forces LLMs to reason about which action to pick. Should be split into separate tools.