Skip to main content
Glama
wsapi-chat

WSAPI WhatsApp MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoServer port3000
NODE_ENVNoEnvironment (development, production, test)development
LOG_LEVELNoLogging level (error, warn, info, debug)info
WSAPI_API_KEYYesYour WSAPI API key
WSAPI_TIMEOUTNoRequest timeout in milliseconds30000
WSAPI_BASE_URLNoWSAPI base URLhttps://api.wsapi.chat
WSAPI_INSTANCE_IDYesYour WSAPI instance ID
WSAPI_RETRY_DELAYNoDelay between retries in milliseconds1000
WSAPI_RETRY_ATTEMPTSNoNumber of retry attempts3

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
whatsapp_send_textA

Send a text message to a user JID or a group JID (@g.us). The recipient receives it immediately and it cannot be unsent, only deleted with whatsapp_delete_message. Supports mentions, replies and a disappearing timer. Not idempotent: calling it twice sends two messages. Returns the message ID.

whatsapp_send_imageA

Send an image, from base64 data or a public URL, with an optional caption, to a user or group JID. The recipient receives it immediately; set viewOnce for a view-once image. Not idempotent. Returns the message ID.

whatsapp_send_videoA

Send a video, from base64 data or a public URL, with an optional caption, to a user or group JID. The recipient receives it immediately. Not idempotent. Returns the message ID.

whatsapp_send_linkA

Send a text message with a link preview (title, description and thumbnail). Use it instead of whatsapp_send_text when you want to control how the preview looks. Not idempotent. Returns the message ID.

whatsapp_send_reactionA

React to a message with an emoji, or remove this number's reaction by sending an empty string. Everyone in the chat sees it. Repeating it replaces the reaction. Returns a success confirmation.

whatsapp_edit_messageA

Edit the text of a message this number sent. Everyone in the chat sees it marked as edited. WhatsApp only allows it for about 15 minutes after sending. Returns a success confirmation.

whatsapp_delete_messageA

Delete a message for everyone in the chat. It cannot be undone; participants see that a message was deleted. Only works on messages this number sent (or, as group admin, on others' messages in the group). To hide a message only on this account, use whatsapp_delete_message_for_me. Returns a success confirmation.

whatsapp_delete_message_for_meA

Delete a message only on this account. Other participants still see it. It cannot be undone. To remove it for everyone, use whatsapp_delete_message. Returns a success confirmation.

whatsapp_mark_message_readA

Send a read receipt for a message, so the sender sees it as read (blue ticks, if their privacy settings allow). To mark a whole chat, use whatsapp_mark_chat_as_read. Returns a success confirmation.

whatsapp_star_messageA

Star or unstar a message on this account. Only this account sees it. Returns a success confirmation.

whatsapp_pin_messageA

Pin or unpin a message in a chat, optionally for a limited time. Everyone in the chat sees the pin. To pin a whole chat in the list, use whatsapp_pin_chat. Returns a success confirmation.

whatsapp_send_audioA

Send an audio file as a regular audio attachment, from base64 data or a public URL. For a voice note that plays like a recorded message, use whatsapp_send_voice. Not idempotent. Returns the message ID.

whatsapp_send_voiceA

Send a voice note (push-to-talk), from base64 data or a public URL; OGG/Opus plays best. It appears as a recorded voice message. For a music or audio file, use whatsapp_send_audio. Not idempotent. Returns the message ID.

whatsapp_send_documentA

Send a file as a document, from base64 data or a public URL, with a required filename and optional caption. Use it for PDFs and any file that should not be shown inline as media. Not idempotent. Returns the message ID.

whatsapp_send_stickerA

Send a sticker in WebP format, from base64 data or a public URL. Not idempotent. Returns the message ID.

whatsapp_send_locationA

Send a map location by latitude and longitude, with an optional place name and address. Not idempotent. Returns the message ID.

whatsapp_send_contactA

Send a contact card, either from a display name or a full vCard. The recipient can save it to their address book. Not idempotent. Returns the message ID.

whatsapp_get_contactsA

List the contacts saved on the connected number. Read-only. To check whether a phone number has WhatsApp, use whatsapp_check_user. Returns the contacts and their count.

whatsapp_get_contactA

Get one saved contact by JID: saved name, push name and business name. Read-only. Returns the contact object.

whatsapp_create_contactA

Save a contact on the connected number, or update its name if it already exists. Only affects this account's address book. Returns a success confirmation.

whatsapp_sync_contactsA

Re-sync the address book from the WhatsApp servers. Use it when whatsapp_get_contacts looks outdated. It runs in the background. Returns an acknowledgement, not the contacts.

whatsapp_get_blocklistA

List the contacts this number has blocked. Read-only. To change it, use whatsapp_block_contact or whatsapp_unblock_contact. Returns the blocked JIDs.

whatsapp_block_contactA

Block a contact by user JID: they can no longer message or call this number, and they are not notified. Reversible with whatsapp_unblock_contact. Returns a success confirmation.

whatsapp_unblock_contactA

Unblock a previously blocked contact, so they can message and call this number again. Returns a success confirmation.

whatsapp_get_groupsA

List the groups the connected number belongs to. Read-only. Use this to find group JIDs (ending in @g.us). Returns the groups and their count.

whatsapp_create_groupA

Create a new group with this number as admin and the given participants (user JIDs). Participants are added immediately and notified. Calling it twice creates two groups. Returns the new group JID.

whatsapp_get_groupA

Get the details of a group by JID: name, description, settings and participants. Read-only. Returns the group object.

whatsapp_update_group_nameA

Rename a group. All participants see the change; it may require admin rights if the group is locked. Returns a success confirmation.

whatsapp_update_group_descriptionA

Change a group's description. All participants see it; it may require admin rights if the group is locked. Returns a success confirmation.

whatsapp_set_group_pictureA

Set a group's picture from base64 image data, replacing the current one for all participants. May require admin rights. Returns a success confirmation.

whatsapp_leave_groupA

Leave a group. Other participants are notified, and rejoining needs a new invite. If this number is the only admin, WhatsApp picks another one. Returns a success confirmation.

whatsapp_get_group_participantsC

List a group's participants with their admin status. Read-only. Returns the participants.

whatsapp_update_group_participantsA

Add, remove, promote to admin or demote participants of a group, by user JID. Requires admin rights. Removed participants lose access and everyone affected is notified. Some adds can fail silently because of the invitee's privacy settings, so check with whatsapp_get_group_participants. Returns a success confirmation.

whatsapp_get_group_invite_linkA

Get the current invite link of a group. Requires admin rights. Anyone with the link can join. Returns the link.

whatsapp_reset_group_invite_linkA

Revoke a group's invite link and create a new one. The old link stops working immediately. Requires admin rights. Returns the new link.

whatsapp_set_group_announceA

Turn announcement mode on or off. When on, only admins can send messages in the group. Requires admin rights. Returns a success confirmation.

whatsapp_set_group_lockedA

Turn locked mode on or off. When on, only admins can edit the group's name, description and picture. Requires admin rights. Returns a success confirmation.

whatsapp_set_group_join_approvalA

Turn join approval on or off. When on, people joining by link need an admin to approve them (see whatsapp_get_group_requests). Requires admin rights. Returns a success confirmation.

whatsapp_set_group_member_add_modeA

Choose whether only admins or all members can add participants to a group. Requires admin rights. Returns a success confirmation.

whatsapp_join_group_with_linkA

Join a group using the code from an invite link (chat.whatsapp.com/). Other participants see this number join. To preview the group first, use whatsapp_get_group_info_from_link. Returns the joined group JID.

whatsapp_join_group_with_inviteB

Accept a group invite that was received as a direct message (not a link), using the fields from that invite message. Other participants see this number join. Returns a success confirmation.

whatsapp_get_group_info_from_linkA

Preview a group from an invite code without joining it: name, description and size. Read-only. Returns the group info.

whatsapp_get_group_requestsA

List the pending requests to join a group that has join approval on. Requires admin rights. Read-only. Returns the requesting user JIDs.

whatsapp_update_group_requestsA

Approve or reject pending join requests for a group, by user JID. Approved users become participants immediately. Requires admin rights. Returns a success confirmation.

whatsapp_get_chatsA

List every chat on the connected number, both direct and group. Read-only. Use this to discover chat JIDs; use whatsapp_get_chat for one chat's details. Returns the chats and their count.

whatsapp_get_chatA

Get the details of one chat by its JID: name, unread state, and settings such as mute, pin, archive and disappearing timer. Read-only. Returns the chat object.

whatsapp_delete_chatA

Delete a whole chat and its messages from this account. It cannot be undone, and it only affects this account: the other participants keep their copy. To empty a chat but keep it in the list, use whatsapp_clear_chat. Returns a success confirmation.

whatsapp_get_chat_pictureA

Get the profile picture of a chat (a contact or a group) by its JID. Read-only. Returns the picture URL and ID; fails if the chat has no picture or it is hidden by privacy settings.

whatsapp_get_chat_business_profileA

Get the WhatsApp Business profile of a chat: description, category, website, email and address. Read-only. Only business accounts have one. Returns the profile object.

whatsapp_set_chat_presenceA

Show a typing or recording indicator in a chat, or clear it with paused. The other side sees it in real time. Use it just before sending a reply; it does not send anything by itself. Returns a success confirmation.

whatsapp_subscribe_chat_presenceA

Subscribe to a contact's presence (online, typing) so it arrives as presence events. It does not return presence: the updates come later through the event stream. Returns a success confirmation.

whatsapp_set_chat_ephemeralA

Set the disappearing messages timer for a chat (off, 24 hours, 7 days or 90 days). All participants see the change and new messages follow it. Returns a success confirmation.

whatsapp_mute_chatA

Mute a chat's notifications for a duration, or unmute it. Only affects this account; the other side is not told. Returns a success confirmation.

whatsapp_archive_chatA

Archive or unarchive a chat. Archiving only hides it from the main list on this account; messages are kept and it can be undone. Returns a success confirmation.

whatsapp_pin_chatA

Pin a chat to the top of the chat list, or unpin it. Only affects this account. To pin a message inside a chat, use whatsapp_pin_message. Returns a success confirmation.

whatsapp_mark_chat_as_readA

Mark a whole chat as read or unread on this account. To send a read receipt for one message, use whatsapp_mark_message_read. Returns a success confirmation.

whatsapp_request_chat_messagesA

Ask WhatsApp for older messages of a chat, starting before a given message. It does not return messages: they arrive later as history sync events, if the phone provides them. Returns an acknowledgement only.

whatsapp_clear_chatA

Delete all messages in a chat on this account but keep the chat in the list. It cannot be undone and does not affect other participants. To remove the chat entirely, use whatsapp_delete_chat. Returns a success confirmation.

whatsapp_get_session_statusA

Check whether the WhatsApp session is connected and logged in. Read-only. Call it first when other tools fail, to tell a logged-out session from another error. Returns the connection and login state.

whatsapp_get_qr_codeA

Get the login QR code as a text string, to pair a phone with this instance. Only works while logged out, and each code expires within about a minute. For an image, use whatsapp_get_qr_code_image; to pair by phone number, use whatsapp_get_pair_code. Returns the QR string.

whatsapp_get_qr_code_imageA

Get the login QR code as a PNG image, to scan from WhatsApp on the phone (Linked devices). Only works while logged out, and each code expires within about a minute. Returns the image.

whatsapp_get_pair_codeA

Get an 8-character pairing code for a phone number, to link it without scanning a QR (WhatsApp, Linked devices, Link with phone number). Only works while logged out. Returns the code.

whatsapp_logoutA

Log this instance out of WhatsApp and unlink it from the phone. Every other tool stops working until the number is paired again with a QR or pair code. Returns a success confirmation.

whatsapp_flush_historyA

Re-publish the history sync messages cached for this instance as events. It does not return messages: they arrive later through the event stream. Returns an acknowledgement.

whatsapp_get_my_profileA

Get the connected number's own profile: name, about text and picture. Read-only. Returns the profile.

whatsapp_update_my_profileA

Change the connected number's own display name, about text or picture. Contacts see the change. Only the fields you pass are updated. Returns a success confirmation.

whatsapp_set_presenceA

Set this account as available or unavailable. Available makes it show online to contacts; for a typing indicator in one chat, use whatsapp_set_chat_presence. Returns a success confirmation.

whatsapp_get_privacy_settingsA

Get the account's privacy settings: who can see last seen, profile picture, about, groups and read receipts. Read-only. Returns the settings.

whatsapp_set_privacy_settingA

Change one privacy setting of the account, for example who can see the profile picture. Applies immediately to all contacts. Returns the updated settings.

whatsapp_check_userA

Check whether one phone number has WhatsApp, before sending to it. Read-only. Pass the number with country code, digits only. Returns whether it is registered and its user JID. For many numbers at once, use whatsapp_bulk_check_users.

whatsapp_bulk_check_usersA

Check many phone numbers at once for WhatsApp accounts. Read-only. Pass numbers with country code, digits only. Returns whether each number is registered, with its user JID.

whatsapp_get_user_profileA

Get another user's public profile by phone number: name, about text, picture and business status, as far as their privacy settings allow. Read-only. Returns the profile.

whatsapp_list_communitiesA

List the communities the connected number belongs to. Read-only. Returns the communities and their JIDs.

whatsapp_create_communityA

Create a new WhatsApp community with this number as its admin, optionally adding participants. Participants are added immediately and notified. Returns the new community JID.

whatsapp_get_communityA

Get the details of a community by its JID: name, description, settings and announcement group. Read-only. Returns the community object.

whatsapp_leave_communityA

Leave a community and all its groups. Other members are notified, and rejoining needs a new invite. Returns a success confirmation.

whatsapp_set_community_nameA

Rename a community. Requires admin rights; all members see the change. Returns a success confirmation.

whatsapp_set_community_descriptionA

Change a community's description. Requires admin rights; all members see it. Returns a success confirmation.

whatsapp_set_community_pictureA

Set a community's profile picture from base64 image data. Requires admin rights; replaces the current picture for all members. Returns a success confirmation.

whatsapp_set_community_lockedA

Turn locked mode on or off for a community. When on, only admins can edit the community's info. Requires admin rights. Returns a success confirmation.

whatsapp_get_community_participantsC

List the participants of a community, with their admin status. Read-only. Returns the participants.

whatsapp_update_community_participantsA

Add, remove, promote to admin or demote participants of a community, by user JID. Requires admin rights. Removed participants lose access and everyone affected is notified. Returns a success confirmation.

whatsapp_get_community_invite_linkA

Get the current invite link of a community. Requires admin rights. Anyone with the link can ask to join. Returns the link.

whatsapp_reset_community_invite_linkA

Revoke a community's invite link and create a new one. The old link stops working immediately. Requires admin rights. Returns the new link.

whatsapp_get_community_sub_groupsA

List the groups linked to a community. Read-only. Returns the groups and their JIDs.

whatsapp_create_community_groupA

Create a new group inside a community, optionally with participants, who are added and notified. Requires community admin rights. To attach a group that already exists, use whatsapp_link_group_to_community. Returns the new group JID.

whatsapp_link_group_to_communityA

Attach an existing group to a community. Requires admin rights in both. Group members become part of the community. Returns a success confirmation.

whatsapp_unlink_community_groupA

Detach a group from a community. The group keeps existing on its own, but its members lose access to the community through it. Requires admin rights. Returns a success confirmation.

whatsapp_list_newslettersA

List the channels (newsletters) this number follows or owns. Read-only. Returns the channels and their JIDs.

whatsapp_create_newsletterA

Create a new WhatsApp channel (newsletter) owned by this number, with a name and optional description and picture. It is public once created. Returns the new channel JID.

whatsapp_get_newsletter_by_inviteA

Look up a channel by its invite code, without following it. Read-only. Returns the channel info and JID.

whatsapp_get_newsletterA

Get a channel's details by JID: name, description and follower count. Read-only. Returns the channel object.

whatsapp_set_newsletter_subscriptionA

Follow or unfollow a channel by JID. Following adds its updates to this account; the channel owner only sees the follower count. Returns a success confirmation.

whatsapp_mute_newsletterB

Mute or unmute a channel's notifications on this account. Returns a success confirmation.

whatsapp_get_status_privacyA

Get who can see this number's status updates. Read-only. Returns the privacy settings.

whatsapp_post_text_statusA

Post a text status (story), visible to contacts allowed by the status privacy settings for 24 hours. Not idempotent. Returns the status message ID, which whatsapp_delete_status needs.

whatsapp_post_image_statusA

Post an image status (story) from base64 data or a public URL, with an optional caption, visible to allowed contacts for 24 hours. Not idempotent. Returns the status message ID.

whatsapp_post_video_statusA

Post a video status (story) from base64 data or a public URL, with an optional caption, visible to allowed contacts for 24 hours. Not idempotent. Returns the status message ID.

whatsapp_delete_statusA

Delete a status this number posted, by its message ID. Contacts stop seeing it. It cannot be undone. Returns a success confirmation.

whatsapp_reject_callA

Reject an incoming WhatsApp call, using the callId and callerId from the call_offer event. The caller sees the call as declined. Only works while the call is still ringing. Returns a success confirmation.

whatsapp_download_mediaA

Download the file attached to a received message, using media.id from the message event. Read-only. Returns the file as binary content, with its MIME type.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 101 tools

Disambiguation4/5

Tools have distinct purposes and descriptions explicitly cross-reference to differentiate similar ones (e.g., send_audio vs send_voice, delete_message vs delete_message_for_me). However, the sheer number of tools may still cause some confusion in selection.

Naming Consistency5/5

All tools follow a consistent whatsapp_ prefix with snake_case verb_noun pattern, with logical verb choices (get vs list). No mixed conventions.

Tool Count1/5

101 tools is extreme for this domain, far exceeding the recommended 3-15 range. Many tools are highly granular and could be consolidated.

Completeness4/5

The surface covers messaging, chats, groups, communities, newsletters, status, calls, contacts, and session management comprehensively. Missing features like polls or live location sharing prevent a perfect score.

Maintenance

ActivityMaintained
ResponsivenessNo issues