LabscoMCP early access ↗
SealjayMCP SERVER

MCP Whatsapp

Read, search and send on your own WhatsApp account — 42 tools, one Go binary, messages cached locally in SQLite.

by Sealjay ↗Team Chat PlatformsCommunity

LABSCO SUMMARY

The daemon has to be running for messages to be recorded, and that is the constraint to plan around.

Events only reach SQLite while serve is alive; after a gap, WhatsApp's own multidevice retention decides what can be recovered, and request_sync backfills a specific chat for shorter gaps. The author is direct about the security shape too: this is exactly the lethal-trifecta setup, so prompt injection arriving in an incoming message is a real exfiltration path, and log redaction is described as obfuscation rather than anonymisation.

What it is

A single-binary Go server wrapping whatsmeow to expose a personal WhatsApp account. It runs as a long-lived HTTP daemon on 127.0.0.1:8765 that MCP clients connect to, so closing and reopening your client reconnects rather than respawning a process. Messages are cached in local SQLite and only travel to the model when a tool is called.

What you get

  • Reading: search_contacts, list_messages with context windows, list_chats, get_chat, get_message_context, download_media, and request_sync to backfill one chat's history on demand
  • Sending: send_message, send_file with an optional view-once flag, send_audio_message, send_contact_card, and polls via send_poll, send_poll_vote and get_poll_results
  • Message actions: mark_read, mark_chat_read, send_reaction, send_reply, edit_message, delete_message and send_typing
  • Groups: create_group, leave_group, list_groups, get_group_info, update_group_participants for add, remove, promote and demote, set_group_name, set_group_topic, set_group_announce, set_group_locked, get_group_invite_link and join_group_with_link
  • Blocklist and privacy: get_blocklist, block_contact, unblock_contact, send_presence, get_privacy_settings, set_privacy_setting and set_status_message
  • Admin: is_on_whatsapp batch-checks numbers, get_status reports the connection, and pairing_status returns a structured setup state including the linking QR

Requirements

Go 1.25+ to build (make build writes ./bin/whatsapp-mcp); the runtime needs only the binary. Pair once by starting the daemon and opening http://127.0.0.1:8765/pair to scan the QR with WhatsApp on your phone — the session persists to store/whatsapp.db and needs re-pairing roughly every 20 days. Clients connect over HTTP to http://127.0.0.1:8765/mcp. WHATSAPP_MCP_MEDIA_ROOT sets the only directory files may be read from or written to, defaulting to ./store/uploads/. -allow-remote requires WHATSAPP_MCP_TOKEN. ffmpeg is optional, needed only to convert non-Opus audio for voice notes. Windows requires CGO.

Setup effort

Build from source — git clone https://github.com/Sealjay/mcp-whatsapp.git