ThunderPhone 2.0 正式登場。自助開通,價格低至每分鐘 2¢查看公告

Connect tools & data

將 ThunderPhone 用作 MCP 伺服器

透過 Claude、ChatGPT、Claude Code、Codex、Cursor、VS Code 或其他支援串流 HTTP 的 MCP 用戶端,建立、測試、驗證及營運 ThunderPhone 語音智能體。

ThunderPhone 在以下位置提供可串流 HTTP Model Context Protocol 伺服器:

https://api.thunderphone.com/v1/mcp

這與將遠端 MCP 伺服器連接至語音智能體的方向相反:

方向結果
遠端 MCP 伺服器 → ThunderPhone 智能體語音智能體可以呼叫遠端伺服器的工具。
ThunderPhone → 你的 MCP 用戶端你的程式開發智能體可以建立、測試及操作 ThunderPhone。

驗證身分

目錄用戶端預設使用 OAuth:登入、選擇組織,並批准所要求的權限。你可以在 組織 → API 金鑰 → 已授權應用程式 撤銷存取權。

如用戶端設定為使用 API 金鑰,請在 組織 → 金鑰 建立 sk_live_ 金鑰,並以 THUNDERPHONE_API_KEY 向 MCP 用戶端提供。該金鑰會綁定至單一組織;由其他組織擁有的識別碼會被視為找不到。

CLI 與 stdio 替代方案

ThunderPhone CLI 可以寫入用戶端設定,同時保留 其他伺服器:

npx -y @thunderphone/mcp setup --client cursor --api-key-env THUNDERPHONE_API_KEY
npx thunderphone mcp setup --client claude-desktop --scope user

全域安裝 @thunderphone/mcp 後,請使用 thunderphone-mcp setup 搭配 相同選項。設定支援 Claude Code、Codex、Cursor、VS Code、Gemini、Claude Desktop 及 Windsurf。建議使用直接 HTTP;Desktop 使用 stdio。

如用戶端支援 stdio,請設定 command: "npx",並使用 args: ["-y", "@thunderphone/mcp"]。封裝程式會先使用 THUNDERPHONE_API_KEY, 然後使用 thunderphone login 的憑證並更新過期權杖,最後透過 mcp-remote 使用 OAuth。裝置登入及 OAuth 均需要 API 端已啟用相應的 OAuth 功能。API 金鑰方式則不需要。直接 HTTP 設定不會讀取 CLI 憑證儲存區;如要重用裝置登入,請使用 stdio 封裝程式。

以上是下列手動用戶端設定的替代方案。

用戶端設定

Claude 及 ChatGPT 透過 OAuth 登入,無需使用 API 金鑰。如你尚未擁有 ThunderPhone 帳戶,請在登入頁面選擇 建立帳戶;完成電郵驗證後,系統會返回授權畫面。

Claude(網頁版、桌面版及流動版)

  1. 開啟 設定 → 連接器。如 ThunderPhone 出現在連接器目錄中,請選擇它。否則,選擇 新增自訂連接器,命名為 ThunderPhone,並輸入 https://api.thunderphone.com/v1/mcp
  2. 選擇 連接,登入 ThunderPhone,選取組織,然後批准權限。
  3. 在對話中,從工具選單啟用 ThunderPhone,並提出你的需求,例如「列出我的智能體」。

自訂連接器需要付費 Claude 方案。Team 及 Enterprise 方案的擁有者須先在組織的連接器設定中新增連接器,其後每位成員可連接自己的 ThunderPhone 帳戶。

ChatGPT

  1. 如 ThunderPhone 出現在 ChatGPT 應用程式目錄中,請選擇並連接。
  2. 否則,開啟 設定 → 應用程式及連接器 → 進階設定,啟用 開發人員模式,然後以 URL https://api.thunderphone.com/v1/mcp 及 OAuth 驗證建立連接器。
  3. 登入 ThunderPhone,選取組織,然後批准權限。從工具選單將 ThunderPhone 加入對話。

刪除智能體或電話號碼、捨棄草稿,以及啟動推廣活動時,兩個應用程式均會要求再次確認;請參閱確認破壞性操作

Claude Code

claude mcp add --transport http thunderphone https://api.thunderphone.com/v1/mcp \
  --header "Authorization: Bearer $THUNDERPHONE_API_KEY"

Codex

將以下內容加入 ~/.codex/config.toml

[mcp_servers.thunderphone]
url = "https://api.thunderphone.com/v1/mcp"
bearer_token_env_var = "THUNDERPHONE_API_KEY"

Cursor

建立 .cursor/mcp.json

{
  "mcpServers": {
    "thunderphone": {
      "url": "https://api.thunderphone.com/v1/mcp",
      "headers": {
        "Authorization": "Bearer ${env:THUNDERPHONE_API_KEY}"
      }
    }
  }
}

Claude Desktop

在 Claude Desktop 設定中加入 mcp-remote 橋接程式:

{
  "mcpServers": {
    "thunderphone": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.thunderphone.com/v1/mcp",
        "--header",
        "Authorization: Bearer ${THUNDERPHONE_API_KEY}"
      ],
      "env": {
        "THUNDERPHONE_API_KEY": "sk_live_YOUR_API_KEY"
      }
    }
  }
}

VS Code

建立 .vscode/mcp.json,並透過 VS Code 的輸入提示輸入金鑰:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "thunderphone-api-key",
      "description": "ThunderPhone organization API key",
      "password": true
    }
  ],
  "servers": {
    "thunderphone": {
      "type": "http",
      "url": "https://api.thunderphone.com/v1/mcp",
      "headers": {
        "Authorization": "Bearer ${input:thunderphone-api-key}"
      }
    }
  }
}

工具

每項工具均附帶 MCP 註釋。於下列表格中,R 代表唯讀,D 代表破壞性操作,I 代表冪等,O 代表開放世界/網絡互動。破折號代表未設定提示。

智能體

工具主要參數註釋功能
list_agentsR, I列出智能體。
get_agentagent_idR, I取得單一智能體。
create_agent智能體設定建立智能體。
update_agentagent_id、已變更欄位在智能體草稿中暫存欄位。
deploy_agentagent_id、可選的 if_updated_atI將草稿發佈至正式環境。
discard_agent_draftagent_id、可選的 if_updated_at、第二次請求時的 confirmation_tokenD, I捨棄已暫存的變更。分兩步進行,請參閱確認破壞性操作
duplicate_agentagent_id、可選的 name在組織內複製智能體。
delete_agentagent_id、第二次請求時的 confirmation_tokenD, I永久刪除智能體。分兩步進行。
list_agent_versionsagent_idR, I列出已發佈的設定版本。

電話號碼及電訊商

工具主要參數註釋功能
list_phone_numbersR, I列出組織的號碼及路由設定。
get_phone_number_limitsR, I取得受管理號碼的用量及限額。
provision_phone_number可選的 area_codecitystateidempotency_keyO購買由 ThunderPhone 管理的來電號碼。
list_voip_connectionsR, I列出已連接的客戶電訊商。
search_voip_numbersconnection_idcountrytype、可選的 area_codeR, I, O搜尋電訊商庫存。
import_voip_numbersconnection_idnumbersO匯入已由電訊商持有的號碼。
update_phone_numberphone_number_id、路由/標籤/webhook 欄位更新號碼路由,包括智能體指派。
delete_phone_numberphone_number_idconfirm、可選的 release_at_provider、第二次請求時的 confirmation_tokenD, I, O釋放號碼。分兩步進行。

通話

工具主要參數註釋功能
list_calls可選的篩選條件、limitoffsetR, I使用 REST 通話記錄篩選條件列出通話。
get_callcall_idR, I取得通話狀態及中繼資料。
get_call_transcriptcall_id、可選的 liveR, I取得通話逐字稿。
get_call_audio_urlcall_id、可選的 downloadR, I, O傳回已簽署的音訊 URL;絕不會透過 MCP 串流音訊。
get_call_gradecall_idR, I取得最新通話評分。
place_callagent_idfrom_numberto_numberO撥出一次非冪等的外撥電話。
export_calls通話篩選條件、export_formatR, I以 JSON 或 CSV 匯出最多達 REST 端點上限的資料。

測試及驗證

工具主要參數註釋功能
list_test_scenariosagent_idR, I列出測試情境。
create_test_scenarioagent_idtitlescenario_prompt、可選條件建立情境。
generate_test_scenariosagent_id、可選的 countinclude_edge_caseslocaleO根據智能體提示生成情境。
run_agent_testsagent_idchannelconsent_to_charge、可選的選擇/矩陣O透過網頁或電話執行情境。
get_test_runagent_idbatch_idR, I取得批次狀態及各情境結果。
list_validation_runsagent_idR, I列出最近的草稿驗證執行記錄。
get_validation_statusagent_idR, I取得最新驗證狀態及草稿比對結果。

知識

工具主要參數註釋功能
list_knowledge_basesR, I列出知識庫。
create_knowledge_basename、可選的 description建立知識庫。
add_knowledge_documentknowledge_base_idnamecontent新增文字或 Markdown。
import_knowledge_urlurl、可選的 nameO將公開頁面排入安全擷取程序。
search_knowledgeknowledge_base_idqueryR, I透過正式環境檢索進行搜尋。

整合、webhook 及遠端 MCP 伺服器

工具主要參數註釋功能
list_integrationsR, I列出 HTTP 函數整合。
create_integrationdisplay_name、函數 spec、可選端點欄位建立 HTTP 工具。
test_integrationurl、可選的方法/標頭/主體/逾時設定O傳送受限制並受 SSRF 保護的測試請求。
list_webhook_endpointsR, I列出已簽署的 webhook 端點。
create_webhook_endpointlabelurl、可選的事件/狀態O建立已簽署的 webhook 端點。
test_webhook_endpointendpoint_idO透過正常傳送流程傳送模擬事件。
list_mcp_serversR, I列出可供語音智能體呼叫的遠端伺服器。
create_mcp_serverdisplay_nameurl、可選的標頭O註冊並同步遠端伺服器。
sync_mcp_server_toolsserver_idO重新整理遠端伺服器的工具目錄。

推廣活動

工具主要參數註釋功能
list_campaignsR, I列出外撥推廣活動。
create_campaign推廣活動欄位建立推廣活動草稿。
add_campaign_contactscampaign_idcontacts最多新增 5,000 個 JSON 聯絡人。
campaign_actioncampaign_idaction、可選的 consent_to_charge、第二次請求時的 confirmation_tokenD, O執行 startpauseresumestopstartresume 分兩步進行;pausestop 會立即執行。
get_campaign_statscampaign_idR, I取得計數器及最近結果。

聲音、帳單、匯入及文件

工具主要參數註釋功能
list_voicesR, I列出聲音及支援的語言。
preview_voicevoicelanguagetextO生成樣本並傳回已簽署的 URL。
list_voice_clonesR, I列出自訂聲音複製。
get_billing_summaryR, I取得餘額及具權威性的級別價格;不會提供付款變更操作。
create_agent_importvendorvendor_keyO開始加密匯入 Vapi、Retell、ElevenLabs 或 Bland。
get_agent_importpublic_idR, I取得建議的匯入差異。
commit_agent_importpublic_id根據已審核的計劃提交所選智能體。
search_docsquery、可選的 limitR, I, O搜尋公開文件索引。
get_doc_pagepathR, I, O擷取單一公開 Markdown 文件頁面。

所有產品工具均使用與公開 API 相同的 REST 程式碼路徑。因此,REST 驗證、組織範圍限定、角色、帳單准入、配額、TCPA 確認、供應商安全及稽核行為均維持不變。

確認破壞性操作

標記為 D 的工具會變更或移除無法還原的內容,或開始致電真人。這些工具需要兩次請求。第一次請求不會作出任何變更,並會回傳:

{
  "status": "confirmation_required",
  "action": "Delete agent",
  "target": { "id": 195, "name": "Front Desk Receptionist" },
  "confirmation_token": "…",
  "expires_in_seconds": 600,
  "next_step": "…"
}

智能體會向使用者顯示受影響的內容並要求確認。然後會以相同的引數連同 confirmation_token 再次發出請求。權杖有效期為 10 分鐘,且只適用於一個組織、一個工具及一組完全相同的引數,因此刪除三個智能體需要三次確認。使用 pausestopcampaign_action 會略過此步驟,確保執行中的推廣活動可隨時立即停止。

入門提示

prompts/list 提供六個可重複使用的工作流程:

  • create_inbound_receptionist
  • run_agent_tests
  • import_vapi_assistants
  • buy_and_attach_number
  • review_low_grade_calls
  • add_url_to_agent_knowledge

使用已列出的提示名稱及其已宣告的引數呼叫 prompts/get,即可取得可直接執行的使用者訊息。

資源

resources/list 提供公開、已快取的參考資料:

URI內容
thunderphone://docs/llms.txt公開文件索引。
thunderphone://docs/quickstart快速入門 Markdown。
thunderphone://pricing目前公開定價 Markdown。

使用 resources/read 讀取資源。公開擷取使用較短的逾時設定、2 MiB 上限,以及程序內 10 分鐘快取。

協定與錯誤

伺服器支援協定版本 2025-06-182025-03-26;會回應受支援的客戶端版本,否則選用 2025-06-18。伺服器實作了 initializeping、工具、提示、資源及通知。通知會回傳 202 Accepted。此無狀態伺服器不提供 SSE 監聽器或工作階段刪除功能,因此 GETDELETE 會回傳 405 Method Not Allowed,並附帶 Allow: POST

工具失敗仍會以帶有 isError: true 的成功 JSON-RPC 回應形式回傳。其文字包含一句簡短說明,後接一個 JSON 區塊:

{
  "code": "insufficient_balance",
  "detail": "There is not enough prepaid balance.",
  "next_step": "Call get_billing_summary, add funds in Organization > Billing, then retry."
}

place_call 會保留獨有的 outbound_tcpa_confirmation_required: 前綴。未知的 JSON-RPC 方法會在 HTTP 200 回應中回傳 -32601。MCP 2025-06-18 不支援 JSON-RPC 批次請求,並會回傳清晰的 -32600 無效請求錯誤。