Skip to main content

Tools

The 2Chat MCP server exposes the 2Chat REST API as MCP tools — your AI assistant can call any of them directly. Tool names below are the canonical names returned by tools/list on https://mcp.2chat.io/mcp.


Account

get_who_am_i

Return information about the authenticated 2Chat account.

Inputs: none.

Returns: account profile (name, uuid, email, plan).

"Who am I logged in as on 2Chat?"


get_billing_info

Get current account billing, plan limits, and API usage.

Inputs: none.

Returns: account (name, uuid, on_trial, blocked, created_at, expires_at), limits (requests_per_minute), and usage (api_request_count, max_api_request_count, number_check_count, max_number_check_count).


Messaging — WhatsApp Web

send_whatsapp_message

Send a WhatsApp text or media message through a connected WhatsApp Web channel.

InputTypeRequiredDescription
from_numberstringyesSource WhatsApp number in E.164 format (e.g. +15551111111)
to_numberstringyesRecipient phone number in E.164 format
textstringconditionalMessage text. Required unless url is provided
urlstringconditionalPublicly accessible media URL (image, video, document, audio). Required unless text is provided

Returns: message_id, status, timestamp.

"Send a WhatsApp from +15551111111 to +15550009999 saying: Your order is ready for pickup."


check_if_number_is_on_whatsapp

Check whether a phone number has an active WhatsApp account before sending.

InputTypeRequiredDescription
source_numberstringyesYour connected WhatsApp number (E.164)
phone_numberstringyesNumber to check (E.164)
extra_informationbooleannoIf true, also returns whatsapp_info (number_id, profile picture, business status, verification level). Billed as 2 API calls. Default false

Returns: exists (boolean), number, optional whatsapp_info.

"Check if +15550009999 is on WhatsApp using my channel +15551111111. If yes, send them: 'Hi from 2Chat!'"


get_whatsapp_messages

Get WhatsApp Web messages exchanged through a connected number, optionally scoped to a specific contact.

InputTypeRequiredDescription
your_numberstringyesYour connected WhatsApp number (E.164)
remote_numberstringnoContact phone number (E.164) to scope results to a single conversation
pageintegerno0-indexed page (default 0). 100 messages per page, oldest first within the page

Returns: array of message objects.


Messaging — WhatsApp Business API (WABA)

send_waba_message

Send a WABA message using either an approved template or free-form text. Provide one of template_uuid or text, not both.

InputTypeRequiredDescription
from_numberstringyesSource WABA phone number (E.164)
to_numberstringyesRecipient phone number (E.164)
template_uuidstringconditionalUUID of an approved WABA template. Mutually exclusive with text
textstringconditionalFree-form text content. Mutually exclusive with template_uuid
header_paramsarraynoValues for template header variables
body_paramsarraynoValues for template body variables
media_urlstringnoURL of media to attach as the template header image

Returns: message_id, status.


get_waba_templates

List WABA message templates for the account, optionally filtered by phone number.

InputTypeRequiredDescription
phone_numberstringnoWABA phone number (E.164) to filter templates
pageintegerno0-based page (default 0)
limitintegernoResults per page, min 10, max 200 (default 10)

Returns: paginated list of template objects.


sync_waba_templates

Trigger a background sync of WABA templates from Meta for a given number.

InputTypeRequiredDescription
phone_numberstringyesWABA phone number (E.164)

Returns: sync acknowledgement.


calculate_waba_template_cost

Estimate the cost of sending a WABA template message for a given plan, country, and template type.

InputTypeRequiredDescription
plan_namestringyes2Chat plan name (e.g. single, basic, pro)
countrystringyesTwo-letter ISO country code (e.g. US, BR, MX)
template_typestringyesWABA template category (e.g. marketing, utility, authentication)

Returns: estimated cost.


Messaging — SMS

send_sms

Send an SMS message through a 2Chat SMS channel.

InputTypeRequiredDescription
from_numberstringyesSource phone number (E.164). Must be SMS-capable
to_numberstringyesRecipient phone number (E.164)
textstringyesMessage content (UTF-8)

Returns: message_id, status.


Channels — WhatsApp Web

get_whatsapp_numbers

List WhatsApp Web numbers connected to the account via QR code.

InputTypeRequiredDescription
statusstringnoFilter: connected, disconnected, or all (default connected)
pageintegerno0-based page (default 0)
limitintegernoResults per page, min 10, max 200 (default 10)

Returns: array of channel objects with phone_number, status, channel_uuid.

"List my 2Chat WhatsApp channels and tell me which ones are currently connected."


get_whatsapp_number

Get full details of a single connected WhatsApp Web number by UUID.

InputTypeRequiredDescription
channel_uuidstringyesUUID of the WhatsApp channel (e.g. WPN582e4db7-...)

Returns: channel object.


execute_whatsapp_channel_command

Execute a connection command on a WhatsApp Web channel.

InputTypeRequiredDescription
channel_uuidstringyesUUID of the WhatsApp channel
commandstringyesconnect (brings the number online and returns a QR code) or disconnect (takes it offline without removing it)

Returns: command result, including QR payload when connect is used.


Channels — WABA

get_waba_numbers

List WABA numbers connected to the account.

InputTypeRequiredDescription
pageintegerno0-based page (default 0)
limitintegernoResults per page, min 10, max 200 (default 10)

Returns: array of WABA number objects.


get_waba_number

Get full details of a single WABA number by UUID.

InputTypeRequiredDescription
waba_uuidstringyesUUID of the WABA number (e.g. WAN3ff9fb72-...)

Returns: WABA number object.


Conversations & Groups

list_whatsapp_conversations

List WhatsApp Web conversations for a connected channel, ordered by most recent activity.

InputTypeRequiredDescription
channel_uuidstringyesUUID of the WhatsApp channel
phone_numberstringno3–20 digit substring to filter conversations whose phone number contains it
pageintegerno0-based page (default 0). 10 conversations per page

Returns: paginated list of conversation objects.


list_whatsapp_groups

List WhatsApp groups visible to a connected number. Only groups joined after connecting to 2Chat are listed; the initial sync may take 5–30 minutes.

InputTypeRequiredDescription
phone_numberstringyesConnected WhatsApp number (E.164)

Returns: array of group objects.


list_whatsapp_group_participants

List participants of a WhatsApp group.

InputTypeRequiredDescription
group_uuidstringyesUUID of the group (e.g. WAG768beeef-...)

Returns: array of participants with role.


get_whatsapp_group_messages

Get messages from a WhatsApp group. Only messages exchanged after the channel was connected to 2Chat are returned.

InputTypeRequiredDescription
group_uuidstringyesUUID of the group
pageintegerno0-based page (default 0). 50 messages per page, newest first

Returns: paginated list of group messages.


Status (Stories)

set_whatsapp_text_status

Publish an ephemeral text status (Story-style) on a connected WhatsApp number.

InputTypeRequiredDescription
from_numberstringyesConnected WhatsApp number (E.164)
textstringyesStatus text content
background_colorstringnoHex color code (e.g. #0275d8)
fontintegernoFont style identifier. Pass 0 to omit (default 0)

Returns: confirmation.


set_whatsapp_image_status

Publish an ephemeral image status (Story-style) on a connected WhatsApp number.

InputTypeRequiredDescription
from_numberstringyesConnected WhatsApp number (E.164)
image_urlstringyesPublicly accessible image URL

Returns: confirmation.


set_whatsapp_video_status

Publish an ephemeral video status (Story-style) on a connected WhatsApp number.

InputTypeRequiredDescription
from_numberstringyesConnected WhatsApp number (E.164)
video_urlstringyesPublicly accessible video URL

Returns: confirmation.


Catalog

list_whatsapp_catalog_products

List products from a WhatsApp Business catalog visible to a connected WhatsApp Web number. Some products may not be visible to all WhatsApp Business accounts.

InputTypeRequiredDescription
from_numberstringyesConnected 2Chat WhatsApp number (E.164) whose linked catalog will be queried
phone_numberstringnoOptional target WhatsApp Business account number (E.164). When set, returns that other business's catalog instead of the one linked to from_number

Returns: array of product objects.


Contacts

create_contact

Create a new contact in your 2Chat account.

InputTypeRequiredDescription
first_namestringyesContact's first name
contact_detailarrayyesList of {type, value} objects. Allowed types: E (email), A (address), PH (phone), WAPH (WhatsApp phone). Phone values must be E.164
last_namestringnoContact's last name
profile_pic_urlstringnoPublicly accessible avatar URL
channel_uuidstringnoWhatsApp channel UUID to sync the contact with a connected number

Returns: the created contact object with uuid.

"Create a 2Chat contact named Acme Corp with phone +15550009999 and email ops@acme.com."


get_contact

Retrieve a single contact by its UUID.

InputTypeRequiredDescription
contact_uuidstringyesUUID of the contact (e.g. CON58147f7c-...)

Returns: full contact object.


list_contacts

List contacts in your 2Chat account, optionally filtered by connected channel.

InputTypeRequiredDescription
channel_uuidstringnoUUID of a connected number to scope results
pageintegerno0-based page (default 0)
limitintegernoResults per page, min 1, max 100 (default 10)

Returns: paginated list of contacts.


search_contacts

Search for contacts by name or phone number.

InputTypeRequiredDescription
querystringyesSearch term — matches contact name or phone number
channel_uuidstringnoUUID of a connected number to scope the search
pageintegerno0-based page (default 0)
limitintegernoResults per page, min 1, max 100 (default 10)

Returns: array of matching contacts.

"Find the 2Chat contact named Acme Corp and update their email to operations@acme.com."


update_contact

Update an existing contact. Only fields you pass are modified.

InputTypeRequiredDescription
contact_uuidstringyesUUID of the contact to update
first_namestringnoNew first name
last_namestringnoNew last name
profile_pic_urlstringnoNew publicly accessible avatar URL
contact_detailsarraynoList of {type, value} detail objects (same shape as create_contact.contact_detail)
channel_uuidstringnoWhatsApp channel UUID to (re)associate with the contact

Returns: updated contact object.


delete_contact

Permanently delete a contact from your 2Chat account.

InputTypeRequiredDescription
contact_uuidstringyesUUID of the contact to delete

Returns: confirmation of deletion.


Calls & Virtual Numbers

list_virtual_numbers

List virtual phone numbers (VoIP) connected to your account.

InputTypeRequiredDescription
pageintegerno0-based page (default 0)
limitintegernoResults per page (default 50)

Returns: array of virtual numbers with number, country, features.


get_call_history

Get call detail records (CDRs) from your 2Chat account, optionally filtered.

InputTypeRequiredDescription
directionstringnoinbound or outbound
from_numberstringnoFor inbound calls, filter by calling number (E.164)
to_numberstringnoFor outbound calls, filter by called number (E.164)
pageintegerno0-based page (default 0)

Returns: paginated list of CDRs.


get_call_details

Get full details of a single call by its CDR UUID.

InputTypeRequiredDescription
call_uuidstringyesUUID of the call detail record (obtain via get_call_history)

Returns: full call detail record.


get_call_price

Estimate the per-minute outbound call price to a destination phone number.

InputTypeRequiredDescription
phone_numberstringyesDestination number in international format, with or without leading +

Returns: per-minute price estimate.

"How much would a call to +447700900123 cost per minute?"