WhatsApp Messaging API
Send WhatsApp messages from Claude. No Meta Business approval or WhatsApp Business account.
Open source Open in the app JSON README (API)
About
Send WhatsApp messages from Claude. No Meta Business approval or WhatsApp Business account.
Details
- Kind
- MCP servers
- Topic
- Communication
- Publisher
- jevil25
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 1.0.3
- Last push
- 2026-09-05T07:16:03Z
- Repository state
- ativo
- Language
- TypeScript
- License
- MIT
- Added
- 2026-09-05 08:00:27
- Updated
- 2026-09-05 08:00:27
- Origin id
io.github.jevil25/whatsapp-messaging-api-mcp
README
# WhatsApp Messaging API — MCP Server
Send WhatsApp messages from Claude, Cursor, or any MCP client. Create a session, scan a QR code, and send text, images and files — **no Meta Business approval and no WhatsApp Business account required.**
Wraps the [WhatsApp Messaging API](https://rapidapi.com/jevil257/api/whatsapp-messaging-bot).
## Quick start
1. Get a free API key from [RapidAPI](https://rapidapi.com/jevil257/api/whatsapp-messaging-bot) — no credit card.
2. Add this to your MCP client config (Claude Desktop: `claude_desktop_config.json`):
```json
{
"mcpServers": {
"whatsapp": {
"command": "npx",
"args": ["-y", "whatsapp-messaging-api-mcp"],
"env": {
"WHATSAPP_API_KEY": "your-rapidapi-key"
}
}
}
}
```
3. Restart the client. Ask it to create a WhatsApp session and show you the QR code.
Nothing to install or build — `npx` fetches the package on first run.
## Tools
| Tool | Description |
|---|---|
| `list_sessions` | List all sessions on this API key |
| `create_session` | Create a new session |
| `get_session_status` | Check a session's current status |
| `get_qr_code` | Get the QR code to authenticate a session |
| `request_pairing_code` | Get an 8-digit pairing code instead of a QR |
| `check_contact_exists` | Check if a phone number is on WhatsApp before sending |
| `send_text_message` | Send a text message |
| `send_image` | Send an image via URL |
| `send_file` | Send a file (PDF, document) via URL |
## Typical flow
1. `create_session` → `get_qr_code` → scan with WhatsApp (Settings → Linked Devices)
2. `get_session_status` until it reports `WORKING`
3. `check_contact_exists`, then `send_text_message` / `send_image` / `send_file`
Sessions stay authenticated between runs, so steps 1-2 are one-time per number.
## Configuration
| Variable | Required | Description |
|---|---|---|
| `WHATSAPP_API_KEY` | yes | Your RapidAPI key. The server exits on startup if it is missing. |
The key is read from the environment and sent only to the API host. It is never logged.
## Local development
```bash
git clone https://github.com/jevil25/whatsapp-messaging-api-mcp.git
cd whatsapp-messaging-api-mcp
npm install
npm run dev # runs src/index.ts directly via tsx, no build step
npm run build # compile to dist/
npm test # boots the built server and drives a real MCP handshake
```
`npm test` needs no credentials — it passes a dummy key, which gets far enough to
list tools because nothing in the handshake makes an API call.
To point an MCP client at your local build, use `"command": "node"` with
`"args": ["/absolute/path/to/dist/index.js"]`.
See [DEVELOPING.md](DEVELOPING.md) for the release process.
## Links
- [npm package](https://www.npmjs.com/package/whatsapp-messaging-api-mcp)
- [MCP registry entry](https://registry.modelcontextprotocol.io/v0/servers?search=whatsapp-messaging-api-mcp) — `io.github.jevil25/whatsapp-messaging-api-mcp`
- [WhatsApp Messaging API docs](https://whatsapp-messaging.retentionstack.agency/docs)
## License
MIT