whatsapp-mcp-free
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WA_LOG_LEVEL | No | Log level (e.g., 'debug' for Baileys logs) | warn |
| WHATSAPP_AI_ALLOW | No | Comma-separated phone numbers with full access; empty = all allowed | |
| WHATSAPP_AUTH_DIR | No | Baileys auth + store cache directory | ./wa-auth |
| WHATSAPP_AI_MAXLEN | No | Maximum prompt length | 2000 |
| WHATSAPP_AI_PREFIX | No | Prefix to trigger AI inbox (case-insensitive) | /Wa.p |
| WHATSAPP_HTTP_HOST | No | HTTP bind host | 127.0.0.1 |
| WHATSAPP_HTTP_PATH | No | MCP endpoint path | /mcp |
| WHATSAPP_HTTP_PORT | No | HTTP port | 8787 |
| WHATSAPP_AI_ENABLED | No | Set to '0' to disable AI inbox | 1 |
| WHATSAPP_AI_COOLDOWN_S | No | Cooldown seconds per sender | 10 |
| WHATSAPP_AI_REACT_DONE | No | Reaction emoji when reply is sent; empty = disabled | ✅ |
| WHATSAPP_MCP_TRANSPORT | No | Transport mode: 'stdio' or 'http' | stdio |
| WHATSAPP_AI_REACT_QUEUE | No | Reaction emoji when message is queued; empty = disabled | 👀 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| connection_statusB | WhatsApp connection state + logged-in JID |
| auth_qrA | Get the latest WhatsApp pairing QR (also printed on stderr). Scan with WhatsApp > Linked Devices. |
| pingB | Ping MCP server: balas pong + jam server + status koneksi WA |
| doctorB | Diagnostik WA: koneksi, creds, store, versi, antrean AI |
| helpA | Panduan pakai whatsapp-mcp-free: tools, /Wa.p, anti-ban, troubleshooting |
| list_chatsC | List chats sorted by recent activity |
| list_groupsB | List WhatsApp groups only |
| list_newslettersA | List followed WhatsApp channels (newsletters) with live names. Falls back to cache when offline. |
| newsletter_metadataB | Check one channel: name, description, subscribers, verification |
| newsletter_followC | Follow a channel. Requires confirm=true. |
| newsletter_unfollowA | Unfollow a channel. Requires confirm=true. |
| newsletter_muteA | Mute/unmute a channel. Requires confirm=true. |
| group_metadataB | Check one group: subject, participants, admins, timestamps |
| group_list_liveB | List all participating groups with live names (subject, size). Falls back to cache when offline. |
| group_leaveA | Leave a group. Requires confirm=true. Cannot be undone by bot. |
| list_messagesB | Recent messages from one chat (jid or phone number) |
| search_messagesB | Substring search across cached messages |
| search_contactsA | Find contacts by name or phone fragment |
| resolve_lidA | Ubah LID acak jadi nowa + nama kontak (cache dulu, live bila perlu) |
| send_messageA | Send a text message. Requires confirm=true. Add 2s gap between sends to avoid bans. |
| send_fileB | Send a local file as image/video/audio/document. Requires confirm=true. |
| fetch_status_textB | Check contact About/status text (fetchStatus). Input phone numbers or JIDs. |
| list_statusA | List cached Status/stories (status@broadcast), mine + contacts seen this session |
| post_statusA | Buat Status/story teks (atau gambar/video jika filePath diisi). Requires confirm=true. |
| delete_statusA | Hapus Status/story milik sendiri via message id. Requires confirm=true. |
| ai_configB | Lihat config prefix AI (/Wa.p), allowlist, react, cooldown, dan jumlah antrean |
| ai_inboxA | Antrean prompt /Wa.p dari WA untuk dijawab agent. Poll ini tiap giliran. |
| ai_replyA | Jawab antrean /Wa.p: kirim ke chat asal + tandai answered. Requires confirm=true. Jeda 2s antar kirim. |
| ai_clearB | Bersihkan antrean AI. answered-only default true. Requires confirm=true. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 29 tools
Most tools target distinct resources and actions, but there is clear overlap among connection_status, ping, and doctor, as well as between list_groups and group_list_live. Descriptions help somewhat, but an agent could easily pick the wrong diagnostic or group-list tool.
Names are mostly snake_case, but patterns are mixed: list_chats and list_groups coexist with group_list_live, while bare names like ping, doctor, and help break the verb_noun style. It remains readable, but the naming convention is not consistently applied.
At 29 tools, the surface is above the 25+ threshold and feels heavy for a WhatsApp MCP, especially with several overlapping health-check and group-list utilities. A more focused set could cover the same workflows with fewer near-duplicate tools.
The server covers connection, messaging, groups, newsletters, status, and AI queue workflows, but notable lifecycle operations are missing: no group creation or participant management, no message edit/delete, and no read/seen actions. Agents can work around some gaps, but create/get without update/delete leaves dead ends.