What you do with it
Once the endpoint is connected, WhatsApp is just another thing your assistant can read. You type in plain language; the client picks the tools. Here is what that looks like in practice.
Reading
Summarise what I missed in the apartment group since Friday, and list anything addressed to me.
The client calls list_chats, then list_messages with a date filter, and gives you five bullets instead of 300 unread messages.
Someone sent me an IBAN last year — which chat, and what was the number?
search_messages runs full-text search over your synced history and comes back with the message, the sender and the date.
Did we ever agree on a price for the job, or is that still open?
The assistant reads the thread in order and quotes the two messages the answer hangs on, instead of you scrolling on a phone.
Writing
Sending is off until you switch it on for your account. When it is on, one sentence is the whole interaction.
Message Tom: I'm running twenty minutes late, start without me.
search_contacts resolves “Tom”, send_message sends it. A good client shows you the text and the recipient before it goes out.
Read my last ten messages to this client, then answer their question about the deadline the same way I'd write it.
Reading and writing in one turn: the draft matches the thread's tone because the model just read the thread.
Write to +49 176 1234567: this is the electrician's number from the group, ask if Thursday works.
check_numbers_on_whatsapp confirms the number is registered, then send_message opens a conversation that never existed before.
Which customer messages from this week did nobody answer?
The assistant scans chats for the last inbound message per thread and hands you a shortlist — then sends the replies you approve.
Digging into history
Find where we agreed on the deposit and show me what was said right before and after.
search_messages finds the hit, get_message_context pulls the surrounding messages — because “yes, that works” means nothing on its own.
Someone sent a photo of the meter reading in July. What number is on it?
search_messages narrows it down, get_media fetches that one image and hands it to the model to read.
Who is actually in the building group, and who can add people?
list_groups and get_group return subject, participants and admins — the things a chat list does not show.
Combined with your other tools
Any appointment agreed in a chat this week that never made it into my calendar?
WhatsApp is one MCP server, your calendar is another. The client reads both and reconciles them.
A scheduled agent checks every morning whether a booking request came in overnight, files it, and tells you only when something actually needs a decision.
It is a plain MCP endpoint over HTTP. Anything that speaks the protocol — a script, a bot, a cron job — can use it with a bearer token and no SDK.
Connecting a client
# Claude Code claude mcp add --transport http whatsapp https://wacli.me/mcp \ --header "Authorization: Bearer <your-token>" # Claude Desktop / ChatGPT / any HTTP-MCP client: add a custom connector # URL https://wacli.me/mcp # Header Authorization: Bearer <your-token>
Client support varies. Remote MCP servers with a bearer header work today in Claude Code and any HTTP-MCP client; other apps are adding remote-connector support at their own pace, and some accept OAuth only. If yours does not take a header yet, run the gateway locally and connect over stdio.