Skip to content

Releases: joaohts/whatsapp-mcp

v0.0.3

Choose a tag to compare

@joaohts joaohts released this 08 Jun 02:57

What's new

Multi-device support

Each install now identifies itself to WhatsApp with a unique linked-device name (default: WhatsAppMCP @ <hostname>, override via WHATSAPP_MCP_DEVICE_NAME). You can now keep the Mac DMG and the CLI/Pi daemon paired against the same WhatsApp account simultaneously — they show up as separate entries in WhatsApp → Settings → Linked Devices rather than booting each other out.

Group sender resolution (`@lid` → contact name)

Group messages from WhatsApp's newer privacy mode arrived as raw 228230418170085@lid IDs with no name attached. Now resolves to a human-readable sender_name field on every message:

  • Schema: contacts.lid column + index; one-shot v1→v2 migration on first launch.
  • Capture: mapContact reads contact.lid + contact.jid; persistGroups upserts every participant from group metadata; messages.upsert upserts the sender with msg.pushName; chats.phoneNumberShare bridges `@lid`↔`@s.whatsapp.net` to copy address-book names across.
  • Backfill on startup: walks group chats and pulls metadata via Baileys so existing rows resolve too. Idempotent.
  • Read path: every get_chat_messages / search_messages / get_message response now includes sender_name — null only when the sender isn't in your address book and we haven't yet caught a live event carrying their pushName.

Installer hardening

  • postinstall skips electron-builder install-app-deps on Linux so headless Pi installs don't accidentally rebuild better-sqlite3 against Electron's ABI. Override with WHATSAPP_MCP_FORCE_ELECTRON_REBUILD=1 when developing the GUI on Linux.

Same caveats as v0.0.1/0.0.2

  • macOS arm64, unsigned. First launch: right-click → Open to bypass Gatekeeper.
  • Drag WhatsAppMCP.app to /Applications, pair with your phone, click "Configurar Claude".
  • Local-only — no cloud, no telemetry, no third-party servers.

v0.0.2

Choose a tag to compare

@joaohts joaohts released this 08 Jun 01:49

Fixes

  • Group sender attribution. The local store now records the sender JID for every incoming group message — previously these landed with null sender for any group using WhatsApp's newer @lid privacy IDs, making "who said what" questions unanswerable. Verified end-to-end on a real account with 16k+ group messages.
  • One-shot backfill on first launch. Existing rows in your local store get repaired from the original protobuf — you keep your history with correct senders.
  • Linux installs. The CLI variant (Pi / headless) no longer re-breaks better-sqlite3 on every `npm install` by rebuilding against Electron's ABI when Electron will never run.

Same as v0.0.1

  • macOS arm64, unsigned. First launch: right-click → Open to bypass Gatekeeper.
  • Drag `WhatsAppMCP.app` to /Applications, pair with your phone, click "Configurar Claude".
  • Local-only — no cloud, no telemetry, no third-party servers. All data lives on your Mac.

v0.0.1 — first release

Choose a tag to compare

@joaohts joaohts released this 03 Jun 03:17

First public release of WhatsApp MCP for macOS. Read-only WhatsApp access for Claude Desktop and Claude Code, fully local.

Install (Apple Silicon Macs, macOS 14+)

  1. Download WhatsAppMCP-0.0.1-arm64.dmg below
  2. Open the DMG, drag WhatsAppMCP to Applications
  3. Right-click WhatsAppMCP in /Applications → Open the first time (unsigned build — macOS records the approval after that)
  4. Pair your WhatsApp (phone-number code or QR)
  5. Click Configurar Claude Desktop, then restart Claude Desktop
  6. Ask Claude something like "quais são minhas conversas não lidas do WhatsApp?"

Known caveats

  • arm64 only. Intel Macs not supported.
  • Unsigned. Right-click → Open on first launch, or System Settings → Privacy & Security → Open Anyway.
  • Read-only. Never sends messages, never marks anything read, never changes your presence — by code structure, not just contract.
  • WhatsApp can take a few seconds to push the first history chunks after pairing; the wizard waits.

What's in the DMG

  • Electron + Baileys + SQLite (better-sqlite3), all bundled — zero system prerequisites
  • pt-BR UI
  • Per-tool toggles in Configurações
  • Server-level prompt-injection posture sent in the MCP instructions field
  • Notify-only update checks against GitHub Releases