MCP-WHATSAPP-EVO
Provides tools for managing WhatsApp instances, including sending messages, reading chat history, managing contacts, groups, profiles, labels, templates, and calls via the Evolution API.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP-WHATSAPP-EVOsend "Hello!" to +1234567890"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP-WHATSAPP-EVO
A Model Context Protocol (MCP) server that exposes the full WhatsApp surface of the Evolution API to MCP clients such as Claude Code, Claude Desktop and Cursor.
Unlike most Evolution MCP servers, this one can read message history (find_messages) and covers ~69 tools across instances, messaging, chats, profile, groups, labels, templates and calls.
Transport: stdio
Runtime: Node.js ≥ 18 (no Bun required)
Auth: the global Evolution API key, sent as the
apikeyheader
Tools
Category | Tools |
Instances (9) |
|
Send messages (13) |
|
Chat & history (15) |
|
Profile (8) |
|
Groups (16) |
|
Settings & webhook (4) |
|
Labels / Templates / Calls (5) |
|
*_templateandsend_templateonly work onWHATSAPP-BUSINESS(Cloud API) instances, not Baileys.
Related MCP server: mcp-zap
Setup
git clone https://github.com/your-username/MCP-WHATSAPP-EVO.git
cd MCP-WHATSAPP-EVO
npm install
npm run build # produces dist/main.cjsConfiguration is done with two environment variables (see .env.example):
Variable | Description |
| Base URL of your Evolution API (no trailing slash) |
| The global |
Use with Claude Code
claude mcp add evolution-whatsapp -s user \
-e EVOLUTION_API_URL=https://evo.example.com \
-e EVOLUTION_API_KEY=your-key \
-- node /absolute/path/to/MCP-WHATSAPP-EVO/dist/main.cjsOn Windows, point at node.exe and the .cjs explicitly:
claude mcp add evolution-whatsapp -s user \
-e EVOLUTION_API_URL=https://evo.example.com \
-e EVOLUTION_API_KEY=your-key \
-- "C:\Program Files\nodejs\node.exe" "C:\path\to\MCP-WHATSAPP-EVO\dist\main.cjs"Then claude mcp list should show it as ✔ Connected. Restart the client to load the tools.
Use with other MCP clients
This is a standard MCP server over stdio, so it works with any MCP-compatible client. They all use the same configuration shape — only the file/UI where you put it changes:
{
"mcpServers": {
"evolution-whatsapp": {
"command": "node",
"args": ["/absolute/path/to/MCP-WHATSAPP-EVO/dist/main.cjs"],
"env": {
"EVOLUTION_API_URL": "https://evo.example.com",
"EVOLUTION_API_KEY": "your-key"
}
}
}
}On Windows, use the full path to node.exe as command and double-escape
backslashes in the path ("C:\\path\\to\\MCP-WHATSAPP-EVO\\dist\\main.cjs").
Where to put that config, per client:
Client | Where |
Claude Desktop |
|
Cursor |
|
Windsurf |
|
VS Code (Copilot/Agent) |
|
Cline / Roo Code (VS Code ext.) | the extension's MCP Servers → Configure panel (same JSON) |
Continue |
|
Zed |
|
Any other MCP client | point it at |
After editing the config, restart the client so it spawns the server and loads the tools. The only requirements are Node.js ≥ 18 on the machine and the two environment variables.
Notes on phone numbers & JIDs
Numbers use the international format without
+, e.g.5491112345678.JIDs are
<number>@s.whatsapp.netfor users and<id>@g.usfor groups.find_messagesis paginated: usepageandoffset(messages per page).
Security
The Evolution API key grants full control over every instance on the server (including personal numbers). Treat it as a secret, scope a dedicated instance/key for automation when possible, and never commit your .env.
Architecture
src/
lib/
client.ts # generic Evolution HTTP client (apikey header, error mapping)
defineTool.ts # helper: Zod schema -> MCP tool with parsing + error handling
tools/
instances.ts messages.ts chat.ts profile.ts groups.ts settings.ts extras.ts
index.ts # aggregates every category into createTools()
main.ts # MCP server bootstrap (stdio)Adding a new endpoint is one defineTool({ name, description, schema, run }) block that calls getClient().request(method, path, { data, params }).
License
MIT — see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/jppeiro90/MCP-WHATSAPP-EVO'
If you have feedback or need assistance with the MCP directory API, please join our Discord server