MCP server for interacting with your LINE Official Account
WhatsApp is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Connect a personal/Business WhatsApp account via QR pairing (multi-device, like WhatsApp Web). Send
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http mcp-dir-whatsapp-mcp https://api.mcp.ai/p_whatsapp
# 2 — ask your agent for something these tools do
# whatsapp_list_accounts, whatsapp_sync, whatsapp_send_text and 38 more
WhatsApp costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http mcp-dir-whatsapp-mcp https://api.mcp.ai/p_whatsappReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
41 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
List WhatsApp accounts paired to this install — wa_jid, phone, label, proxy on/off, status.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| account | string | no | — |
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/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 }.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| account | string | no | — |
Send 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| to | string | yes | — |
| text | string | no | — |
| reply_to | string | no | — |
| type | string | no | — |
| media_url | string | no | — |
| media_base64 | string | no | — |
| caption | string | no | — |
| filename | string | no | — |
| mimetype | string | no | — |
| account | string | no | — |
Send 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| to | string | yes | — |
| text | string | no | — |
| reply_to | string | no | — |
| type | string | no | — |
| media_url | string | no | — |
| media_base64 | string | no | — |
| caption | string | no | — |
| filename | string | no | — |
| mimetype | string | no | — |
| account | string | no | — |
List WhatsApp chats (individual + group). Sorted by most recent activity.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | number | no | — |
| archived | boolean | no | — |
| account | string | no | — |
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 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_ba
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chat_jid | string | yes | — |
| before | string | no | — |
| after | string | no | — |
| since | string | no | — |
| order | string | no | — |
| limit | number | no | — |
| account | string | no | — |
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 execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chat_jid | string | yes | — |
| message_id | string | no | — |
| account | string | no | — |
| message_ids | array | no | — |
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: list]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | — |
| limit | number | no | — |
| jid | string | no | — |
| account | string | no | — |
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: get]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | — |
| limit | number | no | — |
| jid | string | no | — |
| account | string | no | — |
List WhatsApp groups the account belongs to — subject, jid, participants count, owner.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| account | string | no | — |
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).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| group_jid | string | yes | — |
| account | string | no | — |
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' invites. Pass 1–50 phone numbers (+E164) or JIDs in users. [Flattened action: add]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| group_jid | string | yes | — |
| users | array | yes | — |
| account | string | no | — |
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' invites. Pass 1–50 phone numbers (+E164) or JIDs in users. [Flattened action: remove]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| group_jid | string | yes | — |
| users | array | yes | — |
| account | string | no | — |
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' invites. Pass 1–50 phone numbers (+E164) or JIDs in users. [Flattened action: promote]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| group_jid | string | yes | — |
| users | array | yes | — |
| account | string | no | — |
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' invites. Pass 1–50 phone numbers (+E164) or JIDs in users. [Flattened action: demote]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| group_jid | string | yes | — |
| users | array | yes | — |
| account | string | no | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chat_jid | string | yes | — |
| message_id | string | yes | — |
| emoji | string | no | — |
| account | string | no | — |
| message_ids | array | no | — |
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) } [Flattened action: create] Bulk support: accepts message_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| to | string | no | — |
| name | string | no | — |
| chat_jid | string | no | — |
| message_id | string | no | — |
| options | array | yes | — |
| selectable_count | number | no | — |
| account | string | no | — |
| message_ids | array | no | — |
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) } [Flattened action: vote] Bulk support: accepts message_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| to | string | no | — |
| name | string | no | — |
| chat_jid | string | no | — |
| message_id | string | no | — |
| options | array | yes | — |
| selectable_count | number | no | — |
| account | string | no | — |
| message_ids | array | no | — |
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, 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 exe
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chat_jid | string | yes | — |
| message_id | string | yes | — |
| for_everyone | boolean | no | — |
| to | string | no | — |
| text | string | no | — |
| account | string | no | — |
| message_ids | array | no | — |
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, 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 ex
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chat_jid | string | yes | — |
| message_id | string | yes | — |
| for_everyone | boolean | no | — |
| to | string | no | — |
| text | string | no | — |
| account | string | no | — |
| message_ids | array | no | — |
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, 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 execu
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chat_jid | string | yes | — |
| message_id | string | yes | — |
| for_everyone | boolean | no | — |
| to | string | no | — |
| text | string | no | — |
| account | string | no | — |
| message_ids | array | no | — |
Get metadata for a single chat (subject/name, archived/pinned/muted state, unread count, timestamps). Requires chat_jid.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chat_jid | string | yes | — |
| account | string | no | — |
Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: archive]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chat_jid | string | yes | — |
| duration_secs | number | no | — |
| account | string | no | — |
Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: unarchive]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chat_jid | string | yes | — |
| duration_secs | number | no | — |
| account | string | no | — |
Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: pin]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chat_jid | string | yes | — |
| duration_secs | number | no | — |
| account | string | no | — |
Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: unpin]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chat_jid | string | yes | — |
| duration_secs | number | no | — |
| account | string | no | — |
Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: mute]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chat_jid | string | yes | — |
| duration_secs | number | no | — |
| account | string | no | — |
Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: unmute]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chat_jid | string | yes | — |
| duration_secs | number | no | — |
| account | string | no | — |
Group 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',
| Parameter | Type | Required | Notes |
|---|---|---|---|
| group_jid | string | no | — |
| name | string | no | — |
| description | string | no | — |
| participants | array | no | — |
| link_action | string | no | — |
| invite | string | no | — |
| req_action | string | no | — |
| users | array | no | — |
| account | string | no | — |
Group 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',
| Parameter | Type | Required | Notes |
|---|---|---|---|
| group_jid | string | no | — |
| name | string | no | — |
| description | string | no | — |
| participants | array | no | — |
| link_action | string | no | — |
| invite | string | no | — |
| req_action | string | no | — |
| users | array | no | — |
| account | string | no | — |
Group 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',
| Parameter | Type | Required | Notes |
|---|---|---|---|
| group_jid | string | no | — |
| name | string | no | — |
| description | string | no | — |
| participants | array | no | — |
| link_action | string | no | — |
| invite | string | no | — |
| req_action | string | no | — |
| users | array | no | — |
| account | string | no | — |
Group 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',
| Parameter | Type | Required | Notes |
|---|---|---|---|
| group_jid | string | no | — |
| name | string | no | — |
| description | string | no | — |
| participants | array | no | — |
| link_action | string | no | — |
| invite | string | no | — |
| req_action | string | no | — |
| users | array | no | — |
| account | string | no | — |
Group 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',
| Parameter | Type | Required | Notes |
|---|---|---|---|
| group_jid | string | no | — |
| name | string | no | — |
| description | string | no | — |
| participants | array | no | — |
| link_action | string | no | — |
| invite | string | no | — |
| req_action | string | no | — |
| users | array | no | — |
| account | string | no | — |
Group 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',
| Parameter | Type | Required | Notes |
|---|---|---|---|
| group_jid | string | no | — |
| name | string | no | — |
| description | string | no | — |
| participants | array | no | — |
| link_action | string | no | — |
| invite | string | no | — |
| req_action | string | no | — |
| users | array | no | — |
| account | string | no | — |
Full-text search across all stored messages (SQLite FTS5). Optional chat_jid to scope. Returns matches with context.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | — |
| chat_jid | string | no | — |
| limit | number | no | — |
| account | string | no | — |
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 whether to pull more with whatsapp_history_backfill. Optional query (filter by name/JID), kind, limit, or a single chat_jid.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | — |
| kind | string | no | — |
| limit | number | no | — |
| chat_jid | string | no | — |
| account | string | no | — |
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 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chat_jid | string | yes | — |
| count | number | no | — |
| requests | number | no | — |
| account | string | no | — |
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. whatsapp.message, whatsapp.reaction, and the whatsapp.* wildcard). Owner/admin only.
No parameter schema on file.
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 ("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 i
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | string | no | — |
| events | array | no | — |
| include_result | boolean | no | — |
| secret | string | no | — |
| remove | boolean | no | — |
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). Owner/admin or the connection owner.
No parameter schema on file.
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 (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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| account | string | no | — |
| values | object | yes | — |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install WhatsApp or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither: the repository linked on this page is where this record was collected from, not a copy of what the address serves, so it is not graded in its place. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 0.1.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish WhatsApp can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.