
Wavix
io.github.WavixPublished by GitHub account Wavixv1.3.2Updated Nov 6, 2026
Wavix telecom MCP: SMS, voice, 2FA, SIP, numbers, 10DLC, CDRs. Account sign-in or API key.
Overview
Hosted Wavix telecom MCP server that lets an assistant send SMS/MMS and WhatsApp messages, place calls, run 2FA, manage numbers, SIP trunks and 10DLC, and…
- What you can do
- Send, list and retrieve SMS/MMS and WhatsApp messages, manage sender IDs and opt-outs
- Start, answer and end calls; play audio, collect DTMF, record, stream and set call webhooks
- Create, check, cancel and resend 2FA verifications and list their events
- Search available numbers, add them to a cart and check out; update, release and route owned numbers; validate numbers
- Manage SIP trunks, 10DLC brands and campaigns, voice campaigns, sub-accounts, API keys and short links
- Search CDRs and transcripts, retranscribe recordings, run speech analytics, and list billing transactions and invoices
- When to use it
- Useful when an assistant should operate a Wavix telecom account directly: prototyping passwordless 2FA flows, sending transactional messages, buying or routing phone numbers, or auditing call records and spend without writing integration code.
- Requirements
- Remote Streamable HTTP endpoint; no local install. Authenticate by signing in with a Wavix account (OAuth 2.1) or by sending an Authorization header with a Bearer Wavix API key created in the Wavix Console. Outbound HTTPS to the hosted endpoint is required. Self-hosting is optional and needs Python 3.10+ or Docker.
Installation
In SourceWeft
- Open Wavix in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.Wavix%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"wavix": {
"type": "http",
"url": "https://mcp.wavix.com/mcp"
}
}
}README
Wavix MCP Server
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 connect by signing in with your Wavix account or with a 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
- Install — sign in with an account, API key, one-click, Claude Code, Claude Desktop / Web, Cursor, VS Code, Codex CLI, Windsurf
- Run your own (self-host)
- Examples
- Tools → full catalogue in TOOLS.md
- Resources
- Authentication (best practices, if a token is compromised)
- Troubleshooting
- Compatibility & limits
- Support, Contributing, Security, License
Endpoint
Get a Wavix API key from the Wavix Console → Administration → API keys → Create new.
Install
Two ways to connect — pick whichever your client supports; neither is required over the other.
Sign in with a Wavix account
If your MCP client supports OAuth (Claude Desktop / Web, and other OAuth-capable clients), connect without an API key: add the connector for https://mcp.wavix.com/mcp and, when the client prompts, sign in with your Wavix account and approve access. The client runs the OAuth 2.1 flow and stores the token itself — nothing to paste. The tools you get are scoped to what you approve and your account role permits (see Troubleshooting).
Connect with an API key
Before you start: grab your Wavix API key.
- Sign in at https://wavix.com.
- Open Administration → API keys.
- Click Create new (or copy an existing key). Keep it handy — you'll paste it in place of
YOUR_API_KEYbelow.
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 return401 Unauthorized.
[Install in VS Code] [Install in Cursor]
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
Use claude mcp list to verify and /mcp inside a session for status.
Claude Desktop / Claude Web
Settings → Connectors → Add custom connector:
- Name:
Wavix - URL:
https://mcp.wavix.com/mcp - Transport:
Streamable HTTP - Authentication header:
Authorization: Bearer <api_key>
To connect by signing in instead, add the connector without an authentication header and sign in with your Wavix account when the client prompts.
Cursor (manual)
Add to ~/.cursor/mcp.json (or project-level .cursor/mcp.json):
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):
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:
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
The server listens on port 8000 and exposes the MCP endpoint at /mcp. Point your client at http://<host>:8000/mcp.
From source
Requires Python 3.10+.
Configuration
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 (NANP555and Ofcom070 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. cart_checkout first returns a preview with the numbers and their fees, and charges the account only when called again with its confirmation_token.
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
Generated from the Wavix OpenAPI spec. Arguments mirror request parameters and body fields. The tools shown depend on the permissions you approve at sign-in and the features enabled on your account.
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.
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
The hosted server accepts two connection methods — neither is preferred:
- Sign in with a Wavix account (OAuth 2.1). For OAuth-capable clients. The client runs the authorization flow and the user signs in; no API key is stored. Access is scope-limited to what the user approves and their account role permits. See Sign in with a Wavix account.
- Wavix API key (Bearer). For any Streamable-HTTP client. Every request must include:
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.com → Administration → API keys (or via the
api_keys_createtool 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:
If a credential is compromised
If you connected with an API key:
- In the Wavix Console, deactivate or delete that key immediately (or call
api_keys_delete). - Create a replacement via
api_keys_createor the Console. - Update the client's config and reconnect.
If you connected by signing in with your Wavix account:
- Revoke the connection from the Wavix portal's grant-management page, which lists the connections you authorized and revokes the one you choose — this invalidates that connection's tokens. No API key is involved.
- Reconnect and sign in again.
In either case, review billing_transactions_list and cdrs_list for unexpected activity.
Troubleshooting
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.
- Every tool annotated with
destructiveHint, pluscall_webhooks_create,sip_trunks_updateandsub_accounts_update, runs in two steps: the first call returns a preview and a single-useconfirmation_token(valid 5 minutes), and the action runs only when the tool is called again with the same arguments and that token. Any MCP client can do this; no client-side confirmation support is needed. - 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
- Product docs: https://docs.wavix.com
- API reference: https://docs.wavix.com/api-reference
- Questions / feedback: [email protected]
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 [email protected]. 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 [email protected] with the subject Security: <short summary> rather than opening a public issue. See SECURITY.md for details.
License
MIT © Wavix
Source: README.md at commit 55b1362
Tools
0Version history
6- v1.3.2LatestNov 6, 2026
- v1.3.1Oct 16, 2026
- v1.3.0Oct 14, 2026
- v1.2.0Oct 7, 2026
- v1.1.0Sep 23, 2026
- v1.0.0Sep 16, 2026
Score
85% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts