Wavix MCP Server

MCP serverCommunication

Connect your AI to the Wavix telecom platform so it can handle texting and calling tasks for you. Once added, your AI can send SMS messages, work with voice calls, verify users with two-factor codes, manage phone numbers, and look up call records.

Available today. Use it from your connected AI after setup.

Add it and link it to your Wavix account, then try a simple task like sending a test text or listing your recent call records.

Then ask your AI: use Wavix MCP Server

What your AI can do with it

  • Send SMS messages
  • Place and manage voice calls
  • Verify users with two-factor codes
  • Manage phone numbers and SIP connections
  • Register numbers for 10DLC messaging
  • Search call detail records

From the project's README

As published by wavix/wavix-mcp-server in README.md.

A Model Context Protocol server that gives LLMs and AI agents direct access to the Wavix telecom platform — SMS/MMS, voice calls, 2FA, SIP trunking, phone-number management, 10DLC registration, call recordings, speech analytics, and billing.

Wavix is a global communications platform for sending SMS, placing voice calls, and running 2FA flows over a single API. A free trial is available; paid usage follows the Wavix pricing plan attached to your account.

The fastest way to use this MCP server is the hosted endpoint at https://mcp.wavix.com/mcp — point any MCP-compatible client at it and authenticate with your Wavix API key. If you need to self-host (custom Wavix deployment, behind a firewall, dedicated instance), see Run your own.

Table of contents

  • Endpoint
  • Installone-click, Claude Code, Claude Desktop / Web, Cursor, VS Code, Codex CLI, Windsurf
  • Run your own (self-host)
  • Examples
  • Toolsfull catalogue in TOOLS.md
  • Resources
  • Authentication (best practices, if a token is compromised)
  • Troubleshooting
  • Compatibility & limits
  • Support, Contributing, Security, License

Endpoint

FieldValue
URLhttps://mcp.wavix.com/mcp
TransportStreamable HTTP
AuthAuthorization: Bearer <api_key>
Toolssee TOOLS.md
ResourcesWavix docs + OpenAPI spec (auto-discovered)

Get a Wavix API key from the Wavix ConsoleAdministration → API keys → Create new.

Install

Before you start: grab your Wavix API key.

  1. Sign in at https://wavix.com.
  2. Open Administration → API keys.
  3. Click Create new (or copy an existing key). Keep it handy — you'll paste it in place of YOUR_API_KEY below.

One-click install

⚠️ The buttons below seed your editor's MCP config with a placeholder token YOUR_API_KEY. After the editor finishes installing, open the generated config and replace the placeholder with your real API key before sending any request — otherwise every call will return 401 Unauthorized.

To remove later: open the same config file (~/.cursor/mcp.json, .vscode/mcp.json, or the equivalent for your editor) and delete the wavix entry, or remove the connector through your editor's MCP / Connectors UI.

Claude Code

claude mcp add --transport http wavix https://mcp.wavix.com/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Use claude mcp list to verify and /mcp inside a session for status.

Claude Desktop / Claude Web

Settings → ConnectorsAdd custom connector:

  • Name: Wavix
  • URL: https://mcp.wavix.com/mcp
  • Transport: Streamable HTTP
  • Authentication header: Authorization: Bearer <api_key>

Cursor (manual)

Add to ~/.cursor/mcp.json (or project-level .cursor/mcp.json):

{
  "mcpServers": {
    "wavix": {
      "url": "https://mcp.wavix.com/mcp",
      "headers": {
        "Authorization": "Bearer <api_key>"
      }
    }
  }
}

Cursor 2.4+ exposes the full catalogue; earlier versions cap at 40.

VS Code (manual, GitHub Copilot Chat)

Create .vscode/mcp.json in your workspace (or add the same servers object under the "mcp" key in user settings.json):

{
  "servers": {
    "wavix": {
      "type": "http",
      "url": "https://mcp.wavix.com/mcp",
      "headers": {
        "Authorization": "Bearer <api_key>"
      }
    }
  }
}

See the VS Code MCP servers guide for the up-to-date schema.

Codex CLI

Codex CLI supports MCP over stdio. Bridge to the hosted server via mcp-remote. Edit ~/.codex/config.toml:

[mcp_servers.wavix]
command = "npx"
args = [
  "-y",
  "mcp-remote",
  "https://mcp.wavix.com/mcp",
  "--header",
  "Authorization:Bearer ${WAVIX_API_KEY}"
]

[mcp_servers.wavix.env]
WAVIX_API_KEY = "YOUR_API_KEY"

Windsurf / other clients

Any MCP client that supports Streamable HTTP transport with custom headers will work. Use:

  • URL: https://mcp.wavix.com/mcp
  • Header: Authorization: Bearer <api_key>

Setting up via an AI agent? Point your agent at llms-install.md — it's a machine-readable install guide that gives the model the URL, header, and per-client configuration in a deterministic format so it doesn't improvise endpoint values.

Run your own

The hosted server works out of the box for most users. Self-host if you need to point at a non-public Wavix deployment, run behind a firewall, or operate inside your own infrastructure.

Docker

docker build -t wavix-mcp-server .
docker run --rm -p 8000:8000 wavix-mcp-server

The server listens on port 8000 and exposes the MCP endpoint at /mcp. Point your client at http://<host>:8000/mcp.

From source

git clone https://github.com/Wavix/wavix-mcp-server.git
cd wavix-mcp-server
pip install -e .
wavix-mcp

Requires Python 3.10+.

Configuration

Env varDefaultPurpose
WAVIX_API_BASE_URLhttps://api.wavix.comOverride the upstream Wavix API endpoint (for internal deployments or staging)
OAUTH_ISSUERunsetBase URL of the OAuth 2.1 authorization server. Its JWKS is read from <issuer>/.well-known/jwks.json
OAUTH_RESOURCEunsetPublic base URL this server is reached at, used as the resource identifier
OAUTH_API_KEY_PASSTHROUGHtrueWith OAuth on, still accept a bearer that is not an OAuth JWT and forward it upstream (API keys keep working). Set false to require a JWT
MCP_PATH/mcpPath the MCP endpoint is served on

No Wavix credentials are required to run the server — they are forwarded per-request from the MCP client's Authorization: Bearer <api_key> header. Self-hosters are responsible for terminating TLS in front of the server (nginx, Caddy, cloud load balancer) before exposing it publicly.

OAuth 2.1 (optional)

Set OAUTH_ISSUER and OAUTH_RESOURCE together to turn the server into an OAuth 2.1 protected resource. It then publishes RFC 9728 metadata at /.well-known/oauth-protected-resource<MCP_PATH>, validates incoming access tokens as JWTs against the issuer's JWKS, and answers unauthenticated requests with a WWW-Authenticate challenge pointing at that metadata. MCP clients that support OAuth use this to run the authorization flow themselves, so users no longer paste an API key into their client config.

The audience each token must carry is OAUTH_RESOURCE + MCP_PATH, which is also the resource value published in the metadata. Authorization servers implementing RFC 8707 compare the client's resource parameter against that string exactly, so the two must be configured to match — including the path.

Enabling OAuth does not cut off clients that authenticate with a Wavix API key. A bearer token that is not a valid OAuth JWT is forwarded upstream unverified, exactly as before, leaving the Wavix API the sole authority on it — so an existing deployment can turn OAuth on for new clients without breaking the ones already connected. A request carrying no token at all still gets the WWW-Authenticate challenge, which is what lets an OAuth-capable client discover the authorization server. Only OAuth-authenticated connections are scope-filtered; an API-key connection sees the full tool surface.

Set OAUTH_API_KEY_PASSTHROUGH=false to drop that fallback and require a valid JWT — the strict mode to switch to once API-key access is retired.

Leaving either of OAUTH_ISSUER / OAUTH_RESOURCE unset keeps the previous behaviour: no metadata is published and whatever bearer token the client sends is forwarded upstream unverified.

Examples

Concrete prompts you can drop into any connected client.

Phone numbers below (+1 310 555 0100, +44 7700 900123) are in reserved test ranges (NANP 555 and Ofcom 070 09xx) — safe to copy verbatim, no real subscribers are reachable through them.

Send a transactional SMS

Prompt: "Send an SMS from +13105550100 to +447700900123 saying 'Your verification code is 4821'."

The agent calls sms_and_mms_messages_send with from, to, and text. Returns the message ID and delivery status.

Run a 2FA verification

Prompt: "Send a 2FA verification code to +13105550100 via SMS. When I give you the code I receive, check whether it's correct."

The agent calls two_fa_verification_create, waits for you to share the code that arrives via SMS, then calls two_fa_verification_check. Useful for prototyping passwordless flows without writing integration code.

Find and buy a phone number

Prompt: "Find an available US toll-free number with SMS capability, add it to my cart, and check out."

The agent chains buy_numbers_list (filtering by country and feature), cart_add, and cart_checkout. Confirm with the user before checkout — it charges the account.

Search call transcripts

Prompt: "Show me all inbound calls from yesterday longer than two minutes where the caller mentioned 'refund'."

The agent uses cdrs_search against transcriptions, then enriches each result via cdrs_get for full call metadata.

Pull a recording and transcribe it

Prompt: "Get the recording for call abc-123, ask Wavix to transcribe it, and return the transcription."

The agent calls call_recording_get_by_call (returns a pre-signed download URL), cdrs_retranscribe, then polls cdrs_transcription_get.

Audit billing

Prompt: "How much did we spend on SMS last month, and what invoices were issued?"

The agent calls billing_transactions_list filtered by type and date, then billing_invoices_list. Downloading the invoice PDF itself is not exposed over MCP — fetch it from the Wavix API or dashboard.

Tools

116 tools, generated from the Wavix OpenAPI spec. Arguments mirror request parameters and body fields.

Group#Coverage
SMS and MMS9Send, list, retrieve messages; sender IDs; opt-outs
Call control9Start / answer / end calls; play audio; collect DTMF
Call recording4List, download (pre-signed URL), delete
Call streaming2Start / stop media stream
Call webhooks3List, create, delete
CDRs6List, retrieve; transcription search and retranscribe
Speech Analytics3Transcribe, retrieve original file
2FA6Create / check / cancel / resend verification; events
My numbers5List, update, release; SMS / voice routing
Buy5Countries, regions, cities; available number search
Cart4Add, remove, retrieve, checkout
Number validator3Single and bulk validation
SIP trunks5Full CRUD
10DLC29Brands, campaigns, vetting, evidence, event subscriptions
Profile3Get / update profile; account config
API Keys4List, create, update, delete
Sub-accounts5List, create, get, update; transactions
Billing2Transactions; list invoices / statements
Voice campaigns2Trigger and retrieve
Wavix Embeddable (WebRTC)5Widget tokens CRUD
Link shortener2Create short links; metrics

See TOOLS.md for the complete tool list with one-line descriptions. The authoritative source is the Wavix OpenAPI spec — your client always sees the current live catalogue.

Resources

In addition to tools, the server exposes Wavix documentation as MCP Resources, so the model can pull authoritative context on demand instead of guessing from prior knowledge.

URI schemeContents
wavix://docs/<path>Documentation pages from docs.wavix.com (auto-discovered via llms.txt).
wavix://api/openapi.yamlThe full Wavix OpenAPI 3.0 specification.

Both sources — docs.wavix.com and the Wavix OpenAPI spec — are publicly available and can be browsed directly without authentication.

Resources are fetched lazily on resources/read and cached server-side with a 1-hour TTL. The upstream Bearer token is never forwarded to documentation hosts — only to api.wavix.com.

Authentication

Every request from the client must include:

Authorization: Bearer <api_key>

The server forwards this header to api.wavix.com per-request. The token:

  • is never logged,
  • is never forwarded on cross-host redirects (e.g. pre-signed S3 download URLs),
  • is never sent to documentation hosts.

If your client follows a pre-signed download URL returned by call_recording_get_by_call, speech_analytics_file_get, or ten_dlc_brand_evidence_get, fetch it directly without the Authorization header.

Best practices

  • Use a dedicated API key for MCP. Create a separate API key at https://wavix.comAdministration → API keys (or via the api_keys_create tool itself, from another session). This lets you revoke MCP access without disrupting other integrations.

  • Rotate periodically. Treat the API key like any production secret: rotate on schedule and on any suspicion of leakage.

  • Keep API keys out of git. MCP client configs are easy to commit by accident, taking the token with them into history and CI logs. Most clients support ${env:VAR} substitution in the header value — store the API key in an env var or your OS keychain and reference it from the config. As a safety net, add the common client-config paths to your project's .gitignore:

    .cursor/mcp.json
    .vscode/mcp.json
    claude_desktop_config.json
    .claude/mcp.json
    .codex/config.toml
    

If a token is compromised

  1. In the Wavix Console, deactivate the key immediately (or call api_keys_deactivate).
  2. Create a replacement via api_keys_create or the Console.
  3. Update the client's config and reconnect.
  4. Review billing_transactions_list and cdrs_list for unexpected activity.

Troubleshooting

SymptomLikely cause / fix
401 Unauthorized from any toolMissing or invalid Authorization: Bearer … header. Verify the API key is active in the Wavix Console.
Tool returns a download_url, not the file itselfExpected. Recording, speech-analytics, and 10DLC evidence endpoints return pre-signed URLs (see Authentication). Fetch the URL directly without the Authorization header.
Client only shows ~40 tools, not the full catalogueOlder clients enforce a per-server tool cap. Upgrade (Cursor 2.4+, latest VS Code, latest Claude).
Tool not found for a tool listed in this READMEThe local client may be caching an old tool list. Restart the client, or remove and re-add the server.
4xx with an errors arrayValidation error from Wavix API. Inspect errors; cross-reference the relevant wavix://docs/* page or the OpenAPI spec.
Cannot reach the serverConfirm DNS and outbound HTTPS to mcp.wavix.com:443.
Agent calls a destructive tool unexpectedlyMost clients can require confirmation before tool calls — enable that setting and rotate to a dedicated MCP API key (see Best practices).

Compatibility & limits

  • Compatible with any MCP client supporting Streamable HTTP transport (Claude Desktop / Web / Code, Cursor 2.4+, VS Code, Windsurf, custom MCP SDKs) and any agent framework with an MCP client adapter.
  • Older clients may enforce a per-server tool cap; upgrade to a recent version to access the full catalogue.
  • Rate limits and usage charges follow your Wavix account plan. See Wavix pricing.

Changelog

The hosted server is updated continuously as the Wavix OpenAPI spec evolves; new tools appear automatically and existing tool arguments may gain optional fields. Documentation changes for this repository are tracked under Releases. For substantial behavior changes affecting tool inputs or auth, we will publish a notice both there and in the Wavix release notes.

Support

Contributing

This repository is source-available but not open to external contributions. Pull requests are auto-closed, and Issues / Discussions are disabled. Send bug reports, feature requests, and feedback to support@wavix.com. See CONTRIBUTING.md for details.

If you find a bug in the underlying FastMCP framework, please report it upstream there.

Security

To report a security vulnerability, please email support@wavix.com with the subject Security: <short summary> rather than opening a public issue. See SECURITY.md for details.

License

MIT © Wavix

Signals

GitHub stars
3
Last commit
Sep 2026
Advanced
Delivery
mcp MCP server → your ahel gateway (mcp.ahel.ai) → every connected AI client.
Catalog kind
mcp-server
Gateway key
io-github-wavix-mcp
Source
github.com/wavix/wavix-mcp-server
Hosted endpoint
https://mcp.wavix.com/mcp