Your AI agent, now answering on your WhatsApp.
whatzmcp is a WhatsApp MCP server for people who run AI agents in Claude, Cursor, Codex or OpenClaw. It links your own number by QR code, the way WhatsApp Web does, so it is not the Business API. Your agent reads new messages, replies and follows up. Invite only for now; pricing is not published yet.
No code. Your own number. Unlink any time from your phone.
See the setup, about a minute per agentAnyone waiting on WhatsApp? Answer them, and nudge Daan about the quote.
wait_for_messages 200, 1 new, Sofiasend_message 202, Sofia + PDFsend_message 202, Daan, 2 of 3wait_for_messages 200, Sofia repliedsend_message 202, Sofiaget_message readDone. Sofia asked about Saturday for six, so I offered 10:00 or 14:00 and sent the rates. She picked 14:00 and has read the confirmation. Daan got a short nudge about the quote.
Sofia Reyesonline
Example conversation. You typed one sentence. Your agent called whatzmcp's tools to answer Sofia from your own number, send the PDF and nudge Daan.
It hears every message, answers with context, and knows when to stop.
Your agent stays the brain. It decides what to say; whatzmcp carries the messages to and from your number. whatzmcp never writes or sends a message on its own.
Picks up new messages as they arrive
Your agent keeps a line open with wait_for_messages and gets each new message the moment it lands, with who sent it and the text, photo or file. If the agent was closed, it catches up from where it left off. No server to run.
The details
- WaitingOne call holds open for up to 55 seconds and returns up to 50 messages.
- Missed nothingKeep the cursor and messages that came in while your agent was closed are picked up next time.
- Webhooks tooOptional: 9 signed events, from message received to read, failed and limit reached.



Answers with the whole conversation in mind
Before it replies, your agent can read the earlier messages in both directions, so the answer fits what was already said. It replies from your own number with send_message: text and a photo, video, audio file or document.
The details
- RepliesUp to 4,096 characters plus one attachment per message.
- To anyoneBy phone number in international format, or by contact.
- Delivery
get_messagesays sent, delivered, read, or failed with the reason, such as "not on WhatsApp". - History
GET /v1/messageson the REST API lists stored messages, newest first, up to 100 per call.
Kofi Mensahonline
Read last week's order first, then answered the photo.
Follows up, then waits for a reply
Ask your agent to chase a quote or a missing answer and it will. After three messages to someone who has not replied, sending to that person pauses until they write back. Nobody gets a fourth nudge from your number.
The details
- Rule3 messages to a person who has not replied, then it waits.
- STOPA STOP reply blocks any further message to that person.
- Your call
get_usageshows the sends and new people left today, before your agent sends.

Sent the quote for the kitchen jobMessage 1 of 3 without a reply
Read"Any questions about the quote? Happy to adjust the dates."Message 2 of 3
Delivered"Last check from me: should I keep the June slot for you?"Message 3 of 3
DeliveredWaiting for Daan to replyA fourth message is not sent until he writes back
Paused
The tools your agent sees
Add whatzmcp once and these show up in your agent's tool list. Your agent picks them; you just ask in plain words. Each tool answers with the status of the call and the result, so your agent always knows what happened.
| Tool | What it does |
|---|---|
| connect_whatsapp | Starts linking your number and returns a page with the QR code, or an 8 character pairing code. |
| list_accounts | Shows your linked number, its status and today's limits. |
| wait_for_messages | Waits for new messages, up to 55 seconds per call, and hands back a cursor to catch up later. |
| send_message | Sends text up to 4,096 characters plus one photo, video, audio file or document. |
| get_message | Says whether a message was sent, delivered, read, or failed with the reason. |
| get_usage | Shows the sends and new people left today. |
| GET /v1/messagesREST API only | Lists earlier messages in both directions, newest first, up to 100 per call. |
Want your agent on your own WhatsApp?Invite only for now. Join the list and we send your key and setup steps.
Get early accessLink your number, add it to your agent, ask in plain words.
About a minute per agent. No code and nothing to host. Your API key and your MCP address come with your early access invite.
Link your WhatsApp
Ask your agent to connect your number. It gets a link page with a QR code. On your phone: Linked devices, Link a device, scan. Your chats stay on your phone.
Add whatzmcp to your agent
One command or one config entry, with your key sent as a header. Pick your client in the panel.
Ask in your own words
"Check my WhatsApp and answer anyone waiting." Your agent does the rest within the limits below.
Link +44 7700 900123
connecting- Open WhatsApp on your phone
- Linked devices, then Link a device
- Point the camera at this code
Or type an 8 character pairing code instead: K7Q2M9XD
The code is short lived. If it runs out, your agent starts a new one.# add the server, key in a header claude mcp add --transport http whatzmcp "$WHATZMCP_MCP_URL" \ --header "X-API-Key: $WHATZMCP_API_KEY" # then, inside Claude Code /mcp
/mcp lists the whatzmcp tools. Your agent can now wait for messages, reply and check delivery.
// claude_desktop_config.json (needs Node.js) { "mcpServers": { "whatzmcp": { "command": "npx", "args": ["mcp-remote", "<your MCP address>", "--header", "X-API-Key:${KEY}"], "env": { "KEY": "<your API key>" } } } }
Accounts with the Claude request headers beta can add a custom connector instead.
// ~/.cursor/mcp.json { "mcpServers": { "whatzmcp": { "url": "<your MCP address>", "headers": { "X-API-Key": "<your API key>" } } } }
codex mcp add whatzmcp --url "$WHATZMCP_MCP_URL" \ --bearer-token-env-var WHATZMCP_API_KEY
Works in the Codex CLI, IDE extension and app.
# Settings, MCP, or in your config: mcp.servers.whatzmcp: transport "streamable-http", header X-API-Key # check the connection openclaw mcp doctor whatzmcp --probe
Use OpenClaw 2026.5.12 or later.
Check my WhatsApp and answer anyone waiting. Follow up with people who went quiet.
No server needed. Webhooks if you want them.
An agent like Claude or OpenClaw just waits for messages, so you never open a port. When something should react while no agent is running, such as an automation or your own backend, add a webhook and each event is posted to your https address.
- message.received
- message.sent
- message.delivered
- message.read
- message.failed
- account.connected
- account.disconnected
- account.restricted
- account.limit_reached
Signed with HMAC SHA-256 in the X-Webhook-Signature header. Send a test event, watch delivery health, and re-enable a webhook that paused after repeated failures.
See a message.received payload
message.received{
"event": "message.received",
"created_at": "2026-10-17T09:38:12.214Z",
"account_id": "Pn4kT7wQ2zX9cV1bN6mL",
"channel": "whatsapp_web",
"message": {
"id": "aB3dE5fG7hI9jK1lM2nO",
"direction": "inbound",
"text": "Can I move my appointment to Thursday?",
"media": null,
"status": "received",
"error": null
},
"contact": {
"id": "jk213msdfj1234asmf",
"phone": "+447700900456",
"name": "Marco Bellini"
}
}
"Will WhatsApp ban my number?" It can. These limits keep the risk low.
Nobody can promise an account will never be restricted. whatzmcp links your number the way WhatsApp Web does. It is unofficial, and it is not the WhatsApp Business API: no templates, no green tick. WhatsApp can disconnect or ban a number that sends unsolicited messages.
So these limits are built into every send, and no setting turns them off. They keep your agent behaving like a person answering their own phone, not a broadcast tool.
Before you ask for an invite: what whatzmcp will not do
- Write replies. It has no AI of its own and never sends on its own. Your agent decides every word.
- Bulk messaging. It is not a broadcast or blasting tool.
- Message someone after STOP. A STOP reply blocks further messages to that person from your number.
- Work with ChatGPT yet. ChatGPT connectors cannot send a key header; sign in is planned.
- Link more than one number per account during early access.
Limits on every account
Checked on our side before each message goes out, whatever agent sends it.
daily_send_cap and the seconds until the next day.Example day, as get_usage reports it.
| New people on a freshly linked number | 0first 2 active days, then about one more a day |
| Messages to one person who has not replied | 3then it waits |
| Same first message to people who never wrote, within 30 minutes | max 5more suspends sending until review |
| Connected WhatsApp numbers during early access | 1 |
Values as applied to every early access account, October 2026. A day is one UTC day. Replies to people who wrote to you first do not count against the new people limit.
Your side of the deal
- Open WhatsApp on your phone now and then. Phones that stay offline for a long time get their linked devices logged out.
- Not allowed: a public "ask me anything" bot for strangers, cold messages to bought or scraped lists, or spreading sends over several accounts to get around the limits.
Questions people search for before linking a number
Anything else? Ask when you join the early access list.
What is a WhatsApp MCP server?+
An MCP server gives an AI agent new tools. A WhatsApp MCP server lets the agent use WhatsApp: whatzmcp links your own number as a linked device, and your agent can see new messages, reply with text and one photo, video, audio file or document, check whether a message was delivered or read, and see how many sends it has left today. Your agent decides what to say; whatzmcp only sends and receives.
Does it use the WhatsApp Business API?+
No. whatzmcp links your own number as a device, the same way WhatsApp Web links a browser. That means no templates and no green tick, and it is unofficial, which is why every account has the limits shown above.
How do I connect Claude to WhatsApp?+
Link your WhatsApp number by QR code, then add whatzmcp to Claude with the MCP address and API key from your invite. In Claude desktop you add it through the claude_desktop_config.json file with the mcp-remote bridge, which needs Node.js. A custom connector with request headers also works on accounts that have that Claude beta.
Can Claude Code send and read WhatsApp messages?+
Yes. One claude mcp add command adds whatzmcp over HTTP with your key in a header, and /mcp then lists the tools. Claude Code can wait for new messages, reply by phone number or contact, send one attachment per message and check delivery: sent, delivered, read, or failed with a reason.
How do I connect OpenClaw to WhatsApp?+
In OpenClaw open Settings, then MCP, or add whatzmcp under mcp.servers with the streamable-http transport and the X-API-Key header. Check it with openclaw mcp doctor whatzmcp --probe. Use OpenClaw 2026.5.12 or later.
Will my WhatsApp number get banned if an AI agent uses it?+
Nobody can promise an account will never be restricted. whatzmcp is unofficial and is not the WhatsApp Business API, and WhatsApp can disconnect or ban a number used for unsolicited messages. To keep risk low, every account has limits no setting turns off: 50 messages and 10 new people a day, no new people on the first two active days of a freshly linked number, at most 3 messages to someone who has not replied, and a suspension if the same first message goes to more than 5 people who never wrote within 30 minutes. A STOP reply blocks further messages to that person.
Does it work with ChatGPT or Cursor?+
Cursor works: add whatzmcp to ~/.cursor/mcp.json with the url and a headers entry. ChatGPT does not work yet, because ChatGPT connectors cannot send a key header; sign in is planned. Claude Code, Claude desktop, Codex, OpenClaw and any MCP client that can send a header over Streamable HTTP work today.
Give your agent your WhatsApp, with the limits built in.
whatzmcp is invite only for now. Join the list and we will send your invite, API key and setup steps when your spot opens. Pricing is not published yet.