WhatsApp Read Agent MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WHATSAPP_DATA_DIR | Yes | Absolute path to the data directory containing the WhatsApp archive. | |
| WHATSAPP_MEDIA_DIR | Yes | Absolute path to the media directory containing downloaded attachments. | |
| WHATSAPP_ATTACHMENT_ALLOWLIST | No | Optional comma-separated list of JIDs allowed for attachment access. Empty string allows all. |
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 |
|---|---|
| get_sync_statusA | Report the local archive status: whether a device is linked, when it last synced, and how many chats/messages are archived. Reads nothing from WhatsApp. |
| list_chatsA | List archived chats (1:1 and group), ordered deterministically by name. Optionally filter by a name substring. Paginate with the returned cursor. |
| find_chats_by_nameA | Find chats whose resolved name matches (case-insensitive substring). Use this to locate a named contact or group, e.g. before reading their full history. |
| get_historyA | Read a deterministic page of a chat's message history. direction "forward" reads oldest→newest; "backward" scrolls up (newest→oldest). Returned messages are always chronological; pass the cursor back to continue. Iterate until hasMore is false for complete readback. |
| get_messageA | Fetch a single archived message by chat JID and message id, with exact timestamp and content. |
| list_attachmentsA | List archived messages in a chat that carry an attachment (image/video/audio/document/sticker), with metadata and whether bytes are downloaded. Deterministic forward pagination. |
| get_attachmentA | Return an approved attachment's locally-archived bytes. Requires approved: true for the specific message (and passes the operator allowlist, if configured). Never fetches from WhatsApp — only surfaces bytes the collector already downloaded. |
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 7 tools
Most tools are distinct, but list_chats and find_chats_by_name overlap since list_chats already supports name-substring filtering. This could confuse an agent choosing between them, though descriptions help clarify the intended use case.
Tool names consistently follow a verb_noun pattern with lowercase and underscores. Minor deviation: list_chats vs find_chats_by_name for similar operations, but overall the pattern is readable and predictable.
Seven tools is well-scoped for a read-only WhatsApp archive agent. Each tool covers a specific aspect (sync status, chat listing, history, single messages, attachments), and none feel redundant or missing at this scale.
The tool set provides full coverage for reading archived WhatsApp data: sync status, chat discovery, full message history retrieval, individual message access, and attachment handling. No significant operations are missing for the stated purpose of a read agent.