mcpField
D
dialfetch

dialfetch

Remote
app.dialfetch.comCommunication0Updated 14w ago

About dialfetch

dialfetch is a phone-calling MCP server that lets AI agents call numbers toward a plain-language goal, navigate IVRs or wait on hold, and return structured answers, transcripts, and recordings. It supports tasks such as checking hours, order status, or verification by phone.

Key features

  1. 01Place calls toward a stated goal
  2. 02Navigate IVRs and wait on hold
  3. 03Return structured answers and transcripts
  4. 04Retrieve recordings and manage call status

Use cases

  1. 01Call to check store hours
  2. 02Verify license or insurance details
  3. 03Check order or claim status

MCP support

dialfetch exposes call tools, a call resource, and prompts to MCP clients over Streamable HTTP and SSE. Clients can place, inspect, wait for, or cancel calls and retrieve structured results and recording links.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://app.dialfetch.com/api/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

Details

From the project README

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_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

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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.