A single-binary Go MCP server that wraps whatsmeow to expose a personal WhatsApp account to LLMs. whatsapp-mcp serve runs as a lightweight HTTP daemon on 127.0.0.1:8765; MCP clients (Claude Desktop…
mcp-whatsapp is an MCP project maintained in the sealjay/mcp-whatsapp repository. The maintainer describes its purpose as “A single-binary Go MCP server that wraps whatsmeow to expose a personal WhatsApp account to LLMs. whatsapp-mcp serve runs as a lightweight HTTP daemon on…”. Read the project documentation for the complete scope.
Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.
Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.
| Tool | What it does |
|---|---|
| Approval | mode participants, communities, newsletters — low-use surface, deferred. |
| search_contacts | Substring search across cached contact names and phone numbers |
| list_messages | Query + filter messages; returns formatted text with context windows |
| list_chats | List chats with last-message preview; sort by activity or name |
| get_chat | Chat metadata by JID |
| get_message_context | Before/after window around a specific message |
| download_media | Download persisted media to a local path |
| request_sync | Ask WhatsApp to backfill history for a chat |
| send_message | Send a text message to a phone number or JID |
| send_file | Send image/video/document/raw audio with optional caption; view_once: bool marks image/video/audio submessages as view-once (ignored for documents) |
| send_audio_message | Send a voice note (auto-converts via ffmpeg if not .ogg Opus); supports view_once: bool |
| send_poll | Send a poll with a question and 2+ options; selectable_count controls how many options a voter may pick. Generates the 32-byte MessageSecret required for votes |
| send_poll_vote | Cast a vote on a previously-seen poll; options must match option names exactly |
| get_poll_results | Return the tally for a poll we have cached (includes 0-vote options) |
| send_contact_card | Send a contact card; synthesises a vCard 3.0 from name + phone, or pass a raw vcard to skip synthesis |
| mark_read | Mark specific message IDs as read |
| mark_chat_read | Ack the most recent incoming messages in a chat to clear the unread badge |
| send_reaction | React to a message (empty emoji clears an existing reaction) |
| send_reply | Text reply that quotes a prior message |
| edit_message | Edit a previously-sent message |
| delete_message | Revoke (delete for everyone) a message |
| send_typing | Set per-chat composing / recording presence |
| create_group | Create a group with a name and initial participants |
| leave_group | Leave a group |
| list_groups | List all groups the user is a member of |
| get_group_info | Full group metadata (participants, settings, invite config) |
| update_group_participants | Add / remove / promote / demote participants (action: add\ |
| set_group_name | Change the group subject |
| set_group_topic | Change the group description; empty string clears it |
| set_group_announce | Toggle announce-only mode (only admins can send) |
| set_group_locked | Toggle locked mode (only admins can edit group metadata) |
| get_group_invite_link | Get the invite link; reset: true revokes the previous link first |
| join_group_with_link | Join a group via a chat.whatsapp.com URL or bare invite code |
| get_blocklist | Return the current blocklist (JIDs, usually @lid, plus phone numbers where known) |
| block_contact | Block a contact by phone number or JID |
| unblock_contact | Unblock a contact |
| send_presence | Set own availability (available or unavailable) — distinct from per-chat send_typing |
| get_privacy_settings | Current privacy settings as JSON |
| set_privacy_setting | Change one privacy setting by name + value (strict enum validation; invalid combinations are rejected) |
| set_status_message | Update the profile "About" text; empty string clears it |
| is_on_whatsapp | Batch-check which phone numbers are registered on WhatsApp |
| get_status | Report whether the bridge is connected and which account it's paired as |
| pairing_status | Report the device-pairing state as a structured setup_state envelope (ready / awaiting_qr + qr_payload / error) for programmatic supervisors that surface the… |
Your assistant inside the workspace — read channels, search history, post messages and tame the noise.
Build a programmable telecommunications stack for connecting telephony services with the Internet via a cloud-based utility.
Inbox intelligence — search, read, draft and send Gmail through your assistant with OAuth auto-setup.
Read and write Jira, Confluence, Bitbucket, JSM and Compass from your AI client — with your own permissions.
Read and send Telegram messages through your assistant — chats, channels and history via the client API.
Enables Discord bot integration with Model Context Protocol (MCP) compatible applications like Claude Desktop.