Open in
Naudokite ThunderPhone kaip MCP serverį
Kurkite, testuokite, tikrinkite ir valdykite ThunderPhone balso agentus naudodami Claude, ChatGPT, Claude Code, Codex, Cursor, VS Code arba kitą Streamable HTTP MCP klientą.
ThunderPhone pateikia Streamable HTTP Model Context Protocol serverį adresu:
https://api.thunderphone.com/v1/mcpTai yra priešinga kryptis nei nuotolinio MCP serverio prijungimas prie balso agento:
| Kryptis | Rezultatas |
|---|---|
| Nuotolinis MCP serveris → ThunderPhone agentas | Balso agentas gali iškviesti nuotolinio serverio įrankius. |
| ThunderPhone → jūsų MCP klientas | Jūsų programavimo agentas gali kurti, testuoti ir valdyti ThunderPhone. |
Autentifikavimas
Katalogo klientams pagal numatytuosius nustatymus naudokite OAuth: prisijunkite, pasirinkite organizaciją ir patvirtinkite prašomas teises. Prieigą atšaukite skiltyje Organizacija → API raktai → Įgaliotos programos.
Klientams, sukonfigūruotiems naudojant API raktą, sukurkite sk_live_ raktą skiltyje Organizacija → Raktai ir pateikite jį MCP klientui kaip THUNDERPHONE_API_KEY. Raktas susietas su viena organizacija; kitos organizacijos turimas ID laikomas nerastu.
CLI ir stdio alternatyvos
ThunderPhone CLI gali įrašyti kliento konfigūraciją, išsaugodama nesusijusius serverius:
npx -y @thunderphone/mcp setup --client cursor --api-key-env THUNDERPHONE_API_KEY
npx thunderphone mcp setup --client claude-desktop --scope userVisuotinai įdiegę @thunderphone/mcp, naudokite thunderphone-mcp setup su
tomis pačiomis parinktimis. Sąranka palaiko Claude Code, Codex, Cursor, VS Code, Gemini, Claude
Desktop ir Windsurf. Pirmenybė teikiama tiesioginiam HTTP; Claude Desktop naudoja stdio.
Bet kuriam stdio palaikančiam klientui sukonfigūruokite command: "npx" su
args: ["-y", "@thunderphone/mcp"]. Paketas pirmiausia naudoja THUNDERPHONE_API_KEY,
tada kredencialus iš thunderphone login, atnaujindamas nebegaliojančius prieigos raktus, o po to
OAuth per mcp-remote. Įrenginio prisijungimui ir OAuth reikia atitinkamo API
OAuth įdiegimo. Naudojant API raktą jo nereikia. Tiesioginės HTTP konfigūracijos neskaito
CLI kredencialų saugyklos; norėdami pakartotinai naudoti įrenginio prisijungimą, naudokite stdio paketą.
Tai yra alternatyvos toliau pateikiamoms rankinėms klientų konfigūracijoms.
Kliento konfigūracija
Claude ir ChatGPT prisijungia naudodami OAuth; API rakto nereikia. Jei dar neturite ThunderPhone paskyros, prisijungimo puslapyje pasirinkite Sukurti paskyrą ir, patvirtinę el. paštą, grįšite į patvirtinimo ekraną.
Claude (žiniatinklis, kompiuteris ir mobilieji įrenginiai)
- Atidarykite Tinkinti → Jungtys (senesnėse versijose – Nustatymai → Jungtys). Jei ThunderPhone rodomas jungčių kataloge, pasirinkite jį. Kitu atveju pasirinkite Pridėti pasirinktinę jungtį, suteikite jai pavadinimą
ThunderPhoneir įveskitehttps://api.thunderphone.com/v1/mcp. - Pasirinkite Prisijungti, prisijunkite prie ThunderPhone, pasirinkite organizaciją ir patvirtinkite leidimus.
- Pokalbyje įrankių meniu įjunkite ThunderPhone ir paprašykite, ko jums reikia, pavyzdžiui, „Išvardyk mano agentus“.
Claude prieš pirmą kartą naudodamas kiekvieną įrankį paprašo patvirtinimo. Norėdami praleisti daugumą šių užklausų, atidarykite Tinkinti → Jungtys → ThunderPhone ir nustatykite, kad Tik skaitymo įrankiai visada būtų leidžiami. Šie įrankiai tik peržiūri informaciją: agentus, skambučius, transkripcijas, balansus, dokumentaciją. Jei prieš kiekvieną pakeitimą norite jį peržiūrėti, palikite Rašymo ir trynimo įrankius su patvirtinimu.
Pasirinktinėms jungtims reikalingas mokamas Claude planas. Team ir Enterprise planuose savininkas pirmiausia prideda jungtį organizacijos jungčių nustatymuose, tada kiekvienas narys prijungia savo ThunderPhone paskyrą.
ChatGPT
- Jei ThunderPhone rodomas ChatGPT programų kataloge, pasirinkite jį ir prisijunkite.
- Kitu atveju atidarykite Nustatymai → Programos ir jungtys → Išplėstiniai nustatymai, įjunkite Kūrėjo režimą ir sukurkite jungtį su URL
https://api.thunderphone.com/v1/mcpbei OAuth autentifikavimu. - Prisijunkite prie ThunderPhone, pasirinkite organizaciją ir patvirtinkite leidimus. Įtraukite ThunderPhone į pokalbį iš įrankių meniu.
Agento ar telefono numerio ištrynimas, juodraščio atmetimas, kampanijos paleidimas ir bandomosios užklausos, galinčios įrašyti duomenis į išorinę sistemą, siuntimas abiejose programose reikalauja antro patvirtinimo; žr. Ardomųjų veiksmų patvirtinimas.
Claude Code
claude mcp add --transport http thunderphone https://api.thunderphone.com/v1/mcp \
--header "Authorization: Bearer $THUNDERPHONE_API_KEY"Codex
Pridėkite tai į ~/.codex/config.toml:
[mcp_servers.thunderphone]
url = "https://api.thunderphone.com/v1/mcp"
bearer_token_env_var = "THUNDERPHONE_API_KEY"Cursor
Sukurkite .cursor/mcp.json:
{
"mcpServers": {
"thunderphone": {
"url": "https://api.thunderphone.com/v1/mcp",
"headers": {
"Authorization": "Bearer ${env:THUNDERPHONE_API_KEY}"
}
}
}
}Claude Desktop
Pridėkite mcp-remote tarpinį komponentą į Claude Desktop konfigūraciją:
{
"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
Sukurkite .vscode/mcp.json ir įveskite raktą VS Code įvesties raginime:
{
"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}"
}
}
}
}Įrankiai
Kiekvienas įrankis turi MCP anotacijas. Lentelėse R reiškia tik skaitymą, D – destruktyvumą, I – idempotentiškumą, o O – sąveiką su išoriniu pasauliu arba tinklu. Brūkšnys reiškia, kad jokia užuomina nenustatyta.
Ryšys
| Įrankis | Pagrindiniai argumentai | Anotacijos | Ką atlieka |
|---|---|---|---|
get_connection_identity | — | R, I | Patvirtina prisijungimo duomenis ir grąžina organizaciją bei saugius prisijungimo duomenų metaduomenis. |
Agentai
| Įrankis | Pagrindiniai argumentai | Anotacijos | Ką jis daro |
|---|---|---|---|
list_agents | — | R, I | Pateikia agentų sąrašą. |
get_agent | agent_id | R, I | Gauna vieną agentą. |
create_agent | agento konfigūracija | — | Sukuria agentą. |
update_agent | agent_id, pakeisti laukai | D | Parengia laukus agento juodraštyje, pakeisdamas ankstesnius juodraščio laukus. Vykdomas be patvirtinimo veiksmo: įdiegtas agentas nesikeičia, kol neiškviečiamas deploy_agent, o discard_agent_draft atstato juodraštį. |
deploy_agent | agent_id, pasirinktinis if_updated_at | D, I | Perkelia juodraštį į produkcinę aplinką. |
discard_agent_draft | agent_id, pasirinktinis if_updated_at, confirmation_token per antrą užklausą | D, I | Atmeta parengtus pakeitimus. Du žingsniai, žr. Destruktyvių veiksmų patvirtinimas. |
duplicate_agent | agent_id, pasirinktinis name | — | Nukopijuoja agentą organizacijoje. |
delete_agent | agent_id, confirmation_token per antrą užklausą | D, I | Visam laikui ištrina agentą. Du žingsniai. |
list_agent_versions | agent_id | R, I | Pateikia įdiegtų konfigūracijos versijų sąrašą. |
Telefono numeriai ir ryšio tiekėjai
| Įrankis | Pagrindiniai argumentai | Anotacijos | Ką jis daro |
|---|---|---|---|
list_phone_numbers | — | R, I | Pateikia organizacijos numerius ir maršrutus. |
get_phone_number_limits | — | R, I | Gauna valdomų numerių naudojimo duomenis ir limitus. |
provision_phone_number | pasirenkami area_code, city, state, idempotency_key | D, O | Perka ThunderPhone valdomą įeinančių skambučių numerį. |
list_voip_connections | — | R, I | Pateikia prijungtus klientų ryšio operatorius. |
search_voip_numbers | connection_id, country, type, pasirenkamas area_code | R, I, O | Ieško ryšio operatoriaus numerių inventoriuje. |
import_voip_numbers | connection_id, numbers | D, O | Importuoja numerius, jau priklausančius ryšio operatoriui. |
update_phone_number | phone_number_id, maršruto / etiketės / žiniatinklio kablio laukai | D | Atnaujina numerio maršrutą, įskaitant agento priskyrimą. |
delete_phone_number | phone_number_id, confirm, pasirenkami release_at_provider, confirmation_token per antrą užklausą | D, I, O | Atlaisvina numerį. Du etapai. |
SMS
| Įrankis | Pagrindiniai argumentai | Anotacijos | Ką jis daro |
|---|---|---|---|
send_sms | from_number, to, body, idempotency_key | D, I, O | Siunčia vieną paprastojo teksto SMS per prijungtą Twilio arba Telnyx numerį. |
Skambučiai
| Įrankis | Pagrindiniai argumentai | Anotacijos | Ką jis daro |
|---|---|---|---|
list_calls | pasirinktiniai filtrai, limit, offset | R, I | Išvardija skambučius pagal REST skambučių istorijos filtrus. |
get_call | call_id | R, I | Gauna skambučio būseną ir metaduomenis. |
get_call_transcript | call_id, pasirinktinis live | R, I | Gauna skambučio transkriptą. |
get_call_audio_url | call_id, pasirinktinis download | R, I, O | Grąžina pasirašytą garso URL; garsas niekada netransliuojamas per MCP. |
get_call_grade | call_id | R, I | Gauna naujausią skambučio įvertinimą. |
place_call | agent_id, from_number, to_number | D, O | Atlieka vieną neidemponentinį išeinantį skambutį. |
export_calls | skambučių filtrai, export_format | R, I | Eksportuoja iki REST galinio taško limito JSON arba CSV formatu. |
Testavimas ir tikrinimas
| Įrankis | Pagrindiniai argumentai | Anotacijos | Ką jis daro |
|---|---|---|---|
list_test_scenarios | agent_id | R, I | Pateikia testavimo scenarijų sąrašą. |
create_test_scenario | agent_id, title, scenario_prompt, neprivalomos sąlygos | — | Sukuria scenarijų. |
generate_test_scenarios | agent_id, neprivalomi count, include_edge_cases, locale | O | Generuoja scenarijus pagal agento užklausą. |
run_agent_tests | agent_id, channel, consent_to_charge, neprivaloma atranka arba matrica | D, O | Vykdo scenarijus žiniatinklyje arba telefonijos kanalu. |
get_test_run | agent_id, batch_id | R, I | Gauna paketo būseną ir kiekvieno scenarijaus rezultatus. |
list_validation_runs | agent_id | R, I | Pateikia naujausių juodraščio tikrinimo vykdymų sąrašą. |
get_validation_status | agent_id | R, I | Gauna naujausią tikrinimo būseną ir atitikimą juodraščiui. |
Žinios
| Įrankis | Pagrindiniai argumentai | Anotacijos | Ką atlieka |
|---|---|---|---|
list_knowledge_bases | — | R, I | Pateikia žinių bazių sąrašą. |
create_knowledge_base | name, pasirinktinis description | — | Sukuria žinių bazę. |
add_knowledge_document | knowledge_base_id, name, content | — | Prideda tekstą arba Markdown. |
import_knowledge_url | url, pasirinktinis name | O | Įtraukia viešą puslapį į saugaus įkėlimo eilę. |
search_knowledge | knowledge_base_id, query | R, I | Ieško produkcinėje paieškoje. |
Integracijos, saityno kabliai ir nuotoliniai MCP serveriai
| Įrankis | Pagrindiniai argumentai | Anotacijos | Ką jis daro |
|---|---|---|---|
list_integrations | — | R, I | Išvardija HTTP funkcijų integracijas. |
create_integration | display_name, funkcijos spec, pasirenkami galinio taško laukai | — | Sukuria HTTP įrankį. Autentifikavimo antraštes pridėkite valdymo skydelyje. |
test_integration | url, pasirenkami metodas / turinys / skirtasis laikas, integration_id su header_names, confirmation_token antrojoje užklausoje | D, O | Išsiunčia ribotą, nuo SSRF apsaugotą bandomąją užklausą. Išsaugotos antraščių reikšmės užpildomos iš integracijos ir siunčiamos tik į jos pagrindinį kompiuterį. POST (numatytasis), PUT, PATCH ir DELETE atliekami dviem etapais; GET vykdomas iš karto. |
list_webhook_endpoints | — | R, I | Išvardija pasirašytus webhook galinius taškus. |
list_webhook_deliveries | pasirenkamas agent_id, pasirenkamas endpoint_id | R, I | Išvardija naujausius webhook pristatymo rezultatus be duomenų turinio. |
create_webhook_endpoint | label, url, pasirenkami įvykiai / būsena | O | Sukuria pasirašytą webhook galinį tašką. |
test_webhook_endpoint | endpoint_id | O | Išsiunčia sintetinį įvykį įprastu pristatymo būdu. |
list_mcp_servers | — | R, I | Išvardija nuotolinius serverius, kuriuos gali iškviesti balso agentai. |
create_mcp_server | display_name, url | O | Užregistruoja ir sinchronizuoja nuotolinį serverį. Serveriai, kuriems reikia autentifikavimo antraščių, pridedami valdymo skydelyje. |
sync_mcp_server_tools | server_id | D, O | Atnaujina nuotolinio serverio įrankių katalogą. |
Kampanijos
| Įrankis | Pagrindiniai argumentai | Anotacijos | Ką atlieka |
|---|---|---|---|
list_campaigns | — | R, I | Pateikia išeinančių kampanijų sąrašą. |
create_campaign | kampanijos laukai | — | Sukuria kampanijos juodraštį. |
add_campaign_contacts | campaign_id, contacts | — | Prideda iki 5 000 JSON kontaktų. |
campaign_action | campaign_id, action, pasirinktinis consent_to_charge, confirmation_token antroje užklausoje | D, O | Vykdo start, pause, resume arba stop. start ir resume atliekami dviem etapais; pause ir stop vykdomi nedelsiant. |
get_campaign_stats | campaign_id | R, I | Gauna skaitiklius ir naujausius rezultatus. |
Balsai, atsiskaitymas ir dokumentacija
| Įrankis | Pagrindiniai argumentai | Anotacijos | Ką jis daro |
|---|---|---|---|
list_voices | — | R, I | Pateikia balsų ir palaikomų kalbų sąrašą. |
preview_voice | voice, language, text | O | Sugeneruoja pavyzdį ir grąžina pasirašytą URL. |
list_voice_clones | — | R, I | Pateikia tinkintų balso klonų sąrašą. |
get_billing_summary | — | R, I | Gauna likutį ir oficialias pakopų kainas; mokėjimų keitimo operacijos nepateikiamos. |
search_docs | query, pasirinktinis limit | R, I, O | Ieško viešajame dokumentacijos indekse. |
get_doc_page | path | R, I, O | Gauna vieną viešą Markdown dokumentacijos puslapį. |
Visi produkto įrankiai naudoja tuos pačius REST kodo kelius kaip viešoji API. Todėl REST tikrinimas, organizacijos aprėptis, vaidmenys, atsiskaitymo leidimai, kvotos, TCPA patvirtinimas, tiekėjo sauga ir audito veikimas taikomi nepakitę.
Destruktyvių veiksmų patvirtinimas
Įrankiai, pažymėti D, ką nors pakeičia arba pašalina arba pradeda rinkti tikrų žmonių numerius. Tiems, kurių negalima atšaukti, reikia dviejų užklausų. Pirmoji užklausa nieko nekeičia ir grąžina:
{
"status": "confirmation_required",
"action": "Delete agent",
"target": { "id": 195, "name": "Front Desk Receptionist" },
"confirmation_token": "…",
"expires_in_seconds": 600,
"next_step": "…"
}Asistentas parodo naudotojui, kas bus paveikta, ir paprašo patvirtinimo. Tada jis pakartoja užklausą su tais pačiais argumentais ir confirmation_token. Žetonas galioja 10 minučių ir apima vieną organizaciją, vieną įrankį ir vieną tikslų argumentų rinkinį, todėl norint ištrinti tris agentus reikia trijų patvirtinimų. campaign_action su pause arba stop praleidžia šį veiksmą, kad vykdomą kampaniją visada būtų galima nedelsiant sustabdyti, kaip ir test_integration su GET. Kai kurie D įrankiai vykdomi viena užklausa, nes D žymi jų poveikį, o ne serverio patvirtinimą: update_agent pakeičia tai, kas buvo juodraštyje (discard_agent_draft tai grąžina atgal), deploy_agent pakeičia aktyvią konfigūraciją, update_phone_number peradresuoja aktyvius skambučius, sync_mcp_server_tools pakeičia nuotolinio serverio įrankių katalogą, import_voip_numbers peradresuoja numerius į jūsų ryšio tiekėją, run_agent_tests gali panaudoti kreditą, send_sms ir place_call susisiekia su tikru žmogumi (place_call išlaiko savo sutikimo patvirtinimą), o provision_phone_number įsigyja numerį. Jūsų MCP klientas vis tiek gali paprašyti jūsų juos patvirtinti.
Pradinės užklausos
prompts/list pateikia penkias pakartotinai naudojamas darbo eigas:
create_inbound_receptionistrun_agent_testsbuy_and_attach_numberreview_low_grade_callsadd_url_to_agent_knowledge
Naudokite prompts/get su pateiktu užklausos pavadinimu ir deklaruotais argumentais, kad gautumėte paruoštą vykdyti naudotojo pranešimą.
Ištekliai
resources/list pateikia viešas, podėlyje saugomas nuorodas:
| URI | Turinys |
|---|---|
thunderphone://docs/llms.txt | Viešos dokumentacijos rodyklė. |
thunderphone://docs/quickstart | Greitos pradžios Markdown. |
thunderphone://pricing | Dabartinių viešų kainų Markdown. |
Vieną iš jų perskaitykite naudodami resources/read. Viešoms užklausoms naudojamas trumpas laiko limitas, 2 MiB riba ir dešimties minučių proceso podėlis.
Protokolas ir klaidos
Serveris palaiko protokolo versijas 2025-06-18 ir 2025-03-26; jis atkartoja palaikomą kliento versiją, o kitu atveju pasirenka 2025-06-18. Jis įgyvendina initialize, ping, įrankius, užklausas, išteklius ir pranešimus. Pranešimai grąžina 202 Accepted. Šis būsenos nesaugantis serveris nepateikia SSE klausytojo ar seanso ištrynimo, todėl GET ir DELETE grąžina 405 Method Not Allowed su Allow: POST.
Įrankių nesėkmės vis tiek pateikiamos kaip sėkmingi JSON-RPC atsakymai su isError: true. Jų tekste yra trumpas sakinys, po kurio pateikiamas JSON blokas:
{
"code": "insufficient_balance",
"detail": "There is not enough prepaid balance.",
"next_step": "Call get_billing_summary, add funds in Organization > Billing, then retry."
}Atskiras outbound_tcpa_confirmation_required: priešdėlis išlaikomas place_call. Nežinomi JSON-RPC metodai grąžina -32601 HTTP 200 atsakyme. JSON-RPC paketai nepalaikomi MCP 2025-06-18 ir grąžina aiškią -32600 netinkamos užklausos klaidą.