Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Description from the maker (original English)
Operate one Evolution API (WhatsApp) instance: chats, history, sending, groups, settings.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
EVOLUTION_API_URL, EVOLUTION_INSTANCE_TOKEN, EVOLUTION_MCP_TOOLSETS, EVOLUTION_MCP_ALLOW, EVOLUTION_MCP_DENY, EVOLUTION_MCP_ALLOW_IRREVERSIBLE, EVOLUTION_MCP_DEFAULT_DELAY_MS, EVOLUTION_MCP_MAX_WRITES_PER_MINUTE, EVOLUTION_MCP_FILE_ROOTS, EVOLUTION_MCP_DOWNLOAD_DIR, EVOLUTION_MCP_TIMEZONEValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://evolution-mcp.singleflo.com/mcpOpen Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"evolution-api": {
"command": "uvx",
"args": [
"evolution-api-mcp"
],
"env": {
"EVOLUTION_API_URL": "your-value",
"EVOLUTION_INSTANCE_TOKEN": "your-value",
"EVOLUTION_MCP_TOOLSETS": "your-value",
"EVOLUTION_MCP_ALLOW": "your-value",
"EVOLUTION_MCP_DENY": "your-value",
"EVOLUTION_MCP_ALLOW_IRREVERSIBLE": "your-value",
"EVOLUTION_MCP_DEFAULT_DELAY_MS": "your-value",
"EVOLUTION_MCP_MAX_WRITES_PER_MINUTE": "your-value",
"EVOLUTION_MCP_FILE_ROOTS": "your-value",
"EVOLUTION_MCP_DOWNLOAD_DIR": "your-value",
"EVOLUTION_MCP_TIMEZONE": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http evolution-api https://evolution-mcp.singleflo.com/mcpclaude mcp add evolution-api --env EVOLUTION_API_URL=your-value --env EVOLUTION_INSTANCE_TOKEN=your-value --env EVOLUTION_MCP_TOOLSETS=your-value --env EVOLUTION_MCP_ALLOW=your-value --env EVOLUTION_MCP_DENY=your-value --env EVOLUTION_MCP_ALLOW_IRREVERSIBLE=your-value --env EVOLUTION_MCP_DEFAULT_DELAY_MS=your-value --env EVOLUTION_MCP_MAX_WRITES_PER_MINUTE=your-value --env EVOLUTION_MCP_FILE_ROOTS=your-value --env EVOLUTION_MCP_DOWNLOAD_DIR=your-value --env EVOLUTION_MCP_TIMEZONE=your-value -- uvx evolution-api-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"evolution-api": {
"url": "https://evolution-mcp.singleflo.com/mcp"
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"evolution-api": {
"command": "uvx",
"args": [
"evolution-api-mcp"
],
"env": {
"EVOLUTION_API_URL": "your-value",
"EVOLUTION_INSTANCE_TOKEN": "your-value",
"EVOLUTION_MCP_TOOLSETS": "your-value",
"EVOLUTION_MCP_ALLOW": "your-value",
"EVOLUTION_MCP_DENY": "your-value",
"EVOLUTION_MCP_ALLOW_IRREVERSIBLE": "your-value",
"EVOLUTION_MCP_DEFAULT_DELAY_MS": "your-value",
"EVOLUTION_MCP_MAX_WRITES_PER_MINUTE": "your-value",
"EVOLUTION_MCP_FILE_ROOTS": "your-value",
"EVOLUTION_MCP_DOWNLOAD_DIR": "your-value",
"EVOLUTION_MCP_TIMEZONE": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"evolution-api": {
"type": "http",
"url": "https://evolution-mcp.singleflo.com/mcp"
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"evolution-api": {
"type": "stdio",
"command": "uvx",
"args": [
"evolution-api-mcp"
],
"env": {
"EVOLUTION_API_URL": "your-value",
"EVOLUTION_INSTANCE_TOKEN": "your-value",
"EVOLUTION_MCP_TOOLSETS": "your-value",
"EVOLUTION_MCP_ALLOW": "your-value",
"EVOLUTION_MCP_DENY": "your-value",
"EVOLUTION_MCP_ALLOW_IRREVERSIBLE": "your-value",
"EVOLUTION_MCP_DEFAULT_DELAY_MS": "your-value",
"EVOLUTION_MCP_MAX_WRITES_PER_MINUTE": "your-value",
"EVOLUTION_MCP_FILE_ROOTS": "your-value",
"EVOLUTION_MCP_DOWNLOAD_DIR": "your-value",
"EVOLUTION_MCP_TIMEZONE": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://evolution-mcp.singleflo.com/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
EVOLUTION_MCP_TOOLSETS envEVOLUTION_MCP_ALLOW envEVOLUTION_MCP_DENY envEVOLUTION_MCP_ALLOW_IRREVERSIBLE envEVOLUTION_MCP_DEFAULT_DELAY_MS envEVOLUTION_MCP_MAX_WRITES_PER_MINUTE envEVOLUTION_MCP_FILE_ROOTS envEVOLUTION_MCP_DOWNLOAD_DIR envEVOLUTION_MCP_TIMEZONE envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account singleflo, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: EVOLUTION_API_URL, EVOLUTION_INSTANCE_TOKEN
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (1.0.0) reached the registry 29 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Vexa, emailmd, MCP WhatsApp Cloud
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.
MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
An MCP server that operates one Evolution API v2 instance, which is one WhatsApp number: it reads chats and message history, sends messages and media, manages groups, contacts, labels, templates and profile, and configures the instance, its webhooks and its chatbots. 100 tools, one per operation, grouped in 13 toolsets you switch on as needed. It talks only to the Evolution server you point it at, with that instance's own token.
Evolution API Assistant is an independent project by Persevida SL, not affiliated with or endorsed by Meta, WhatsApp or the Evolution API project.
uvx evolution-api-mcp runs on your machine and talks to any Evolution API 2.x server you can reach. It supports all three Evolution integrations (WHATSAPP-BAILEYS, WHATSAPP-BUSINESS, EVOLUTION) and can send files from your disk.https://evolution-mcp.singleflo.com/mcp is served over the internet for Claude.ai, ChatGPT and Codex: nothing to install, you sign in once with your Evolution URL and instance token. The public hosted server accepts instances whose integration is WHATSAPP-BUSINESS (the official WhatsApp Business Platform) or WHATSAPP-BAILEYS (a WhatsApp Web session), and never offers the tools that take secrets or cannot be undone. See "Hosted server" below.Install with your AI agent. If you already have an AI coding assistant — Claude Code, Claude Desktop, Cursor, opencode, any of the hosts below — paste this link into your agent and ask it to set up Evolution API Assistant: https://raw.githubusercontent.com/singleflo/evolution-api-mcp/main/docs/INSTALL-WITH-YOUR-AGENT.md That page is written for the agent rather than for you: it asks you for the Evolution URL and the instance token, installs uv, writes the configuration file its own host reads, and verifies the connection. The manual route is below.
Run the server directly:
uvx evolution-api-mcp
Or install it into your environment:
uv pip install evolution-api-mcp
Installing from source for development remains possible:
uv pip install git+https://github.com/singleflo/evolution-api-mcp
The server needs Python 3.10 or later. uvx fetches a suitable interpreter by itself.
Two variables are all a working setup needs:
EVOLUTION_API_URL: the base URL of your Evolution server, for example https://evolution.example.com. A trailing slash is ignored.EVOLUTION_INSTANCE_TOKEN: the token of one instance. In Evolution Manager open the instance and copy its token, or use the token returned when the instance was created. The server's global AUTHENTICATION_API_KEY is refused, in both the local and the hosted server, because it controls every instance on that Evolution server.The instance name and its integration are discovered from the token; you never type them. A missing variable is reported when a tool is called, not at startup, so the server still starts and lists its tools while you fix the configuration. Evolution resolves instance tokens only while it runs with DATABASE_SAVE_DATA_INSTANCE=true (its default); with false it answers 401 and the server says so.
Everything else is optional. A blank value counts as unset for every variable. A value the server cannot accept stops it at startup with exit code 2 and a message on stderr naming the variable and what it accepts.
| Variable | Default | Meaning |
|---|---|---|
EVOLUTION_MCP_TOOLSETS | core | Comma list of toolsets or presets (core, all) to enable. The --toolsets option wins over it. |
EVOLUTION_MCP_ALLOW | * | * allows every tool the deny list does not refuse; none makes the server read-only; otherwise a comma list of tools that change data. |
EVOLUTION_MCP_DENY | the default deny list | Comma list of tools that are refused. Unset, it holds the 6 tools listed under "What the agent may do"; a value you set replaces that list entirely. |
EVOLUTION_MCP_ALLOW_IRREVERSIBLE | off | yes, true or 1 (any case) lets the tools that cannot be undone run. no, false and 0 keep them off. |
EVOLUTION_MCP_DEFAULT_DELAY_MS | 1200 | Milliseconds of "typing…" the recipient sees before a message is sent, 0 to 20000. A tool's delay_ms overrides it. |
EVOLUTION_MCP_MAX_WRITES_PER_MINUTE | 30 | Changes allowed per minute on this server; 0 turns the limit off. |
EVOLUTION_MCP_FILE_ROOTS | your Desktop, Documents, Downloads, Pictures, Movies and Music folders that exist, plus the download folder | Folders send_local_files may read, separated like PATH (: on macOS and Linux, ; on Windows). Each must be an absolute path to an existing directory. |
EVOLUTION_MCP_DOWNLOAD_DIR | ~/Downloads/evolution-api-mcp | Where download_message_media saves files and export_chat its exports/ folders. Must be an absolute path. |
EVOLUTION_MCP_TIMEZONE | the computer's zone (TZ, then /etc/localtime), else UTC | IANA time zone (for example Europe/Rome) in which tools show times and in which a time given without a zone is read. get_instance_status reports it. |
EVOLUTION_MCP_DATA_DIR | the platform's data directory | Where the hosted server keeps its data. The local server does not write there. |
Command-line options of evolution-api-mcp:
| Option | Effect |
|---|---|
--toolsets LIST | Same as EVOLUTION_MCP_TOOLSETS; wins over it. |
--read-only | Refuse every tool that changes data (same as EVOLUTION_MCP_ALLOW=none). |
--list-tools | Print every tool as JSON (name, title, toolset, kind, integrations, local_only) and exit. Needs no credentials. |
--list-toolsets | Print the toolsets, their tool counts, the presets and the default as JSON and exit. Needs no credentials. |
--version | Print the version and exit. |
Nothing but the JSON-RPC stream reaches stdout while the server runs; diagnostics go to stderr.
Every tool belongs to one toolset. A connection enables some toolsets and sees only their tools. The default is core, which is messaging, chats and contacts; all enables all 13. get_instance_status belongs to instance but is always available, whatever the toolsets.
| Toolset | Tools | Covers |
|---|---|---|
instance | 5 | Connection status, QR pairing, restart, logout and online presence of the instance. |
messaging | 16 | Send text, media, voice notes, locations, contact cards, polls, list and button messages; react, edit and delete sent messages. |
chats | 13 | List chats, show the newest messages across chats, read and search message history, export chats with their attachments, delivery status, read/unread and archive state, received media. |
contacts | 6 | Find chats by name or number, check numbers on WhatsApp, profiles and profile pictures, block and unblock. |
groups | 17 | Group details, participants, invite links, creation, settings and membership. |
labels | 3 | WhatsApp Business app labels on chats. |
profile | 7 | The instance's own profile name, about text, picture and privacy settings. |
status | 1 | Post status updates. |
catalog | 2 | WhatsApp Business app product catalog and collections. |
templates | 5 | WhatsApp Business Platform message templates: list, create, edit, delete and send. |
settings | 4 | Instance behaviour settings and proxy. |
events | 4 | Webhook and event-stream (WebSocket, RabbitMQ, NATS, SQS, Kafka, Pusher) configuration. |
integrations | 17 | Evolution chatbots (Evolution Bot, Typebot, OpenAI, Dify, Flowise, n8n, EvoAI), their sessions, and Chatwoot. |
Local server: EVOLUTION_MCP_TOOLSETS=messaging,chats,groups or --toolsets messaging,chats,groups; presets and toolset names mix (core,groups). An unknown name stops the server at startup. Hosted server: the toolsets are ticked on the consent page and can be changed by signing in again.
Enabled toolsets are not the only thing that decides what a connection sees. tools/list shows exactly the tools a call would not be refused for: toolset enabled, supported by the instance's integration, allowed by the policy, not denied, and, for the irreversible ones, granted. How many that is depends on the connection:
| Connection | Tools visible |
|---|---|
| Local, WhatsApp Web (Baileys) instance, default toolsets and settings | 35 |
| Local, Baileys instance, all toolsets | 84 |
Local, Baileys instance, all toolsets, EVOLUTION_MCP_ALLOW_IRREVERSIBLE=yes | 89 |
| Local, Baileys instance, all toolsets, read-only | 33 |
| Hosted, WhatsApp Business Platform instance, standard policy, all toolsets | 41 |
| Hosted, WhatsApp Business Platform instance, read policy, all toolsets | 22 |
The complete list, one table per toolset with each tool's kind and integrations, is docs/TOOLS.md, generated from the code.
An Evolution instance uses one integration, and Evolution itself does not offer some operations on some of them. get_instance_status reports which one an instance runs, and a tool called on an integration that lacks it is refused with a message naming the integration it needs. The table counts the tools each toolset offers per integration.
| Toolset | Tools | Baileys | Business | Evolution |
|---|---|---|---|---|
instance | 5 | 5 | 1 | 1 |
messaging | 16 | 16 | 10 | 5 |
chats | 13 | 13 | 10 | 7 |
contacts | 6 | 6 | 1 | 1 |
groups | 17 | 17 | 0 | 0 |
labels | 3 | 3 | 0 | 0 |
profile | 7 | 7 | 0 | 0 |
status | 1 | 1 | 0 | 0 |
catalog | 2 | 2 | 0 | 0 |
templates | 5 | 0 | 5 | 0 |
settings | 4 | 4 | 4 | 4 |
events | 4 | 4 | 4 | 4 |
integrations | 17 | 17 | 17 | 17 |
| All | 100 | 95 | 52 | 39 |
Baileys is WHATSAPP-BAILEYS, a WhatsApp Web session linked to a phone. Business is WHATSAPP-BUSINESS, the WhatsApp Business Platform (Cloud API): it addresses people by phone number only, has no groups, pairing or read receipts, and delivers free-form messages only within 24 hours of the person's last message, after which only approved templates (send_template_message) reach them. Evolution is EVOLUTION, an Evolution channel. The per-tool detail is in docs/TOOLS.md and in the evolution://guide resource.
Tools follow a few rules that make them predictable for a model and reviewable for a person:
read, write (private or ephemeral changes such as archiving a chat, labels, presence), destructive (sends something to other people, or replaces or removes something) or irreversible (cannot be undone from this server: logout_instance, delete_message_for_everyone, leave_group, delete_template, delete_chatbot, delete_openai_credential). The MCP hints (readOnlyHint, destructiveHint) are derived from the kind, so a host's approval dialog reflects the real risk. Every tool has openWorldHint set, because each one acts on an external server and, through it, on conversations with other people.EVOLUTION_MCP_TIMEZONE; UTC on the hosted server). A result longer than 30,000 characters is cut with a notice that names the remedy.UNCERTAIN, when Evolution did not confirm a change that may already haOnly the beginning is shown; read the rest in the repo