Phone calls as an MCP tool

Give Your AI Agent a Phone Line

CallMCP is an MCP server that lets AI agents make and receive phone calls — outbound calls, appointment confirmations, lead qualification, voicemail, transcripts, and human handoff — through the same tool-call contract your agent already speaks.

View the docsSee an example callJoin the beta

What it does

Most agent frameworks can browse, read files, and call APIs. They can't pick up a phone. CallMCP fills that gap: it exposes calling, texting, and phone-number management as MCP tools, so an agent can dial a lead, leave a voicemail, confirm an appointment, or escalate to a human — the same way it already calls any other tool.

Why MCP for calls

A REST API is built for apps. A phone call needs more than a request/response — it needs permissions (who is this agent allowed to call, and about what), state (is the call still ringing, did it fail, was a human handed off), logs (what was said, was it recorded), and approval (should a human confirm before the agent dials). That shape — permissioned, stateful, logged, approvable — is exactly what MCP tools are for. CallMCP is built on that primitive instead of bolting call state onto a generic API client.

Example tool call

An agent placing an outbound call looks like any other MCP tool call:

{
  "method": "tools/call",
  "params": {
    "name": "make_call",
    "arguments": {
      "agent_id": "agt_9f2a1c",
      "to": "+15551234567",
      "context": "Confirm Thursday 2pm appointment",
      "lead_id": "lead_88213"
    }
  }
}

The response includes a call ID, provider status, and — once the call ends — a transcript, recording URL, and outcome, retrievable with get_transcript and get_call_recording.

Built in, not bolted on

Human approval gates

Actions that spend money or change live state — like buying a number or rolling back an agent's config — don't execute on an agent's say-so alone. The owner approves from a dashboard queue before anything happens.

Versioned, reversible config

Every config change your agent makes is hashed and snapshotted. If an agent misconfigures a greeting or a voice, roll it back with one tool call — no manual reconstruction.

Event push-back

Your agent stays in control of workflow logic. CallMCP pushes call, SMS, and lead events to your own webhook so your agent decides what happens next.

Compliance by default

State-aware AI-disclosure and consent handling apply automatically to every number and agent CallMCP provisions — not an opt-in you have to remember.

Use cases

How it works

Connect CallMCP the way you'd connect any MCP server — stdio for local development, or streamable HTTP for a hosted connection:

{
  "mcpServers": {
    "callmcp": {
      "type": "streamable-http",
      "url": "https://callmcp.ai/mcp",
      "headers": { "Authorization": "Bearer kc_live_..." }
    }
  }
}

Your agent gets tools to search and buy numbers, place and receive calls, send SMS, fetch transcripts and recordings, manage webhooks, and trigger multi-step follow-up sequences — backed by real telephony infrastructure already running production call volume, not a weekend-project wrapper around a carrier API.

Read the full docsRequest beta access