mcp-evolution
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| EVOLUTION_API_KEY | Yes | Global API key from Evolution API config | |
| EVOLUTION_API_URL | Yes | Base URL of your Evolution API (e.g. http://localhost:8080) | |
| EVOLUTION_INSTANCE | Yes | Instance name created in Evolution API |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_groupsA | List WhatsApp groups for the pinned instance. Supports search and limit to prevent large payloads. |
| find_chatsB | Find chats for the pinned instance. Supports search, limit, and offset to prevent large payloads. |
| find_contactsA | Find contacts for the pinned instance. Supports search (substring on pushName/name/remoteJid), limit, and offset to prevent large payloads. Returns normalized { remoteJid, pushName, profilePicUrl, isBusiness } — extra fields dropped. |
| find_messagesA | Find messages by remoteJid (phone number or group JID) for the pinned instance. Returns normalized { id, fromMe, remoteJid, timestamp, type, text, mediaKey?, quotedMessageId? } — raw payload dropped to prevent overflow. |
| get_chat_historyA | Get chat history for a specific contact or group JID. Returns normalized { id, fromMe, remoteJid, timestamp, type, text, mediaKey?, quotedMessageId? } — raw payload dropped to prevent overflow. |
| send_textA | Send a text message via the pinned WhatsApp instance. |
| send_mediaB | Send a media message (image, video, audio, document) via the pinned instance. |
| get_group_infoA | Get detailed info for a specific WhatsApp group. By default returns { id, subject, subjectOwner, subjectTime, size, desc, descId, creation, owner, admins } — participant list is dropped to prevent payload overflow. Set includeParticipants=true to get the full list (use sparingly for large groups). |
| get_group_resolved_participantsA | Resolve a group's LID participants to phone JID + pushName by cross-referencing the Evolution Postgres Message history (key->>'participantAlt' field). Returns: { groupJid, total, resolved, unresolved, participants: [{ lid, phone, name, isAdmin, lastSeen }] }. Coverage depends on how many participants sent messages in the lookback window — silent members stay unresolved. Phone field is ready to use with send_text. Requires EVOLUTION_DB_URL env var pointing to Evolution's Postgres. |
| send_audioB | Send a WhatsApp audio (PTT voice note) via the pinned instance. |
| send_stickerB | Send a sticker message via the pinned WhatsApp instance. |
| send_locationA | Send a location pin message via the pinned WhatsApp instance. |
| send_contactA | Share one or more contacts (vCards) via the pinned WhatsApp instance. |
| send_reactionB | React to a WhatsApp message with an emoji via the pinned instance. Send empty string to remove reaction. |
| send_pollC | Send a WhatsApp poll message via the pinned instance. |
| send_listB | Send a WhatsApp list message (interactive menu) via the pinned instance. |
| send_buttonB | Send a WhatsApp interactive button message via the pinned instance (max 3 buttons). |
| send_statusB | Post a WhatsApp Status update (story) via the pinned instance. |
| mark_as_readA | Mark one or more messages as read via the pinned WhatsApp instance. |
| archive_chatB | Archive or unarchive a WhatsApp chat via the pinned instance. |
| delete_messageA | Delete a message for everyone via the pinned WhatsApp instance. |
| fetch_profile_pictureA | Fetch the profile picture URL of a WhatsApp contact via the pinned instance. |
| download_mediaA | Download media from a WhatsApp message and write it to disk. Returns { path, mimetype, size, messageId } — NOT raw base64 (prevents context overflow). File is written to /tmp/mcp-evolution-media/-.. Caller is responsible for cleanup (rm the file when done). |
| send_presenceC | Send a presence update (typing, recording, etc.) to a chat via the pinned instance. |
| fetch_business_profileA | Fetch the WhatsApp Business profile information of a contact via the pinned instance. |
| update_profile_nameA | Update the display name of the pinned WhatsApp instance's profile. |
| update_profile_statusB | Update the 'about' status text of the pinned WhatsApp instance's profile. |
| update_profile_pictureB | Update the profile picture of the pinned WhatsApp instance. |
| remove_profile_pictureB | Remove the profile picture of the pinned WhatsApp instance. |
| fetch_privacyA | Fetch the current privacy settings of the pinned WhatsApp instance. |
| update_privacyB | Update privacy settings for the pinned WhatsApp instance. Values: all, contacts, contact_blacklist, none. |
| create_groupB | Create a new WhatsApp group via the pinned instance. |
| update_group_subjectA | Update the name/subject of a WhatsApp group via the pinned instance. |
| update_group_descriptionB | Update the description of a WhatsApp group via the pinned instance. |
| update_group_pictureB | Update the profile picture of a WhatsApp group via the pinned instance. |
| fetch_invite_codeB | Fetch the invite code/link for a WhatsApp group via the pinned instance. |
| revoke_invite_codeA | Revoke and regenerate the invite code for a WhatsApp group via the pinned instance. |
| accept_inviteB | Accept a WhatsApp group invite by invite code via the pinned instance. |
| send_group_inviteB | Send a WhatsApp group invite link to specific contacts via the pinned instance. |
| update_participantsB | Add, remove, promote, or demote participants in a WhatsApp group via the pinned instance. |
| update_group_settingB | Update group settings (announcement mode, locked) via the pinned instance. |
| leave_groupB | Leave a WhatsApp group via the pinned instance. |
| find_group_by_inviteA | Get group information from an invite code without joining via the pinned instance. Returns { id, subject, subjectOwner, subjectTime, size, desc, descId, creation, owner, admins } by default. Set includeParticipants=true to also get the full participant list. |
| connection_stateA | Get the current connection state of the pinned WhatsApp instance (open, close, connecting). |
| restart_instanceA | Restart the pinned WhatsApp instance (reconnects without logging out). |
| logout_instanceA | Logout the pinned WhatsApp instance (disconnects and clears session — requires QR scan to reconnect). |
| get_settingsA | Get the current settings of the pinned WhatsApp instance. |
| set_settingsB | Update settings for the pinned WhatsApp instance. |
| find_webhookA | Get the current webhook configuration for the pinned WhatsApp instance. |
| set_webhookC | Configure the webhook for the pinned WhatsApp instance. |
| find_labelsA | List all WhatsApp labels for the pinned instance (requires WhatsApp Business). Returns normalized { id, name, color } array — nested chat blobs dropped to prevent overflow. |
| handle_labelA | Add or remove a WhatsApp label from a chat via the pinned instance (requires WhatsApp Business). |
| update_block_statusB | Block or unblock a WhatsApp contact via the pinned instance. |
| check_numberA | Check whether phone numbers have WhatsApp accounts. Returns exists, jid, and number for each. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/billyfranklim1/mcp-evolution'
If you have feedback or need assistance with the MCP directory API, please join our Discord server