Skip to main content
Glama
aqeelshamz

wixzel-phone-mcp

by aqeelshamz

wixzel-phone-mcp

Wixzel Phone for AI agents. A Model Context Protocol server that lets Claude Code, Claude Desktop, Cursor, and any other MCP client create voice agents, connect a carrier, place calls, run campaigns, and read what it all cost, using the Wixzel Phone API.

Wixzel Phone: APIs for AI voice agents. One API key, one balance, every voice engine.

One tool per API operation, 56 in all, each annotated so a client knows which are read-only, which delete, and which spend money or make a real phone ring. Three prompts (quickstart, diagnose_call, spend_report) package the common workflows.

Install

You need a Wixzel Phone API key: Dashboard → API keys → Create key at phone.wixzel.com. Grant only the scopes the agent should have. Leave out billing:write unless you want it to be able to start top-ups.

Claude Code

claude mcp add wixzel-phone -e WIXZEL_API_KEY=wv_live_... -- npx -y wixzel-phone-mcp

Or commit a .mcp.json to the project so every collaborator gets it:

{
  "mcpServers": {
    "wixzel-phone": {
      "command": "npx",
      "args": ["-y", "wixzel-phone-mcp"],
      "env": { "WIXZEL_API_KEY": "${WIXZEL_API_KEY}" }
    }
  }
}

Then, in Claude Code:

/mcp__wixzel-phone__quickstart

Claude Desktop

Add to claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "wixzel-phone": {
      "command": "npx",
      "args": ["-y", "wixzel-phone-mcp"],
      "env": { "WIXZEL_API_KEY": "wv_live_..." }
    }
  }
}

Cursor, Windsurf, VS Code, others

Same shape: command npx, args ["-y", "wixzel-phone-mcp"], env WIXZEL_API_KEY. Any client that speaks MCP over stdio works.

Remote (Streamable HTTP)

For clients that connect over HTTP, or to host one server for a team:

npx wixzel-phone-mcp --http 3939

The server listens on http://localhost:3939/mcp. Each request carries the caller's own key as Authorization: Bearer wv_live_...; the server is stateless and never mixes keys between requests. Set WIXZEL_API_KEY to provide a fallback key for requests that send none. GET /healthz reports liveness.

Related MCP server: Vapi MCP Server

What the agent can do

Family

Tools

Engines

list_engines

Agents

list_agents get_agent create_agent update_agent delete_agent

Calls

place_call list_calls get_call get_call_transcript hangup_call delete_call

SIP trunks

list_sip_trunks get_sip_trunk create_sip_trunk update_sip_trunk delete_sip_trunk check_sip_trunk_status test_sip_trunk get_sip_trunk_logs

Phone numbers

list_phone_numbers get_phone_number create_phone_number update_phone_number delete_phone_number

Leads

list_leads get_lead create_lead update_lead delete_lead import_leads

Campaigns

list_campaigns get_campaign create_campaign start_campaign pause_campaign delete_campaign

Knowledge bases

list_knowledge_bases get_knowledge_base create_knowledge_base update_knowledge_base delete_knowledge_base

Appointments

list_appointments get_appointment create_appointment update_appointment delete_appointment

Billing & usage

get_balance list_ledger_entries create_topup get_usage_summary list_usage_events

API keys

list_api_keys create_api_key rotate_api_key revoke_api_key

Prompts: quickstart (connect a carrier, register a number, build an agent, place a first call), diagnose_call (why did call X fail), spend_report (what did this month cost, and where).

Resources: wixzel://guide (the operating guide the server also sends as its instructions) and wixzel://connection (base URL and whether the key is live or test; never the key itself).

How it keeps the agent honest

  • Money is explicit. place_call, start_campaign and create_topup are annotated openWorldHint: true and their descriptions tell the model to confirm with the user first. Clients that gate on annotations will ask before running them.

  • Idempotency is automatic. The two money paths require an Idempotency-Key; the server generates one per call and accepts an explicit idempotency_key for deliberate retries, so a network timeout never turns into two calls.

  • Errors are actionable. Every failure returns the API's machine-readable code, the request_id, and a hint that says what to do: which scope is missing, that the balance is short, that a cursor was mangled.

  • Rate limits are absorbed. A 429 is retried after Retry-After up to twice before the model sees it. Those requests are never charged.

  • Scopes do the gating. The key decides what works. There is no admin scope, and a key cannot create one broader than itself.

  • Secrets stay put. SIP passwords are write-only; API key secrets appear once, in the tool result, and nowhere else. The key this server runs with is never exposed through any tool or resource.

Configuration

Variable

Purpose

WIXZEL_API_KEY

Your key. Required for stdio; the fallback for HTTP.

WIXZEL_API_BASE_URL

Defaults to https://api.phone.wixzel.com. Point at a self-hosted API for development.

WIXZEL_API_VERSION

Optional Wixzel-Version date pin, e.g. 2026-09-01.

PORT

HTTP port when --http is given without one. Default 3939.

Development

npm install
npm test          # offline: a fake API behind an in-memory MCP client
npm run build     # dist/
npm run inspect   # opens the MCP Inspector against the built server

Run the built server against a real key:

WIXZEL_API_KEY=wv_test_... node dist/index.js

Tool schemas are hand-written zod, derived from the API's OpenAPI spec at docs/openapi.json in the wixzel-voice repository. When an endpoint is added there, add a tool in src/tools/.

License

MIT. Wixzel Phone itself is a hosted service; see phone.wixzel.com for terms.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aqeelshamz/wixzel-phone-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server