mcp-whatsapp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| STORE_DIR | No | Directory for data files. | ./store |
| WHATSAPP_MCP_TOKEN | Yes | Bearer token for authenticating MCP requests. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| completions | {} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| block_contactB | Block a contact by phone number or JID. |
| create_groupA | Create a new WhatsApp group with the given name and initial participants. |
| delete_messageA | Revoke (delete for everyone) a message. |
| download_mediaA | Download media from a WhatsApp message and return the local file path. |
| edit_messageB | Edit a previously-sent message. |
| get_blocklistA | Return the user's current WhatsApp blocklist as JSON. |
| get_chatA | (reads local cache; works while disconnected) Get WhatsApp chat metadata by JID. |
| get_group_infoA | Fetch live group metadata (participants, settings, invite config) for the given group JID. Returns a JSON object. |
| get_group_invite_linkA | Return a group's current invite link. Set |
| get_message_contextA | (reads local cache; works while disconnected) Get context around a specific WhatsApp message. |
| get_poll_resultsA | (reads local cache; works while disconnected) Return the current tally for a cached poll. Zero-vote options are included. |
| get_privacy_settingsB | Return the user's current WhatsApp privacy settings as JSON. |
| get_statusA | Report whether the WhatsApp bridge inside this MCP server is connected, and who we're paired as. |
| is_on_whatsappA | Check which phone numbers are registered on WhatsApp. Input: digits only (no +). |
| join_group_with_linkA | Join a group via a full |
| leave_groupA | Leave a WhatsApp group. |
| list_chatsA | (reads local cache; works while disconnected) Get WhatsApp chats matching specified criteria. |
| list_groupsA | List every WhatsApp group the paired user belongs to. Returns a JSON array of group info objects. |
| list_messagesA | (reads local cache; works while disconnected) Get WhatsApp messages matching specified criteria with optional context. Returns a formatted text block. |
| mark_chat_readA | Mark recent incoming messages in a chat as read — i.e. clear the phone's unread badge for that chat. |
| mark_readA | Mark message IDs as read in a chat. |
| request_syncA | Ask WhatsApp to backfill history for a chat. If from_timestamp is omitted, anchors on the newest cached message. |
| search_contactsA | (reads local cache; works while disconnected) Search WhatsApp contacts by name or phone number. |
| send_audio_messageA | Send any audio file as a WhatsApp voice note. Non-ogg inputs are converted via ffmpeg. |
| send_contact_cardA | Send a contact card. When |
| send_fileA | Send a picture, video, document, or raw audio via WhatsApp. |
| send_messageA | Send a WhatsApp message to a person (phone number or JID) or group (JID). |
| send_pollA | Send a poll message with between 2 and 32 options. |
| send_poll_voteA | Cast (or re-cast) a vote on a previously-seen poll. Each call replaces the caller's prior vote on that poll; |
| send_presenceA | Set the user's own online availability. Different from |
| send_reactionA | React to a message. Empty emoji clears an existing reaction. |
| send_replyA | Send a text reply that quotes a previous message. |
| send_typingB | Set typing/recording presence for a chat. |
| set_group_announceA | Toggle announce-only mode. When |
| set_group_lockedA | Toggle locked mode. When |
| set_group_nameA | Change a group's display name (its 'subject'). |
| set_group_topicA | Change a group's description/topic. Pass an empty |
| set_privacy_settingA | Change a single privacy setting. Not every name/value combination is valid; WhatsApp rejects invalid combinations server-side. |
| set_status_messageA | Update the user's WhatsApp 'About' text (profile status message). Pass an empty string to clear it. |
| unblock_contactA | Unblock a contact by phone number or JID. |
| update_group_participantsA | Add, remove, promote, or demote participants of a group. Requires admin privileges. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sealjay/mcp-whatsapp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server