[ 00 ] // CallCloud Agent Dialer - MCP server

Give your agent a phone.

The CallCloud Agent Dialer is an MCP server that lets Claude, Cursor, or any MCP client run real outbound calls. Your agent dials a list, answering machines are screened out, and live humans are connected to a browser leg over WebRTC so a person can talk to them.

$30 per 1,000 dials · No seat · No subscription · Credits never expire

Agent session · callcloud-agent-dialer

MCP

tool call

dial {
  numbers: [ ...40 leads ],
  screening: "gate",
  caller_id: "+1 415 555 0100"
}

run_status

{ dialed: 27, machines: 9, remaining: 13,
  live: 1, credits_remaining: 843 }

call.connected

+1 415 555 0102 bridged to browser leg

Human already on the live leg

0ms lag

[ 01 ] // Why there is no pause

The human is already on the line.

The person is on a live browser leg before anyone answers, so there is nothing to connect when a prospect picks up. The audio is simply there.

There is deliberately no option to ring a phone. Dialing a person's phone after the prospect answers makes the prospect wait through ring time, which is exactly the pause this product exists to remove.

Ring the human after pickup

Prospect answers, then waits through ring time on the other leg.

The pause is back, and so is the tell.

CallCloud Agent Dialer

Browser leg is live before the first ring. Answer bridges straight into it.

Nothing to connect, nothing to wait for.

[ 02 ] // Setup

Three steps, then talk to it.

01

Mint a key

In CallCloud open /mcp and create an Agent Dialer API key. Keys start with cak_ and are shown once.

02

Add it to your client config

Drop the server into your MCP client config. npx fetches the current version on each launch, so fixes arrive without reinstalling.

03

Tell your agent what to do

The agent calls dial, polls run_status until nothing remains, then reads run_results.

MCP client config

{
  "mcpServers": {
    "callcloud-agent-dialer": {
      "command": "npx",
      "args": ["-y", "callcloud-agent-dialer-mcp"],
      "env": { "CALLCLOUD_API_KEY": "cak_your_key" }
    }
  }
}

"Call these 40 leads, skip the voicemails, and put anyone who picks up through to me."

The agent calls dial, polls run_status until nothing remains, then reads run_results.

[ 03 ] // Screening modes

Two ways to skip the machines.

amd

Default

The carrier listens to the pickup audio. Costs a detection delay on every connect, including real people.

gate

No connect delay

Judged on ring duration before the bridge, the same rule CallCloud's own web dialer runs on.

Gate mode treats a pickup faster than 0.5 seconds of real ringing as a machine. That value is the parallel dialer's proven production setting: voicemail answers within a few hundred milliseconds of ring start, a person never does.

Both modes fail open, so an unmeasurable call is put through, because missing a machine costs seconds and dropping a real person costs the conversation.

[ 04 ] // Tools

Over 35 tools, one API key.

Dialing and run control

dialrun_statusrun_resultspause_runresume_runhangup_calltransfer_callstop_runlist_runs

Numbers

list_caller_idslist_numberssearch_numbersprovision_numberrelease_number

Outcomes and follow-up

set_resultschedule_callbacklist_callbacksupdate_callbackget_outcomesset_outcomes

Usage and analytics

get_usageget_analytics

Call records

list_callsget_call

get_call returns full detail including transcript, AI summary, rep notes, and a signed recording URL.

Webhooks

get_webhookset_webhook

Web dialer data

create_listadd_contactslist_listssearch_contactsget_contactupdate_contactlist_campaignscreate_campaignget_web_analyticslist_companiesget_companyremove_company_from_campaignsrestore_company_to_campaigns

The same key also manages CallCloud's rep-driven web dialer: its lists, contacts, campaigns, analytics, and account view. Everything except dialing, because web campaigns are started by a rep in the browser, never over the API.

[ 05 ] // Events

Register a webhook, stop polling.

Every delivery is signed with HMAC-SHA256. The answer to bridge path is handled server side and never waits on your endpoint, so nothing you build sits between a prospect answering and your rep hearing them.

call.ringing

The call is ringing.

call.connected

Fires while the call is live.

call.voicemail

Screened out as a machine and hung up on, never bridged, never recorded.

call.failed

The call did not complete.

call.completed

The call ended.

call.transcript

Transcript is ready.

run.finished

Nothing left to dial in the run.

session.paused

The session was paused.

session.resumed

The session was resumed.

rep.disconnected

With no browser leg online, screened-in humans get hung up on.

[ 06 ] // Pricing

Pay for dials. Nothing else.

CallCloud Agent Dialer

$30/ 1,000 dials

No seat, no subscription

  • Buy a block of 1,000 in Settings, Plan
  • Every dial placed burns one credit
  • Credits do not expire
  • No monthly reset
  • Charged when the call is handed to the carrier
  • A number that never reaches the network is never billed
  • Empty balance returns an error and places no calls
  • A run in flight stops at the credit that runs out
  • run_status returns credits_remaining

[ 08 ] // FAQ

Questions, answered.

Which AI clients work?+

Any MCP client. Claude Desktop, Claude Code, and Cursor are the common ones. Point your agent at the docs URL and it can generate its own client.

Do I need the CallCloud web dialer too?+

No. The Agent Dialer is a separate product with its own pricing. The same API key also reads and manages web dialer data if you do use both.

Is there an API if I am not using MCP?+

Yes. The machine readable OpenAPI 3.1 spec is public and needs no auth.

What happens when my credits run out?+

The dial tool returns an error and places no calls. A run already dialing stops at the credit that runs out. Credits never expire, so you can buy another block whenever you want.

Can it ring my desk phone instead of the browser?+

No, by design. Ringing a phone after the prospect answers reintroduces the pause the product exists to remove.

Can I build my own dialer cockpit on it?+

Yes. There is a published guide covering architecture, the concurrency model, UI rules, and a pre-ship checklist.

[ 09 ] // Start building

Hand your agent the phone.

Mint a key, paste the config, and let your agent place its first call.

Works with any MCP client