MCP server for AI agents
Wabot runs a Model Context Protocol server. Once you connect it, an AI agent can create templates, send WhatsApp messages, read replies and build simple automations in your account.
| URL | https://api.wabot.shop/mcp (Streamable HTTP) |
| Auth | Your Client ID and Client Secret, sent as headers |
| Rate limit | 60 requests per minute per Client ID |
Connect
Section titled “Connect”Copy your credentials from Developer → Developer Credentials. That page also has a Copy MCP config button.
Open Settings → MCP, paste the following into mcp.json, then restart Cursor.
{ "mcpServers": { "wabot": { "url": "https://api.wabot.shop/mcp", "headers": { "clientid": "<Client ID>", "clientsecret": "<Client Secret>" } } }}Add a remote MCP server with the URL https://api.wabot.shop/mcp and two headers: clientid and clientsecret.
For Claude Code:
claude mcp add --transport http wabot https://api.wabot.shop/mcp \ --header "clientid: <Client ID>" --header "clientsecret: <Client Secret>"Add the same URL and the clientid / clientsecret headers in your client’s MCP or connectors settings.
Try it
Section titled “Try it”Once connected, ask your agent something like:
- “List my WhatsApp numbers and approved templates.”
- “Create a utility template called
order_shippedthat says ‘Hi{{name}}, your order has shipped.’ and tell me when it’s approved.” - “Send the
order_shippedtemplate to +91 94002 94110 with name Asha, then wait for her reply.” - “Create an automation: when someone sends ‘price’, reply with the
price_listtemplate.”
Recommended agent flow
Section titled “Recommended agent flow”get_accountorlist_channelsgets thewhatsappPhoneId.find_contact, orcreate_contactif the contact doesn’t exist.send_template_messagefor a first message or when more than 24 hours have passed.send_session_messagewhile the 24-hour window is open.- To create a new template, call
create_template, then callget_template_statuswithsync: trueuntil it isAPPROVED. - To receive replies, call
subscribe_repliesfor live notifications, orwait_for_replyfor a one-off wait.
Account
Section titled “Account”| Tool | What it does |
|---|---|
get_account |
Organisation details and connected phone numbers |
list_channels |
Enabled WhatsApp numbers |
Templates
Section titled “Templates”| Tool | Parameters |
|---|---|
list_templates |
status?, search?, page?, pageSize? |
get_template |
name |
create_template |
template_name, category, language, whatsappPhoneId, components, categoryChangeAllowed? |
get_template_status |
template_name, sync? (fetch the latest status from Meta first) |
update_template |
template_name, body |
Contacts and messages
Section titled “Contacts and messages”| Tool | Parameters |
|---|---|
create_contact |
contact_number, name?, email?, group_ids? |
find_contact |
phone |
send_template_message |
whatsappPhoneId, to, templateName, receipentName?, variables?, mediaUrl?, documentName?, carouselData? |
send_session_message |
whatsappPhoneId, receipentPhone, message, mediaUrl?, fileType?, fileName? |
Conversations and replies
Section titled “Conversations and replies”| Tool | Parameters |
|---|---|
list_recent_chats |
page?, pageSize? |
get_messages |
contactId? or phone?, since?, page?, pageSize? |
wait_for_reply |
contactId? or phone?, since?, timeoutMs? (2–30 s, default 25 s) |
subscribe_replies |
contactId? or phone? (no filter means all replies) |
unsubscribe_replies |
contactId? or phone? (no filter removes all subscriptions) |
list_reply_subscriptions |
After subscribe_replies, replies arrive on the session’s event stream as notifications:
{ "method": "notifications/wabot_reply", "params": { "contactId": 123, "phone": "919400294110", "messageType": "text", "text": "Thanks", "waMessageId": "wamid.HBgN…", "timestamp": "2026-10-01T09:37:05.353Z" }}Workflows
Section titled “Workflows”| Tool | What it does |
|---|---|
list_workflow_triggers, list_workflow_actions |
Which triggers, conditions and actions you can use |
list_workflows, get_workflow |
Browse existing workflows |
preview_workflow_schematic |
Get a Mermaid diagram of a workflow |
create_master_workflow |
Create an empty workflow |
create_simple_autoflow |
“When a message matches X, send template Y” in one call |
append_autoflow_child |
Add another rule to an existing workflow |
create_chained_autoflow |
A sequence of 2–10 steps that each wait for the previous one |
update_simple_autoflow |
Change the match text, template, delay and other settings |
set_workflow_status |
Turn a workflow or one of its steps on or off |
New automations are created inactive. Pass activate: true or call set_workflow_status to turn them on.
WhatsApp Flows
Section titled “WhatsApp Flows”| Tool | What it does |
|---|---|
list_whatsapp_flow_categories, list_whatsapp_flow_field_types |
What you can build |
list_whatsapp_flows, get_whatsapp_flow |
Browse flows |
create_whatsapp_flow, update_whatsapp_flow |
Build a form from a list of fields (drafts only) |
publish_whatsapp_flow, deprecate_whatsapp_flow |
Publish, or retire a flow |
Not available through MCP yet
Section titled “Not available through MCP yet”Campaigns and broadcast scheduling, campaign analytics, audience segmentation, deleting workflows, and advanced workflow steps (branching, webhooks, agent handoff, code). Use the Wabot app for these.
Troubleshooting
Section titled “Troubleshooting”| Problem | Fix |
|---|---|
Missing credentials / Invalid credentials |
Check that both headers are set and copied exactly from Developer Credentials |
Unauthorized … required_grant: /x |
Your client is missing that grant. Contact support |
| “24-hour customer-care window is closed” | Send an approved template instead of a session message |
Template stuck in PENDING |
Meta review can take from minutes to hours. Poll get_template_status with sync: true |
| “Template name already exists” | Use a unique name, e.g. offer_20261002_1030 |
| No reply notifications arrive | Make sure your client keeps the event stream (GET) open, and call list_reply_subscriptions |
