Personal WhatsApp MCP for Claude, built directly on whatsmeow. Encrypted-at-rest storage, Whisper…
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag — we're steadily working through the catalog.
💡 Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
A WhatsApp MCP server for Claude, built directly on whatsmeow. Encrypted at rest, prompt-injection-scrubbed, draft-and-confirm on every send, full audit trail, daily CI security gates. Actively maintained.
The most-starred WhatsApp MCP (lharries/whatsapp-mcp, 5.6K stars) is the architectural reference for this pattern, but has not shipped since July 2025 and leaves the lethal-trifecta problem entirely to the user. This implementation closes the gaps:
| Canonical | This implementation | |
|---|---|---|
| Last shipped | July 2025 | Active |
| DB encryption | Plain SQLite | SQLCipher with key in the platform secret store (macOS Keychain / Windows Credential Manager / libsecret) |
| Prompt-injection scrubber | None | Every inbound message |
| Send safety | Fires immediately | Mandatory confirm_send between draft and delivery |
| Audit log | None | Every tool call, 30-day retention |
| Voice notes | Not transcribed | whisper.cpp local, Spanish-tuned default |
| LID alias resolution | Open issue cluster upstream | Shipped, with backfill migration for legacy threads |
| CI security | None | govulncheck + pip-audit + Dependabot, daily |
Not a fork. The Go bridge is built directly against whatsmeow; the Python MCP layer and SQLite schema are original. Other implementations (lharries, LukasHaas, verygoodplugins) were read as reference only.
Claude can:
whisper.cpp (Spanish-tuned by default)confirm_send step between draft and deliveryEverything runs locally on your machine. No cloud sync. No telemetry. Optional OpenAI Whisper backend is opt-in, off by default.
Two components, both local:
whatsapp-bridge/ (Go). Binds to 127.0.0.1 only. Wraps whatsmeow for the WhatsApp Web multidevice protocol. Owns SQLite persistence with SQLCipher encryption. Handles QR and pairing-code auth (live-refreshing terminal QR with Windows-safe rendering, plus a headless auth API — GET /api/auth/qr, POST /api/auth/pair-phone, POST /api/auth/reconnect — so a GUI or supervisor can drive pairing without a terminal), media up/download, session recovery from StreamReplaced conflicts, call history capture. Exposes a REST API the Python MCP layer consumes.whatsapp-mcp-server/ (Python, FastMCP). Consumes the Go bridge REST API. Exposes 11 MCP tools to Claude: full read surface (chats, messages, contacts), accent-insensitive search, presence (typing, online, mark-read), and text-send + reactions + reply-quotes with mandatory confirm_send. Runs via uv and stdio transport.Open Claude Code, paste:
This installs the Python MCP server side. The Go bridge still needs the one-time QR pairing flow with your phone — see the legacy install block below for those steps.
See SETUP.md for step-by-step install per OS. In short:
uv for the MCP server layerscripts/check_prerequisites.sh (Windows: scripts\check_prerequisites.ps1)./bin/whatsapp-bridge (Windows: .\bin\whatsapp-bridge.exe)--pair-phone +15551234567.mcp.jsonFFmpeg and whisper.cpp are only needed if you enable voice-note transcription (off by default).
All configurable via environment variables. See .env.example for the full list.
Key variables:
| Variable | Default | Purpose |
|---|---|---|
WHATSAPP_BRIDGE_PORT | 8080 | Go bridge REST API port |
WHATSAPP_DB_PATH | $HOME/.claude/whatsapp-mcp/store/messages.db | Encrypted SQLite database |
WHATSAPP_MEDIA_PATH | $HOME/.claude/whatsapp-mcp/media/ | Media file storage |
WHATSAPP_VAULT_CRM_PATH | empty | Absolute path to your vault CRM folder for auto-injection (e.g., Obsidian 👤 CRM/). When unset, CRM injection is disabled. |
WHATSAPP_WHISPER_BACKEND | off | off (zero-config boot), local-cpp (private, needs a whisper model), or openai-api (opt-in) |
WHATSAPP_WHISPER_API_KEY | empty | Required only when backend is openai-api |
WHATSAPP_WHISPER_MODEL | large-v3 | whisper.cpp model name |
WHATSAPP_SCRUB_PROMPT_INJECTION | true | Strip known prompt-injection patterns from incoming messages before Claude sees them |
WHATSAPP_AUDIT_LOG | true | Log every tool call to audit.log |
WHATSAPP_ENCRYPT_DB | true | Enable SQLCipher DB encryption; key in the platform secret store (macOS Keychain / Windows Credential Manager / libsecret) |
WHATSAPP_DB_KEY | empty | Explicit 64-hex-char SQLCipher key override (skips the platform store). Escape hatch for headless/CI/custom secret managers, and the recovery path when the secret store cannot be read — see below |
WHATSAPP_DB_KEYWith WHATSAPP_ENCRYPT_DB=true (the default), the bridge encrypts the message
store with a 256-bit SQLCipher key kept in the platform secret store. The key
lifecycle is deliberately conservative, because a wrong key silently orphans
every stored message:
errSecItemNotFound, Windows ERROR_NOT_FOUND,
libsecret clean miss) and no non-empty store database exists yet.security unlock-keychain).WHATSAPP_DB_KEY (64 hex chars = 32 bytes, e.g. openssl rand -hex 32) is
the escape hatch for all of these: when set, it is used directly and the
platform secret store is never touched. Use it for headless/CI machines,
custom secret managers, restoring a store on a new machine, or booting while
the platform store is unavailable.
This MCP is the highest-trust component in your Claude stack because every WhatsApp message you receive flows through it. See SECURITY.md for the threat model, tool risk-tier classification, and the full list of hardening decisions.
Short version:
127.0.0.1 only, never 0.0.0.0WHATSAPP_DB_KEY escape hatchaudit.log with 30-day retentionconfirm_send step between draft and deliverywhatsmeow pinned to a specific commit; upgrades require diff reviewv0.1.0, actively maintained.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/personal-whatsapp-mcp-for-claude-built-directly-on-whatsmeow)<a href="https://allmcps.com/mcp/personal-whatsapp-mcp-for-claude-built-directly-on-whatsmeow"><img src="https://allmcps.com/api/badge/personal-whatsapp-mcp-for-claude-built-directly-on-whatsmeow?style=directory" alt="Personal WhatsApp MCP for Claude, built directly on whatsmeow on AllMCPs" /></a>