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.
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
- Call leads with an AI agent — qualify or follow up, then write results back to your CRM.
- Appointment confirmation calls — reduce no-shows with confirmation and rescheduling logic.
- Missed-call recovery — when a business misses a call, your agent calls or texts back and books the next step.
- Human handoff — escalate to a person when confidence is low or the caller needs one.
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.