WhatsApp MCP Server
by msaelices
Verified
# WhatsApp MCP Server
A server that provides a Model Context Protocol (MCP) interface to interact with WhatsApp Business API.
## Introduction
WhatsApp MCP Server is a Python implementation that enables language models like Claude to interact with WhatsApp functionality through [GreenAPI](https://green-api.com/).
## Features
- **Messaging**: Send text messages
- **Group Management**: Create groups, list members, add/remove participants
## WhatsApp API Client
This project uses the `whatsapp-api-client-python` library to interact with WhatsApp. The client provides access to the WhatsApp Cloud API, which requires a [GreenAPI](https://green-api.com/) account to use.
### Environment Variables
This project uses environment variables for configuration:
- `GREENAPI_ID_INSTANCE`: Your GreenAPI ID instance
- `GREENAPI_API_TOKEN`: Your GreenAPI API token
You can either set these in your environment or use the provided `.env` file (see Installation instructions).
## Installation
```bash
# Clone the repository
git clone https://github.com/yourusername/whatsapp-mcp-server.git
cd whatsapp-mcp-server
# Install dependencies
pip install -e .
# Set up environment variables
cp .env-template .env
# Edit the .env file with your GreenAPI credentials
```
## Usage
Run the MCP server:
```bash
# Install the package with development mode
pip install -e .
# Run the MCP server
whatsapp-mcp
```
For debugging:
```bash
whatsapp-mcp --debug
```
The server communicates through standard input/output streams using the Model Context Protocol (MCP).
### Available Tools
- `open_session`: Open a new WhatsApp session
- `send_message`: Send a message to a chat
- `get_chats`: Get a list of chats
- `create_group`: Create a new WhatsApp group
- `get_group_participants`: Get the participants of a group
## How to add it to Claude Code
To add a WhatsApp server to Claude, use the `claude mcp add` command:
```
# Add the WhatsApp MCP server
$ claude mcp add whatsapp -- whatsapp-mcp
# List existing MCP servers - Validate that the server is running
claude mcp list
# Start claude code
claude
```
## Using with Claude
Once the WhatsApp MCP server is running, you can interact with it using Claude in your conversations:
### Authenticating with WhatsApp
```
Login to WhatsApp
```
### Sending a message
```
Send the "Hello" message to John Doe
```
## Using with Claude Desktop
To use the WhatsApp MCP server with Claude Desktop, you need to add it to your `claude_desktop_config.json` file:
### Using pip installation (recommended)
```json
"mcpServers": {
"whatsapp": {
"command": "python",
"args": ["-m", "whatsapp_mcp"]
}
}
```
### Using the executable
```json
"mcpServers": {
"whatsapp": {
"command": "whatsapp-mcp"
}
}
```
### Using Docker
```json
"mcpServers": {
"whatsapp": {
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "GREENAPI_ID_INSTANCE=your_instance_id", "-e", "GREENAPI_API_TOKEN=your_api_token", "whatsapp-mcp-server"]
}
}
```
Remember to set your GreenAPI credentials either as environment variables or in your `.env` file before starting Claude Desktop.
### Command-line options
The WhatsApp MCP server accepts these command-line arguments:
- `--debug`: Increase verbosity level for debugging
### Debugging
For debugging the MCP server:
- Use MCP inspector: `npx @modelcontextprotocol/inspector whatsapp-mcp`
- View logs in your Claude Desktop logs directory (typically `~/Library/Logs/Claude/` on macOS)
## Development
```bash
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run linting
flake8 src/
# Run type checking
mypy src/
```
The project uses a modern `pyproject.toml` configuration which includes:
- Core dependencies needed for running the application
- Development dependencies available with `pip install -e ".[dev]"`
## License
This project is licensed under the MIT License - see the LICENSE file for details.