← Discover MCPs and Agents
c
MCPAI & MLMCP Registry

com.dialfetch/dialfetch

Give your AI agent a phone: place calls, navigate IVRs, wait on hold, get structured answers.

Links

README

From the repo.

Dialfetch MCP — give your AI agent a phone ☎️

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." } } }

  • 🔌 Endpoint: https://app.dialfetch.com/api/mcp (Streamable HTTP + SSE)
  • 🔑 Auth: API key (Authorization: Bearer df_…) or one-click OAuth for custom connectors
  • 📚 Full docs: https://app.dialfetch.com/docs/mcp
  • 🌐 Industry-agnostic: retail & pharmacy hours, flight/travel status, order & claim status, license & insurance verification, government & utility lines

Quick connect

Claude Desktop

Add to claude_desktop_config.json (Settings → Developer → Edit config):

{
  "mcpServers": {
    "dialfetch": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://app.dialfetch.com/api/mcp",
               "--header", "Authorization: Bearer df_YOUR_KEY"]
    }
  }
}
Claude.ai (web) — custom connector

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

~/.cursor/mcp.json:

{
  "mcpServers": {
    "dialfetch": {
      "url": "https://app.dialfetch.com/api/mcp",
      "headers": { "Authorization": "Bearer df_YOUR_KEY" }
    }
  }
}
VS Code (Copilot agent mode)

.vscode/mcp.json:

{
  "servers": {
    "dialfetch": {
      "type": "http",
      "url": "https://app.dialfetch.com/api/mcp",
      "headers": { "Authorization": "Bearer df_YOUR_KEY" }
    }
  }
}

More configs (Windsurf, Cline, Agent SDK) are in configs/.

Tools

ToolInputsDoes
place_callphone, goal, extract?, context?, disclose_ai?, from_number_id?, max_duration_minutes?, webhook_url?Start a goal-call; returns { call_id, status } (async)
get_callcall_idStatus, outcome, answers, notes, transcript, recording URL
wait_for_callcall_id, timeout_seconds?Block (with progress) until the call is terminal
cancel_callcall_idCancel a queued / in-progress call
list_callsstatus?, limit?, cursor?Recent calls, newest first
get_call_recordingcall_idShort-lived presigned audio URL
list_phone_numbersCaller-ID numbers you own
get_pricingPer-call / per-number pricing
get_credit_balancePrepaid credit balance

Resource: dialfetch://calls/{id} · Prompts: check_store_hours, verify_license, get_order_status

How calls work

Calls are asynchronous (typically 2–10 minutes; longer with holds or transfers):

  1. place_call({ phone, goal, extract }){ call_id, status: "queued" }
  2. Poll get_call({ call_id }) (or use wait_for_call) until status is completed / failed / canceled
  3. Read answers, transcript, recording_url

Recipes

Safety

Calls 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.

Links

License

MIT — see LICENSE.

Config for your environment

Use the endpoint URL below in your config. No API key — you connect directly.

Tool

OS

Config file: ~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-server": {
      "url": "https://app.dialfetch.com/api/mcp"
    }
  }
}

Paste into mcpServers in the config file. Restart Cursor after saving.

If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.