---
title: "Claude Code + OmniChannels.ai: build and test messaging from your terminal"
description: "Add the OmniChannels.ai MCP server to Claude Code to send test messages and read delivery reports, and use our OpenAPI spec to build WhatsApp and SMS code."
canonical: "https://omnichannels.ai/integrations/claude-code/"
language: "en"
updated: "2026-10-10"
publisher: "BroadNet Technologies"
brand: "OmniChannels.ai"
---

# Claude Code + OmniChannels.ai: build and test messaging from your terminal

Canonical: https://omnichannels.ai/integrations/claude-code/
Language: en
Publisher: OmniChannels.ai by BroadNet Technologies

**In short:** Claude Code connects to OmniChannels.ai with one command: claude mcp add --transport http pointing at https://mcp.broadnet.me/mcp with an Authorization: Bearer header. It can then send test messages, list WhatsApp templates and read delivery reports while it writes your integration code from our OpenAPI 3.1 spec. Teams share the server in .mcp.json, and permission rules control which tools run without a prompt.

Connect via MCP · Connect via API & webhooks

## What you can do

### Write code from the real templates

Claude Code reads your approved WhatsApp templates through MCP and writes a function with exactly the variables each one needs.

> Try asking: "Use the omnichannels tools to list my approved WhatsApp templates, then write a TypeScript function that sends order_update with the fields it needs."

### Build a webhook handler

Point Claude Code at the webhooks guide and it writes an endpoint that stores delivery statuses and inbound messages, tolerating fields that vary by channel.

> Try asking: "Write an Express webhook handler that records SUBMITTED, SENT, DELIVERED, READ, FAILED and REJECTED statuses by message ID and logs unknown fields instead of failing."

### Generate a typed client from the spec

With the OpenAPI spec saved in your repository, Claude Code uses the exact paths and fields instead of guessing them.

> Try asking: "Using docs/omnichannels-openapi.yaml, write a Python module that sends an SMS with POST /sms/sendSms and list every field you used with its type from the spec."

### Test end to end on your own number

Claude Code sends a test message after you approve the tool call, then checks the delivery report to confirm your code path works.

> Try asking: "Send a test SMS from OmniDemo to my number 447700900123, then check its delivery report."

### Debug failed sends

Read tools let Claude Code compare delivery reports with your logs and trace a failure back to the request that caused it.

> Try asking: "Read the delivery report for yesterday's campaign, summarise the failure reasons, and check our retry code against the errors guide."

## How it connects

Claude Code adds remote MCP servers with claude mcp add --transport http and an Authorization header. Your shell expands the token from an environment variable when you run the command; for a team, a project-scoped .mcp.json lets each developer supply their own token through ${BROADNET_TOKEN}, and Claude Code asks each person to approve the server before using it.

MCP covers acting on your account: sending test messages, reading templates and delivery reports. For writing integration code, give Claude Code our OpenAPI 3.1 spec as the source of truth for endpoints and fields, plus the webhooks guide, since webhook payloads are not in the spec. Permission rules such as mcp__omnichannels__get_* let read tools run without a prompt while send tools still ask.

- Command: claude mcp add --transport http omnichannels https://mcp.broadnet.me/mcp
- Team setup: commit .mcp.json with Bearer ${BROADNET_TOKEN}, never a key
- Permission rules name tools as mcp__omnichannels__<tool>
- OpenAPI 3.1 spec at /developers/openapi.json for exact request fields
- Single SMS is JSON; bulk and most other channel sends use multipart/form-data

## Set it up

1. **Request API access:** Request test access and receive an API token. Test sends go only to your own verified numbers.
2. **Get a temporary key:** In the admin portal open Integrations, then MCP Integration, choose Get temporary key and export it as BROADNET_TOKEN. (Guide: https://omnichannels.ai/developers/mcp/)
3. **Add the server:** Run claude mcp add --transport http omnichannels https://mcp.broadnet.me/mcp with the Authorization header, or commit a project .mcp.json for your team, then check it with /mcp. (Guide: https://omnichannels.ai/developers/mcp-claude-code/)
4. **Set permission rules:** Allow read tools such as mcp__omnichannels__get_* if you want, keep every send tool on prompt, and deny tools the project does not need. (Guide: https://omnichannels.ai/developers/mcp-claude-code/)
5. **Add the OpenAPI spec:** Download openapi.yaml into your repository and tell Claude Code to use it for endpoint paths, fields and enums. (Guide: https://omnichannels.ai/developers/openapi/)
6. **Test on your own number:** Ask Claude Code to send a test message to your verified number, then read back the delivery report.

## Example workflow

Claude Code (Writes your integration and calls tools when asked) → OmniChannels.ai MCP and API (MCP tools for tests; your code calls the REST API) → Your test phone (Test SMS or WhatsApp to your verified number) → Your webhook handler (Receives delivery statuses and inbound messages)

## Questions

### Is there an official OmniChannels.ai plugin for Claude Code?

No. Claude Code connects through its standard support for remote MCP servers, using our public endpoint and your API token, and reads our public OpenAPI spec like any other file in your repository.

### How do I share the server with my team without sharing a key?

Commit a project-scoped .mcp.json whose Authorization header uses ${BROADNET_TOKEN}. Each developer sets that variable in their own shell, and Claude Code asks them to approve the project server before it uses it.

### Can Claude Code send messages without asking?

By default Claude Code asks before it uses an MCP tool. Keep that for send tools, since each send is a real, billed message. Allow only read tools in your permission rules, and check tool names under /mcp first because they depend on the server version and your account.

### Should I use MCP or the REST API in my product?

Use MCP so Claude Code can test and inspect your account while you develop. The code you ship should call the REST API directly with a token from your secrets store, using the OpenAPI spec for exact fields.

## Developer guides

- https://omnichannels.ai/developers/mcp-claude-code/
- https://omnichannels.ai/developers/openapi/
- https://omnichannels.ai/developers/webhooks/
- https://omnichannels.ai/developers/mcp/

## Vendor documentation

- [Connect Claude Code to tools via MCP](https://code.claude.com/docs/en/mcp)
- [Claude Code permissions](https://code.claude.com/docs/en/permissions)

## Related integrations

- https://omnichannels.ai/integrations/claude/
- https://omnichannels.ai/integrations/cursor/
- https://omnichannels.ai/integrations/vs-code/
- https://omnichannels.ai/integrations/langchain/

Claude Code is a trademark of its owner. OmniChannels.ai is not affiliated with or endorsed by Claude Code; this page describes a connection built with Claude Code's own MCP, HTTP or webhook features.

Updated: 2026-10-10