Connect a personal/Business WhatsApp account via QR pairing (multi-device, like WhatsApp Web). Send
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
claude mcp add --transport http whatsapp 'https://api.mcp.ai/p_whatsapp'
{
"mcpServers": {
"whatsapp": {
"type": "http",
"url": "https://api.mcp.ai/p_whatsapp"
}
}
}
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
WhatsApp para Claude, ChatGPT e agentes de IA
Conecte uma conta de WhatsApp pessoal/Business via pareamento por QR (multi-device, como o WhatsApp Web). Envie e leia mensagens, listas chats, contatos, grupos e faça busca full-text no histórico. Suporte opcional a proxy SOCKS5/HTTPS por conexão, recomendado para evitar bloqueios em IPs de datacenter (Cloudflare/AWS).
- 📊 41 ferramentas
- ✏️ Leitura e escrita
- 💬 Funciona com qualquer cliente MCP: Claude Desktop, Cursor, VS Code, Cline, Continue
- 🔑 Login via magic-link (sem senha)
English version · Documentação completa · Skill pra agentes
Instalar em 1 clique
Claude (Web e Desktop)
A Anthropic unificou a instalação de MCPs em claude.ai/customize/connectors. O mesmo link serve pra Claude Web e Claude Desktop (basta estar logado):
Manual (se o deeplink não abrir): claude.ai/customize/connectors → + → Adicionar conector personalizado → cole Nome WhatsApp e URL https://api.mcp.ai/p_whatsapp.
Cursor
➕ Instalar WhatsApp no Cursor
VS Code (Copilot Chat)
➕ Instalar WhatsApp no VS Code
ChatGPT, Manus, OpenClaw e mais 40+ clientes
Funciona em qualquer cliente MCP que suporte MCP over HTTP. A URL do servidor é sempre:
https://api.mcp.ai/p_whatsapp
Detalhes por cliente: INSTALL.md.
Exemplos de uso
Liste meus últimos 20 chats no WhatsApp
Busque no histórico todas as mensagens que mencionem 'reunião'
Envie 'Cheguei!' para +5511999999999
41 ferramentas disponíveis
| Tool | Descrição |
|---|---|
whatsapp_list_accounts | List WhatsApp accounts paired to this install — wa_jid, phone, label, proxy on/off, status. |
whatsapp_sync | Refresh this account's local data from WhatsApp — pulls recent messages and refreshes the groups/contacts lists into the local store. |
whatsapp_send_text | Send a WhatsApp message (text or media). |
whatsapp_send_media | Send a WhatsApp message (text or media). |
whatsapp_chats | List WhatsApp chats (individual + group). |
whatsapp_messages | List messages in a chat from LOCAL history. |
whatsapp_messages_write | Mark messages as read in a chat. |
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: list] |
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: get] |
whatsapp_groups | List WhatsApp groups the account belongs to — subject, jid, participants count, owner. |
whatsapp_group_members | List the members of a WhatsApp group (live). |
whatsapp_group_participants_add | Manage participants of a WhatsApp group (the connected account must be a group admin). |
whatsapp_group_participants_remove | Manage participants of a WhatsApp group (the connected account must be a group admin). |
whatsapp_group_participants_promote | Manage participants of a WhatsApp group (the connected account must be a group admin). |
whatsapp_group_participants_demote | Manage participants of a WhatsApp group (the connected account must be a group admin). |
whatsapp_react | React to a message with an emoji (or remove your reaction by passing an empty emoji). |
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) } [Flattened action: create] Bulk support: accept… |
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) } [Flattened action: vote] Bulk support: accepts… |
whatsapp_message_delete | Manage a message you can act on. |
whatsapp_message_forward | Manage a message you can act on. |
whatsapp_message_edit | Manage a message you can act on. |
whatsapp_chat_metadata | Get metadata for a single chat (subject/name, archived/pinned/muted state, unread count, timestamps). |
whatsapp_chat_archive | Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: archive] |
whatsapp_chat_unarchive | Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: unarchive] |
whatsapp_chat_pin | Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: pin] |
whatsapp_chat_unpin | Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: unpin] |
whatsapp_chat_mute | Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: mute] |
whatsapp_chat_unmute | Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: unmute] |
whatsapp_group_manage_create | Group lifecycle/admin (the connected account must be a group admin for most actions). |
whatsapp_group_manage_leave | Group lifecycle/admin (the connected account must be a group admin for most actions). |
whatsapp_group_manage_update | Group lifecycle/admin (the connected account must be a group admin for most actions). |
whatsapp_group_manage_invite_link | Group lifecycle/admin (the connected account must be a group admin for most actions). |
whatsapp_group_manage_join | Group lifecycle/admin (the connected account must be a group admin for most actions). |
whatsapp_group_manage_requests | Group lifecycle/admin (the connected account must be a group admin for most actions). |
whatsapp_search | Full-text search across all stored messages (SQLite FTS5). |
whatsapp_history_coverage | Show how far back the LOCAL message archive reaches per chat (oldest_ts, newest_ts, message_count, status). |
whatsapp_history_backfill | Request OLDER messages for a chat from your phone (on-demand history sync), extending what whatsapp_messages can read. |
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. |
whatsapp_webhook_set | Set (or remove) this WhatsApp install's outbound webhook. |
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). |
whatsapp_config_set | Change an editable-after-connect setting on a connected number WITHOUT re-pairing. |
Detalhe de cada tool: docs/ferramentas.md
Preços
Cobrança por conexão ativa. Veja docs/precos.md.
Privacidade & LGPD
- Sub-processadores: o LLM host que você escolher (Claude, ChatGPT, Cursor, agente próprio). Lista completa em docs/privacidade-lgpd.md.
- Os dados retornados pelas tools são enviados ao LLM host que você escolher, sub-processador fora do nosso controle. Recomendamos planos com opt-out de treinamento.
Perguntas frequentes
O servidor é open source? O servidor é proprietário (hosted). Este repositório é o wrapper público com manifestos, docs e skills — tudo MIT.
Posso usar com agente próprio (não Claude/Cursor)?
Sim — qualquer cliente que suporte MCP over HTTP. URL: https://api.mcp.ai/p_whatsapp.
Suporte
Licença
MIT — veja LICENSE. O servidor MCP em api.mcp.ai/p_whatsapp é proprietário (hosted); este repositório (manifestos, docs, skills) é MIT.
Frequently asked questions
What is WhatsApp?
Connect a personal/Business WhatsApp account via QR pairing (multi-device, like WhatsApp Web). Send
How do I install WhatsApp?
It runs as a remote server. In Claude Code: claude mcp add --transport http whatsapp 'https://api.mcp.ai/p_whatsapp'. For other clients, paste the JSON configuration from this page into their MCP settings.
Does WhatsApp need an API key?
Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.
Is WhatsApp open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains WhatsApp?
It is published by mcp-dir. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.