ThunderPhone 2.0 เปิดให้ใช้งานแล้วเริ่มใช้งานได้ด้วยตัวเอง ราคาเริ่มต้น 2 เซนต์ต่อนาที.อ่านประกาศเปิดตัว

Connect tools & data

ใช้ ThunderPhone เป็นเซิร์ฟเวอร์ MCP

สร้าง ทดสอบ ตรวจสอบความถูกต้อง และใช้งานเอเจนต์เสียง ThunderPhone จาก Claude, ChatGPT, Claude Code, Codex, Cursor, VS Code หรือไคลเอนต์ Streamable HTTP MCP อื่น

ThunderPhone เปิดให้ใช้เซิร์ฟเวอร์ Model Context Protocol แบบ Streamable HTTP ที่:

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

นี่เป็นทิศทางตรงข้ามกับการเชื่อมต่อเซิร์ฟเวอร์ MCP ระยะไกลเข้ากับเอเจนต์เสียง:

ทิศทางผลลัพธ์
เซิร์ฟเวอร์ MCP ระยะไกล → เอเจนต์ ThunderPhoneเอเจนต์เสียงสามารถเรียกใช้เครื่องมือของเซิร์ฟเวอร์ระยะไกลได้
ThunderPhone → ไคลเอนต์ MCP ของคุณเอเจนต์เขียนโค้ดของคุณสามารถสร้าง ทดสอบ และดำเนินการกับ ThunderPhone ได้

การยืนยันตัวตน

ใช้OAuthเป็นค่าเริ่มต้นสำหรับไคลเอนต์ไดเรกทอรี: ลงชื่อเข้าใช้ เลือกองค์กร และอนุมัติสิทธิ์ที่ร้องขอ เพิกถอนการเข้าถึงได้ที่ องค์กร → คีย์ API → แอปที่ได้รับอนุญาต

สำหรับไคลเอนต์ที่กำหนดค่าด้วยคีย์ API ให้สร้างคีย์ sk_live_ ที่ องค์กร → คีย์ และเปิดให้ไคลเอนต์ MCP ของคุณใช้เป็น THUNDERPHONE_API_KEY คีย์จะผูกกับองค์กรเดียว ID ที่เป็นขององค์กรอื่นจะมีลักษณะเสมือนว่าไม่พบ

ทางเลือก 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 พร้อมรีเฟรชโทเค็นที่หมดอายุ แล้วจึงใช้ OAuth ผ่าน mcp-remote การเข้าสู่ระบบด้วยอุปกรณ์และ OAuth ต้องมีการเปิดใช้ OAuth ของ API ที่เกี่ยวข้อง แต่เส้นทางคีย์ API ไม่ต้องใช้ การกำหนดค่า HTTP โดยตรงจะไม่อ่าน พื้นที่เก็บข้อมูลรับรองของ CLI ให้ใช้ตัวห่อหุ้ม stdio เพื่อใช้การเข้าสู่ระบบด้วยอุปกรณ์ซ้ำ

สิ่งเหล่านี้เป็นทางเลือกแทนการกำหนดค่าไคลเอนต์ด้วยตนเองด้านล่าง

การกำหนดค่าไคลเอนต์

Claude และ ChatGPT ลงชื่อเข้าใช้ด้วย OAuth โดยไม่ใช้คีย์ API หากคุณยังไม่มีบัญชี ThunderPhone ให้เลือก สร้างบัญชี ในหน้าลงชื่อเข้าใช้ จากนั้นคุณจะกลับไปยังหน้าจออนุมัติหลังยืนยันอีเมลแล้ว

Claude (เว็บ เดสก์ท็อป และมือถือ)

  1. เปิด การตั้งค่า → ตัวเชื่อมต่อ หาก ThunderPhone ปรากฏในไดเรกทอรีตัวเชื่อมต่อ ให้เลือก 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

เพิ่มบริดจ์ mcp-remote ลงในการกำหนดค่า Claude Desktop:

{
  "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_at ที่ระบุหรือไม่ระบุก็ได้Iเลื่อนฉบับร่างไปยังระบบใช้งานจริง
discard_agent_draftagent_id, if_updated_at ที่ระบุหรือไม่ระบุก็ได้, confirmation_token ในคำขอครั้งที่สองD, Iยกเลิกการเปลี่ยนแปลงที่จัดเตรียมไว้ ดำเนินการสองขั้นตอน ดู การยืนยันการดำเนินการที่ทำลายข้อมูล
duplicate_agentagent_id, name ที่ระบุหรือไม่ระบุก็ได้คัดลอกเอเจนต์ภายในองค์กร
delete_agentagent_id, confirmation_token ในคำขอครั้งที่สองD, Iลบเอเจนต์อย่างถาวร ดำเนินการสองขั้นตอน
list_agent_versionsagent_idR, Iแสดงรายการเวอร์ชันการกำหนดค่าที่ปรับใช้แล้ว

หมายเลขโทรศัพท์และผู้ให้บริการ

เครื่องมืออาร์กิวเมนต์หลักคำอธิบายประกอบการทำงาน
list_phone_numbersR, Iแสดงรายการหมายเลขและการกำหนดเส้นทางขององค์กร
get_phone_number_limitsR, Iรับการใช้งานและขีดจำกัดของหมายเลขที่จัดการ
provision_phone_numberarea_code, city, state, idempotency_key ที่ระบุหรือไม่ระบุก็ได้Oซื้อหมายเลขขาเข้าที่ ThunderPhone จัดการ
list_voip_connectionsR, Iแสดงรายการผู้ให้บริการของลูกค้าที่เชื่อมต่อ
search_voip_numbersconnection_id, country, type, area_code ที่ระบุหรือไม่ระบุก็ได้R, I, Oค้นหาสินค้าคงคลังของผู้ให้บริการ
import_voip_numbersconnection_id, numbersOนำเข้าหมายเลขที่มีอยู่แล้วกับผู้ให้บริการ
update_phone_numberphone_number_id, ฟิลด์การกำหนดเส้นทาง/ป้ายกำกับ/เว็บฮุกอัปเดตการกำหนดเส้นทางหมายเลข รวมถึงการกำหนดเอเจนต์
delete_phone_numberphone_number_id, confirm, release_at_provider ที่ระบุหรือไม่ระบุก็ได้, confirmation_token ในคำขอครั้งที่สองD, I, Oปล่อยหมายเลข ดำเนินการสองขั้นตอน

การโทร

เครื่องมืออาร์กิวเมนต์หลักคำอธิบายประกอบการทำงาน
list_callsตัวกรองที่ระบุหรือไม่ระบุก็ได้, limit, offsetR, Iแสดงรายการการโทรโดยใช้ตัวกรองประวัติการโทร REST
get_callcall_idR, Iรับสถานะและข้อมูลเมตาของการโทร
get_call_transcriptcall_id, live ที่ระบุหรือไม่ระบุก็ได้R, Iรับบทถอดเสียงการโทร
get_call_audio_urlcall_id, download ที่ระบุหรือไม่ระบุก็ได้R, I, Oส่งคืน URL เสียงที่ลงนาม โดยจะไม่สตรีมเสียงผ่าน MCP
get_call_gradecall_idR, Iรับคะแนนการโทรล่าสุด
place_callagent_id, from_number, to_numberOโทรออกหนึ่งสายที่ไม่สามารถทำซ้ำโดยให้ผลลัพธ์เดิมได้
export_callsตัวกรองการโทร, export_formatR, Iส่งออกได้สูงสุดตามขีดจำกัดของปลายทาง REST เป็น JSON หรือ CSV

การทดสอบและการตรวจสอบความถูกต้อง

เครื่องมืออาร์กิวเมนต์หลักคำอธิบายประกอบการทำงาน
list_test_scenariosagent_idR, Iแสดงรายการสถานการณ์ทดสอบ
create_test_scenarioagent_id, title, scenario_prompt, เงื่อนไขที่ระบุหรือไม่ระบุก็ได้สร้างสถานการณ์
generate_test_scenariosagent_id, count, include_edge_cases, locale ที่ระบุหรือไม่ระบุก็ได้Oสร้างสถานการณ์จากพรอมป์ต์ของเอเจนต์
run_agent_testsagent_id, channel, consent_to_charge, การเลือก/เมทริกซ์ที่ระบุหรือไม่ระบุก็ได้Oดำเนินการสถานการณ์ผ่านเว็บหรือโทรศัพท์
get_test_runagent_id, batch_idR, Iรับสถานะแบทช์และผลลัพธ์ของแต่ละสถานการณ์
list_validation_runsagent_idR, Iแสดงรายการการตรวจสอบความถูกต้องของฉบับร่างล่าสุด
get_validation_statusagent_idR, Iรับสถานะการตรวจสอบความถูกต้องล่าสุดและการตรงกันของฉบับร่าง

ฐานความรู้

เครื่องมืออาร์กิวเมนต์หลักคำอธิบายประกอบการทำงาน
list_knowledge_basesR, Iแสดงรายการฐานความรู้
create_knowledge_basename, description ที่ระบุหรือไม่ระบุก็ได้สร้างฐานความรู้
add_knowledge_documentknowledge_base_id, name, contentเพิ่มข้อความหรือ Markdown
import_knowledge_urlurl, name ที่ระบุหรือไม่ระบุก็ได้Oเข้าคิวหน้าสาธารณะเพื่อการนำเข้าที่ปลอดภัย
search_knowledgeknowledge_base_id, queryR, Iค้นหาผ่านการดึงข้อมูลจากระบบใช้งานจริง

การผสานรวม เว็บฮุก และเซิร์ฟเวอร์ MCP ระยะไกล

เครื่องมืออาร์กิวเมนต์หลักคำอธิบายประกอบการทำงาน
list_integrationsR, Iแสดงรายการการผสานรวมฟังก์ชัน HTTP
create_integrationdisplay_name, spec ของฟังก์ชัน, ฟิลด์ปลายทางที่ระบุหรือไม่ระบุก็ได้สร้างเครื่องมือ HTTP
test_integrationurl, เมธอด/ส่วนหัว/เนื้อหา/ระยะหมดเวลาที่ระบุหรือไม่ระบุก็ได้Oส่งคำขอทดสอบแบบจำกัดขอบเขตและป้องกัน SSRF
list_webhook_endpointsR, Iแสดงรายการปลายทางเว็บฮุกที่ลงนาม
create_webhook_endpointlabel, url, เหตุการณ์/สถานะที่ระบุหรือไม่ระบุก็ได้Oสร้างปลายทางเว็บฮุกที่ลงนาม
test_webhook_endpointendpoint_idOส่งเหตุการณ์สังเคราะห์ผ่านการส่งมอบตามปกติ
list_mcp_serversR, Iแสดงรายการเซิร์ฟเวอร์ระยะไกลที่เอเจนต์เสียงเรียกใช้ได้
create_mcp_serverdisplay_name, url, ส่วนหัวที่ระบุหรือไม่ระบุก็ได้Oลงทะเบียนและซิงค์เซิร์ฟเวอร์ระยะไกล
sync_mcp_server_toolsserver_idOรีเฟรชแค็ตตาล็อกเครื่องมือของเซิร์ฟเวอร์ระยะไกล

แคมเปญ

เครื่องมืออาร์กิวเมนต์หลักคำอธิบายประกอบการทำงาน
list_campaignsR, Iแสดงรายการแคมเปญโทรออก
create_campaignฟิลด์แคมเปญสร้างแคมเปญฉบับร่าง
add_campaign_contactscampaign_id, contactsเพิ่มรายชื่อติดต่อ JSON ได้สูงสุด 5,000 รายการ
campaign_actioncampaign_id, action, consent_to_charge ที่ระบุหรือไม่ระบุก็ได้, confirmation_token ในคำขอครั้งที่สองD, Oเรียกใช้ start, pause, resume หรือ stop โดย start และ resume เป็นการดำเนินการสองขั้นตอน ส่วน pause และ stop ทำงานทันที
get_campaign_statscampaign_idR, Iรับตัวนับและผลลัพธ์ล่าสุด

เสียง การเรียกเก็บเงิน การนำเข้า และเอกสาร

เครื่องมืออาร์กิวเมนต์หลักคำอธิบายประกอบการทำงาน
list_voicesR, Iแสดงรายการเสียงและภาษาที่รองรับ
preview_voicevoice, language, textOสร้างตัวอย่างและส่งคืน URL ที่ลงนาม
list_voice_clonesR, Iแสดงรายการโคลนเสียงแบบกำหนดเอง
get_billing_summaryR, Iรับยอดคงเหลือและราคาตามระดับที่เป็นข้อมูลอ้างอิง โดยไม่มีการเปิดเผยการเปลี่ยนแปลงการชำระเงิน
create_agent_importvendor, vendor_keyOเริ่มการนำเข้า Vapi, Retell, ElevenLabs หรือ Bland แบบเข้ารหัส
get_agent_importpublic_idR, Iรับความแตกต่างของการนำเข้าที่เสนอ
commit_agent_importpublic_idยืนยันเอเจนต์ที่เลือกจากแผนที่ตรวจทานแล้ว
search_docsquery, limit ที่ระบุหรือไม่ระบุก็ได้R, I, Oค้นหาดัชนีเอกสารสาธารณะ
get_doc_pagepathR, I, Oดึงหน้าเอกสาร Markdown สาธารณะหนึ่งหน้า

เครื่องมือผลิตภัณฑ์ทั้งหมดใช้เส้นทางโค้ด REST เดียวกันกับ API สาธารณะ ดังนั้นการตรวจสอบ 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 นาทีและครอบคลุมหนึ่งองค์กร หนึ่งเครื่องมือ และชุดอาร์กิวเมนต์ที่ตรงกันเพียงชุดเดียว ดังนั้นการลบ AI เอเจนต์สามรายการจึงต้องยืนยันสามครั้ง campaign_action ที่มี pause หรือ stop จะข้ามขั้นตอนนี้ เพื่อให้สามารถหยุดแคมเปญที่กำลังทำงานได้ทันทีเสมอ

พรอมต์เริ่มต้น

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/quickstartMarkdown สำหรับเริ่มต้นอย่างรวดเร็ว
thunderphone://pricingMarkdown ราคาสาธารณะปัจจุบัน

อ่านรายการใดรายการหนึ่งด้วย resources/read การดึงข้อมูลสาธารณะใช้ระยะหมดเวลาสั้น ขีดจำกัด 2 MiB และแคชภายในโปรเซสเป็นเวลา 10 นาที

โปรโตคอลและข้อผิดพลาด

เซิร์ฟเวอร์รองรับโปรโตคอลเวอร์ชัน 2025-06-18 และ 2025-03-26 โดยจะสะท้อนเวอร์ชันไคลเอนต์ที่รองรับ และในกรณีอื่นจะเลือก 2025-06-18 เซิร์ฟเวอร์รองรับ initialize ping เครื่องมือ พรอมต์ ทรัพยากร และการแจ้งเตือน การแจ้งเตือนจะส่งกลับ 202 Accepted เซิร์ฟเวอร์แบบไม่มีสถานะนี้ไม่มีตัวรับฟัง SSE หรือการลบเซสชัน ดังนั้น GET และ DELETE จึงส่งกลับ 405 Method Not Allowed พร้อม Allow: POST

ความล้มเหลวของเครื่องมือยังคงเป็นการตอบกลับ JSON-RPC ที่สำเร็จโดยมี isError: true ข้อความประกอบด้วยประโยคสั้นตามด้วยบล็อก JSON:

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

คำนำหน้า outbound_tcpa_confirmation_required: ที่แตกต่างกันยังคงใช้สำหรับ place_call เมธอด JSON-RPC ที่ไม่รู้จักจะส่งกลับ -32601 ในการตอบกลับ HTTP 200 MCP 2025-06-18 ไม่รองรับแบตช์ JSON-RPC และจะส่งกลับข้อผิดพลาดคำขอไม่ถูกต้อง -32600 ที่ชัดเจน