MCP serverio.github.mcp-dir/whatsapp-mcp
Connect a personal/Business WhatsApp account via QR pairing (multi-device, like WhatsApp Web).
Read more
Connect a personal/Business WhatsApp account via QR pairing (multi-device, like WhatsApp Web). SendOverview
Score?
UNRATED 0.672
of what a free look can see, on 30 looks
Looks
34
last 2 hr ago
Tools
47
changed 21 hr ago
More info
URL
api.mcp.ai/p_whatsapp
streamable-http
Says it is
mcp-ai 0.9.358
protocol 2025-06-18
In the record since
32 days ago
Among servers18,413 with a card
0median 0.606 · this server 0.672 · highest on record 0.8561
Toolsfrom sha256:e0f3304225…b370d7 · +0 −0 21 hr ago
| Tool | Schema |
|---|---|
| authenticate MCP.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 |
input · no output |
| connect Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the tool |
input · no output |
| marketplace The 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", |
input · no output |
| report_bug Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction. |
input · no output |
| show_version Show the current MCP platform and adapter versions. |
input · no output |
| toolkit_info Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes. |
input · no output |
| whatsapp_chat_archive Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid.
[Flattened action: archive] |
input · no output |
| whatsapp_chat_metadata Get metadata for a single chat (subject/name, archived/pinned/muted state, unread count, timestamps). Requires chat_jid. |
input · no output |
| whatsapp_chat_mute Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid.
[Flattened action: mute] |
input · no output |
| whatsapp_chat_pin Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid.
[Flattened action: pin] |
input · no output |
| whatsapp_chat_unarchive Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid.
[Flattened action: unarchive] |
input · no output |
| whatsapp_chat_unmute Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid.
[Flattened action: unmute] |
input · no output |
| whatsapp_chat_unpin Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid.
[Flattened action: unpin] |
input · no output |
| whatsapp_chats List WhatsApp chats (individual + group). Sorted by most recent activity. |
input · no output |
| whatsapp_config_get Show 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). |
input · no output |
| whatsapp_config_set Change 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 (recommend |
input · no output |
| whatsapp_contacts_get Read WhatsApp contacts.
Actions:
- list: search across contacts (query optional — substring on name/phone). Default limit 50.
- get: full contact info by JID.
[Flattened action: g |
input · no output |
| whatsapp_contacts_list Read WhatsApp contacts.
Actions:
- list: search across contacts (query optional — substring on name/phone). Default limit 50.
- get: full contact info by JID.
[Flattened action: l |
input · no output |
| whatsapp_group_manage_create Group lifecycle/admin (the connected account must be a group admin for most actions).
Actions:
- create: { name, participants[] }
- leave: { group_jid }
- update: { |
input · no output |
| whatsapp_group_manage_invite_link Group lifecycle/admin (the connected account must be a group admin for most actions).
Actions:
- create: { name, participants[] }
- leave: { group_jid }
- update: { |
input · no output |
| whatsapp_group_manage_join Group lifecycle/admin (the connected account must be a group admin for most actions).
Actions:
- create: { name, participants[] }
- leave: { group_jid }
- update: { |
input · no output |
| whatsapp_group_manage_leave Group lifecycle/admin (the connected account must be a group admin for most actions).
Actions:
- create: { name, participants[] }
- leave: { group_jid }
- update: { |
input · no output |
| whatsapp_group_manage_requests Group lifecycle/admin (the connected account must be a group admin for most actions).
Actions:
- create: { name, participants[] }
- leave: { group_jid }
- update: { |
input · no output |
| whatsapp_group_manage_update Group lifecycle/admin (the connected account must be a group admin for most actions).
Actions:
- create: { name, participants[] }
- leave: { group_jid }
- update: { |
input · no output |
| whatsapp_group_members List 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). |
input · no output |
| whatsapp_group_participants_add Manage 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' inv |
input · no output |
| whatsapp_group_participants_demote Manage 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' inv |
input · no output |
| whatsapp_group_participants_promote Manage 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' inv |
input · no output |
| whatsapp_group_participants_remove Manage 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' inv |
input · no output |
| whatsapp_groups List WhatsApp groups the account belongs to — subject, jid, participants count, owner. |
input · no output |
| whatsapp_history_backfill Request 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 pu |
input · no output |
| whatsapp_history_coverage Show 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 |
input · no output |
| whatsapp_list_accounts List WhatsApp accounts paired to this install — wa_jid, phone, label, proxy on/off, status. |
input · no output |
| whatsapp_message_delete Manage 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, |
input · no output |
| whatsapp_message_edit Manage 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, |
input · no output |
| whatsapp_message_forward Manage 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, |
input · no output |
| whatsapp_messages List 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` pa |
input · no output |
| whatsapp_messages_write Mark 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 executio |
input · no output |
| whatsapp_poll_create Send 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) }
[Flatte |
input · no output |
| whatsapp_poll_vote Send 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) }
[Flatte |
input · no output |
| whatsapp_react React 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. |
input · no output |
| whatsapp_search Full-text search across all stored messages (SQLite FTS5). Optional chat_jid to scope. Returns matches with context. |
input · no output |
| whatsapp_send_media Send a WhatsApp message (text or media).
Actions:
- text: { to, text, reply_to? }
- media: { to, type ('image'|'video'|'audio'|'document'|'sticker'),
media_url | media_ |
input · no output |
| whatsapp_send_text Send a WhatsApp message (text or media).
Actions:
- text: { to, text, reply_to? }
- media: { to, type ('image'|'video'|'audio'|'document'|'sticker'),
media_url | media_ |
input · no output |
| whatsapp_sync Refresh 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/ |
input · no output |
| whatsapp_webhook_get Show 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. |
input · no output |
| whatsapp_webhook_set Set (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 ("permission |
input · no output |
Verify it yourself
npx teppi-check https://api.mcp.ai/p_whatsappcurl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M1FZ2J8K2CK27ZBPKEHNDHBR