com.360dialog/mcp · v1.1.5 · agents-and-memory
360dialog is healthy: it completed an MCP handshake in 1568 ms and exposes 116 tools.
Manage WhatsApp Business accounts on 360Dialog: channels, templates, sandbox, inbox, and more.
Endpoint: https://mcp.360dialog.com/mcp (streamable-http)
No repository listed · Website · JSON · Add to my inventory
| Users (last 30 days) | 0 |
| Handshake | Healthy |
| Auth needed | None |
| Tool count | 116 |
| Latency | 1568 ms |
| Last checked (UTC) | 2026-11-08T22:05:18.750Z |
| Checked (UTC) | Status | Latency | Error |
|---|---|---|---|
| 2026-11-08T22:05:18.750Z | Healthy | 1568 |
list_skills | List the 360Dialog skills available to you. A skill is a curated, up-to-date how-to guide for a 360Dialog process (e.g. drafting a compliant WhatsApp template, diagnosing a channel that stopped sending). Call this tool BEFORE answering any "how do I..." question about 360Dialog products or processe |
get_skill | Get the full guide for one skill returned by 'list_skills', as markdown. |
start_signup | Returns the URL where a user can create a 360Dialog account. Only relevant if the user has not created a 360Dialog account yet. |
search_client_documentation | Search the 360Dialog client documentation at https://docs.360dialog.com/docs. Search across the documentation to find relevant information, code examples, API references, and guides. Use this tool when you need to answer questions about Client Documentation, find specific documentation, understand h |
get_client_documentation_page | Get a documentation page from the 360Dialog client documentation at https://docs.360dialog.com/docs. Fetch the full markdown content of a specific documentation page from Client Documentation. Use this when you have a page URL and want to read its content. Accepts full URLs (e.g. https://docs.360dia |
get_balance | Get balance for an account. |
list_channels | Find a channel by passing in an identifier. A channel is a phone number. By calling this tool you retrieve information about the phone number/channel in 360Dialog. Results are paginated; use the 'page' and 'size' arguments to page through results if there are more than fit in a single page. Retur |
set_display_name | Submit a new display name for this channel (a.k.a. phone number.) Calling this tool will submit a display name request to Meta. Meta takes up to 48 hours to review the submitted display name. The display name may be rejected if it does not comply with display name guidelines. The user will receive |
get_channel_profile | Get a channel's (a.k.a. phone number) WhatsApp profile. |
update_channel_profile | Update the WhatsApp profile for this channel (a.k.a. phone number.) The user may be prompted by 360Dialog for an OTP code delivered to their email address. Make them aware of the OTP requirement. |
get_invoices | Get invoices for an account. |
wait_for_onboarding_step | Wait for a server-side onboarding step to finish, then report back. Embedded Signup and payment setup finish in the person's browser. This tool polls the hub every 5 seconds for up to 45 seconds and returns one of: - "done": The step finished. - "pending": Still not finished. Call this tool again |
get_company_details | Get the user's company's details from 360Dialog. |
update_company_details | Set the user's company's details on 360Dialog. This change does not affect Meta; only records on 360Dialog are affected by the update. Before calling this tool, make sure to: 1. Check if the `get_company_details` tool returns the correct company information already. 2. Check with the user if they |
check_number_eligibility | Check whether a phone number can be onboarded for this client before handing over the onboarding link. This tool only checks 360Dialog's own database and this client's channel quota. It does not ask WhatsApp/Meta anything, so a number already active on WhatsApp elsewhere (including the personal app |
start_number_onboarding | Get the link that lets the user connect a WhatsApp phone number in 360Dialog, plus what to tell them beforehand. This hands over 360Dialog's own onboarding page. The user clicks through Embedded Signup themselves; this tool cannot do it for them. The user must be signed in to 360Dialog Hub already |
start_payment_setup | Get the link that lets the user add their credit card to their account. If this client was created through assistant-led onboarding and still has no company name or country on file, the payment page is kept behind a company details form instead. In that case this tool does not return the payment li |
get_onboarding_status | Get a phone number's status on whether a number is live, what type of messages it can send today, and suggestions for what's next. A live number can send free-form replies inside the 24-hour customer service window immediately (meaning if someone messages the number, the user can respond to the mes |
request_otp | Request an OTP code. Sometimes OTP is needed to complete invoking a tool. When tool invocation fails due to OTP reasons, you will be notified in the tool response, and be asked to rqeuest an OTP code. Only call after a tool call fails due to OTP. |
verify_otp | Verify the 6-digit OTP code from the user. Doing so will automatically replay the blocked tool call that required verification. |
list_templates | List templates for a WABA (WhatsApp Business Account). If you do not have a waba_account_id ending in 'WA' (case-insensitive), run the 'list_channels' tool first. |
show_template_preview | Show a preview of a given template to the user. |
get_template_json_example | Sending messaging templates in WhatsApp API / 360Dialog API requires a JSON body in the API request. The API request can be hard to form, as the body must declare in JSON what each parameter in the JSON should be filled as. This tool creates a valid example JSON body that the user can later modify |
create_template | Use this tool to create a WhatsApp message template. For this tool's 'template_json' property, pass a JSON matching this shape: { "name": string, "language": string, "category": "MARKETING" | "AUTHENTICATION" | "UTILITY", "components": Component[], } General rules: - name must be lowercas |
delete_template | Delete a WhatsApp message template by its internal template ID. |
get_webhook | Get a channel's (a.k.a. phone number's) webhook URL, and check if the optional webhook headers are set. Webhook headers are optional. They can be set using the 'set_webhook' tool, which also sets the webhook URL. When webhook headers are set, 360Dialog will send webhooks to the channel's webhook UR |
set_webhook | Set a channel's (a.k.a. phone number's) webhook URL and optionally webhook headers. |
test_webhook | Test if a channel's (a.k.a. phone number's) webhook URL is functional. A total of 32 test cases will be run by sending sample POST requests to the user's webhook URL. During this test, the user may see 32 requests being made to their webhook server. Returns the test's results, showing which cases |
get_self | Get currently logged in user's information in 360Dialog. You will get: - user's name, - user's email address, - partner name, - user's permissions in 360Dialog Hub, - user's roles |
list_users | List users for the selected account, including their roles and creation timestamps. |
sandbox_register_number | Register the user's phone number on the 360Dialog sandbox. Upon registration, the user can send messages to this phone number from the 360Dialog sandbox account on WhatsApp. The user will be given a link to complete registration. When this link is used, they will send a verification code to 360Dial |
sandbox_complete_registration | Complete a phone number's registration. This will get you the API key to use when sending messages from the 360Dialog sandbox phone number to the user's registered phone number. |
sandbox_send_message | Send a message on the 360Dialog sandbox. Messages can only be sent to the user's phone number that was used during sandbox registration. The payload must be a JSON string matching the WhatsApp messages endpoint body. Interactive message example: use this only when there is an active conversation w |
sandbox_configure_webhook | Set webhook for the channel on 360Dialog sandbox. Optional. |
sandbox_get_webhook_configuration | Get configured webhook for the channel on 360Dialog sandbox. |
sandbox_list_events | List webhook events received. This will show received messages from the user, and status of messages sent from the sandbox account. |
getchat_send_message | Send a message into an existing conversation, as the business. This is inbox-scoped sending: it posts into an existing conversation with correct threading. Outside the 24-hour customer-care window, WhatsApp only permits template messages — other types are rejected with an explanation. |
getchat_assign_conversation | Assign or reassign one conversation to an agent and/or a group. Both fields are always set to exactly what you pass: calling with only `user_id` clears any group assignment and vice versa; calling with neither unassigns the conversation entirely. |
getchat_tag_conversation | Add or remove one tag on one conversation. |
getchat_mark_conversation_as_read | Mark one conversation's messages as read by the calling user. Pass `up_to_timestamp` after reviewing a conversation so that messages arriving in the meantime stay unread. The read mark only moves forward: a timestamp older than the caller's current mark changes nothing. Read state is per inbox user |
getchat_apply_saved_response | Send a saved (canned) response into a conversation as a text message. Subject to the same 24-hour window rule as getchat_send_message. |
getchat_list_conversations | List conversations of the inbox, newest activity first. Returns one entry per conversation with contact info, unread count, last message, current assignee (user and/or group), and tags. |
getchat_search_conversations | Find conversations by contact name, phone number, tag name, or message content. Searches contact profiles and tags first, then message text and media captions; results from both are merged and deduplicated by conversation. Each match notes why it matched (`contact` or `message_content`). |
getchat_get_conversation | Read one conversation: contact/assignment/tag details plus its message history. Messages are returned newest first. To page further back, call again with `before_time` set to the oldest returned message's timestamp. |
getchat_list_inboxes | List the WhatsApp inboxes the calling 360dialog user can access. Call this first when you don't know which `channel_id` to pass to the other tools: each entry pairs a `channel_id` with its inbox URL and WhatsApp number (`wa_id`). Entries without a `channel_id` cannot be driven through these tools. |
getchat_list_agents | List the inbox's agents (users) — for assignment via getchat_assign_conversation. |
getchat_list_groups | List the inbox's agent groups — for group assignment via getchat_assign_conversation. |
getchat_list_tags | List the inbox's tags — for tagging via getchat_tag_conversation and filtering via getchat_list_conversations. |
getchat_list_saved_responses | List the inbox's saved (canned) responses — for use with getchat_apply_saved_response. |
mba_check_agent_eligibility | Check whether this channel's WhatsApp number is eligible for a Meta Business Agent. Returns {is_eligible: boolean}. Known limitation: a 403 from this call can mean the number is simply not eligible, rather than that the business has not accepted Meta's terms - do not report an unaccepted-terms probl |
mba_onboard_agent | Create the Meta Business Agent for this channel on the given messaging channel. Creates the underlying entities and schedules asynchronous data-preparation jobs, so the agent is not immediately ready to answer. Returns {agent_id}. Onboarding does not switch the agent on: rollout stays disabled until |
mba_delete_agent | Remove the Meta Business Agent from this channel's WhatsApp number. Deletes the agent configuration and, when the last agent on the account is removed, disconnects the integration entirely. Returns {deleted_agent_id}. This is irreversible: knowledge, skills and connectors configured on the agent go |
mba_get_agent_settings | Read the agent's current settings: rollout, handoff, followup and ai_audience. Known limitation: this returns an ARRAY with one entry per channel, not a single object. Read the entry whose `channel` you care about (usually "whatsapp") rather than treating the response as an object. |
mba_update_agent_settings | Replace the agent's settings and return the updated entry. Known limitation: this is a FULL REPLACEMENT, not a patch - every field you omit is reset, so read the current settings with mba_get_agent_settings first and send them back with your change applied. Note also that setting rollout.enabled to |
mba_list_allowlist_entries | List the consumer phone numbers allowed to reach the agent while ai_audience is ALLOWLISTED_ONLY. Known limitation: this returns a BARE ARRAY of {id, consumer_phone_number}, not an object with a `data` key. |
mba_add_allowlist_entry | Add one consumer phone number to the allowlist. Returns the created {id, consumer_phone_number}. The allowlist only takes effect while ai_audience is ALLOWLISTED_ONLY; under EVERYONE the agent answers all consumers regardless of this list. |
mba_remove_allowlist_entry | Remove one entry from the allowlist by its entry id, which comes from mba_list_allowlist_entries (it is not the phone number). Returns no content on success. While ai_audience is ALLOWLISTED_ONLY, removing the entry stops the agent answering that consumer. |
mba_get_business_info | Read the business information the agent uses to answer customers. Returns empty or default values when none has been configured. Known limitation: business info is a CLOSED six-field schema - business_description, contact_info, delivery_and_shipping, payment_method, purchase_info, return_policy. Any |
mba_update_business_info | Replace the agent's business information and return the stored object. Known limitation: this is a FULL REPLACEMENT - fields you omit are cleared, so read mba_get_business_info first and send the existing values back with your change applied. Known limitation: business info is a CLOSED six-field sch |
mba_reset_business_info | Reset the agent's business information to empty defaults and return the emptied object. Unlike most deletes this does not 404 afterwards - mba_get_business_info keeps working and returns the defaults. Known limitation: business info is a CLOSED six-field schema - business_description, contact_info, |
mba_list_faqs | List the agent's FAQ entries. Known limitation: this returns a BARE ARRAY, not an object with a `data` key. |
mba_create_faq | Add one question-and-answer entry to the agent's knowledge. Returns the created entry with its id. FAQs are the right home for knowledge that does not fit business info's six fields. |
mba_get_faq | Read one FAQ entry by its id, as returned by mba_list_faqs or mba_create_faq. |
mba_update_faq | Replace one FAQ entry by its id. Both question and answer are required: this replaces the entry rather than patching it, so send the fields you want the entry to end up with. |
mba_delete_faq | Delete one FAQ entry by its id. Returns no content on success. |
mba_list_websites | List the websites the agent crawls for knowledge, with their crawl status. Known limitation: this returns a BARE ARRAY, not an object with a `data` key. |
mba_create_website | Add a website URL for the agent to crawl into its knowledge base. Returns the entry with its id and crawl status. Crawling is asynchronous - the knowledge is not available immediately; poll mba_get_website for crawl_status. |
mba_get_website | Read one website crawl entry by its id, including crawl_status, pages_crawled and last_crawled_at. This is how you check whether a site added with mba_create_website has been ingested yet. |
mba_update_website | Replace the URL of one website crawl entry. Changing the URL restarts crawling. |
mba_delete_website | Remove one website crawl entry by its id, dropping the knowledge crawled from it. Returns no content on success. |
mba_list_files | List the files in the agent's knowledge base, as {id, file_name}. Known limitation: this returns a BARE ARRAY, not an object with a `data` key. |
mba_upload_file | Upload a file into the agent's knowledge base. Multipart uploads cannot travel over MCP, so pass the file EITHER as `url` (a publicly reachable https URL this service downloads) OR as `content_base64` (the file's bytes, base64-encoded) - exactly one of the two, always with `file_name`. This service |
mba_get_file | Read one knowledge file's metadata by its id. Returns {id, file_name} - this returns metadata only, not the file's contents. |
mba_delete_file | Delete one file from the agent's knowledge base by its id. Returns no content on success. |
mba_list_agent_skills | List the agent's skills - the instruction texts that shape how it behaves. Known limitation: this returns a BARE ARRAY, not an object with a `data` key. |
mba_create_agent_skill | Add a skill to the agent - an instruction text that changes how it answers. Returns the created skill with its id. Skills are the right home for behavioural instructions; facts the agent should know belong in FAQs, websites or files instead. |
mba_get_agent_skill | Read one agent skill by its id, as returned by mba_list_agent_skills or mba_create_agent_skill. |
mba_update_agent_skill | Replace one agent skill by its id. This replaces the skill rather than patching it, so send the title, description and skill text you want it to end up with. |
mba_delete_agent_skill | Delete one agent skill by its id, so the agent stops following it. Returns no content on success. |
mba_list_ui_skills | List the agent's UI skills - the rich WhatsApp components (carousels, CTA URLs, flows, images, interactive lists and buttons, location) the agent may send, each with the instruction that says when to send it. A UI skill is NOT an agent skill (mba_list_agent_skills): an agent skill is instruction tex |
mba_create_ui_skill | Give the agent one more rich WhatsApp component to send, and the instruction that says when to send it. Returns the created UI skill with its id. A UI skill is NOT an agent skill (mba_list_agent_skills): an agent skill is instruction text that shapes what the agent says, a UI skill lets the agent se |
mba_get_ui_skill | Read one UI skill by its id, as returned by mba_list_ui_skills or mba_create_ui_skill. A UI skill is NOT an agent skill (mba_list_agent_skills): an agent skill is instruction text that shapes what the agent says, a UI skill lets the agent send one kind of rich WhatsApp component and tells it when to |
mba_update_ui_skill | Change the title, the status or the instruction of one UI skill by its id. This is a partial update: a field you omit keeps its stored value. Use it to enable or disable a component without deleting it. A UI skill is NOT an agent skill (mba_list_agent_skills): an agent skill is instruction text that |
mba_delete_ui_skill | Delete one UI skill by its id, so the agent stops sending that component. Returns no content on success. To stop the component temporarily, set status to `disabled` with mba_update_ui_skill instead. |
mba_get_agent_budgets | Read the usage caps in force for the agent, each with its budget_id. Returns {budgets}; an empty array means no cap is set and usage is unlimited. Known limitations: budgets are ONLY SERVED for the business that owns this number's WABA; any other business_id is refused with an error that says so. Fo |
mba_replace_agent_budgets | Set the usage caps for the agent. Returns the caps in force after the write. This is a FULL REPLACEMENT of the set: send again every cap to keep, because any cap left out is removed, and an empty array clears all caps and returns the agent to unlimited. To edit an existing cap, pass back its budget_ |
mba_list_connectors | List the agent's connectors - the third-party systems it can call. Each carries a connection_status (PENDING_OAUTH, ACTIVE, EXPIRED or ERROR) worth checking before relying on its tools. Known limitation: this returns a BARE ARRAY, not an object with a `data` key. |
mba_create_connector | Create a connector so the agent can call a third-party system. Returns the connector with its id and connection_status. A connector on its own does nothing - add connector tools with mba_create_connector_tool to expose individual operations to the agent. |
mba_get_connector | Read one connector by its id, including its connection_status and mTLS metadata. Credentials are never returned - the private key and secrets stay at Meta. |
mba_update_connector | Replace one connector by its id. This replaces the connector rather than patching it, so send the full definition you want it to end up with - read mba_get_connector first. |
mba_delete_connector | Delete one connector by its id. Its tools and stored credentials go with it. Returns no content on success. |
mba_upsert_connector_api_key | Set or rotate the API key credentials for a connector. This is an upsert: if credentials already exist they are REPLACED and the connection is re-established. It cannot be used to remove credentials - the payload is required. |
mba_upsert_connector_oauth | Set or rotate the OAuth 2.0 client credentials for a connector. This is an upsert: if credentials already exist they are REPLACED and the connection is re-established. It cannot be used to remove credentials - the payload is required. |
mba_upsert_connector_certificate | Upload or rotate the mTLS client certificate for a connector. This is an upsert: if credentials already exist they are REPLACED and the connection is re-established. It cannot be used to remove credentials - the payload is required. Certificates and keys are PEM-encoded; the private key is never ret |
mba_get_connector_logs | Read the connector's third-party error logs, or aggregated failure patterns when summary_only is true. Only errors from the third-party system are included, so an empty result means no failures, not no traffic. Known limitation: the time range must not exceed 7 DAYS, and only the last 7 days are ret |
mba_list_connector_tools | List the actions defined on one connector. Known limitation: this returns a BARE ARRAY, not an object with a `data` key. |
mba_create_connector_tool | Define one action the agent can perform through a connector - an outbound HTTP request against the connector's base_url. Returns the created tool with its id. Known limitation: path_parameters, query_parameters and headers are NAME-TO-SCHEMA OBJECTS, not arrays - write {"order_id": {"type": "string" |
mba_get_connector_tool | Read one connector tool definition by its id. |
mba_update_connector_tool | Replace one connector tool definition by its id. This replaces the definition rather than patching it, so send the whole request_definition you want it to end up with - read mba_get_connector_tool first. Known limitation: path_parameters, query_parameters and headers are NAME-TO-SCHEMA OBJECTS, not |
mba_delete_connector_tool | Delete one connector tool definition by its id, so the agent can no longer perform that action. Returns no content on success. |