MCP Server for WhatsApp via WuzAPI - Compatible with any AI (Claude, Gemini, etc.)
28 tools with inconsistent quality. Most have basic descriptions (50-150 chars) and verb-prefixed names, but critical gaps: NO input schemas visible in source code for ANY tool, all schema scores are 0. Parameters documented in rubric (phone, text, etc.) but not in actual code definitions. Error handling absent. No output schemas documented. No parameter validation guidance. No enum constraints. Descriptions lack WHEN/WHY context. No idempotency markers. Security concerns: phone numbers and message content exposed in logs without sanitization despite PrivacyGuard class.
Connect/Login to WhatsApp (starts session)
Delete a sent message
Disconnect/Logout from WhatsApp
Download media from a message
List active chats from local database
Get current server datetime
Get messages from a chat
NO input schemas visible in source code. All 28 tools lack JSON Schema definitions with type and description for parameters. Rubric requires schema score 0 when not visible.
Descriptions lack WHEN/WHY context. Most are 40-55 chars, stating only WHAT (e.g. 'Send a text message'). Missing: when to use vs similar tools, prerequisites, return value structure, error conditions.
No error handling guidance. Tools like whatsapp_send_text, whatsapp_delete_message, whatsapp_logout have no documented error cases, recovery steps, or actionable error messages. LLM cannot self-correct on failure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
Get QR code for WhatsApp pairing (JSON response)
Get QR code as PNG bytes (decoded from JSON base64 response)
Get current connection status
Check API health status
Logout from WhatsApp AND clear session files from disk
Mark messages as read
React to a message with an emoji
Reply to a specific message (quote reply)
Search for contacts by name or phone number
Send an audio message
Send an interactive buttons message
Send a contact/vcard message
Send a document message
Send an image message
Send a link preview message
Send an interactive list message
Send a location message
Send a poll message
Send a sticker message
Send a text message
Send a video message
No output schemas documented. Tools return unstructured responses (e.g. whatsapp_get_messages, whatsapp_get_chats). LLM cannot plan downstream calls or extract required fields (e.g. message_id for whatsapp_react).
Security: PrivacyGuard.log_action() logs tool params but phone numbers and message IDs are NOT redacted, only 'message', 'text', 'body', 'query' keys. Phone numbers in 'phone' param and message_ids leak into audit logs.