100+ integrations are ready to connect to your AI.Connect your first MCP

WATI MCP server for your AI

Send approved templates to one contact or ten thousand, reply while the customer-service window is open, assign conversations to operators, and read broadcast and pipeline numbers back.

PopMCPWATI

Which broadcasts went out last month and how did delivery look

Supported WATI tools

Every messaging, contact, template, broadcast, chatbot and analytics operation, plus every WATI event PopMCP can watch for you.

wati_send_interactive_message

Send an interactive reply-buttons or list message.

wati_send_session_file_via_url

Send a media file in a session by public URL (image/doc/video/audio).

wati_send_session_text

Send a free-form session text message (only valid inside the 24-hour customer-service window).

wati_add_contact

Add (or upsert) a contact.

wati_assign_contact_to_teams

Assign a contact to one or more teams.

wati_get_contact

Get a single contact by target.

wati_get_contact_count

Count contacts, optionally within a created-date range.

wati_list_contacts

List contacts in the WATI account (paginated).

wati_update_contacts

Bulk-update contacts' custom attributes.

wati_create_template_v1

Create/submit a WhatsApp message template for approval (legacy v1 — v3 cannot create templates).

wati_delete_template_v1

Delete a template (all language variants) by WABA id and name (legacy v1).

wati_get_template

Get a single message template by id.

wati_list_templates

List approved WhatsApp message templates (paginated).

wati_schedule_template_messages

Schedule a template send for a future time.

wati_send_template_messages

Send a template message to one or many recipients (1–10,000).

wati_assign_conversation_operator

Assign a conversation to an operator by email.

wati_get_messages

Get the message history for a conversation (paginated).

wati_update_conversation_status

Update a conversation's status (open / resolved / etc.).

wati_get_broadcast

Get a broadcast campaign's details by id.

wati_get_broadcast_recipients

List a broadcast's recipients and their per-recipient delivery state (paginated).

wati_get_broadcasts_overview

Aggregate broadcast metrics over a required date range.

wati_list_broadcasts

List broadcast campaigns (paginated).

wati_list_chatbots

List chatbots (paginated).

wati_start_chatbot

Start a chatbot flow for a contact.

wati_list_phone_numbers_v2

List multi-channel WhatsApp phone numbers with channel/WABA detail (v2 beta).

wati_get_lead_stages

List the configured sales lead stages.

wati_get_sales_pipeline

Read the sales pipeline for a date range.

wati_create_webhooks_v2

Register/configure webhook endpoints (v2 beta).

wati_list_business_accounts_v1

List the WhatsApp Business Accounts (WABAs) on this tenant, incl.

wati_list_channels

List the WhatsApp channels (phone numbers) connected to this account (paginated).

wati_download_message_media

Download the media attached to a message by its message id.

wati_get_media_v1

Download a media file by its stored file name/path (legacy v1).

wati_send_interactive_buttons_v1

Send reply-buttons (legacy v1).

wati_send_interactive_list_v1

Send a list message (legacy v1).

wati_send_session_file_via_url_v1

Send a session file by URL (legacy v1).

wati_send_session_text_v1

Send a session text (legacy v1).

wati_send_template_message_v1

Send a template to ONE recipient (legacy v1).

wati_send_template_message_v2

Send a template to ONE recipient (v2 beta).

wati_send_template_messages_bulk_v1

Send a template to up to 1000 recipients (legacy v1).

wati_send_template_messages_bulk_v2

Send a template to many recipients (v2 beta).

wati_add_contact_v1

Add a contact (legacy v1).

wati_create_custom_segment_v1

Create a custom contact segment (legacy v1).

wati_list_contacts_v1

List/filter contacts via the legacy v1 endpoint (supports name & attribute filters v3 lacks).

wati_update_contact_attributes_bulk_v1

Bulk-update custom attributes for many contacts (legacy v1).

wati_update_contact_attributes_v1

Update one contact's custom attributes (legacy v1).

wati_delete_template_language_v1

Delete a single language variant of a template (legacy v1).

wati_list_templates_v1

List message templates (legacy v1).

wati_list_templates_v2

List message templates with name & WABA filters (v2 beta).

wati_assign_operator_v1

Assign a chat to an operator (legacy v1).

wati_get_message_v1

Get a single message by channel phone number and your local message id (legacy v1).

wati_get_messages_v1

Get a contact's message history (legacy v1).

wati_update_chat_status_v1

Update a chat's ticket status (legacy v1).

wati_get_pay_order_details_v1

Get a WhatsApp Pay order's details by reference id (legacy v1, PRIVATE BETA).

wati_get_pay_payment_status_v1

Get a WhatsApp Pay payment status by reference id (legacy v1, PRIVATE BETA).

wati_list_chatbots_v1

List chatbots (legacy v1).

wati_send_pay_order_details_v1

Send a WhatsApp Pay order-details message (legacy v1, PRIVATE BETA — request access from WATI).

wati_start_chatbot_v1

Start a chatbot for a contact (legacy v1).

wati_update_pay_order_status_v1

Update a WhatsApp Pay order's status (legacy v1, PRIVATE BETA).

wati_get_phone_number_profile_v2

Get a phone number's business profile (v2 beta).

wati_list_phone_numbers_v1

List the WhatsApp phone numbers on this tenant (legacy v1).

Connect WATI to your AI

Credentials off one WATI screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.

Paste your Access token — no OAuth popup, no token refresh. It is scoped to one WATI account, so the connection is locked to it. Add the optional API endpoint URL to reach legacy template, WABA and webhook operations.

Access token••••••••••••3f7a
API endpoint URL (optional)https://live-mt-server.wati.io/123456/
ConnectionVerified

Then just ask for the work

  • Which broadcasts went out last month and how did delivery look

    • list_broadcasts
    • get_broadcasts_overview
    • get_broadcast_recipients
  • Tag every contact added since June with plan tier and put them on the Onboarding team

    • list_contacts
    • update_contacts
    • assign_contact_to_teams
  • Schedule the Diwali offer template to our Mumbai list for Friday 10am

    • list_templates
    • list_contacts
    • schedule_template_messages
  • Which chatbot flows are running on the number whose quality rating dropped

    • list_phone_numbers_v2
    • list_channels
    • list_chatbots

Use WATI from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

WATI MCP server questions

What teams ask before putting WATI behind an AI client.

Do I need the API endpoint URL, or is the access token enough?

The Access token on its own covers every modern (v3) operation: contacts, messaging, template sends, broadcasts, channels, chatbots and sales analytics. The API endpoint URL is optional and exists only so your tenant id can be filled in for the legacy operations — creating and deleting templates, WABA and phone-number management, and webhook registration. Add it up front if you expect to touch any of those; otherwise the token alone is fine.

Why does a free-form message fail when a template send goes through?

send_session_text is only valid inside the 24-hour customer-service window that opens when a customer messages your business number. Once that window closes, WhatsApp allows approved templates only, so the agent has to switch to send_template_messages or send_template_message_v2. Run list_templates first and let the agent pick an approved template when the window has lapsed.

Can the agent create a new WhatsApp message template?

Yes, but only through the legacy path — create_template_v1 submits a template for approval and delete_template_v1 removes one by WABA id and name, because v3 cannot create templates. That means template creation needs the API endpoint URL saved on the connection. Approval still sits with WhatsApp, so watch the Template submitted, Template approved and Template rejected or paused triggers for the outcome rather than expecting an instant answer.

How many recipients can a single template send reach?

send_template_messages takes 1 to 10,000 recipients in one call, which is the modern route for a campaign-sized send. The legacy bulk endpoint, send_template_messages_bulk_v1, tops out at 1000. For a one-to-one send there are single-recipient variants — send_template_message_v1 and send_template_message_v2.

Does one connection cover all our WhatsApp numbers?

The access token is scoped to one WATI account, and the agent can see every channel inside it. list_channels returns the WhatsApp numbers connected to the account, list_phone_numbers_v2 adds channel and WABA detail (v2 beta), and list_business_accounts_v1 lists the WABAs on the tenant — that last one is legacy, so it needs the API endpoint URL. The Channel connected or disconnected and Number quality rating changed triggers tell you when that picture shifts.

Can it work the team inbox, not just send messages?

Yes. get_messages pulls the history for a conversation, assign_conversation_operator hands a thread to an operator by email, and update_conversation_status moves it to open, resolved or another state. start_chatbot can kick off a bot flow for a contact, and assign_contact_to_teams routes the person to the right team. Pair that with the Customer sent a message trigger and the agent can triage as chats arrive.

Do I have to run or host the WATI MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

Why do only 30 of the 60 tools load by default?

Loading 60 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 30-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.

What is the difference between a tool and a trigger?

A tool is something your AI calls — there are 60 here. A trigger is something PopMCP watches for you: 14 WATI events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into WATI.

Connect WATI to your AI in minutes

Launch a hosted MCP endpoint for WATI, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP