Let Claude place and answer phone calls with the Wixzel Phone MCP server
For people who would rather ask than write code, and for AI agents that need to make a phone call as one step of a larger job: Wixzel Phone ships an official Model Context Protocol server, wixzel-phone-mcp, that puts the whole API in front of Claude and other MCP clients as tools. Connect it once with OAuth, and "call this number and confirm the delivery slot" becomes something an agent can do, over your own SIP trunk, from your prepaid balance, and never without asking before it dials.
Last updated
How it is built
- 01claude mcp add --transport http wixzel-phone https://mcp.phone.wixzel.com/mcp
The hosted server, for Claude Code, claude.ai, Claude Desktop and any client that speaks MCP over HTTP. Sign in with OAuth, tick the scopes the client may use, and it is connected. No key is pasted anywhere.
- 02npx -y wixzel-phone-mcp
The same server run locally over stdio with an API key in the environment, for Claude Code, Cursor, Windsurf, VS Code, offline work, or pointing at a self-hosted server.
- 03/mcp__wixzel-phone__quickstart
A prompt the server ships: it connects a carrier, registers a number, builds an agent and places a first call, stopping before anything that dials. diagnose_call explains a failed call from its record, usage and SIP logs; spend_report turns a period into dollars by component and by call.
- 04place_call, start_campaign, create_topup
The tools that spend money or ring a real phone are annotated so the client asks before running them, and each takes an idempotency key so a retry never dials twice.
- 05AI clients, in the console
Every connected client is listed with its scopes. Disconnect one and its key stops working immediately.
The engine to use
classic, $0.0867 per connected minute. The quickstart prompt builds its first agent on the default engine, which is the cheapest reliable pairing for English. An agent can ask for sarvam for Indian languages or gemini-live for the lowest latency; the engines are listed by a tool, so it never has to guess a model name.
What it costs
Engine time for 3-minute calls on the classic engine, at typical speech rates. Telephony is your own trunk at your carrier’s rate and is not included; the meter charges per second, so shorter calls cost proportionally less.
| Calls per month | Connected minutes | Engine cost per month |
|---|---|---|
| 100 | 300 | $26.01 |
| 500 | 1,500 | $130 |
| 2,000 | 6,000 | $520 |
Prepaid: add credit from $5 and the calls spend it. Estimate your own mix.
Frequently asked questions
- Can Claude make phone calls with Wixzel Phone?
- Yes. Add https://mcp.phone.wixzel.com/mcp as a connector in claude.ai or Claude Desktop, or run
claude mcp add --transport http wixzel-phone https://mcp.phone.wixzel.com/mcpin Claude Code, sign in, and Claude can create an agent, place a call over your SIP trunk, wait for it to finish and read the transcript. The tool that dials asks for confirmation first. - Which AI clients work with the MCP server?
- Any MCP client. Over HTTP with OAuth: Claude Code, claude.ai, Claude Desktop and any remote-capable client. Over stdio with an API key: Claude Code, Claude Desktop, Cursor, Windsurf, VS Code and anything that launches servers from a JSON config. Clients that speak HTTP but cannot do OAuth send an API key as a bearer token.
- Does the AI agent get my API key?
- Not with the hosted server. OAuth issues the client a key of its own, limited to the scopes you approved on the consent screen, and you can revoke it from the AI clients page in the console at any time. With the local server, the key you put in the environment decides what the agent can do; the console preselects the standard agent scopes when you create one.
- Can an AI agent spend my money without asking?
- The tools that spend money or ring a phone are annotated as such, and MCP clients ask before running them. billing:write, which starts a top-up, and api_keys:write, which mints keys, are never offered by default and have to be granted deliberately. There is no admin scope. Everything the agent does is itemised in the usage log like any other API call.
- What does a call placed from Claude cost?
- The same as a call placed from code: the engine's per-minute price, billed per second from your prepaid balance, plus your carrier's rate for the trunk. There is no fee for using the MCP server.
- Does the MCP server work with a self-hosted server?
- Yes. Run the local form, wixzel-phone-mcp from npm, with an API key from your own install and its API host in the environment. A self-hosted server also serves its own MCP endpoint, so the hosted form works against it too.
- Do I still need a SIP trunk?
- For phone calls, yes. Wixzel Phone does not sell numbers or minutes; the quickstart prompt walks the agent through connecting a carrier trunk and registering a number before it builds anything that dials. Sessions in a web or mobile app need no trunk.
Other uses
Build an agent that answers the phone, checks availability and books an appointment, over your own SIP trunk, with the booking written back through the API.
Upload leads, start a campaign, and have an agent call each one over your own SIP trunk, ask your qualifying questions, and record the outcome per lead.
Answer a support number with an agent that reads from a knowledge base you upload, handles the common questions, and leaves a transcript of every call.
Run phone agents in Indian languages on models built for them, with the sarvam engine covering speech-to-text, the language model and text-to-speech end to end.
Put an agent in a browser page, a Flutter app or a kiosk with no SIP trunk and no phone number: your server mints a one-minute session, the app streams audio over a WebSocket, and the session is billed like a call.
Operator, prices, limits, refunds and data location, on one page.
