Skip to main content
Glama
wati-io

WhatsApp MCP Server

by wati-io

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
WATI_TENANT_IDNoYour Wati tenant ID (only for multi-channel setups)
WATI_AUTH_TOKENYesYour Wati authentication token (Bearer token from dashboard)
WATI_API_BASE_URLYesThe base URL for the Wati API (e.g. https://live-mt-server.wati.io)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_contactsA

Search WhatsApp contacts by name or phone number. Returns contact information including name, phone, WhatsApp ID, status, teams, and custom parameters.

Args:
    query: A search term to find matching contacts (name or phone)
list_contactsA

List WhatsApp contacts with pagination.

Args:
    page_size: Number of contacts per page (max 100, default 20)
    page_number: Page number, 1-based (default 1)
get_contactB

Get detailed information about a specific contact.

Args:
    target: Phone number (e.g. "85264318721") or contact ID
add_contactA

Add a new WhatsApp contact.

Args:
    whatsapp_number: Phone number with country code, no + (e.g. "85264318721")
    name: Contact display name
    custom_params: Optional list of {"name": "key", "value": "val"} pairs
update_contactsC

Bulk-update contacts' custom parameters.

Args:
    contacts: List of {"target": "phone_or_id", "customParams": [{"name": "k", "value": "v"}]}
get_contact_countA

Get total number of WhatsApp contacts.

assign_contact_teamsB

Assign a contact to one or more teams.

Args:
    target: Phone number or contact ID
    teams: List of team names (e.g. ["Support", "Sales"])
get_messagesA

Get conversation messages for a contact or conversation.

Args:
    target: Phone number (e.g. "85264318721") or conversation ID
    page_size: Messages per page (max 100, default 20)
    page_number: Page number, 1-based (default 1)
send_messageA

Send a WhatsApp text message to a contact.

Args:
    target: Recipient phone number with country code, no + (e.g. "85264318721")
    text: The message text to send
send_fileB

Send a file (image, video, document, audio) via WhatsApp.

Args:
    target: Recipient phone number with country code, no + (e.g. "85264318721")
    file_path: Absolute path to the file or a URL
    caption: Optional caption for the file
send_file_via_urlA

Send a file by URL without downloading it locally first.

Args:
    target: Recipient phone number with country code, no + (e.g. "85264318721")
    file_url: Public URL of the file to send
    caption: Optional caption
download_mediaC

Download media from a WhatsApp message.

Args:
    message_id: The ID of the message containing the media
send_interactiveA

Send an interactive WhatsApp message with buttons or a list.

Args:
    target: Recipient phone number with country code, no + (e.g. "85264318721")
    interactive_type: Either "buttons" or "list"
    body_text: Main message body text
    buttons: For type="buttons": list of {"text": "Button label"} (max 3)
    header_text: Optional header text
    footer_text: Optional footer text
    button_text: For type="list": text shown on the list button
    sections: For type="list": list of {"title": "...", "rows": [{"title": "...", "description": "..."}]}
assign_operatorA

Assign an operator to a WhatsApp conversation. Pass no email (or null) to assign to the bot.

Args:
    target: Phone number or conversation ID
    assignee_email: Operator's email address (null = assign to bot)
update_conversation_statusB

Update a conversation's status.

Args:
    target: Phone number or conversation ID
    new_status: One of "open", "solved", "pending", "block"
list_templatesA

List WhatsApp message templates.

Args:
    page_size: Templates per page (max 100, default 20)
    page_number: Page number, 1-based (default 1)
get_templateB

Get details of a specific message template.

Args:
    template_id: The template's unique ID
send_templateB

Send template messages to one or more recipients.

Args:
    template_name: Name of the approved template
    broadcast_name: Name for this broadcast batch
    recipients: List of {"phone_number": "...", "custom_params": [{"name": "k", "value": "v"}]}
    channel: Optional channel name or phone (null = default channel)
list_campaignsB

List broadcast campaigns.

Args:
    page_size: Campaigns per page (max 100, default 20)
    page_number: Page number, 1-based (default 1)
get_campaignC

Get details and statistics for a broadcast campaign.

Args:
    broadcast_id: The campaign's unique ID
list_channelsC

List available WhatsApp channels.

Args:
    page_size: Channels per page (max 100, default 20)
    page_number: Page number, 1-based (default 1)

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wati-io/wati-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server