MCP server for sending WhatsApp messages from Claude and other MCP clients. No Meta Business approval, no WhatsApp Business account — scan a QR code and send.
Server has 9 tools with complete Zod schemas and descriptions. Naming follows verb_noun convention (list_, create_, get_, send_). Descriptions are present (avg ~100 chars) but lack actionable context for LLM selection. Parameters are typed and constrained (regex patterns for phone numbers, URL format validation). Critical gaps: no output schema documentation, no error recovery guidance, no pagination support for list_sessions, no idempotency hints for write operations, and descriptions do not explain when to use each tool vs alternatives.
Check whether a phone number is registered on WhatsApp before sending to it.
Create a new WhatsApp session. Returns a session name and STARTING status — pair it with get_qr_code next.
Get the QR code to authenticate a session by scanning with WhatsApp (Settings > Linked Devices).
Get the current status of a session (STARTING, SCAN_QR_CODE, WORKING, FAILED, STOPPED).
List all WhatsApp sessions belonging to this API key.
Request an 8-digit pairing code as an alternative to scanning a QR code.
No output schema documentation. LLMs cannot predict response structure (fields, types, nested objects) for any tool. Breaks downstream tool chaining and forces agents to guess field names.
Descriptions lack actionable context. No explanation of when to call each tool vs alternatives (e.g., when to use get_qr_code vs request_pairing_code). Descriptions do not state prerequisites or dependencies (e.g., 'Call create_session first').
No error recovery guidance. toolResult() returns raw HTTP status and JSON without actionable next steps. LLM receives '400' or API error but no hint on what to retry, what to fix, or whether the error is retryable.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Send a file (PDF, document, etc.) to a contact, group, or channel via a public URL.
Send an image to a contact, group, or channel via a public URL.
Send a WhatsApp text message to a contact, group, or channel.
list_sessions has no pagination support. If a user has hundreds of sessions, the response could exhaust context window. No limit, offset, or cursor parameters documented.
Write operations (create_session, send_text_message, send_image, send_file) lack idempotency hints and confirmation patterns. No dry-run or confirmation step before irreversible actions like sending messages.