WasapFlow Bridge MCP
Official MCP server for WasapFlow Bridge, enabling AI agents to integrate the WhatsApp Business API. It supports sending messages, managing templates, checking number status, handling webhooks, and accessing support tickets via a REST API interface.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://officialapi.wasapflow.com/bridge/mcpWhat its tools do
16 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (9)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to wasapflow.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Send text, media, and template messages via WhatsApp
- Manage WhatsApp Business Account status and templates
- Handle incoming webhooks and message delivery statuses
- Access support tickets and usage data
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- wasapflow-bridge 1.1.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 16 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
16 advertised
bridge_get_started — How to integrate WasapFlow Bridge
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.
{
"type": "object",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": false
}bridge_docs_search — Search the Bridge docs
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.
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "What to look for, e.g. \"webhook signature\", \"send template\", \"coexistence\", \"error 131047\"."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false
}bridge_docs_section — Read a Bridge docs section
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.
{
"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)."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false
}bridge_list_numbers — List connected WhatsApp numbers
List the WhatsApp Business Accounts (client numbers) registered to this partner, with status.
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
}
}
}{
"readOnlyHint": true,
"openWorldHint": true
}bridge_number_status — Phone number status & quality
Live status of a number from Meta: verified name, quality rating, messaging limit, name status.
{
"type": "object",
"required": [
"waba_id"
],
"properties": {
"waba_id": {
"type": "string",
"description": "WhatsApp Business Account ID registered to your partner account (see bridge_list_numbers)."
}
}
}{
"readOnlyHint": true,
"openWorldHint": true
}bridge_connect_link — Create a Connect WhatsApp link
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.
{
"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."
}
}
}{
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": false
}bridge_send_text — Send a WhatsApp text message
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.
{
"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)."
},
"idempotency_key": {
"type": "string",
"maxLength": 255,
"description": "Optional Idempotency-Key (1-255 chars). Reuse the same key when retrying the same message: a repeat with the same key and body within 24 hours returns the original response and does not send again."
},
"biz_opaque_callback_data": {
"type": "string",
"maxLength": 512,
"description": "Optional biz_opaque_callback_data: your own reference (order id, ticket id), max 512 chars. Meta returns it on every status webhook of this message as data.biz_opaque_callback_data."
}
}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}bridge_send_template — Send a WhatsApp template message
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.
{
"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)."
},
"idempotency_key": {
"type": "string",
"maxLength": 255,
"description": "Optional Idempotency-Key (1-255 chars). Reuse the same key when retrying the same message: a repeat with the same key and body within 24 hours returns the original response and does not send again."
},
"biz_opaque_callback_data": {
"type": "string",
"maxLength": 512,
"description": "Optional biz_opaque_callback_data: your own reference (order id, ticket id), max 512 chars. Meta returns it on every status webhook of this message as data.biz_opaque_callback_data."
}
}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}bridge_send_marketing — Send a marketing template (Marketing Messages API)
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.
{
"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."
},
"idempotency_key": {
"type": "string",
"maxLength": 255,
"description": "Optional Idempotency-Key (1-255 chars). Reuse the same key when retrying the same message: a repeat with the same key and body within 24 hours returns the original response and does not send again."
},
"biz_opaque_callback_data": {
"type": "string",
"maxLength": 512,
"description": "Optional biz_opaque_callback_data: your own reference (order id, ticket id), max 512 chars. Meta returns it on every status webhook of this message as data.biz_opaque_callback_data."
}
}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}bridge_list_templates — List message templates
List the message templates of a number with their approval status.
{
"type": "object",
"required": [
"waba_id"
],
"properties": {
"waba_id": {
"type": "string",
"description": "WhatsApp Business Account ID registered to your partner account (see bridge_list_numbers)."
}
}
}{
"readOnlyHint": true,
"openWorldHint": true
}bridge_failed_webhooks — Webhooks that failed to reach your server
Webhook events Bridge could not deliver to your webhook URL (with the error). Bridge retries each one automatically for 24 hours (1m, 5m, 15m, 30m, 1h, 2h, 4h, 8h, then every 8h); auto_retry shows the next attempt, and final=true means the schedule ended and the event needs bridge_retry_webhooks. Use when incoming messages or statuses are missing in the CRM.
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
}
}
}{
"readOnlyHint": true,
"openWorldHint": true
}bridge_retry_webhooks — Redeliver failed webhooks
Redeliver one failed webhook event (event_id) or all of them (omit event_id) after the webhook endpoint is fixed.
{
"type": "object",
"properties": {
"event_id": {
"type": "string",
"description": "Optional event id from bridge_failed_webhooks."
}
}
}{
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": false
}bridge_usage — Bridge plan & usage
Current Bridge plan: active WhatsApp numbers, slots and the monthly Bridge fee.
{
"type": "object",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": true
}bridge_open_ticket — Open a support ticket
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.
{
"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)."
}
}
}{
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": false
}bridge_list_tickets — List support tickets
List support tickets and replies status.
{
"type": "object",
"properties": {
"status": {
"enum": [
"open",
"replied",
"closed"
],
"type": "string"
}
}
}{
"readOnlyHint": true,
"openWorldHint": true
}bridge_call_api — Call any Bridge API endpoint
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.
{
"type": "object",
"required": [
"method",
"path"
],
"properties": {
"body": {
"type": "object",
"description": "Optional JSON body. Send endpoints accept biz_opaque_callback_data (your reference, max 512 chars)."
},
"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."
},
"idempotency_key": {
"type": "string",
"maxLength": 255,
"description": "Optional Idempotency-Key header for send endpoints (POST /messages/*, POST /broadcasts)."
}
}
}{
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": true
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1075 ms
- 95th percentile latency
- 1075 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1075 ms · metadata changed · 16 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http wasapflow-bridge-mcp https://officialapi.wasapflow.com/bridge/mcpCodex
codex mcp add wasapflow-bridge-mcp --url https://officialapi.wasapflow.com/bridge/mcpCursor
{
"mcpServers": {
"wasapflow-bridge-mcp": {
"url": "https://officialapi.wasapflow.com/bridge/mcp"
}
}
}Cline
{
"mcpServers": {
"wasapflow-bridge-mcp": {
"type": "streamableHttp",
"url": "https://officialapi.wasapflow.com/bridge/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"wasapflow-bridge-mcp": {
"type": "http",
"url": "https://officialapi.wasapflow.com/bridge/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http wasapflow-bridge-mcp https://officialapi.wasapflow.com/bridge/mcpClaude Desktop
https://officialapi.wasapflow.com/bridge/mcpWindsurf
{
"mcpServers": {
"wasapflow-bridge-mcp": {
"serverUrl": "https://officialapi.wasapflow.com/bridge/mcp"
}
}
}Let your agent find its tools
Find servers like WasapFlow Bridge MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other crm, sales, and marketing servers
Do you run WasapFlow Bridge MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.