Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Give your AI agent a phone: place calls, navigate IVRs, wait on hold, get structured answers.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
适用于网页版、桌面版和手机版 Claude:
https://app.dialfetch.com/api/mcp在终端中运行这条命令
claude mcp add --transport http dialfetch https://app.dialfetch.com/api/mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"dialfetch": {
"url": "https://app.dialfetch.com/api/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"dialfetch": {
"type": "http",
"url": "https://app.dialfetch.com/api/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
ChatGPT 只能连接互联网上的服务器:
https://app.dialfetch.com/api/mcp菜单名称可能因套餐和版本不同而略有差异。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过域名 dialfetch.com 验证(注册中心会核实域名所有权)
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
尚未检查;我们会轮流检查各个端点
尚未检查;我们会轮流检查各个端点
尚未检查;我们会在检查端点时读取工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。
GitHub 仓库最后更新于–,最新版本(0.1.0)于4个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Aiterm MCP
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Persistent terminals and one launcher for Claude, Codex, Grok, Cursor, and Antigravity harnesses.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Connect [Dialfetch](https://app.dialfetch.com) 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 connectorsClaude 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"] } } }
</details>
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" } } } }
</details>
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" } } } }
</details>
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.