MCP-WHATSAPP-EVO
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| EVOLUTION_API_KEY | Yes | The global AUTHENTICATION_API_KEY of your server | |
| EVOLUTION_API_URL | Yes | Base URL of your Evolution API (no trailing slash) |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| fetch_evolution_instancesA | List all WhatsApp instances (or a specific one by name) with their connection status, owner and counts. |
| get_connection_stateA | Check the connection state of a WhatsApp instance (open = connected, close/connecting otherwise). |
| create_evolution_instanceB | Create a new WhatsApp instance. Returns the instance hash/apikey and (for Baileys) a QR code to connect. |
| connect_evolution_instanceB | Connect a WhatsApp instance and get the pairing code / QR code base64. |
| restart_evolution_instanceB | Restart a WhatsApp instance. |
| set_evolution_presenceB | Set the global presence of an instance (available or unavailable). |
| logout_evolution_instanceA | Log out a WhatsApp instance (disconnects the device without deleting the instance). |
| delete_evolution_instanceB | Permanently delete a WhatsApp instance. |
| get_evolution_infoA | Get basic information about the Evolution API server (version, status). |
| send_plain_textC | Send a plain text message to a WhatsApp number. |
| send_mediaB | Send a media message (image, video, audio or document) by URL or base64. |
| send_whatsapp_audioC | Send a WhatsApp voice note (PTT) by URL or base64. |
| send_stickerB | Send a sticker by URL or base64. |
| send_locationC | Send a location message. |
| send_contactC | Send one or more contact cards (vCards). |
| send_reactionC | React to a message with an emoji. |
| send_pollC | Send a poll message. |
| send_listC | Send an interactive list message. |
| send_buttonsC | Send a message with interactive buttons. |
| send_statusC | Post a WhatsApp status/story (text, image or audio). |
| send_ptvB | Send a PTV (round video note) by URL or base64. |
| send_templateA | Send an approved WhatsApp Business template message. Only works on WHATSAPP-BUSINESS (Cloud API) instances. |
| find_messagesA | Read the message history of a chat. Filter by the contact's remoteJid (e.g. 5491112345678@s.whatsapp.net or a group ...@g.us). Results are paginated. |
| find_chatsB | List WhatsApp chats with their metadata (name, last message timestamp, unread count). |
| find_contactsB | Search contacts by id (phone/JID) or name. |
| find_chat_by_remote_jidB | Find a single chat by its remoteJid. |
| find_status_messageC | Retrieve status (story) messages. |
| check_whatsapp_numbersA | Check whether one or more phone numbers are registered on WhatsApp. |
| mark_message_as_readC | Mark one or more messages as read. |
| mark_chat_unreadC | Mark a chat as unread. |
| archive_chatC | Archive or unarchive a chat. |
| delete_message_for_everyoneC | Delete a message for everyone in the chat. |
| update_messageB | Edit a previously sent text message. |
| send_chat_presenceB | Send a typing/recording presence to a chat (composing, recording or paused). |
| update_block_statusC | Block or unblock a contact. |
| fetch_profile_picture_urlC | Get the profile picture URL of a contact. |
| get_base64_from_media_messageC | Download a media message and return it as base64. |
| fetch_business_profileB | Fetch the WhatsApp Business profile of a number. |
| fetch_profileB | Fetch the profile (name, status, picture) of a number. |
| update_profile_nameA | Update the display name of the instance's own profile. |
| update_profile_statusB | Update the 'about'/status text of the instance's own profile. |
| update_profile_pictureA | Update the profile picture of the instance (URL or base64). |
| remove_profile_pictureC | Remove the profile picture of the instance. |
| fetch_privacy_settingsB | Fetch the privacy settings of the instance. |
| update_privacy_settingsB | Update the privacy settings of the instance (read receipts, profile, status, online, last seen, group add). |
| fetch_all_groupsB | List all groups the instance belongs to. |
| find_group_by_jidA | Get the info of a group by its JID. |
| find_group_membersB | List the participants of a group. |
| create_groupC | Create a new group with a subject and participants. |
| update_group_subjectC | Change a group's subject (name). |
| update_group_pictureB | Change a group's picture (URL or base64). |
| update_group_descriptionC | Change a group's description. |
| fetch_invite_codeB | Get the invite link/code of a group. |
| fetch_invite_infoA | Get group info from an invite code (without joining). |
| accept_invite_codeB | Join a group using an invite code. |
| send_group_inviteC | Send a group invite to one or more numbers. |
| revoke_invite_codeB | Revoke and regenerate a group's invite code. |
| update_participantA | Add, remove, promote (to admin) or demote participants in a group. |
| update_group_settingA | Change group settings: who can send messages (announcement) or edit group info (locked). |
| toggle_ephemeralB | Set disappearing messages for a group (expiration in seconds: 0, 86400, 604800 or 7776000). |
| leave_groupC | Leave a group. |
| set_evolution_settingsC | Update the behaviour settings of an instance. |
| get_evolution_settingsB | Get the current behaviour settings of an instance. |
| set_evolution_webhookB | Configure the webhook of an instance (where Evolution POSTs events). |
| get_evolution_webhookC | Get the current webhook configuration of an instance. |
| find_labelsA | List the chat labels of an instance. |
| handle_labelB | Add or remove a label from a chat. |
| find_templateA | List the message templates of an instance (WHATSAPP-BUSINESS only). |
| create_templateB | Create a message template (WHATSAPP-BUSINESS / Cloud API only). |
| offer_callA | Offer a (fake) WhatsApp call to a number — rings the recipient without a real call. |
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 70 tools
Each tool targets a distinct action, but there is some overlap between send_media (which can send audio) and send_whatsapp_audio (voice note), and between send_media and send_ptv (round video). Agents may occasionally misselect between these. Overall, most tools have clear boundaries.
Naming follows snake_case but uses a mix of verbs: get, fetch, find for retrieval; send, update, set for actions. Inconsistencies like get_connection_state vs fetch_profile, and send_chat_presence vs set_evolution_presence reduce predictability.
70 tools is excessive for a typical MCP server. While each tool serves a specific purpose, the high number makes the surface unwieldy and increases selection difficulty. A consolidated API with fewer but more flexible tools would improve coherence.
The tool set covers nearly all WhatsApp operations: instance lifecycle, messaging (text, media, reactions, polls, templates, status), group management (create, update, invite, participants), profile, privacy, and webhooks. Only minor gaps like deleting a chat or forwarding messages exist, making it very complete for its domain.