Back to Browse

Dialfetch MCP Server

Developer ToolsLow Risk10.0MCP RegistryRemote
Free

Server data from the Official MCP Registry

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

About

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

Remote endpoints: streamable-http: https://app.dialfetch.com/api/mcp

Security Report

10.0
Low Risk10.0Low Risk

Valid MCP server (2 strong, 1 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry.

Endpoint verified · Requires authentication · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

env_vars

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

How to Connect

Remote Plugin

No local installation needed. Your AI client connects to the remote endpoint directly.

Add this to your MCP configuration to connect:

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

Documentation

View on GitHub

From the project's GitHub 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

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

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:

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

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

Reviews

No reviews yet

Be the first to review this server!