ThunderPhone 2.0 đã chính thức ra mắt.Tự đăng ký và sử dụng, chỉ từ 2¢/phút.Xem thông báo ra mắt

Connect tools & data

Sử dụng ThunderPhone làm máy chủ MCP

Xây dựng, kiểm thử, xác thực và vận hành tác nhân AI giọng nói ThunderPhone từ Claude, ChatGPT, Claude Code, Codex, Cursor, VS Code hoặc một ứng dụng khách MCP HTTP có thể truyền phát khác.

ThunderPhone cung cấp máy chủ Model Context Protocol HTTP có thể truyền luồng tại:

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

Đây là hướng ngược lại với kết nối máy chủ MCP từ xa với tác nhân AI:

HướngKết quả
Máy chủ MCP từ xa → tác nhân ThunderPhoneTác nhân AI có thể gọi các công cụ của máy chủ từ xa.
ThunderPhone → ứng dụng MCP của bạnTác nhân lập trình của bạn có thể xây dựng, kiểm thử và vận hành ThunderPhone.

Xác thực

Mặc định, hãy dùng OAuth cho ứng dụng khách từ danh mục: đăng nhập, chọn một tổ chức và phê duyệt các quyền được yêu cầu. Thu hồi quyền truy cập tại Tổ chức → Khóa API → Ứng dụng được ủy quyền.

Với ứng dụng khách được cấu hình bằng khóa API, hãy tạo khóa sk_live_ tại Tổ chức → Khóa và cung cấp khóa đó cho ứng dụng MCP của bạn dưới dạng THUNDERPHONE_API_KEY. Khóa được liên kết với một tổ chức; một ID thuộc tổ chức khác sẽ hoạt động như không tìm thấy.

Các lựa chọn thay thế CLI và stdio

ThunderPhone CLI có thể ghi cấu hình ứng dụng khách mà vẫn giữ nguyên các máy chủ không liên quan:

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

Sau khi cài đặt @thunderphone/mcp trên toàn hệ thống, hãy dùng thunderphone-mcp setup với các tùy chọn tương tự. Thiết lập hỗ trợ Claude Code, Codex, Cursor, VS Code, Gemini, Claude Desktop và Windsurf. Ưu tiên HTTP trực tiếp; Desktop sử dụng stdio.

Với bất kỳ ứng dụng khách nào hỗ trợ stdio, hãy cấu hình command: "npx" với args: ["-y", "@thunderphone/mcp"]. Trình bao bọc sẽ dùng THUNDERPHONE_API_KEY trước, sau đó là thông tin xác thực từ thunderphone login, làm mới token đã hết hạn, rồi dùng OAuth qua mcp-remote. Đăng nhập thiết bị và OAuth yêu cầu API triển khai OAuth tương ứng. Đường dẫn khóa API thì không. Cấu hình HTTP trực tiếp không đọc kho thông tin xác thực CLI; hãy dùng trình bao bọc stdio để tái sử dụng đăng nhập thiết bị.

Đây là các lựa chọn thay thế cho cấu hình ứng dụng khách thủ công bên dưới.

Cấu hình ứng dụng khách

Claude và ChatGPT đăng nhập bằng OAuth; không cần API key. Nếu bạn chưa có tài khoản ThunderPhone, hãy chọn Tạo tài khoản trên trang đăng nhập; sau khi xác minh email, bạn sẽ quay lại màn hình phê duyệt.

Claude (web, máy tính để bàn và di động)

  1. Mở Tùy chỉnh → Trình kết nối (Cài đặt → Trình kết nối trong các phiên bản cũ hơn). Nếu ThunderPhone xuất hiện trong danh mục trình kết nối, hãy chọn nó. Nếu không, hãy chọn Thêm trình kết nối tùy chỉnh, đặt tên là ThunderPhone, rồi nhập https://api.thunderphone.com/v1/mcp.
  2. Chọn Kết nối, đăng nhập vào ThunderPhone, chọn tổ chức và phê duyệt quyền.
  3. Trong cuộc trò chuyện, bật ThunderPhone từ menu công cụ và yêu cầu nội dung bạn cần, ví dụ: "Liệt kê các tác nhân AI của tôi".

Claude sẽ hỏi trước khi sử dụng từng công cụ lần đầu. Để bỏ qua hầu hết các lời nhắc đó, hãy mở Tùy chỉnh → Trình kết nối → ThunderPhone và đặt Công cụ chỉ đọc thành luôn cho phép. Các công cụ này chỉ tra cứu: tác nhân AI, cuộc gọi, bản chép lời, số dư, tài liệu. Giữ Công cụ ghi/xóa ở chế độ phê duyệt nếu bạn muốn xem từng thay đổi trước khi diễn ra.

Trình kết nối tùy chỉnh yêu cầu gói Claude trả phí. Với gói Team và Enterprise, chủ sở hữu cần thêm trình kết nối trong phần cài đặt trình kết nối của tổ chức trước, sau đó mỗi thành viên sẽ kết nối tài khoản ThunderPhone riêng của mình.

ChatGPT

  1. Nếu ThunderPhone xuất hiện trong danh mục ứng dụng ChatGPT, hãy chọn và kết nối.
  2. Nếu không, hãy mở Cài đặt → Ứng dụng & Trình kết nối → Cài đặt nâng cao, bật Chế độ nhà phát triển, rồi tạo trình kết nối với URL https://api.thunderphone.com/v1/mcp và xác thực OAuth.
  3. Đăng nhập vào ThunderPhone, chọn tổ chức và phê duyệt quyền. Thêm ThunderPhone vào cuộc trò chuyện từ menu công cụ.

Việc xóa tác nhân AI hoặc số điện thoại, hủy bản nháp, khởi chạy chiến dịch và gửi yêu cầu kiểm thử có thể ghi vào hệ thống bên ngoài đều yêu cầu xác nhận lần hai trong cả hai ứng dụng; xem Xác nhận các thao tác phá hủy.

Claude Code

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

Codex

Thêm nội dung này vào ~/.codex/config.toml:

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

Cursor

Tạo .cursor/mcp.json:

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

Claude Desktop

Thêm cầu nối mcp-remote vào cấu hình 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

Tạo .vscode/mcp.json và nhập key thông qua lời nhắc nhập của 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}"
      }
    }
  }
}

Công cụ

Mỗi công cụ đều có chú thích MCP. Trong các bảng, R nghĩa là chỉ đọc, D là phá hủy, I là lũy đẳng và O là tương tác với thế giới mở/mạng. Dấu gạch ngang nghĩa là không có gợi ý nào được đặt.

Kết nối

Công cụĐối số chínhChú thíchChức năng
get_connection_identity—R, IXác thực thông tin xác thực và trả về tổ chức cùng siêu dữ liệu thông tin xác thực an toàn.

Tác nhân AI

Công cụĐối số chínhChú thíchChức năng
list_agents—R, ILiệt kê tác nhân AI.
get_agentagent_idR, ILấy một tác nhân AI.
create_agentcấu hình tác nhân AI—Tạo một tác nhân AI.
update_agentagent_id, các trường đã thay đổiDĐưa các trường vào bản nháp tác nhân AI, thay thế nội dung hiện có trong bản nháp. Chạy mà không cần bước xác nhận: tác nhân AI đã triển khai không thay đổi cho đến khi deploy_agent được gọi, và discard_agent_draft hoàn nguyên bản nháp.
deploy_agentagent_id, if_updated_at tùy chọnD, IĐưa bản nháp vào môi trường production.
discard_agent_draftagent_id, if_updated_at tùy chọn, confirmation_token ở yêu cầu thứ haiD, IHủy các thay đổi đã đưa vào bản nháp. Gồm hai bước, xem Xác nhận thao tác phá hủy.
duplicate_agentagent_id, name tùy chọn—Sao chép một tác nhân AI trong tổ chức.
delete_agentagent_id, confirmation_token ở yêu cầu thứ haiD, IXóa vĩnh viễn một tác nhân AI. Gồm hai bước.
list_agent_versionsagent_idR, ILiệt kê các phiên bản cấu hình đã triển khai.

Số điện thoại và nhà cung cấp viễn thông

Công cụĐối số chínhChú thíchChức năng
list_phone_numbers—R, ILiệt kê số của tổ chức và định tuyến.
get_phone_number_limits—R, ILấy mức sử dụng và giới hạn của số được quản lý.
provision_phone_numbertùy chọn area_code, city, state, idempotency_keyD, OMua số gọi đến do ThunderPhone quản lý.
list_voip_connections—R, ILiệt kê nhà mạng của khách hàng đã kết nối.
search_voip_numbersconnection_id, country, type, tùy chọn area_codeR, I, OTìm kiếm kho số của nhà mạng.
import_voip_numbersconnection_id, numbersD, ONhập các số đã sở hữu tại nhà mạng.
update_phone_numberphone_number_id, các trường định tuyến/nhãn/webhookDCập nhật định tuyến số, bao gồm cả việc gán tác nhân AI.
delete_phone_numberphone_number_id, confirm, tùy chọn release_at_provider, confirmation_token trong yêu cầu thứ haiD, I, OGiải phóng một số. Gồm hai bước.

SMS

Công cụĐối số chínhChú thíchChức năng
send_smsfrom_number, to, body, idempotency_keyD, I, OGửi một SMS văn bản thuần túy qua số Twilio hoặc Telnyx đã kết nối.

Cuộc gọi

Công cụĐối số chínhChú thíchChức năng
list_callsbộ lọc tùy chọn, limit, offsetR, ILiệt kê cuộc gọi với các bộ lọc lịch sử cuộc gọi REST.
get_callcall_idR, ILấy trạng thái cuộc gọi và siêu dữ liệu.
get_call_transcriptcall_id, live tùy chọnR, ILấy bản chép lời cuộc gọi.
get_call_audio_urlcall_id, download tùy chọnR, I, OTrả về URL âm thanh đã ký; không bao giờ truyền trực tuyến âm thanh qua MCP.
get_call_gradecall_idR, ILấy điểm đánh giá cuộc gọi mới nhất.
place_callagent_id, from_number, to_numberD, OThực hiện một cuộc gọi đi không có tính idempotent.
export_callsbộ lọc cuộc gọi, export_formatR, IXuất tối đa đến giới hạn của endpoint REST dưới dạng JSON hoặc CSV.

Kiểm thử và xác thực

Công cụĐối số chínhChú thíchChức năng
list_test_scenariosagent_idR, ILiệt kê các kịch bản kiểm thử.
create_test_scenarioagent_id, title, scenario_prompt, điều kiện tùy chọn—Tạo một kịch bản.
generate_test_scenariosagent_id, count tùy chọn, include_edge_cases, localeOTạo các kịch bản từ prompt của tác nhân AI.
run_agent_testsagent_id, channel, consent_to_charge, lựa chọn/ma trận tùy chọnD, OChạy các kịch bản qua web hoặc điện thoại.
get_test_runagent_id, batch_idR, ILấy trạng thái lô và kết quả theo từng kịch bản.
list_validation_runsagent_idR, ILiệt kê các lần chạy xác thực bản nháp gần đây.
get_validation_statusagent_idR, ILấy trạng thái xác thực mới nhất và kết quả khớp bản nháp.

Kiến thức

Công cụĐối số chínhChú thíchChức năng
list_knowledge_bases—R, ILiệt kê cơ sở kiến thức.
create_knowledge_basename, description tùy chọn—Tạo một cơ sở kiến thức.
add_knowledge_documentknowledge_base_id, name, content—Thêm văn bản hoặc Markdown.
import_knowledge_urlurl, name tùy chọnOĐưa một trang công khai vào hàng đợi để thu thập an toàn.
search_knowledgeknowledge_base_id, queryR, ITìm kiếm thông qua truy xuất trong môi trường vận hành.

Tích hợp, webhook và máy chủ MCP từ xa

Công cụĐối số chínhChú thíchChức năng
list_integrations—R, ILiệt kê các tích hợp hàm HTTP.
create_integrationdisplay_name, spec hàm, các trường endpoint tùy chọn—Tạo công cụ HTTP. Thêm header xác thực trong bảng điều khiển.
test_integrationurl, phương thức/nội dung/thời gian chờ tùy chọn, integration_id kèm header_names, confirmation_token trong yêu cầu thứ haiD, OGửi yêu cầu kiểm thử có giới hạn và được bảo vệ khỏi SSRF. Các giá trị header đã lưu được điền từ tích hợp và chỉ gửi đến máy chủ của chính tích hợp đó. POST (mặc định), PUT, PATCH và DELETE gồm hai bước; GET chạy ngay.
list_webhook_endpoints—R, ILiệt kê các endpoint webhook đã ký.
list_webhook_deliveriesagent_id tùy chọn, endpoint_id tùy chọnR, ILiệt kê các kết quả gửi webhook gần đây không kèm payload.
create_webhook_endpointlabel, url, sự kiện/trạng thái tùy chọnOTạo endpoint webhook đã ký.
test_webhook_endpointendpoint_idOGửi sự kiện tổng hợp thông qua quy trình gửi thông thường.
list_mcp_servers—R, ILiệt kê các máy chủ từ xa mà tác nhân AI giọng nói có thể gọi.
create_mcp_serverdisplay_name, urlOĐăng ký và đồng bộ máy chủ từ xa. Các máy chủ cần header xác thực được thêm trong bảng điều khiển.
sync_mcp_server_toolsserver_idD, OLàm mới danh mục công cụ của máy chủ từ xa.

Chiến dịch

Công cụĐối số chínhChú thíchChức năng
list_campaigns—R, ILiệt kê chiến dịch gọi ra.
create_campaigntrường chiến dịch—Tạo một chiến dịch bản nháp.
add_campaign_contactscampaign_id, contacts—Thêm tối đa 5.000 liên hệ JSON.
campaign_actioncampaign_id, action, consent_to_charge tùy chọn, confirmation_token trong yêu cầu thứ haiD, OChạy start, pause, resume hoặc stop. start và resume gồm hai bước; pause và stop chạy ngay lập tức.
get_campaign_statscampaign_idR, ILấy bộ đếm và kết quả gần đây.

Giọng nói, thanh toán và tài liệu

Công cụĐối số chínhChú thíchChức năng
list_voices—R, ILiệt kê giọng nói và ngôn ngữ được hỗ trợ.
preview_voicevoice, language, textOTạo mẫu và trả về URL đã ký.
list_voice_clones—R, ILiệt kê các bản sao giọng nói tùy chỉnh.
get_billing_summary—R, ILấy số dư và giá bậc chính thức; không cung cấp thao tác thay đổi thanh toán.
search_docsquery, limit tùy chọnR, I, OTìm kiếm trong chỉ mục tài liệu công khai.
get_doc_pagepathR, I, OLấy một trang tài liệu Markdown công khai.

Mọi công cụ sản phẩm đều sử dụng cùng đường dẫn mã REST như API công khai. Vì vậy, xác thực REST, phạm vi tổ chức, vai trò, điều kiện thanh toán, hạn ngạch, xác nhận TCPA, an toàn nhà cung cấp và hành vi kiểm toán được áp dụng không thay đổi.

Xác nhận hành động phá hủy

Các công cụ được đánh dấu D sẽ thay đổi hoặc xóa một thứ gì đó, hoặc bắt đầu gọi cho người thật. Những thao tác không thể hoàn tác cần hai yêu cầu. Yêu cầu đầu tiên không thay đổi gì và trả về:

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

Tác nhân AI cho người dùng biết nội dung nào bị ảnh hưởng và yêu cầu xác nhận. Sau đó, tác nhân AI lặp lại yêu cầu với cùng đối số cùng với confirmation_token. Token có hiệu lực trong 10 phút và áp dụng cho một tổ chức, một công cụ và một tập đối số chính xác, vì vậy việc xóa ba tác nhân AI cần ba lần xác nhận. campaign_action với pause hoặc stop bỏ qua bước này để một chiến dịch đang chạy luôn có thể được dừng ngay lập tức; test_integration với GET cũng vậy. Một số công cụ D chạy trong một yêu cầu vì ký hiệu D đánh dấu tác động của chúng, không phải xác nhận phía máy chủ: update_agent thay thế nội dung bản nháp đang có (discard_agent_draft hoàn tác thay đổi này), deploy_agent thay thế cấu hình đang hoạt động, update_phone_number định tuyến lại các cuộc gọi đang hoạt động, sync_mcp_server_tools thay thế danh mục công cụ của máy chủ từ xa, import_voip_numbers chuyển lại số về nhà cung cấp dịch vụ của bạn, run_agent_tests có thể tiêu tốn credit, send_sms và place_call liên hệ với người thật (place_call vẫn giữ xác nhận đồng ý riêng), và provision_phone_number mua một số. Ứng dụng MCP của bạn vẫn có thể yêu cầu bạn phê duyệt các thao tác này.

Prompt khởi đầu

prompts/list cung cấp năm quy trình làm việc có thể tái sử dụng:

  • create_inbound_receptionist
  • run_agent_tests
  • buy_and_attach_number
  • review_low_grade_calls
  • add_url_to_agent_knowledge

Dùng prompts/get với tên prompt được liệt kê và các đối số đã khai báo để nhận tin nhắn người dùng sẵn sàng chạy.

Tài nguyên

resources/list hiển thị các tham chiếu công khai được lưu vào bộ nhớ đệm:

URINội dung
thunderphone://docs/llms.txtChỉ mục tài liệu công khai.
thunderphone://docs/quickstartMarkdown hướng dẫn nhanh.
thunderphone://pricingMarkdown về giá công khai hiện tại.

Đọc một tài nguyên bằng resources/read. Các lượt truy xuất công khai dùng thời gian chờ ngắn, giới hạn 2 MiB và bộ nhớ đệm trong tiến trình trong mười phút.

Giao thức và lỗi

Máy chủ hỗ trợ các phiên bản giao thức 2025-06-18 và 2025-03-26; máy chủ phản hồi lại phiên bản ứng dụng khách được hỗ trợ và nếu không thì chọn 2025-06-18. Máy chủ triển khai initialize, ping, công cụ, prompt, tài nguyên và thông báo. Thông báo trả về 202 Accepted. Máy chủ không trạng thái này không cung cấp trình lắng nghe SSE hoặc chức năng xóa phiên, vì vậy GET và DELETE trả về 405 Method Not Allowed với Allow: POST.

Lỗi công cụ vẫn là phản hồi JSON-RPC thành công với isError: true. Nội dung của chúng chứa một câu ngắn, theo sau là một khối JSON:

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

Tiền tố riêng biệt outbound_tcpa_confirmation_required: được giữ lại cho place_call. Các phương thức JSON-RPC không xác định trả về -32601 trong phản hồi HTTP 200. MCP 2025-06-18 không hỗ trợ batch JSON-RPC và trả về lỗi yêu cầu không hợp lệ -32600 rõ ràng.