Official WhatsApp Business API for your own CRM or SaaS: docs, numbers, messages, webhooks.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Partner key from partner.wasapflow.com → Integration. Optional: docs tools work without it.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Call any WasapFlow Bridge endpoint not covered by the other tools (see bridge_docs_search for paths). Irreversible endpoints need {"confirm": true} in the body. Confirm with the user before any call that sends, deletes or changes something.
Path after /bridge/v1, e.g. /broadcasts or /templates/order_confirmed.
Optional JSON body.
Optional query string parameters.
Optional x-waba-id for number-scoped endpoints.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http bridge https://officialapi.wasapflow.com/bridge/mcp
Headers
x-partner-key (optional, not in the config above): Partner key from partner.wasapflow.com → Integration. Optional: docs tools work without it.Tool list last changed Nov 4, 2026.
Call any WasapFlow Bridge endpoint not covered by the other tools (see bridge_docs_search for paths). Irreversible endpoints need {"confirm": true} in the body. Confirm with the user before any call that sends, deletes or changes something.
| Argument | Type | Description |
|---|---|---|
| body | object | Optional JSON body. |
| path* | string | Path after /bridge/v1, e.g. /broadcasts or /templates/order_confirmed. |
| query | object | Optional query string parameters. |
| method* | string | |
| waba_id | string | Optional x-waba-id for number-scoped endpoints. |
{
"type": "object",
"required": [
"method",
"path"
],
"properties": {
"body": {
"type": "object",
"description": "Optional JSON body."
},
"path": {
"type": "string",
"description": "Path after /bridge/v1, e.g. /broadcasts or /templates/order_confirmed."
},
"query": {
"type": "object",
"description": "Optional query string parameters."
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE"
],
"type": "string"
},
"waba_id": {
"type": "string",
"description": "Optional x-waba-id for number-scoped endpoints."
}
}
}Create a short-lived (30 min) link that a business opens to connect its WhatsApp number through Meta Embedded Signup (Coexistence supported). Share the returned connect_url with the business owner.
| Argument | Type | Description |
|---|---|---|
| state | string | Your own client id, echoed back in the onboarding webhook. |
| display_name | string | Business name shown on the page. |
{
"type": "object",
"properties": {
"state": {
"type": "string",
"description": "Your own client id, echoed back in the onboarding webhook."
},
"display_name": {
"type": "string",
"description": "Business name shown on the page."
}
}
}Search the WasapFlow Bridge API reference, partner guide and changelog. Returns matching sections with a preview. Use before writing integration code. No partner key needed.
| Argument | Type | Description |
|---|---|---|
| query* | string | What to look for, e.g. "webhook signature", "send template", "coexistence", "error 131047". |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "What to look for, e.g. \"webhook signature\", \"send template\", \"coexistence\", \"error 131047\"."
}
}
}Return the full text of one section (with its sub-sections) of the WasapFlow Bridge docs, e.g. "Verify Incoming Webhooks", "Send Template Message", "Webhook Event Payloads", "Error Codes". No partner key needed.
| Argument | Type | Description |
|---|---|---|
| doc | string | Optional: which document. |
| heading* | string | Section heading (exact or partial). |
{
"type": "object",
"required": [
"heading"
],
"properties": {
"doc": {
"enum": [
"api",
"guide",
"changelog"
],
"type": "string",
"description": "Optional: which document."
},
"heading": {
"type": "string",
"description": "Section heading (exact or partial)."
}
}
}Webhook events Bridge could not deliver to your webhook URL (with the error). Use when incoming messages are missing in the CRM.
| Argument | Type | Description |
|---|---|---|
| limit | integer |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
}
}
}Step-by-step plan to add the official WhatsApp Business API to the user's own CRM/SaaS with WasapFlow Bridge: account, card, keys, webhook, Connect WhatsApp button, first message. Call this first when someone wants to build or connect WhatsApp. No partner key needed.
No arguments.
{
"type": "object",
"properties": {}
}List the WhatsApp Business Accounts (client numbers) registered to this partner, with status.
| Argument | Type | Description |
|---|---|---|
| limit | integer |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
}
}
}List the message templates of a number with their approval status.
| Argument | Type | Description |
|---|---|---|
| waba_id* | string | WhatsApp Business Account ID registered to your partner account (see bridge_list_numbers). |
{
"type": "object",
"required": [
"waba_id"
],
"properties": {
"waba_id": {
"type": "string",
"description": "WhatsApp Business Account ID registered to your partner account (see bridge_list_numbers)."
}
}
}List support tickets and replies status.
| Argument | Type | Description |
|---|---|---|
| status | string |
{
"type": "object",
"properties": {
"status": {
"enum": [
"open",
"replied",
"closed"
],
"type": "string"
}
}
}Live status of a number from Meta: verified name, quality rating, messaging limit, name status.
| Argument | Type | Description |
|---|---|---|
| waba_id* | string | WhatsApp Business Account ID registered to your partner account (see bridge_list_numbers). |
{
"type": "object",
"required": [
"waba_id"
],
"properties": {
"waba_id": {
"type": "string",
"description": "WhatsApp Business Account ID registered to your partner account (see bridge_list_numbers)."
}
}
}Open a WasapFlow support ticket. Include what happened, when (with timezone), the exact error (Meta code, fbtrace_id), what was tried and the business impact.
| Argument | Type | Description |
|---|---|---|
| message* | string | Full details. |
| subject* | string | Short summary, max 200 characters. |
| waba_id | string | Optional: the affected number's WABA ID. |
| category | string | |
| priority | string | |
| diagnostics | object | Optional raw error JSON / sample request (max 20 KB). |
{
"type": "object",
"required": [
"subject",
"message"
],
"properties": {
"message": {
"type": "string",
"description": "Full details."
},
"subject": {
"type": "string",
"description": "Short summary, max 200 characters."
},
"waba_id": {
"type": "string",
"description": "Optional: the affected number's WABA ID."
},
"category": {
"enum": [
"technical",
"billing",
"onboarding",
"other"
],
"type": "string"
},
"priority": {
"enum": [
"normal",
"high",
"urgent"
],
"type": "string"
},
"diagnostics": {
"type": "object",
"description": "Optional raw error JSON / sample request (max 20 KB)."
}
}
}Redeliver one failed webhook event (event_id) or all of them (omit event_id) after the webhook endpoint is fixed.
| Argument | Type | Description |
|---|---|---|
| event_id | string | Optional event id from bridge_failed_webhooks. |
{
"type": "object",
"properties": {
"event_id": {
"type": "string",
"description": "Optional event id from bridge_failed_webhooks."
}
}
}Send an approved MARKETING template through Meta's Marketing Messages API (quality-based delivery, marketing metrics). Not onboarded yet? Meta falls back to Cloud API unless product_policy is STRICT. This sends a real message and Meta charges for it.
| Argument | Type | Description |
|---|---|---|
| to* | string | Recipient phone in international format without +, or a BSUID. |
| name* | string | Marketing template name. |
| waba_id* | string | WhatsApp Business Account ID registered to your partner account (see bridge_list_numbers). |
| language* | string | Template language code, e.g. en_US, ms. |
| components | array | Optional Meta template components. |
| product_policy | string | Optional. STRICT = never fall back to Cloud API. |
{
"type": "object",
"required": [
"waba_id",
"to",
"name",
"language"
],
"properties": {
"to": {
"type": "string",
"description": "Recipient phone in international format without +, or a BSUID."
},
"name": {
"type": "string",
"description": "Marketing template name."
},
"waba_id": {
"type": "string",
"description": "WhatsApp Business Account ID registered to your partner account (see bridge_list_numbers)."
},
"language": {
"type": "string",
"description": "Template language code, e.g. en_US, ms."
},
"components": {
"type": "array",
"items": {
"type": "object"
},
"description": "Optional Meta template components."
},
"product_policy": {
"enum": [
"CLOUD_API_FALLBACK",
"STRICT"
],
"type": "string",
"description": "Optional. STRICT = never fall back to Cloud API."
}
}
}Send an approved template (works outside the 24-hour window). components follows the Meta Cloud API format. This sends a real message and Meta may charge for it.
| Argument | Type | Description |
|---|---|---|
| to* | string | Recipient phone in international format without +. |
| name* | string | Template name. |
| waba_id* | string | WhatsApp Business Account ID registered to your partner account (see bridge_list_numbers). |
| language* | string | Template language code, e.g. en_US, ms. |
| components | array | Optional Meta template components (header/body/button parameters). |
{
"type": "object",
"required": [
"waba_id",
"to",
"name",
"language"
],
"properties": {
"to": {
"type": "string",
"description": "Recipient phone in international format without +."
},
"name": {
"type": "string",
"description": "Template name."
},
"waba_id": {
"type": "string",
"description": "WhatsApp Business Account ID registered to your partner account (see bridge_list_numbers)."
},
"language": {
"type": "string",
"description": "Template language code, e.g. en_US, ms."
},
"components": {
"type": "array",
"items": {
"type": "object"
},
"description": "Optional Meta template components (header/body/button parameters)."
}
}
}Send a text message from a connected number. Free-form text only reaches people who messaged that number in the last 24 hours; otherwise use bridge_send_template. This sends a real message.
| Argument | Type | Description |
|---|---|---|
| to* | string | Recipient phone in international format without + (e.g. 60123456789) or a BSUID. |
| text* | string | Message text. |
| waba_id* | string | WhatsApp Business Account ID registered to your partner account (see bridge_list_numbers). |
{
"type": "object",
"required": [
"waba_id",
"to",
"text"
],
"properties": {
"to": {
"type": "string",
"description": "Recipient phone in international format without + (e.g. 60123456789) or a BSUID."
},
"text": {
"type": "string",
"description": "Message text."
},
"waba_id": {
"type": "string",
"description": "WhatsApp Business Account ID registered to your partner account (see bridge_list_numbers)."
}
}
}Current Bridge plan: active WhatsApp numbers, slots and the monthly Bridge fee.
No arguments.
{
"type": "object",
"properties": {}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 4, 2026.
What changed in this server's tools since we started watching, newest first. Each change is scanned again.
Send an approved MARKETING template through Meta's Marketing Messages API (quality-based delivery, marketing metrics). Not onboarded yet? Meta falls back to Cloud API unless product_policy is STRICT. This sends a real message and Meta charges for it.