MCP server for WhatsApp integration providing tools to search contacts, list messages and chats, send messages and files, and manage WhatsApp communications
Server has 12 tools with complete input schemas and descriptions. Naming follows verb_noun convention (search_, list_, get_, send_, download_). Descriptions are present but brief (avg ~80 chars, below the 194-char baseline). Parameters are typed and described, but lack constraints (enums, ranges, patterns). Output schemas are not documented. Error handling is minimal, no recovery guidance or categorization. Security concern: send_message and send_file are destructive operations without confirmation or dry-run support. Missing idempotency guidance for write operations.
Download media from a WhatsApp message and get the local file path.
Get WhatsApp chat metadata by JID.
Get all WhatsApp chats involving the contact.
Get WhatsApp chat metadata by sender phone number.
Get most recent WhatsApp message involving the contact.
Get context around a specific WhatsApp message.
Get WhatsApp chats matching specified criteria.
Output schemas not documented. LLMs cannot infer what fields are returned by list_messages, get_chat, or other tools, forcing them to guess at downstream field names and risking broken tool chains.
Destructive operations (send_message, send_file, send_audio_message) lack confirmation or dry-run support. Agents can accidentally send messages without recovery path. No idempotency guidance, retries risk duplicate sends.
Parameter descriptions lack constraints. 'limit' and 'page' parameters have no min/max bounds; 'sort_by' in list_chats has no enum constraint. LLMs may pass invalid values (negative page, limit=999999) without validation guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 70 | 2026-07-28+ | v2 |
Get WhatsApp messages matching specified criteria with optional context.
Search WhatsApp contacts by name or phone number.
Send any audio file as a WhatsApp audio message to the specified recipient. For group messages use the JID. If it errors due to ffmpeg not being installed, use send_file instead.
Send a file such as a picture, raw audio, video or document via WhatsApp to the specified recipient. For group messages use the JID.
Send a WhatsApp message to a person or group. For group chats use the JID.
Error handling is absent. No recovery guidance, error categorization, or actionable messages. If send_message fails, the LLM has no guidance on whether to retry, ask the user, or try a different tool.
Descriptions are brief (avg 70 chars vs 194-char baseline). Missing WHEN to use each tool and dependencies. E.g., get_direct_chat_by_contact vs get_contact_chats, unclear which to call first or when each applies.