WhatsApp for your agent: chats, messages, media, contacts and groups behind MCP tools.
Inferred from the transports this listing declares (stdio). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.
learnRead this FIRST, before any other WhatsApp tool. Returns the guide to the tools,
the id formats, the recommended workflows, the message shape and every error
code with what to do about it. Takes no arguments and never touches WhatsApp.Read this FIRST, before any other WhatsApp tool. Returns the guide to the tools, the id formats, the recommended workflows, the message shape and every error code with what to do about it. Takes no arguments and never touches WhatsApp.
No input schema was published for this tool.
get_statusNo description publishedThis tool published no description. Forge does not invent one.
list_accountsList every configured WhatsApp account: id, name, connection status, masked
phone, owner name, and whether that account allows writes. Call this first
when more than one account is linked, then pass account_id on the other tools.
Takes no arguments besides the optional account_id (ignored for the l…List every configured WhatsApp account: id, name, connection status, masked phone, owner name, and whether that account allows writes. Call this first when more than one account is linked, then pass account_id on the other tools. Takes no arguments besides the optional account_id (ignored for the l…
No input schema was published for this tool.
link_accountNo description publishedThis tool published no description. Forge does not invent one.
list_chatsList conversations, most recently active first. Use it to discover the chat_id
values the other tools need.
Each chat has: chat_id, name, type, unread_count, last_message {text, timestamp,
from_me}, archived, pinned, muted_until, and left (groups you are no longer in).List conversations, most recently active first. Use it to discover the chat_id values the other tools need. Each chat has: chat_id, name, type, unread_count, last_message {text, timestamp, from_me}, archived, pinned, muted_until, and left (groups you are no longer in).
No input schema was published for this tool.
read_messagesRead messages from one chat, oldest to newest.
Without `before` you get the most recent messages. Pass `before` (the oldest
message_id you already have) to page further back; wazap asks the phone for
older history when the local store runs out, which takes a few seconds.Read messages from one chat, oldest to newest. Without `before` you get the most recent messages. Pass `before` (the oldest message_id you already have) to page further back; wazap asks the phone for older history when the local store runs out, which takes a few seconds.
No input schema was published for this tool.
get_recent_messagesEverything that happened recently, grouped by chat. This is the catch-up tool:
one call instead of list_chats plus a read_messages per chat. WhatsApp's own
notices — device linking, group membership changes, encryption notices — are left
out so the counts are conversation; pass include_system to se…Everything that happened recently, grouped by chat. This is the catch-up tool: one call instead of list_chats plus a read_messages per chat. WhatsApp's own notices — device linking, group membership changes, encryption notices — are left out so the counts are conversation; pass include_system to se…
No input schema was published for this tool.
get_unansweredNo description publishedThis tool published no description. Forge does not invent one.
get_storiesThe stories (status updates) the linked account has received in the last N
hours, newest first, each with its author, its text or caption and its time.
WhatsApp keeps a story for a day and so does wazap; nothing older is held.
With include_previews the photos come as small images, and download_medi…The stories (status updates) the linked account has received in the last N hours, newest first, each with its author, its text or caption and its time. WhatsApp keeps a story for a day and so does wazap; nothing older is held. With include_previews the photos come as small images, and download_medi…
No input schema was published for this tool.
set_contact_noteRemember something about a person, on this machine only: "Hermi, my own agent",
"the accountant", "always answers late". The note then rides along wherever
the contact shows: list_chats, search_contacts, get_contact, get_recent_messages
and get_unanswered. Nothing is sent to WhatsApp and the contac…Remember something about a person, on this machine only: "Hermi, my own agent", "the accountant", "always answers late". The note then rides along wherever the contact shows: list_chats, search_contacts, get_contact, get_recent_messages and get_unanswered. Nothing is sent to WhatsApp and the contac…
No input schema was published for this tool.
update_contact_detailsNo description publishedThis tool published no description. Forge does not invent one.
mark_handledThe user dealt with what this chat was asking, outside WhatsApp or by a
reply wazap did not see: a phone call, a meeting, a decision. The open ask is
remembered as handled and the chat leaves get_unanswered. The next message
from the other side makes a new ask and the chat comes back on its own.
Ke…The user dealt with what this chat was asking, outside WhatsApp or by a reply wazap did not see: a phone call, a meeting, a decision. The open ask is remembered as handled and the chat leaves get_unanswered. The next message from the other side makes a new ask and the chat comes back on its own. Ke…
No input schema was published for this tool.
wait_for_messagesNo description publishedThis tool published no description. Forge does not invent one.
search_messagesNo description publishedThis tool published no description. Forge does not invent one.
recallNo description publishedThis tool published no description. Forge does not invent one.
get_messageNo description publishedThis tool published no description. Forge does not invent one.
search_contactsFind contacts by name, phone number, tag or detail: a substring match on the
name, a digit match on the number, or a word from a local tag or detail — so
"contabil" finds the person filed under role: contabil by update_contact_details.
With only tag it lists everyone carrying that tag. Returns cont…Find contacts by name, phone number, tag or detail: a substring match on the name, a digit match on the number, or a word from a local tag or detail — so "contabil" finds the person filed under role: contabil by update_contact_details. With only tag it lists everyone carrying that tag. Returns cont…
No input schema was published for this tool.
sync_contactsAsk WhatsApp to send the linked phone's address book from scratch, and wait up
to 15 seconds for it. Nothing on WhatsApp changes: this only refills wazap's
own contact list.
Use it when get_status reports contacts_named: 0, or when senders in a group
read as phone numbers for people you know are s…Ask WhatsApp to send the linked phone's address book from scratch, and wait up to 15 seconds for it. Nothing on WhatsApp changes: this only refills wazap's own contact list. Use it when get_status reports contacts_named: 0, or when senders in a group read as phone numbers for people you know are s…
No input schema was published for this tool.
get_contactFull details for one contact: name, number, about text, profile picture URL,
whether they are a saved contact, a business, or blocked. `name_source` says
where the shown name comes from — "contact" when it is the saved address-book
name (is_my_contact), "pushname" when it is a name the person publi…Full details for one contact: name, number, about text, profile picture URL, whether they are a saved contact, a business, or blocked. `name_source` says where the shown name comes from — "contact" when it is the saved address-book name (is_my_contact), "pushname" when it is a name the person publi…
No input schema was published for this tool.
save_contactSave a person in the account's WhatsApp contacts: a new entry for a phone
number, or a new name for an existing one. The name syncs to every linked
device, and with save_on_phone (default) also into the phone's own address
book. WhatsApp keeps no other fields — email, "my accountant" and the like g…Save a person in the account's WhatsApp contacts: a new entry for a phone number, or a new name for an existing one. The name syncs to every linked device, and with save_on_phone (default) also into the phone's own address book. WhatsApp keeps no other fields — email, "my accountant" and the like g…
No input schema was published for this tool.
remove_contactprivilegedTake a person out of the account's WhatsApp contacts: the saved entry and its
name go, the chat and its history stay. Nothing is sent to the contact.Take a person out of the account's WhatsApp contacts: the saved entry and its name go, the chat and its history stay. Nothing is sent to the contact.
No input schema was published for this tool.
get_group_infoNo description publishedThis tool published no description. Forge does not invent one.
download_mediaNo description publishedThis tool published no description. Forge does not invent one.
transcribe_audioNo description publishedThis tool published no description. Forge does not invent one.
send_messageDraft a text message. Does not send. Returns a draft_id and a preview of the
recipient and exact text. Show that preview to the user; after they say yes,
call confirm_send. A draft lasts 15 minutes.
To @-mention people, pass mention_ids and write @<number> in the text where
each mention belongs, t…Draft a text message. Does not send. Returns a draft_id and a preview of the recipient and exact text. Show that preview to the user; after they say yes, call confirm_send. A draft lasts 15 minutes. To @-mention people, pass mention_ids and write @<number> in the text where each mention belongs, t…
No input schema was published for this tool.
send_mediaDraft an image, video, audio file, document or GIF, from a local path on the machine
running wazap or from a public URL. Does not send. Exactly one of file_path / url.
Maximum 100 MB. Show the preview; after the user says yes, call confirm_send.
A GIF is sent with as_gif: an mp4 goes out looping, a…Draft an image, video, audio file, document or GIF, from a local path on the machine running wazap or from a public URL. Does not send. Exactly one of file_path / url. Maximum 100 MB. Show the preview; after the user says yes, call confirm_send. A GIF is sent with as_gif: an mp4 goes out looping, a…
No input schema was published for this tool.
send_pollDraft a poll. Does not send. Participants vote in WhatsApp, and their votes
show on the poll message: read_messages counts them and get_message says who
chose each option. Show the preview; after the user says yes, call confirm_send.Draft a poll. Does not send. Participants vote in WhatsApp, and their votes show on the poll message: read_messages counts them and get_message says who chose each option. Show the preview; after the user says yes, call confirm_send.
No input schema was published for this tool.
send_locationDraft a map pin, optionally labelled with a place name and address. Does not
send. Show the preview; after the user says yes, call confirm_send.Draft a map pin, optionally labelled with a place name and address. Does not send. Show the preview; after the user says yes, call confirm_send.
No input schema was published for this tool.
edit_messageprivilegedReplace the text of a message the linked account sent. WhatsApp only allows
this within 15 minutes of sending; after that send a correction instead.Replace the text of a message the linked account sent. WhatsApp only allows this within 15 minutes of sending; after that send a correction instead.
No input schema was published for this tool.
react_to_messageAdd an emoji reaction to a message, or pass an empty string to remove your reaction.Add an emoji reaction to a message, or pass an empty string to remove your reaction.
No input schema was published for this tool.
forward_messageDraft a forward of an existing message to another chat. Does not send. The
recipient will see it marked as forwarded. Show the preview; after the user
says yes, call confirm_send.Draft a forward of an existing message to another chat. Does not send. The recipient will see it marked as forwarded. Show the preview; after the user says yes, call confirm_send.
No input schema was published for this tool.
confirm_sendNo description publishedThis tool published no description. Forge does not invent one.
delete_messageprivilegedNo description publishedThis tool published no description. Forge does not invent one.
set_profile_pictureSet the linked WhatsApp account's own profile picture from a local path on the
machine running wazap or from a public URL. Exactly one of file_path / url.
JPEG, PNG or WebP only, at most 10 MB. DESTRUCTIVE and visible to every contact.
Show the image and wait for a yes first. This call hits WhatsAp…Set the linked WhatsApp account's own profile picture from a local path on the machine running wazap or from a public URL. Exactly one of file_path / url. JPEG, PNG or WebP only, at most 10 MB. DESTRUCTIVE and visible to every contact. Show the image and wait for a yes first. This call hits WhatsAp…
No input schema was published for this tool.
manage_chatNo description publishedThis tool published no description. Forge does not invent one.
create_groupCreate a group with the given name and participants; the linked account becomes
the owner. Each participant comes back with a status: ok, invite_needed (their
privacy settings require an invite link) or failed.Create a group with the given name and participants; the linked account becomes the owner. Each participant comes back with a status: ok, invite_needed (their privacy settings require an invite link) or failed.
No input schema was published for this tool.
join_groupNo description publishedThis tool published no description. Forge does not invent one.
manage_groupNo description publishedThis tool published no description. Forge does not invent one.
22 of 38 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
WhatsApp for your agent: chats, messages, media, contacts and groups behind MCP tools.
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
The crawl stopped at the 60-package limit. The rest of the tree was never resolved.
36 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)
217 declared dependencies never landed in the tree. They are missing from Forge's resolution, not from the package.
+205 more not listed. The counts by reason above cover all of them.
Not followed: peerDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.