The MCP server exposes the messaging API as tools that AI agents can discover and call. Point any MCP client that supports remote servers at one endpoint, authenticate with your token, and the agent can send messages, work with WhatsApp templates and read delivery reports on your account.
What MCP is#
The Model Context Protocol (MCP) is an open standard that lets AI assistants connect to external tools. An MCP client (Claude, Cursor, VS Code and many others) connects to an MCP server, lists the tools it offers, and calls them when a user's request needs them.
Our server is a remote MCP server. Its tools map to the same REST API documented in these pages, and they act with the permissions of the token you provide, exactly as your own code would.
| Setting | Value |
|---|---|
| Endpoint | https://mcp.broadnet.me/mcp |
| Transport | MCP Streamable HTTP |
| Authentication | Authorization: Bearer <token> header on every request |
| Acts on | Your account: your channels, sender IDs, templates and balance |
Get a key#
Sign in to the admin portal and open Integrations → MCP Integration. Choose Get temporary key and copy the ready-made client configuration. A permanent key for a production agent is issued by your account admin or master account.
Requests without a token are refused at the protocol level:
Response without a token
event: message
data: {"jsonrpc":"2.0","id":1,"error":{"code":-32001,"message":"Authorization bearer token is required. Connect with an 'Authorization: Bearer <BroadNet token>' header."}}Connect a client#
Each client stores MCP servers slightly differently. Use your client's support for environment variables or secret inputs so the token never sits in a file you commit.
Claude Code
claude mcp add --transport http omnichannels https://mcp.broadnet.me/mcp \
--header "Authorization: Bearer $BROADNET_TOKEN"Cursor
{
"mcpServers": {
"omnichannels": {
"url": "https://mcp.broadnet.me/mcp",
"headers": {
"Authorization": "Bearer ${env:BROADNET_TOKEN}"
}
}
}
}VS Code
{
"inputs": [
{
"type": "promptString",
"id": "omnichannels-token",
"description": "OmniChannels.ai API token",
"password": true
}
],
"servers": {
"omnichannels": {
"type": "http",
"url": "https://mcp.broadnet.me/mcp",
"headers": {
"Authorization": "Bearer ${input:omnichannels-token}"
}
}
}
}Claude Desktop
{
"mcpServers": {
"omnichannels": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.broadnet.me/mcp",
"--header",
"Authorization:${OMNI_AUTH}"
],
"env": {
"OMNI_AUTH": "Bearer paste-your-temporary-key-here"
}
}
}
}Where each one goes:
| Client | Where the configuration lives |
|---|---|
| Claude Code | Added by the command above (use --scope user to make it available in every project). |
| Cursor | ~/.cursor/mcp.json, or .cursor/mcp.json in a project. |
| VS Code | .vscode/mcp.json in your workspace. VS Code prompts for the token and stores it securely. |
| Claude Desktop | claude_desktop_config.json. The mcp-remote bridge (Node.js required) forwards the header to the remote server. |
| Other clients | Any client that supports Streamable HTTP and a custom Authorization header. Some expect "type": "http" or "type": "streamable-http". |
Client configuration formats change between versions, so check your client's MCP documentation if a field is not recognised.
Step-by-step guides: Claude Code, Cursor and n8n. For Make and Zapier, which call the REST API rather than MCP, see Make and Zapier with webhooks.
Test the connection without a client#
Send the MCP initialize request yourself:
cURL
curl -X POST https://mcp.broadnet.me/mcp \
-H "Authorization: Bearer $BROADNET_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}'The tools#
Once connected, the client lists the available tools, and you can switch each one on or off. They cover sending on each channel (for example SMS, WhatsApp, RCS, Telegram, Messenger, Instagram and Push), listing and sending WhatsApp templates, and reading delivery reports. The exact list depends on the server version and your account.
Example prompts#
- "Send an SMS from OmniDemo to 447700900123 saying the technician arrives at 3 pm."
- "List my approved WhatsApp templates in Arabic."
- "Send the order_update WhatsApp template to 971500000000 with order number INV-400."
- "How many messages in yesterday's statements campaign failed, and why?"
- "Draft an RCS card for our autumn launch and show it to me before sending anything."
Use agents safely#
An agent with this server can send real messages that cost money and reach real people. Set guardrails before you connect one.
- Least privilege. Enable only the tools the agent needs. An agent that answers delivery questions does not need send tools; one that sends OTPs does not need template or account tools.
- Human in the loop. Configure the client to ask for confirmation before any tool that sends, and always before sends to many recipients.
- Temporary keys for experiments. Use a temporary key while testing, and a permanent key only for a reviewed production agent.
- Test numbers first. Point new agents at your own verified numbers until you trust their behaviour.
- Watch the logs. Review what the agent sent in your delivery reports, especially in the first weeks.
- Revoke quickly. If a key is exposed, ask your account admin or our support team to revoke it and issue a new one.
- Respect consent. Agents must follow the same opt-in, sender ID and channel rules as any other sender.
Next steps#
- Authentication: how tokens are issued and revoked.
- OpenAPI 3.1 spec: the REST API behind the tools, machine-readable.
- WhatsApp API: template rules the agent must follow.
Ready to send your first message?
Request test credentials. An engineer sets up your account, and test sends go to your own verified numbers.
Request test access