Skip to main content
Glama
aqeelshamz

wixzel-phone-mcp

by aqeelshamz
README.md
# Wixzel Phone SDKs

[![npm](https://img.shields.io/npm/v/wixzel-phone?style=flat-square&logo=npm&logoColor=white&label=npm&color=A0D425&labelColor=0D0D0D)](https://www.npmjs.com/package/wixzel-phone)
[![pub.dev](https://img.shields.io/pub/v/wixzel_phone?style=flat-square&logo=dart&logoColor=white&label=pub.dev&color=A0D425&labelColor=0D0D0D)](https://pub.dev/packages/wixzel_phone)
[![npm](https://img.shields.io/npm/v/wixzel-phone-mcp?style=flat-square&logo=npm&logoColor=white&label=npm&color=A0D425&labelColor=0D0D0D)](https://www.npmjs.com/package/wixzel-phone-mcp)
[![MIT](https://img.shields.io/badge/licence-MIT-A0D425?style=flat-square&labelColor=0D0D0D)](LICENSE)

Public source for the packages [Wixzel Phone](https://phone.wixzel.com) publishes: AI voice agents that place and answer real phone calls over your own SIP trunk.

| Package | Registry | Source |
|---|---|---|
| `wixzel-phone` | [npm](https://www.npmjs.com/package/wixzel-phone) | [`packages/sdk-ts`](packages/sdk-ts) |
| `wixzel_phone` | [pub.dev](https://pub.dev/packages/wixzel_phone) | [`packages/sdk-dart`](packages/sdk-dart) |
| `wixzel-phone-mcp` | [npm](https://www.npmjs.com/package/wixzel-phone-mcp) | [`apps/mcp`](apps/mcp) |

The two SDKs cover every `/v1` endpoint under one shared method table, page through cursor lists, send idempotency keys on the paths that spend money, retry rate limits honouring `Retry-After`, and raise errors carrying the API's stable `code`, `request_id` and `doc_url`. The MCP server puts the same surface in front of Claude Code, claude.ai and Claude Desktop.

- Documentation: [docs.phone.wixzel.com/sdks](https://docs.phone.wixzel.com/sdks) and [/mcp-server](https://docs.phone.wixzel.com/mcp-server)
- API reference: [docs.phone.wixzel.com/api-reference](https://docs.phone.wixzel.com/api-reference)

## Running the tests

`docs/openapi.json` is the API's own OpenAPI document, copied here because each package's coverage test reads it and asserts that every operation has a method and every method names a real operation.

```bash
npm install
npm test                       # the TypeScript SDK and the MCP server
cd packages/sdk-dart && dart test
```

## About this repository

This is a **mirror**. The packages are developed in the Wixzel Phone monorepo alongside the API they wrap, so that a change to an endpoint and the change to its client land together, and are synced here on release.

Issues and pull requests are welcome and are read. A pull request will be applied upstream and appear here on the next sync rather than merged directly, so it may arrive under a different commit.

## Licence

MIT for everything in this repository. Wixzel Phone itself is a hosted service; see [phone.wixzel.com](https://phone.wixzel.com) for its terms.

TDQS

A3.7/5.0

Scored across 56 tools

Disambiguation4/5

Tools are organized into clear resource families (agents, calls, leads, campaigns, trunks, numbers, billing) and the verb+resource naming makes most selections obvious. The only mild ambiguities are the SIP diagnostics (check_sip_trunk_status vs test_sip_trunk) and the several billing/usage views, but their descriptions explicitly differentiate them.

Naming Consistency5/5

All tools follow a consistent lowercase snake_case verb_noun convention: list_/get_ for reads and create_/update_/delete_ for writes, plus domain verbs like start_, pause_, place_, hangup_, check_, and rotate_. Minor variants like import_leads or create_topup still fit the same predictable pattern.

Tool Count1/5

At 56 tools, this is beyond the rubric's 50+ extreme-mismatch threshold and far too large a surface for an agent to navigate efficiently. Although the tools are well structured, this is more like a full REST API than a scoped MCP server.

Completeness4/5

Most resources have full CRUD coverage plus domain-specific operations: calls, SIP diagnostics, billing views, API key lifecycle, and bulk lead import. The main gap is the campaign lifecycle: there is no update_campaign, stop_campaign, or explicit resume_campaign, so agents must delete/recreate or improvise with pause/start.

Maintenance

ActivityMaintained
ResponsivenessNo issues