Sending is where this is complete: text, media, audio, stickers, locations, contact cards, reactions, polls, lists and buttons all go out, and the instance lifecycle is covered end to end. Reading is narrower — contacts, chats and group membership are there, message history and profile editing are not — so treat it as an outbound channel with enough read access to address messages correctly.
A server in front of Evolution API, the self-hosted WhatsApp automation layer. It manages the connection instances, sends the full range of WhatsApp message types, and reads contacts, chats and groups.
- Instances created, connected, restarted, logged out and deleted, with the connection state readable at any point
- Plain text, media, WhatsApp audio, stickers, locations, contact cards and status posts sent
- Interactive messages — polls, lists and buttons — plus reactions to an existing message
- Presence set on an instance
- Contacts and chats listed
- Groups fetched by identifier or in bulk, with their member lists
- Webhooks and instance settings written and read back
A running Evolution API deployment — its base URL and an API key, supplied as environment settings. The server runs under Bun from source, or from the published container image.
One command plus a key — docker run -d -p 3000:3000 -e EVOLUTION_API_URL=yoururl -e EVOLUTION_API_KEY=yourkey --name mcp-evo-api ghcr.io/aiteks-ltda/mcp-evo-api:latest, then supply credentials
