Product · Developer Tools
WhatsApp MCP
WhatsApp reading and Cloud API voice calls, as MCP tools.
- Built for
- AI engineering teams
- Modules
- 8
- Stack
- 7
- MCP Messaging Tools
- MCP Calling Tools
- Go Bridge (whatsmeow)
- Cloud API Webhooks
- Multi-tenant Config
- Admin Wizard & Doctor
- Tunnel & Deploy Recipes
- SQLite Store
- Python
- MCP SDK
- Go
- whatsmeow
- SQLite
- Docker
- WhatsApp Cloud API
An MCP server that gives any assistant, Claude Desktop or Cursor included, 28 tools over WhatsApp: 12 for messaging and 16 for placing and managing Cloud API voice calls. Two processes do the work. A Go bridge holds the whatsmeow WebSocket session for a personal number, speaks HTTPS to the Graph API for business numbers, receives webhooks, and persists messages, calls and permissions to SQLite. A Python stdio server exposes that surface as tools, so an assistant can search and read history, send text and media, download attachments, then request call permission, connect, accept, reject or terminate a call and read the event trail afterwards. Calling is handled the way the API actually behaves: a smart initiate checks permission first, sends a permission request if there is none, waits for the customer to accept through the webhook, and only then connects, instead of failing on a call the recipient never allowed. It is multi-tenant, so each business phone number gets its own configuration and webhook URL. The admin UI is the install path rather than a config file: a six-step wizard with deep links to the exact Meta pages, auto-detection of the app ID from a pasted token, a Graph API connection test, webhook subscription done for you, live health checks, doctor diagnostics and a QR scanner. One command starts the bridge with a Cloudflare quick tunnel so webhooks reach a laptop, and one more writes the MCP entry into the client config. Fly, Railway, Render and plain Docker deploys are one line each.
- 28 tools: 12 messaging, 16 calling, wired into Claude Desktop or Cursor by one command
- Permission-aware call flow: check, request, wait for the webhook accept, then connect
- Multi-tenant business numbers, each with its own token, phone number ID and webhook URL
- Six-step admin wizard with deep links, token-to-app-ID detection and a Graph API ping
- Doctor diagnostics and live health checks instead of guessing at a broken webhook
- Cloudflare quick tunnel in the default make target so webhooks reach localhost
- Personal WhatsApp over whatsmeow and business calling over Graph API in one surface
- Fly, Railway, Render and Docker deploys, one line each