Give your AI agent a phone: place calls, navigate IVRs, wait on hold, get structured answers.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Dialfetch.
place_callStart a goal-call; returns `{ call_id, status }` (async)
get_callStatus, outcome, answers, notes, transcript, recording URL
wait_for_callBlock (with progress) until the call is terminal
cancel_callCancel a queued / in-progress call
list_callsRecent calls, newest first
get_call_recordingShort-lived presigned audio URL
Connect Dialfetch to Claude, Cursor, VS Code, Windsurf, Cline, the Claude Agent SDK β or any Model Context Protocol client β and your agent can place real phone calls. It navigates IVR phone trees, waits on hold, talks to humans (including after a transfer), and hands back structured answers, a transcript, and a recording.
Give it a phone number and a plain-language goal. Goal in, result out.
"Call the pharmacy at +1 305-555-0148 and tell me what time it closes today." β
{ answers: { closing_time: { value: "9:00 PM", quote: "We close at nine tonight." } } }
https://app.dialfetch.com/api/mcp (Streamable HTTP + SSE)Authorization: Bearer df_β¦) or one-click OAuth for custom connectorsAdd to claude_desktop_config.json (Settings β Developer β Edit config):
Settings β Connectors β Add custom connector β paste https://app.dialfetch.com/api/mcp and
finish the one-click OAuth sign-in. No API key to paste.
~/.cursor/mcp.json:
.vscode/mcp.json:
More configs (Windsurf, Cline, Agent SDK) are in configs/.
| Tool | Inputs | Does |
|---|---|---|
place_call | phone, goal, extract?, context?, disclose_ai?, from_number_id?, max_duration_minutes?, webhook_url? | Start a goal-call; returns { call_id, status } (async) |
get_call | call_id | Status, outcome, answers, notes, transcript, recording URL |
wait_for_call | call_id, timeout_seconds? | Block (with progress) until the call is terminal |
cancel_call | call_id | Cancel a queued / in-progress call |
list_calls | status?, limit?, cursor? | Recent calls, newest first |
get_call_recording | call_id | Short-lived presigned audio URL |
list_phone_numbers | β | Caller-ID numbers you own |
get_pricing | β | Per-call / per-number pricing |
get_credit_balance | β | Prepaid credit balance |
Resource: dialfetch://calls/{id} Β· Prompts: check_store_hours, verify_license, get_order_status
Calls are asynchronous (typically 2β10 minutes; longer with holds or transfers):
place_call({ phone, goal, extract }) β { call_id, status: "queued" }get_call({ call_id }) (or use wait_for_call) until status is completed / failed / canceledanswers, transcript, recording_urlCalls disclose they are an AI by default. The agent will not read out or collect sensitive personal data (SSNs, passwords, full card numbers). Goal-screening, credit holds, and rate limits apply to every call and can't be bypassed by a client.
MIT β see LICENSE.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/dialfetch)<a href="https://allmcps.com/mcp/dialfetch"><img src="https://allmcps.com/api/badge/dialfetch?style=directory" alt="Dialfetch on AllMCPs" /></a>