WAHA MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WAHA_API_KEY | Yes | Your WAHA API key for authentication | |
| WAHA_SESSION | No | WhatsApp session name | default |
| WAHA_BASE_URL | Yes | Your WAHA server URL (e.g., http://localhost:3000) |
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
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| waha_get_chatsA | Get overview of recent WhatsApp chats. Returns chat ID, name, last message preview, and unread count. Default limit is 10 chats. |
| waha_get_messagesA | Get messages from a specific WhatsApp chat. Returns message content, sender, timestamp, and status. Default limit is 10 messages. |
| waha_send_messageC | Send a text message to a WhatsApp chat. Returns message ID and delivery timestamp. |
| waha_mark_chat_readB | Mark messages in a chat as read. Can specify number of recent messages or time range in days. |
| waha_delete_messageA | Delete a specific message from a chat. This is a destructive operation and cannot be undone. |
| waha_edit_messageA | Edit a sent message in a chat. Only works for messages sent by the bot. |
| waha_pin_messageC | Pin a message in a chat. Pinned messages appear at the top of the chat. |
| waha_unpin_messageC | Unpin a message in a chat. |
| waha_clear_chat_messagesA | Clear all messages from a chat. WARNING: This is a destructive operation that cannot be undone. |
| waha_delete_chatA | Delete a chat completely. WARNING: This is a destructive operation that cannot be undone. |
| waha_archive_chatC | Archive a chat. Archived chats are hidden from the main chat list. |
| waha_unarchive_chatB | Unarchive a chat. Moves the chat back to the main chat list. |
| waha_mark_chat_unreadC | Mark a chat as unread. This adds an unread indicator to the chat. |
| waha_get_chat_pictureA | Get the profile picture URL for a chat. Uses 24-hour cache by default. |
| waha_send_mediaC | Send media files (images, videos, or documents) to a WhatsApp chat. Supports URL or base64 data. |
| waha_send_audioC | Send audio/voice messages to a WhatsApp chat. Supports URL or base64 data. |
| waha_send_locationC | Send location coordinates to a WhatsApp chat. |
| waha_send_contactB | Send contact card(s) to a WhatsApp chat using vCard format. |
| waha_react_to_messageA | Add an emoji reaction to a message. To remove a reaction, send an empty string. |
| waha_star_messageC | Star or unstar a message. |
| waha_get_groupsC | List all groups with filtering and pagination options. |
| waha_get_group_infoC | Get detailed information about a specific group. |
| waha_get_group_pictureB | Get group profile picture URL. |
| waha_set_group_pictureC | Set or update group profile picture. |
| waha_delete_group_pictureC | Remove group profile picture. |
| waha_create_groupC | Create a new WhatsApp group. |
| waha_update_group_subjectC | Change group name/subject. |
| waha_update_group_descriptionC | Update group description. |
| waha_leave_groupC | Leave a group. |
| waha_get_group_participantsC | List all members in a group. |
| waha_add_group_participantsB | Add member(s) to a group. Requires admin privileges. |
| waha_remove_group_participantsB | Remove member(s) from a group. Requires admin privileges. |
| waha_promote_group_adminB | Promote participant(s) to group admin. Requires admin privileges. |
| waha_demote_group_adminB | Remove admin privileges from participant(s). Requires admin privileges. |
| waha_get_group_invite_codeC | Get group invite link. |
| waha_revoke_group_invite_codeA | Revoke current invite link and generate a new one. Requires admin privileges. |
| waha_join_groupC | Join a group using invite code/link. |
| waha_get_group_join_infoA | Get group information from invite link without joining. |
| waha_set_group_messages_admin_onlyA | Toggle whether only admins can send messages. Requires admin privileges. |
| waha_set_group_info_admin_onlyA | Toggle whether only admins can edit group info. Requires admin privileges. |
| waha_get_groups_countB | Get total number of groups. |
| waha_get_contactB | Get contact information by ID. |
| waha_get_all_contactsC | List all contacts with pagination. |
| waha_check_contact_existsC | Check if phone number is registered on WhatsApp. |
| waha_get_contact_aboutC | Get contact's about/status text. |
| waha_get_contact_profile_pictureC | Get contact's profile picture URL. |
| waha_block_contactC | Block a contact. |
| waha_unblock_contactB | Unblock a contact. |
| waha_get_presenceA | Get online/offline/typing status for a chat. Auto-subscribes if not already subscribed. |
| waha_subscribe_presenceC | Subscribe to presence updates for a chat. |
| waha_set_presenceC | Set your own presence status (online, offline, typing, recording, or paused). |
| waha_get_all_presenceB | Get all subscribed presence information. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| WhatsApp Chats Overview | Overview of recent WhatsApp chats with last message previews. Supports parameters: limit (default: 10, max: 100), offset (for pagination), ids (comma-separated chat IDs to filter) |
| WhatsApp Chat Messages | Messages from a specific WhatsApp chat. URI format: waha://chat/{chatId}/messages?limit=10&offset=0 Supports parameters: limit (default: 10, max: 100), offset (for pagination), downloadMedia (true/false), timestampGte, timestampLte, fromMe (true/false) |
TDQS
Scored across 52 tools
Most tools have distinct purposes with clear boundaries, such as waha_send_message for text versus waha_send_media for files. However, some overlap exists, like waha_get_chat_picture and waha_get_contact_profile_picture, which could cause minor confusion in selection, but descriptions help clarify the target (chat vs. contact).
All tool names follow a consistent waha_verb_noun pattern, using snake_case throughout. This predictability makes it easy for agents to understand and navigate the toolset without naming conflicts or style variations.
With 52 tools, the count is excessive for a WhatsApp automation server, leading to potential overwhelm and redundancy. A more focused set of 15-25 tools would better cover the domain without unnecessary complexity, as many operations could be consolidated (e.g., multiple group admin tools).
The toolset provides comprehensive coverage for WhatsApp interactions, including CRUD operations for chats, groups, contacts, and messages, along with advanced features like presence management and media handling. No obvious gaps are present, ensuring agents can handle full workflows without dead ends.