Skip to main content
MCP server CX Codex

server — Claude Code MCP server: one contract for telephony

A single MCP server exposing 14 tools for calls, SMS, recordings and numbers. Swap the backend, keep your agent code.

Install into Claude Code · Platform CLI All methods and platforms ↓
claude mcp add --env CALLMCP_CONFIG=<CALLMCP_CONFIG> --env CALLMCP_DEFAULT_DRIVER=<CALLMCP_DEFAULT_DRIVER> --transport stdio callmcp-server -- npx -y @callmcp/server
Open on GitHub

What server does

CallMCP defines one tool contract: 14 tools with matching schemas and matching error shapes. Hosted backend, local backend, or your own key — the set of tools shifts, their shape does not. Driver quirks go into a namespaced options.<driver_id> object, so there is no make_call_twilio. A tool is either present for your driver and works per spec, or it is missing from tools/list.

Start it with npx -y @callmcp/server. Run npx -y @callmcp/server doctor before wiring up a live provider, and npx -y @callmcp/server --sandbox for a safe walkthrough. With no driver configured the server fails closed, and the mock driver only appears under explicit sandbox settings. Paste-ready configs for Claude Desktop and Claude sit in examples/.

Outbound make_call and send_sms need a valid approval_id or an allowlist match, and that check lives in the server core — no driver can skip it. Approval normally runs through MCP elicitation; clients without it get a single-use link instead. Number provisioning (search_numbers, buy_number, configure_number) is not gated on a human and can settle cost through x402 when a driver wants prepayment.

What it helps with

  • place a call from an agent with approval before dialing
  • send SMS without glue code per provider
  • buy and configure a number inside the agent session
  • stream a call transcript as it happens
  • switch call providers without rewriting agent code

Example prompts for the agent

  • Search my account for an available number and show what it costs
  • Call +1... and read out the meeting reminder — ask for approval first
  • Send the access code by SMS to a number on the allowlist

How to install server

Platform CLI

claude mcp add --env CALLMCP_CONFIG=<CALLMCP_CONFIG> --env CALLMCP_DEFAULT_DRIVER=<CALLMCP_DEFAULT_DRIVER> --transport stdio callmcp-server -- npx -y @callmcp/server

Replace <…> with your own values

Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more

Questions about server

How do I install server in Claude Code?

Quick path: claude mcp add server -- npx -y @callmcp/server. With config and driver: `claude mcp add --env CALLMCP_CONFIG=<CALLMCP_CONFIG> --env CALLMCP_DEFAULT_DRIVER=<CALLMCP_DEFAULT_DRIVER> --transport stdio callmcp-server -- npx -y @callmcp/server`.

What does server do?

It hands your agent 14 tools covering calls, SMS, recordings, transcripts and phone numbers. The same contract drives a hosted, local or BYOK backend.

Does an outbound call need human approval?

Yes. make_call and send_sms require an approval_id or an allowlist match, enforced in the server core rather than in driver code.

Similar MCP servers

All MCP servers for Agent setup: memory, context, orchestration →

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor