MCP server for WhatsApp integration providing tools to search contacts, list messages, manage chats, send messages and files, and download media from WhatsApp
Server has 12 tools with complete input schemas and descriptions. Naming follows verb_noun convention (search_, list_, get_, send_, download_). Descriptions are present (avg ~100 chars) but lack actionable context for LLM selection. Parameters are typed but many lack format/constraint details. Output schemas are not documented. Error handling is minimal, no recovery guidance or categorization. Security concern: send_message and send_file are destructive operations with no confirmation pattern. Missing idempotency guidance for retry scenarios.
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.
Destructive operations (send_message, send_file, send_audio_message) lack confirmation or dry-run pattern. Agents can send messages without explicit user approval, risking unintended communications.
Output schemas are not documented. LLMs cannot predict response structure for downstream tool chaining. E.g., list_messages returns what fields? Does it include message_id for get_message_context?
Parameter descriptions lack format constraints. 'chat_jid' and 'sender_phone_number' have no format guidance (e.g., 'JID format: user@s.whatsapp.net or group@g.us'). LLMs will guess and pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 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.
No error handling guidance. Tools return success/failure but do not tell LLM what to do next (retry, ask user, abort). E.g., 'send_message failed', is it retryable? Should user check recipient?
Pagination parameters (limit, page) lack bounds. LLMs could pass limit=10000 or page=999999, causing performance issues or timeouts. Specify min/max in descriptions.