mcp-whatsapp MCP Server

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…

Local server

What is the mcp-whatsapp MCP Server?

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.

Source

Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
Approvalmode participants, communities, newsletters — low-use surface, deferred.
search_contactsSubstring search across cached contact names and phone numbers
list_messagesQuery + filter messages; returns formatted text with context windows
list_chatsList chats with last-message preview; sort by activity or name
get_chatChat metadata by JID
get_message_contextBefore/after window around a specific message
download_mediaDownload persisted media to a local path
request_syncAsk WhatsApp to backfill history for a chat
send_messageSend a text message to a phone number or JID
send_fileSend image/video/document/raw audio with optional caption; view_once: bool marks image/video/audio submessages as view-once (ignored for documents)
send_audio_messageSend a voice note (auto-converts via ffmpeg if not .ogg Opus); supports view_once: bool
send_pollSend 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_voteCast a vote on a previously-seen poll; options must match option names exactly
get_poll_resultsReturn the tally for a poll we have cached (includes 0-vote options)
send_contact_cardSend a contact card; synthesises a vCard 3.0 from name + phone, or pass a raw vcard to skip synthesis
mark_readMark specific message IDs as read
mark_chat_readAck the most recent incoming messages in a chat to clear the unread badge
send_reactionReact to a message (empty emoji clears an existing reaction)
send_replyText reply that quotes a prior message
edit_messageEdit a previously-sent message
delete_messageRevoke (delete for everyone) a message
send_typingSet per-chat composing / recording presence
create_groupCreate a group with a name and initial participants
leave_groupLeave a group
list_groupsList all groups the user is a member of
get_group_infoFull group metadata (participants, settings, invite config)
update_group_participantsAdd / remove / promote / demote participants (action: add\
set_group_nameChange the group subject
set_group_topicChange the group description; empty string clears it
set_group_announceToggle announce-only mode (only admins can send)
set_group_lockedToggle locked mode (only admins can edit group metadata)
get_group_invite_linkGet the invite link; reset: true revokes the previous link first
join_group_with_linkJoin a group via a chat.whatsapp.com URL or bare invite code
get_blocklistReturn the current blocklist (JIDs, usually @lid, plus phone numbers where known)
block_contactBlock a contact by phone number or JID
unblock_contactUnblock a contact
send_presenceSet own availability (available or unavailable) — distinct from per-chat send_typing
get_privacy_settingsCurrent privacy settings as JSON
set_privacy_settingChange one privacy setting by name + value (strict enum validation; invalid combinations are rejected)
set_status_messageUpdate the profile "About" text; empty string clears it
is_on_whatsappBatch-check which phone numbers are registered on WhatsApp
get_statusReport whether the bridge is connected and which account it's paired as
pairing_statusReport the device-pairing state as a structured setup_state envelope (ready / awaiting_qr + qr_payload / error) for programmatic supervisors that surface the…