Open source · macOS · MCP
WhatsApp, controlled by your AI assistant.
An MCP server that lets Claude, Cursor, or any MCP client search contacts, send messages, and read chats in the native WhatsApp desktop app on macOS. No Meta Business API. No browser automation. One npm install.
macOS 13+ · WhatsApp desktop app · Accessibility permission
What you get
Native macOS, no Web API
Drives the official WhatsApp Catalyst app through accessibility APIs and CGEvent input. No Meta Business API keys, no Selenium, no QR-code scraping.
11 MCP tools, stdio transport
Search contacts, open chats, read messages, send text, navigate the app. Plug into Claude Desktop, Claude Code, Cursor, Windsurf, or any MCP-compatible client.
Single npm install
One command. Postinstall compiles the Swift binary; the MCP server registers via stdio in your client config. No Docker, no daemons.
Local and private
Runs entirely on your Mac. Messages stay in WhatsApp; nothing routes through third-party infrastructure. You control the accessibility permission.
How it works
01
Install the npm package
npm install -g whatsapp-mcp-macos. The postinstall script compiles the Swift binary in release mode.
02
Grant Accessibility permission
System Settings → Privacy & Security → Accessibility, enable the host app (Claude Desktop, Terminal, Fazm, etc.).
03
Register the MCP server
Add a single mcpServers entry to ~/.claude.json or your client's config. Restart the client.
04
Talk to WhatsApp from your AI
"Send Mom my flight info" — your assistant searches contacts, opens the chat, and drafts the message in WhatsApp.
Common questions
- Does this use the WhatsApp Business API?
- No. It drives the native macOS WhatsApp desktop app through accessibility APIs. There are no Meta API keys, no webhook setup, no opt-in template approval. The tradeoff: it's a personal-account automation tool, not a high-volume broadcast pipeline.
- Is this open source?
- Yes. Full source is on GitHub at github.com/m13v/whatsapp-mcp-macos. The MCP server is written in Swift; the npm package compiles it during postinstall.
- What about WhatsApp Web?
- WhatsApp Web automation breaks on every layout update and requires reverse-engineering the encrypted protocol. This project sidesteps both by driving the official Catalyst app's accessibility tree, which is stable across WhatsApp releases.
- Will my account get banned?
- Risk is materially lower than browser-automation approaches because there is no protocol-level traffic to fingerprint — the OS treats this like a human clicking and typing. That said, automation always carries some risk; don't blast hundreds of unsolicited messages.
Give your AI a real messaging tool.
One install. One config block. Your assistant talks to WhatsApp like you do.