streamable-httpMITupdated 1mo ago
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.
What can you do with dialfetch?
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
| 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
How calls work
Calls are asynchronous (typically 2โ10 minutes; longer with holds or transfers):
place_call({ phone, goal, extract })โ{ call_id, status: "queued" }- Poll
get_call({ call_id })(or usewait_for_call) untilstatusiscompleted/failed/canceled - 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
- Product & sign-up: https://app.dialfetch.com
- MCP docs: https://app.dialfetch.com/docs/mcp
- REST API docs: https://app.dialfetch.com/docs
License
MIT โ see LICENSE.
Install
Add dialfetch to your client. Pick the one you use.
claude mcp add --transport http dialfetch https://app.dialfetch.com/api/mcpcodex mcp add dialfetch --url https://app.dialfetch.com/api/mcp{
"mcpServers": {
"dialfetch": {
"url": "https://app.dialfetch.com/api/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"dialfetch": {
"type": "http",
"url": "https://app.dialfetch.com/api/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"dialfetch": {
"url": "https://app.dialfetch.com/api/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"dialfetch": {
"serverUrl": "https://app.dialfetch.com/api/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
9 tools
dialfetch exposes 9 tools to a connected agent.
- place_call
- `phone, goal, extract?, context?, disclose_ai?, from_number_id?, max_duration_minutes?, webhook_url?`
- get_call
- `call_id`
- wait_for_call
- `call_id, timeout_seconds?`
- cancel_call
- `call_id`
- list_calls
- `status?, limit?, cursor?`
- get_call_recording
- `call_id`
- list_phone_numbers
- โ
- get_pricing
- โ
- get_credit_balance
- โ
Score
72 / 100
Good
- Documentation25/25
- Maintenance16/25
- Trust13/20
- Capability6/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 43 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 9 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint โ no local install
Version history
| Versions | Published |
|---|---|
| 0.1.0Latest | Jul 19, 2026 |