WhatsApp MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WHATSAPP_ALLOWLIST | No | Comma-separated WhatsApp JIDs used as an allowlist. Required for `send_message` and `send_media`; read tools remain available with an empty allowlist. | |
| WHATSAPP_SENDING_ENABLED | No | Set to `true` to explicitly enable the outbound send tools (`send_message` and `send_media`). Disabled by default. | |
| WHATSAPP_OUTBOUND_MEDIA_DIRS | No | Directories that outbound media files must resolve to. Default: `./outbox`. | ./outbox |
| WHATSAPP_MAX_OUTBOUND_MEDIA_BYTES | No | Maximum allowed size for outbound media in bytes. Default: 64 MiB (67108864). | 67108864 |
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 | Show local pairing and connection state. QR is written to the configured local file. |
| list_chatsC | List chats visible in this local session cache. |
| search_messagesB | Search locally cached message text. This never sends messages. |
| read_messagesB | Read recent locally cached messages from one allowlisted chat. |
| download_mediaB | Download media from a locally cached allowlisted message to the configured local directory. |
| fetch_all_chatsB | List ALL chats visible in the local session cache (not capped by the default list). |
| fetch_message_historyA | Pull older messages for an allowlisted chat using Baileys fetchMessageHistory. Use beforeMessageId to page backward. |
| send_messageB | Send a text message to an allowlisted chat. Requires WHATSAPP_SENDING_ENABLED=true. |
| send_mediaA | Send an image, video, audio, document, or sticker from a regular file inside WHATSAPP_OUTBOUND_MEDIA_DIRS to an allowlisted chat. Requires WHATSAPP_SENDING_ENABLED=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 9 tools
Most tools target distinct operations, but list_chats vs fetch_all_chats and read_messages vs fetch_message_history have overlapping purposes. Their descriptions clarify the differences (default-capped vs all chats, recent vs older history), so misselection is possible but manageable.
Nearly all tools follow a consistent snake_case verb_noun pattern: list_chats, search_messages, read_messages, send_message, etc. Minor deviations are fetch_all_chats vs list_chats for similar listing actions and connection_status lacking a clear verb.
Nine tools is well-scoped for a local WhatsApp MCP server. Each tool covers a distinct capability such as connection status, chat listing, message reading/searching, media handling, and sending.
The server covers core messaging workflows: connection state, chat discovery, message reading/searching/history, media download, and guarded sending. Some gaps remain, such as contact/group metadata, message reactions, or chat creation, but the essential read/send surface is present.