MCP Evolution API
Note: The actual implementation currently only provides a basic greeting functionality (hello_tool), which appears to be a placeholder. The full Evolution API integration described below is not yet available.
This MCP server is intended to enable Claude to automate WhatsApp interactions through Evolution API integration. The planned capabilities include:
Instance Management: Create, connect, restart, logout, delete, and monitor WhatsApp instances
Messaging: Send text, media, audio, stickers, locations, contacts, reactions, polls, lists, and buttons
Contact & Chat Management: Find contacts and chats
Group Operations: Find groups by JID, fetch all groups, and find group members
Webhook & Settings: Configure webhooks and instance settings
Status Updates: Send status messages and set presence
The current implementation appears incomplete or represents an early development version.
Integration with Chatwoot is mentioned as a pending implementation in the documentation.
Integration with OpenAI is mentioned as a pending implementation under Bot Integrations.
Integration with RabbitMQ is mentioned as a pending implementation in the documentation.
Enables interaction with WhatsApp through Evolution API, supporting capabilities like managing instances, sending various message types (text, media, audio, stickers, locations, contacts, reactions, polls, lists, buttons), working with contacts and groups, and configuring webhooks.
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 Evolution APIsend a message to +1234567890 saying 'Meeting at 3 PM tomorrow'"
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 Evolution API
A Model Context Protocol (MCP) server for Claude that integrates with Evolution API for WhatsApp automation.
Overview
This MCP server allows Claude to interact with WhatsApp through the Evolution API, enabling capabilities like:
Managing WhatsApp instances
Sending various types of messages
Working with contacts and groups
Configuring webhooks and settings
Related MCP server: Evolution API MCP Server
π Project Structure
mcp-evo-api/
βββ src/
β βββ tools/ # MCP tools implementation for Evolution API
β βββ utils/ # Shared utilities, including Evolution API client
β βββ main.ts # Server entry point
β βββ types.ts # Shared type definitions
βββ scripts/ # Helper scripts
βββ biome.json # Linting configuration
βββ tsconfig.json # TypeScript configuration
βββ docker-compose.yml # Docker Compose configuration
βββ Dockerfile # Docker build configuration
βββ package.json # Project dependenciesπ Quick Setup
Environment Setup
Create a .env file with your Evolution API credentials:
EVOLUTION_API_URL=https://evo-api.decisao.ai/
EVOLUTION_API_KEY=REPLACE_WITH_YOUR_REAL_KEYNote: you provided the API URL and a key. For security, never commit real API keys to the repository or share them publicly. Use a local .env file or a secrets manager in production.
π Deployment Options
Environment | Steps | Command |
Local Development | 1. Clone and install2. Run in dev mode |
|
Local Production | 1. Clone and install2. Build and run |
|
Docker Compose | Run with Docker Compose |
|
Docker | Build and run container |
|
Claude Desktop Configuration
Add this to your Claude Desktop config file (typically located at ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"evo-api": {
"command": "node",
"args": [
"/path/to/your/mcp-evo-api/dist/main.js"
]
}
}
}If using the Docker deployment:
{
"mcpServers": {
"evo-api": {
"url": "http://localhost:3000"
}
}
}π Implementation Status
Category | Implemented | Pending Implementation |
Core API | β Get Informationβ Create Instanceβ Fetch Instancesβ Instance Connectβ Restart Instanceβ Connection Stateβ Logout Instanceβ Delete Instanceβ Set Presence | β Check is WhatsApp |
Webhook & Settings | β Set Webhookβ Find Webhookβ Set Settingsβ Find Settings | |
Messaging | β Send Plain Textβ Send Statusβ Send Mediaβ Send WhatsApp Audioβ Send Stickerβ Send Locationβ Send Contactβ Send Reactionβ Send Pollβ Send Listβ Send Buttons | β Mark Message As Readβ Mark Message As Unreadβ Archive Chatβ Delete Message for Everyoneβ Update Messageβ Send Presence (Chat Ctrl) |
Chat & Contacts | β Find Contactsβ Find Chats | β Update Block Statusβ Fetch Profile Picture URLβ Get Base64β Find Messagesβ Find Status Message |
Groups | β Find Group by JIDβ Fetch All Groupsβ Find Group Members | β Create Groupβ Update Group Pictureβ Update Group Subjectβ Update Group Descriptionβ Fetch Invite Codeβ Revoke Invite Codeβ Send Group Inviteβ Find Group by Invite Codeβ Update Group Membersβ Update Group Settingβ Toggle Ephemeralβ Leave Group |
Profile Settings | β Fetch Business Profileβ Fetch Profileβ Update Profile Nameβ Update Profile Statusβ Update Profile Pictureβ Remove Profile Pictureβ Fetch Privacy Settingsβ Update Privacy Settings | |
Bot Integrations | β Typebot Integrationsβ OpenAI Integrationsβ Evolution Botβ Dify Botβ Flowise Bot | |
Other Integrations | β Chatwootβ Websocketβ SQSβ RabbitMQ |
For more information, refer to the Evolution API Documentation.
Examples
examples/hono-bun/- pequeno servidor Hono para Bun (exemplo salvo). Vejaexamples/hono-bun/README.mdpara instruΓ§Γ΅es de execuΓ§Γ£o.
Available Tools
1 toolhello_toolD
Hello tool
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the person to greet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Hello tool' reveals nothing about what the tool actually does operationally - whether it's a read operation, a write operation, what permissions might be needed, what side effects occur, or what the response format might be. This is a complete failure to describe behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise with just two words, this is under-specification rather than effective brevity. The description fails to provide any meaningful information about the tool's function. True conciseness would efficiently convey essential information, but this description is so sparse it's essentially non-functional.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description 'Hello tool' is completely inadequate. It doesn't explain what the tool does, how to use it, what it returns, or any behavioral characteristics. The single parameter is well-documented in the schema, but the overall description fails to provide the contextual understanding needed to effectively use this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'name' clearly documented as 'The name of the person to greet.' The description 'Hello tool' adds no additional parameter information beyond what's already in the schema. With complete schema coverage, the baseline score of 3 is appropriate since the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Hello tool' is a tautology that merely restates the tool name without specifying what the tool actually does. It doesn't provide a verb-action combination or clarify the tool's function beyond the obvious implication from the name. While the name suggests greeting functionality, the description fails to explicitly state this purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance on when to use this tool. There are no sibling tools mentioned, so differentiation isn't needed, but the description doesn't indicate any context, prerequisites, or appropriate scenarios for invoking this tool. It's completely devoid of usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
- First observed
hello_tool
TDQS
With only one tool, there is no possibility of ambiguity or overlap between tools, as there are no other tools to compare it against. The single tool's purpose is inherently distinct by default.
A single tool cannot demonstrate inconsistency, as there are no other tool names to compare it to. The naming pattern for 'hello_tool' (snake_case) is consistent within the set, albeit trivially so.
A single tool is generally too few for most server purposes, as it limits functionality and suggests an incomplete or trivial implementation. While it might be appropriate for a minimal 'hello world' server, it is inadequate for any substantive domain coverage.
With only one tool named 'hello_tool', it is impossible to infer a meaningful domain or assess coverage. There are obvious gaps, as no CRUD operations, lifecycle management, or typical API interactions are present, making the surface severely incomplete for any practical purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Drive WhatsApp from any MCP client: pair devices, send text and media, manage contacts and groups.
Drive your real WhatsApp inbox from Claude β send, reply, label, assign, and triage via TimelinesAI.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoβ¦
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Related MCP Servers
- AlicenseCqualityFmaintenanceA Model Context Protocol server that connects your personal WhatsApp account to AI agents like Claude, enabling them to search messages, view contacts, retrieve chat history, and send messages via WhatsApp.71372ISC
- AlicenseNot gradedqualityCmaintenanceEnables WhatsApp integration through Evolution API, allowing users to send messages, manage media, track conversations, and control presence status directly from Claude.MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables interaction with WhatsApp through local stdio or remote HTTP/SSE connections. It allows users to send messages, manage groups, and access chat history using natural language.393MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for sending and receiving WhatsApp messages through Evolution API, enabling management of instances, messages, and chats directly from Claude Code.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/aiteks-ltda/mcp-evolution-whatsapp-api'
If you have feedback or need assistance with the MCP directory API, please join our Discord server