DialMCP lets Claude, Codex, and any MCP-enabled agent place real phone calls on your behalf — book the table, chase the contractor, check the flight — from your own verified number, with a transcript, recording, and structured outcome returned to your agent when the call ends.
One endpoint: https://mcp.dialmcp.com/mcp —
OAuth sign-in with your phone number, no API keys.
Your agent calls place_call with a phone number and an objective.
DialMCP does the rest and hands back a structured result.
Calls go out with your own verified caller ID, so the restaurant, clinic, or contractor sees you calling — and can call you back.
A low-latency AI voice agent handles the conversation. The first thing any human hears: it's an AI assistant, calling on your behalf, and the call is recorded. Always.
It presses the keys, answers voice menus, waits silently through hold, and detects voicemail (it hangs up rather than leaving one).
Every call returns a full transcript, a link to the audio recording, and a structured resolution: outcome, summary, commitments made, follow-ups needed.
place_call returns instantly with a call ID; your agent polls get_call for progress. Works within every client's tool timeout.
Calling-hours enforcement, rate limits, a do-not-call registry, objective screening, and a hard blocklist — on every call, for every user. Read the safety page →
DialMCP is a remote MCP server with OAuth — no API keys to manage. Point your client at
https://mcp.dialmcp.com/mcp; on first use a browser window opens
where you sign in with your phone number (SMS code) and verify it as your caller ID.
https://mcp.dialmcp.com/mcp (transport: HTTP, auth: OAuth).claude mcp add --transport http dialmcp https://mcp.dialmcp.com/mcp
--scope user to enable it in every project)./mcp → authenticate to open the OAuth flow, or just let the first place_call trigger it.place_call, get_call, end_call, list_calls.[mcp_servers.dialmcp] url = "https://mcp.dialmcp.com/mcp"
~/.codex/config.toml (Codex's MCP servers section).get_call rather than wait on the line.Yours. During sign-up you verify your own number via SMS, and every call the agent places presents that number as the caller ID. Callees can call or text you back directly — DialMCP never hides behind a random number.
Always. The agent's first words to any human are a disclosure — that it's an AI assistant, who it's calling for, and that the call is recorded. This is enforced in the calling system and independently checked after every call, not left to the model's discretion. If someone objects to talking to an AI, the agent apologizes and ends the call.
US and Canadian numbers, between 8:00 and 21:00 in the destination's local time. Emergency services, premium-rate lines, and high-fraud number ranges are blocked outright and can never be called. See the safety page for the full guardrail list.
A structured resolution (achieved / partially achieved / not achieved, with a summary, any commitments made, and suggested follow-ups), the full turn-by-turn transcript, and a signed link to the audio recording.
The agent confirms it on the spot and the number goes onto a permanent do-not-call list — enforced before any future call is placed, by any user. There's also a self-serve opt-out page anyone can use, no account needed.
Calls default to 6 minutes and are hard-capped at 10. The agent wraps up gracefully — it confirms the outcome, says goodbye, and hangs up — and your agent can end a call early with end_call.
Yes — any client that supports remote MCP servers with OAuth works: claude.ai and Claude Desktop (Settings → Connectors → Add custom connector), ChatGPT developer-mode connectors, Cursor, and more. Same URL everywhere.