Connect a personal/Business WhatsApp account via QR pairing (multi-device, like WhatsApp Web).
Connector by mcp-dir · GitHub account verified by the MCP Registry
Install
Works with Claude Code, VS Code, Cursor, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install connector/mcp-dir-whatsapp-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Remote endpoint
https://api.mcp.ai/p_whatsappRemote (HTTP)
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 16 read · 28 write · 3 delete
- Secrets
- None asked for
- Install scripts
- Nothing to install (hosted)
- Runs as
- Hosted (remote endpoint)
Tools by what they do 47
From the running server's own tool list (tools/list) on Oct 25, 2026.
Read 16 · Look things up without changing anything.
connectshow_versiontoolkit_infowhatsapp_chat_metadatawhatsapp_chatswhatsapp_config_getwhatsapp_contacts_getwhatsapp_contacts_listwhatsapp_group_memberswhatsapp_groupswhatsapp_history_coveragewhatsapp_list_accounts
Show 4 more tools
whatsapp_messageswhatsapp_searchwhatsapp_syncwhatsapp_webhook_get
Write 28 · Create, change, send or run things.
authenticatemarketplacereport_bugwhatsapp_chat_archivewhatsapp_chat_mutewhatsapp_chat_pinwhatsapp_chat_unarchivewhatsapp_chat_unmutewhatsapp_chat_unpinwhatsapp_config_setwhatsapp_group_manage_createwhatsapp_group_manage_invite_link
Show 16 more tools
whatsapp_group_manage_joinwhatsapp_group_manage_leavewhatsapp_group_manage_requestswhatsapp_group_manage_updatewhatsapp_group_participants_addwhatsapp_group_participants_demotewhatsapp_group_participants_promotewhatsapp_history_backfillwhatsapp_message_deletewhatsapp_message_editwhatsapp_message_forwardwhatsapp_messages_writewhatsapp_poll_createwhatsapp_poll_votewhatsapp_send_mediawhatsapp_send_text
Delete 3 · Delete, drop, revoke or wipe things.
whatsapp_group_participants_removewhatsapp_reactwhatsapp_webhook_set
Network hosts it talks to 1
api.mcp.ai· found in remote endpoint, install command
Files it touches
- Any path the agent passes to its tools
Tools (47)
As the server listed them on Oct 25, 2026. Descriptions are the server’s own words; hidden characters are shown as [U+…].
authenticateAuthenticateMCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header `Authorization: Bearer <token>` for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: "<jwt>" } after the user pastes, or with no args to get the link.
connectConnection Statusread-onlyReturns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.
marketplaceMarketplaceThe official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like "find an MCP that does X", "consulta um CPF", "is there a tool for Y". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential…
report_bugReport BugReport a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.
show_versionShow Versionread-onlyShow the current MCP platform and adapter versions.
toolkit_infoToolkit Inforead-onlyReturns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.
whatsapp_chat_archiveChange a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: archive]
whatsapp_chat_metadataread-onlyGet metadata for a single chat (subject/name, archived/pinned/muted state, unread count, timestamps). Requires chat_jid.
whatsapp_chat_muteChange a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: mute]
whatsapp_chat_pinChange a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: pin]
whatsapp_chat_unarchiveChange a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: unarchive]
whatsapp_chat_unmuteChange a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: unmute]
whatsapp_chat_unpinChange a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: unpin]
whatsapp_chatsread-onlyList WhatsApp chats (individual + group). Sorted by most recent activity.
whatsapp_config_getread-onlyShow this install's editable-after-connect settings per connected number — currently the proxy (proxy_url): whether it's set and a masked preview (the raw value is never returned). Owner/admin or the connection owner.
Show 32 more tools
whatsapp_config_setChange an editable-after-connect setting on a connected number WITHOUT re-pairing. Today the only field is `proxy_url` — the SOCKS5/HTTPS proxy WhatsApp connects through (recommended to avoid IP bans). Owner/admin or the connection owner. - `account`: which number (id/wa_jid, phone, or label; omit if only one is connected). - `values`: e.g. { "proxy_url": "socks5://user:pass@host:port" }. An empty string CLEARS the field (e.g. { "proxy_url": "" } connects with no proxy); omit the key to keep the current value. The new value applies on the next (re)connection; the live session cache is invalida…
whatsapp_contacts_getread-onlyRead WhatsApp contacts. Actions: - list: search across contacts (query optional — substring on name/phone). Default limit 50. - get: full contact info by JID. [Flattened action: get]
whatsapp_contacts_listread-onlyRead WhatsApp contacts. Actions: - list: search across contacts (query optional — substring on name/phone). Default limit 50. - get: full contact info by JID. [Flattened action: list]
whatsapp_group_manage_createGroup lifecycle/admin (the connected account must be a group admin for most actions). Actions: - create: { name, participants[] } - leave: { group_jid } - update: { group_jid, name?, description? } - invite_link: { group_jid, link_action: 'get'|'revoke' } - join: { invite } (invite code or full invite link) - requests: { group_jid, req_action: 'list'|'approve'|'reject', users? } [Flattened action: create]
whatsapp_group_manage_invite_linkGroup lifecycle/admin (the connected account must be a group admin for most actions). Actions: - create: { name, participants[] } - leave: { group_jid } - update: { group_jid, name?, description? } - invite_link: { group_jid, link_action: 'get'|'revoke' } - join: { invite } (invite code or full invite link) - requests: { group_jid, req_action: 'list'|'approve'|'reject', users? } [Flattened action: invite_link]
whatsapp_group_manage_joinGroup lifecycle/admin (the connected account must be a group admin for most actions). Actions: - create: { name, participants[] } - leave: { group_jid } - update: { group_jid, name?, description? } - invite_link: { group_jid, link_action: 'get'|'revoke' } - join: { invite } (invite code or full invite link) - requests: { group_jid, req_action: 'list'|'approve'|'reject', users? } [Flattened action: join]
whatsapp_group_manage_leaveGroup lifecycle/admin (the connected account must be a group admin for most actions). Actions: - create: { name, participants[] } - leave: { group_jid } - update: { group_jid, name?, description? } - invite_link: { group_jid, link_action: 'get'|'revoke' } - join: { invite } (invite code or full invite link) - requests: { group_jid, req_action: 'list'|'approve'|'reject', users? } [Flattened action: leave]
whatsapp_group_manage_requestsGroup lifecycle/admin (the connected account must be a group admin for most actions). Actions: - create: { name, participants[] } - leave: { group_jid } - update: { group_jid, name?, description? } - invite_link: { group_jid, link_action: 'get'|'revoke' } - join: { invite } (invite code or full invite link) - requests: { group_jid, req_action: 'list'|'approve'|'reject', users? } [Flattened action: requests]
whatsapp_group_manage_updateGroup lifecycle/admin (the connected account must be a group admin for most actions). Actions: - create: { name, participants[] } - leave: { group_jid } - update: { group_jid, name?, description? } - invite_link: { group_jid, link_action: 'get'|'revoke' } - join: { invite } (invite code or full invite link) - requests: { group_jid, req_action: 'list'|'approve'|'reject', users? } [Flattened action: update]
whatsapp_group_membersread-onlyList the members of a WhatsApp group (live). Returns each participant's JID, phone, and admin/super-admin flag. Requires group_jid (…@g.us, from whatsapp_groups).
whatsapp_group_participants_addManage participants of a WhatsApp group (the connected account must be a group admin). action: 'remove' kicks members, 'promote' makes them admin, 'demote' removes admin, 'add' invites. Pass 1–50 phone numbers (+E164) or JIDs in `users`. [Flattened action: add]
whatsapp_group_participants_demoteManage participants of a WhatsApp group (the connected account must be a group admin). action: 'remove' kicks members, 'promote' makes them admin, 'demote' removes admin, 'add' invites. Pass 1–50 phone numbers (+E164) or JIDs in `users`. [Flattened action: demote]
whatsapp_group_participants_promoteManage participants of a WhatsApp group (the connected account must be a group admin). action: 'remove' kicks members, 'promote' makes them admin, 'demote' removes admin, 'add' invites. Pass 1–50 phone numbers (+E164) or JIDs in `users`. [Flattened action: promote]
whatsapp_group_participants_removeManage participants of a WhatsApp group (the connected account must be a group admin). action: 'remove' kicks members, 'promote' makes them admin, 'demote' removes admin, 'add' invites. Pass 1–50 phone numbers (+E164) or JIDs in `users`. [Flattened action: remove]
whatsapp_groupsread-onlyList WhatsApp groups the account belongs to — subject, jid, participants count, owner.
whatsapp_history_backfillRequest OLDER messages for a chat from your phone (on-demand history sync), extending what whatsapp_messages can read. Returns { status, messages_added }: - "done"/"partial": it pulled messages_added new messages — read them via whatsapp_messages (paginate with `before`). "partial" means WhatsApp stopped early; wait and retry for more. - "cooldown": you requested this chat <60s ago (retry_after_s tells you when). WhatsApp THROTTLES back-to-back requests — DO NOT retry in a loop; wait, then try once. - "timeout": the phone didn't deliver in time (offline or throttled) — already-synced history i…
whatsapp_history_coverageread-onlyShow how far back the LOCAL message archive reaches per chat (oldest_ts, newest_ts, message_count, status). Use it to find pagination boundaries for whatsapp_messages and to decide whether to pull more with whatsapp_history_backfill. Optional query (filter by name/JID), kind, limit, or a single chat_jid.
whatsapp_list_accountsread-onlyList WhatsApp accounts paired to this install — wa_jid, phone, label, proxy on/off, status.
whatsapp_message_deleteManage a message you can act on. Actions: - delete: { chat_jid, message_id, for_everyone? (default true) } — delete for everyone (your msg) or just for you - forward: { chat_jid, message_id, to } — forward a stored message to another chat - edit: { chat_jid, message_id, text } — edit one of your recent text messages [Flattened action: delete] Bulk support: accepts message_ids for batched execution.
whatsapp_message_editManage a message you can act on. Actions: - delete: { chat_jid, message_id, for_everyone? (default true) } — delete for everyone (your msg) or just for you - forward: { chat_jid, message_id, to } — forward a stored message to another chat - edit: { chat_jid, message_id, text } — edit one of your recent text messages [Flattened action: edit] Bulk support: accepts message_ids for batched execution.
whatsapp_message_forwardManage a message you can act on. Actions: - delete: { chat_jid, message_id, for_everyone? (default true) } — delete for everyone (your msg) or just for you - forward: { chat_jid, message_id, to } — forward a stored message to another chat - edit: { chat_jid, message_id, text } — edit one of your recent text messages [Flattened action: forward] Bulk support: accepts message_ids for batched execution.
whatsapp_messagesread-onlyList messages in a chat from LOCAL history. Requires chat_jid (from whatsapp_chats). Paginate backwards by passing the oldest message's timestamp as `before` (ISO 8601); `after` pages forward; `order` sorts. NOTE: only messages already synced locally are returned — to see how far back the archive goes use whatsapp_history_coverage, and to pull OLDER messages from your phone use whatsapp_history_backfill.
whatsapp_messages_writeMark messages as read in a chat. Requires chat_jid. Optional message_id (marks up to this message; omit to mark all unread). Bulk support: accepts message_ids for batched execution.
whatsapp_poll_createSend a poll or vote on one. Actions: - create: { to, name, options[] (2–12), selectable_count? } - vote: { chat_jid, message_id, options[] (the option texts to select) } [Flattened action: create] Bulk support: accepts message_ids for batched execution.
whatsapp_poll_voteSend a poll or vote on one. Actions: - create: { to, name, options[] (2–12), selectable_count? } - vote: { chat_jid, message_id, options[] (the option texts to select) } [Flattened action: vote] Bulk support: accepts message_ids for batched execution.
whatsapp_reactReact to a message with an emoji (or remove your reaction by passing an empty emoji). Requires chat_jid + message_id. Bulk support: accepts message_ids for batched execution.
whatsapp_searchread-onlyFull-text search across all stored messages (SQLite FTS5). Optional chat_jid to scope. Returns matches with context.
whatsapp_send_mediaSend a WhatsApp message (text or media). Actions: - text: { to, text, reply_to? } - media: { to, type ('image'|'video'|'audio'|'document'|'sticker'), media_url | media_base64, caption?, filename?, mimetype? } `to` accepts either a JID ('5511999999999@s.whatsapp.net', '<id>@g.us') or a plain phone (digits, country code included). For groups always use the '<id>@g.us' JID — get it from whatsapp_groups. [Flattened action: media]
whatsapp_send_textSend a WhatsApp message (text or media). Actions: - text: { to, text, reply_to? } - media: { to, type ('image'|'video'|'audio'|'document'|'sticker'), media_url | media_base64, caption?, filename?, mimetype? } `to` accepts either a JID ('5511999999999@s.whatsapp.net', '<id>@g.us') or a plain phone (digits, country code included). For groups always use the '<id>@g.us' JID — get it from whatsapp_groups. [Flattened action: text]
whatsapp_syncread-onlyRefresh this account's local data from WhatsApp — pulls recent messages and refreshes the groups/contacts lists into the local store. Call it BEFORE reading (chats/groups/messages/contacts/search) when results look stale or empty (e.g. right after connecting, or an account that hasn't synced recently). Connects live, so it may take ~20–60s. Returns { messages_stored }.
whatsapp_webhook_getread-onlyShow this WhatsApp install's outbound webhook: the current URL, the subscribed events (empty = all), include_result, and the catalog of subscribable events (available_events — e.g. whatsapp.message, whatsapp.reaction, and the whatsapp.* wildcard). Owner/admin only.
whatsapp_webhook_setSet (or remove) this WhatsApp install's outbound webhook. Owner/admin only. - To set: pass `url` (https only, not localhost). `events` is the list of subscribed events ("permissions") — e.g. ["whatsapp.message"], or ["whatsapp.*"] for every WhatsApp event, or [] / omit for ALL events. See available_events from whatsapp_webhook_get. `include_result` (default true) controls whether the tool result is included in tool.call payloads. `secret` is optional (reserved). - Subscribing to any whatsapp.* event makes the daemon hold a live connection per number and forward inbound messages to your URL. - …
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit
- Aug 21, 2026 (2 months ago)
- Last release
- Aug 21, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.mcp-dir/whatsapp-mcp- Version
- 0.1.0
- Auth
- Auth not stated
- License
- MIT
- Repository
- github.com/mcp-dir/whatsapp-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from mcp-dir
- 0.377score
DataJud (CNJ)
mcp-dir
Public lookup of Brazilian court cases (metadata + docket) via the CNJ/DataJud API.
ConnectorAFreshness: ARemote★ 4Claude Code +3 - 0.365score
Jus MCP
mcp-dir
Brazilian legal stack in one MCP: lawsuits, court publications, case law, tenders, certificates.
ConnectorBFreshness: BRemote★ 13Claude Code +3 - 0.360score
Omie
mcp-dir
Financial & accounting management on Omie (Brazil's leading cloud ERP), payables/receivables, financ
ConnectorBFreshness: BRemote★ 8Claude Code +3 - 0.355score
Instagram
mcp-dir
Instagram for AI agents: publish, read comments and DMs, insights, and engage from your account.
ConnectorBFreshness: BRemote★ 5Claude Code +3 - 0.349score
Tesla
mcp-dir
Tesla Fleet API for AI: send navigation destinations, read battery and location, run car commands.
ConnectorAFreshness: ARemoteClaude Code +3 - 0.346score
Nota Fiscal
mcp-dir
Issue and manage Brazilian service invoices (NFS-e) by chatting with your agent, platform-hosted, no
ConnectorBFreshness: BRemote★ 2Claude Code +3
Cite this page
WhatsApp MCP server. Agent Mart. https://agentmart.dev/connectors/mcp-dir-whatsapp-mcp (last updated 2026-10-24)