About WhatsApp Messaging API
WhatsApp Messaging API is an MCP server for sending WhatsApp messages from clients such as Claude and Cursor. It supports session setup and text, image, and file delivery without Meta Business approval or a WhatsApp Business account.
Key features
- 01Create and check sessions
- 02Authenticate with QR or pairing code
- 03Check WhatsApp number availability
- 04Send text, images, and files
Use cases
- 01Message WhatsApp contacts from Claude
- 02Send images or PDF files to contacts
- 03Check whether a number is reachable before sending
MCP support
The MCP server exposes tools for session management, contact checks, and message delivery. Clients connect over stdio and require a RapidAPI key.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y whatsapp-messaging-api-mcpWHATSAPP_API_KEYSecretRapidAPI key for the WhatsApp Messaging API. Free tier, no credit card.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
9Saved tool list · updated 2w ago
This tool takes no parameters.
Details
From the project READMEWhatsApp 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.
Quick start
-
Get a free API key from RapidAPI — no credit card.
-
Add this to your MCP client config (Claude Desktop:
claude_desktop_config.json):{ "mcpServers": { "whatsapp": { "command": "npx", "args": ["-y", "whatsapp-messaging-api-mcp"], "env": { "WHATSAPP_API_KEY": "your-rapidapi-key" } } } } -
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
create_session→get_qr_code→ scan with WhatsApp (Settings → Linked Devices)get_session_statusuntil it reportsWORKINGcheck_contact_exists, thensend_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
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 for the release process.
Links
- npm package
- MCP registry entry —
io.github.jevil25/whatsapp-messaging-api-mcp - WhatsApp Messaging API docs
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.