> ## Documentation Index
> Fetch the complete documentation index at: https://docs.watahub.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP

> Use the Watahub MCP endpoint from an agent that speaks JSON-RPC.

`POST https://cloud.watahub.dev/mcp` accepts the same tenant API key as `/v1`, in `Authorization: Bearer` or `X-API-Key`. Each tool proxies to a `/v1` route; it is not a complete copy of the HTTP API.

```bash theme={null}
claude mcp add --transport http watahub https://cloud.watahub.dev/mcp \
  --header "Authorization: Bearer $WATAHUB_API_KEY"
```

## Tools

| Tool | `/v1` | Arguments |
| - | - | - |
| `list_numbers` | `GET /v1/phones` | none |
| `list_messages` | `GET /v1/messages` | none |
| `send_text` | `POST /v1/messages` | `phoneNumberId`, `to`, `text` |
| `create_webhook` | `POST /v1/phones/{id}/webhooks` or `POST /v1/project-webhooks` | `url`, `secret` (32+ characters), `events`; optional `phoneNumberId` and `active` |
| `create_setup_link` | `POST /v1/setup-links` | `allowedOrigins`; optional `customerId`, `successRedirectUrl`, `failureRedirectUrl` |
| `list_templates` | `GET /v1/message-templates` | optional `wabaId` |
| `send_broadcast` | `POST /v1/broadcasts` then `POST /v1/broadcasts/{id}/send` | `name`, `phoneNumberId`, `templateName`, `templateLanguage`, `recipients` |

Without `phoneNumberId`, `create_webhook` creates a project webhook. `send_text` sends a text message (`kind: "text"`). `send_broadcast` creates a draft and immediately queues it; `recipients` is an array of 1 to 500 digit-only numbers, and the template must already be cached and `APPROVED`.

Keep the key out of public clients. See [authentication](https://docs.watahub.dev/en/authentication.md), [webhooks](https://docs.watahub.dev/en/webhooks.md) and [broadcasts](https://docs.watahub.dev/en/broadcasts.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.