WhatsApp MCP
Allows listing conversations, reading messages, sending text messages, and searching messages in WhatsApp via the multi-device protocol.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@WhatsApp MCPlist my recent chats"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
WhatsApp MCP
A Baileys-based MCP server for WhatsApp:
a persistent connection that maintains a local message store, exposing tools to list,
read, search, and send — so an MCP client (Claude, or an agent like garvis) can work
with your WhatsApp messages.
Unlike scraping WhatsApp Web in a browser, this speaks WhatsApp's WebSocket multi-device protocol directly: no browser, no DOM selectors, no headless crashes.
Status
🚧 Early/local development. Not yet published.
Related MCP server: WhatsApp Business API MCP Server
How it works
WhatsApp's multi-device protocol is event-driven and only delivers messages while you're connected, so this runs as a resident connection + local store:
Daemon — holds the WebSocket connection, persists incoming messages to a local SQLite store, and auto-reconnects. Auth is a paired session (
useMultiFileAuthState), created once via QR / pairing code.MCP server — reads the store and sends via the socket, exposing the tools.
One paired session = one socket, so the two coordinate instead of fighting over it:
while the daemon runs, it is the sole socket owner and serves a loopback IPC
(daemon.json next to the store: pid + random port + per-run token, 127.0.0.1 only).
The MCP server auto-detects it and proxies socket ops (send/delete/status) through it;
reads always hit the shared WAL-mode SQLite store directly. With no daemon running, the
MCP server opens the socket itself, as before. If the daemon dies mid-session the proxy
flags itself dead and the next tool call falls back to a self-owned socket.
Run the daemon persistently (macOS)
cp com.whatsapp-mcp.daemon.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/com.whatsapp-mcp.daemon.plist # start + at login
tail -f ~/Library/Logs/whatsapp-mcp-daemon.log # watch it
launchctl unload -w ~/Library/LaunchAgents/com.whatsapp-mcp.daemon.plist # stopA resident daemon means the store keeps filling 24/7 (better history than the MCP server's lazy on-demand connection) and MCP clients get instant reads.
History reflects what has been synced since you connected (on-connect sync + live events), not your entire WhatsApp past.
⚠️ Important caveats
Unofficial. This uses a reverse-engineered protocol library and is against WhatsApp's Terms of Service. Accounts can be banned, especially for high-volume or spammy automation. Use a number you can afford to lose; for sanctioned automation use the WhatsApp Business Cloud API instead.
Personal use only, low volume, people you know.
Deletion is guarded, never automatic: it requires an explicit
confirm: true(otherwise the tool only previews), defaults to delete-for-me, and only allows delete-for-everyone on your own messages. See the security model.
Tools
All tools are prefixed whatsapp_ to avoid name collisions with other MCP servers.
Tool | What it does |
| Whether the session is paired and connected |
| Recent chats (name, last-message snippet, unread) |
| Recent messages in a chat (each with an |
| Send a text to a chat / number |
| Search the local store |
| Delete one message — for-me by default; for-everyone (own msgs) opt-in |
| Delete a whole conversation for-me (never affects the other person) |
Delete semantics. "For me" clears the message/chat from your devices only. "For everyone" (messages only, your own only) revokes it for the recipient and leaves a visible "this message was deleted" marker. Both require
confirm: true; without it the tool returns a preview and does nothing. Deletes are applied to the local store optimistically; a long-running daemon may re-sync a deleted-for-me item if WhatsApp re-delivers it.
License
GNU AGPL-3.0-or-later. Note the network-use clause: running a modified version as a network service obligates you to offer its source to users.
This server cannot be installed
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jaingxyz/whatsapp-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server