MCP server for WhatsApp integration providing tools to search contacts, list messages and chats, send messages and files, and manage WhatsApp communication
12 tools with complete input schemas and descriptions present. Naming follows verb_noun convention (search_, list_, get_, send_, download_). However, descriptions are generic and lack LLM-optimization guidance. Parameter descriptions exist but are minimal (avg ~40 chars, below 72-char baseline). No output schemas documented. No error handling guidance. No tool annotations (readOnlyHint/destructiveHint). Missing idempotency guidance for write operations. Tool composition is reasonable (separate send_message, send_file, send_audio_message) but could benefit from batch variants.
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.
No output schemas documented. LLMs cannot infer what fields to expect from tool responses, forcing them to guess at downstream field names and risk broken tool chains.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Write operations (send_message, send_file, send_audio_message, download_media) lack explicit destructive/idempotent markers. LLMs cannot determine retry safety.
Descriptions lack LLM-optimization guidance. Generic descriptions (avg 40-60 chars) do not explain WHEN to use each tool vs similar ones. E.g., get_chat vs get_direct_chat_by_contact distinction unclear.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 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 lack recovery hints (e.g., 'If contact not found, try search_contacts()'). Agents cannot self-correct on failures.
No batch variants for send operations. Agents calling send_message in a loop waste tokens and latency. A send_messages (plural) accepting array of recipients would improve efficiency.