# MCP Evolution API
A Model Context Protocol (MCP) server for Claude that integrates with [Evolution API](https://doc.evolution-api.com/) 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
## π 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_KEY
```
Note: 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 install<br>2. Run in dev mode | `git clone https://github.com/aiteks-ltda/mcp-evo-api.git && cd mcp-evo-api && bun install`<br>`bun run dev` |
| **Local Production** | 1. Clone and install<br>2. Build and run | `git clone https://github.com/aiteks-ltda/mcp-evo-api.git && cd mcp-evo-api && bun install`<br>`bun run build && bun run dist/main.js` |
| **Docker Compose** | Run with Docker Compose | `git clone https://github.com/aiteks-ltda/mcp-evo-api.git && cd mcp-evo-api`<br>`docker-compose up -d` |
| **Docker** | Build and run container | `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` |
### Claude Desktop Configuration
Add this to your Claude Desktop config file (typically located at `~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"evo-api": {
"command": "node",
"args": [
"/path/to/your/mcp-evo-api/dist/main.js"
]
}
}
}
```
If using the Docker deployment:
```json
{
"mcpServers": {
"evo-api": {
"url": "http://localhost:3000"
}
}
}
```
## π Implementation Status
| Category | Implemented | Pending Implementation |
|----------|-------------|------------------------|
| **Core API** | β
Get Information<br>β
Create Instance<br>β
Fetch Instances<br>β
Instance Connect<br>β
Restart Instance<br>β
Connection State<br>β
Logout Instance<br>β
Delete Instance<br>β
Set Presence | β Check is WhatsApp |
| **Webhook & Settings** | β
Set Webhook<br>β
Find Webhook<br>β
Set Settings<br>β
Find Settings | |
| **Messaging** | β
Send Plain Text<br>β
Send Status<br>β
Send Media<br>β
Send WhatsApp Audio<br>β
Send Sticker<br>β
Send Location<br>β
Send Contact<br>β
Send Reaction<br>β
Send Poll<br>β
Send List<br>β
Send Buttons | β Mark Message As Read<br>β Mark Message As Unread<br>β Archive Chat<br>β Delete Message for Everyone<br>β Update Message<br>β Send Presence (Chat Ctrl) |
| **Chat & Contacts** | β
Find Contacts<br>β
Find Chats | β Update Block Status<br>β Fetch Profile Picture URL<br>β Get Base64<br>β Find Messages<br>β Find Status Message |
| **Groups** | β
Find Group by JID<br>β
Fetch All Groups<br>β
Find Group Members | β Create Group<br>β Update Group Picture<br>β Update Group Subject<br>β Update Group Description<br>β Fetch Invite Code<br>β Revoke Invite Code<br>β Send Group Invite<br>β Find Group by Invite Code<br>β Update Group Members<br>β Update Group Setting<br>β Toggle Ephemeral<br>β Leave Group |
| **Profile Settings** | | β Fetch Business Profile<br>β Fetch Profile<br>β Update Profile Name<br>β Update Profile Status<br>β Update Profile Picture<br>β Remove Profile Picture<br>β Fetch Privacy Settings<br>β Update Privacy Settings |
| **Bot Integrations** | | β Typebot Integrations<br>β OpenAI Integrations<br>β Evolution Bot<br>β Dify Bot<br>β Flowise Bot |
| **Other Integrations** | | β Chatwoot<br>β Websocket<br>β SQS<br>β RabbitMQ |
For more information, refer to the [Evolution API Documentation](https://doc.evolution-api.com/).
## Examples
- `examples/hono-bun/` - pequeno servidor Hono para Bun (exemplo salvo). Veja `examples/hono-bun/README.md` para instruΓ§Γ΅es de execuΓ§Γ£o.