What wamcp does
The wamcp MCP server gives AI agents an MCP interface for WhatsApp. It supports two connection backends: Baileys, which connects through WhatsApp Web, and the Meta Cloud API. Both backends use the same general MCP interface, although some operations are limited to one backend.
The server supports multiple WhatsApp instances, with the documented range being 1 to 50 numbers from one deployment. Agents can create, connect, restart, disconnect, and remove instances. Baileys connections can expose QR or pairing codes, while Cloud API connections can be configured with an access token.
Messaging coverage includes text, images, video, audio, documents, stickers, GIFs, locations, contacts, polls, reactions, replies, forwards, edits, deletions, pins, view-once media, and read receipts. Other areas include group membership and settings, participants, invite links, group pictures, contact checks, blocking, business profiles, privacy, and status updates.
How it works
Agents communicate with wamcp through MCP rather than calling WhatsApp endpoints directly. The server advertises its tools and resources for discovery, and it can send real-time notifications for events such as messages, typing, groups, calls, and connection status. The README documents 133 tools, 10 resources, and 14 event types; all tools use the wa_ prefix.
Streamable HTTP is available at the example endpoint http://localhost:3000/mcp, and stdio is available for local process-based clients. Incoming audio transcription is optional for Baileys and Cloud API messages. Optional voice-note generation uses ElevenLabs through a provider interface.
BullMQ queues handle message rate limiting, with documented limits of 20 messages per minute for Baileys and 80 per minute for Cloud API. The server also reconnects automatically with exponential backoff and stores sessions, messages, contacts, and groups in SQLite.
Setup and configuration
The simplest deployment uses Docker Compose:
This starts the wamcp MCP server and Redis, with the MCP endpoint exposed on port 3000 in the documented example. For local development, install Node.js 24 or later, ensure Redis is running, install dependencies, copy .env.example to .env, and start the development command. The production flow builds the TypeScript project and starts the HTTP transport.
npm install
cp .env.example .env
npm run dev
Claude Desktop can launch the compiled server with stdio by setting WA_TRANSPORT=stdio and providing a Redis URL through WA_REDIS_URL. HTTP clients can connect to the server's MCP URL instead. The README also shows connection patterns for Google ADK and LangChain.
Tools and capabilities
The documented tool groups cover instance management and messaging, along with WhatsApp groups, contacts, profiles, presence, media, and related operations. Examples include wa_create_instance, wa_connect_instance, wa_send_text, wa_send_image, wa_send_document, wa_send_poll, wa_send_reaction, wa_forward_message, wa_edit_message, and wa_mark_read.
Backend-specific behavior matters when selecting tools. QR and pairing codes, live locations, albums, presence subscriptions, group-wide mentions, private replies to group messages, locally observed reactions, and receipt queries are identified as Baileys features. Interactive buttons and lists are available through the Cloud API, with text fallbacks for Baileys.
Limitations and notes
The wamcp MCP server requires Redis for the documented local setup, and its local runtime requirement is Node.js 24 or newer. Some capabilities depend on the selected WhatsApp backend, so an agent should not assume every messaging or group operation works through both Baileys and the Cloud API.
Optional audio transcription and ElevenLabs voice notes require their respective provider configuration, although the supplied material does not specify those configuration fields. Rate limits are built into the queueing behavior and differ between backends. Persistent application data is stored in SQLite, while Redis is used by the deployment architecture.