MCP WhatsApp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WUZAPI_TOKEN | Yes | Your user token for WhatsApp messaging | |
| WUZAPI_BASE_URL | No | Base URL of the WuzAPI server (default: http://localhost:7143) | http://localhost:7143 |
| WUZAPI_ADMIN_TOKEN | No | Admin token for managing users (default: admin123) | admin123 |
| WUZAPI_PRIVACY_MODE | No | Enable privacy mode to mask sensitive data (set to 'true' to enable) | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| whatsapp_connectA | Connect to WhatsApp. Shows QR code if not yet paired — scan with phone. |
| whatsapp_disconnectA | Logout from WhatsApp. ⚠️ DESTRUCTIVE. confirmed=True required — always ask user first. |
| whatsapp_statusA | Get WhatsApp session status (connected/disconnected/QR pending) and WuzAPI service health. |
| whatsapp_get_qrcodeA | Get QR code image for WhatsApp pairing. Scan with phone to connect. |
| whatsapp_get_datetimeA | Get current date and time (Brazil/São Paulo). Use to know today's date before comparing message timestamps. |
| whatsapp_force_syncA | Force full history sync by reconnecting. Use when messages are missing. Wait ~30s after. |
| whatsapp_reset_sessionA | Reset WhatsApp session completely — logout + wipe message history + clear media + fresh QR. ⚠️ DESTRUCTIVE. confirmed=True required. |
| whatsapp_send_textA | Send WhatsApp text. phone: country code, no '+' (e.g. 5511999998888). message: text content. |
| whatsapp_send_imageC | Send image via WhatsApp. phone: no '+'. image_url: public URL. caption: optional. |
| whatsapp_send_documentB | Send document/file via WhatsApp. phone: no '+'. document_url: public URL. filename/caption: optional. |
| whatsapp_send_audioC | Send audio via WhatsApp. phone: no '+'. audio_url: public URL. |
| whatsapp_send_videoC | Send video via WhatsApp. phone: no '+'. video_url: public URL. caption: optional. |
| whatsapp_send_locationC | Send location via WhatsApp. phone: no '+'. latitude/longitude: coords. name: optional label. |
| whatsapp_send_contactB | Send contact card (vCard) via WhatsApp. phone: recipient no '+'. contact_name/contact_phone: contact to share. |
| whatsapp_send_linkB | Send link with preview via WhatsApp. phone: no '+'. url: link. text: optional message. |
| whatsapp_reactA | React to a message with emoji. phone: chat number. message_id: target msg. emoji: e.g. '👍'. |
| whatsapp_mark_readC | Mark messages as read. phone: chat number. message_ids: list of IDs. |
| whatsapp_download_mediaC | Download media from a message (image/audio/video/doc). phone: chat. message_id: target msg. |
| whatsapp_get_messagesB | Get recent messages from a chat, sorted by timestamp. phone: no '+'. count: default 20. |
| whatsapp_get_chatsA | List all active WhatsApp chats with last message info. |
| whatsapp_reply_messageB | Reply quoting a message. phone: no '+'. message: reply text. quoted_message_id: original msg ID. |
| whatsapp_delete_messageA | Delete a message. ⚠️ DESTRUCTIVE. confirmed=True required — always ask user first. everyone: revoke for all. |
| whatsapp_send_pollB | Send poll. phone: no '+' or group JID. question: poll text. options: list of choices. max_answers: default 1. |
| whatsapp_get_unread_messagesB | Get recent incoming messages across all chats (from others, not sent by you). limit: default 20. |
| whatsapp_search_messagesB | Search messages by keyword across all synced history. query: term. limit: default 50. |
| whatsapp_forward_messageC | Forward a message to another chat. message_id: original msg. to_phone: number or group JID. |
| whatsapp_get_user_infoA | Get WhatsApp profile (name, about) for a number. phone: no '+'. For own session use whatsapp_status. |
| whatsapp_search_contactsA | Search contacts by name or nickname. Falls back to recent chat history when not found in phone book. |
| whatsapp_get_messages_by_contact_nameB | Get messages from a contact by name/nickname. only_today: filter today only. limit: default 20. |
| whatsapp_check_phonesB | Check if phone numbers are on WhatsApp. phones: list, country code, no '+'. |
| whatsapp_list_groupsA | List all WhatsApp groups. |
| whatsapp_get_group_infoC | Get group details. group_jid: group identifier (e.g. 120363...@g.us). |
| whatsapp_create_groupC | Create a WhatsApp group. name: group name. participants: list of phone numbers, no '+'. |
| whatsapp_update_group_participantsC | Add or remove group participants. action: 'add'|'remove'. participants: phone list, no '+'. |
| whatsapp_get_group_invite_linkB | Get invite link for a group. group_jid: group identifier. |
| whatsapp_adminB | WuzAPI admin operations. action: 'list_users'|'create_user'|'delete_user'|'enable_history'. Requires admin token. |
| whatsapp_configureC | Save WuzAPI credentials. Run once to set up. token: user token. admin_token: optional, for admin tools. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 37 tools
Most tools have clearly distinct purposes (e.g., send_text vs send_image, get_chats vs get_messages), but some pairs like whatsapp_get_messages and whatsapp_get_unread_messages could cause minor confusion due to overlapping functionality. Overall, the set is well-disambiguated.
All tool names follow a consistent 'whatsapp_verb_noun' pattern in snake_case (e.g., whatsapp_send_text, whatsapp_get_chats). There are no deviations or mixed conventions, making the naming predictable and easy to understand.
With 37 tools, the server covers a broad range of WhatsApp functionality, but the count is high compared to typical MCP servers. Some consolidation (e.g., a generic send_media tool) could reduce complexity. The count is borderline but still reasonable for the domain.
The tool set covers core operations: messaging (text, media, polls), group management, search, and admin tasks. Minor gaps exist, such as missing edit_message or typing indicators, but the surface is largely complete for most WhatsApp automation use cases.