ThunderPhone 2.0 jau čia.Viską atlikite savarankiškai – nuo 2 ct/min.Skaityti pranešimą

Connect tools & data

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/mcp

Tai yra priešinga kryptis nei nuotolinio MCP serverio prijungimas prie balso agento:

KryptisRezultatas
Nuotolinis MCP serveris → ThunderPhone agentasBalso agentas gali iškviesti nuotolinio serverio įrankius.
ThunderPhone → jūsų MCP klientasJū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 user

Visuotinai į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)

  1. 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ą ThunderPhone ir įveskite https://api.thunderphone.com/v1/mcp.
  2. Pasirinkite Prisijungti, prisijunkite prie ThunderPhone, pasirinkite organizaciją ir patvirtinkite leidimus.
  3. 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

  1. Jei ThunderPhone rodomas ChatGPT programų kataloge, pasirinkite jį ir prisijunkite.
  2. 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/mcp bei OAuth autentifikavimu.
  3. 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

ĮrankisPagrindiniai argumentaiAnotacijosKą atlieka
get_connection_identity—R, IPatvirtina prisijungimo duomenis ir grąžina organizaciją bei saugius prisijungimo duomenų metaduomenis.

Agentai

ĮrankisPagrindiniai argumentaiAnotacijosKą jis daro
list_agents—R, IPateikia agentų sąrašą.
get_agentagent_idR, IGauna vieną agentą.
create_agentagento konfigūracija—Sukuria agentą.
update_agentagent_id, pakeisti laukaiDParengia 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_agentagent_id, pasirinktinis if_updated_atD, IPerkelia juodraštį į produkcinę aplinką.
discard_agent_draftagent_id, pasirinktinis if_updated_at, confirmation_token per antrą užklausąD, IAtmeta parengtus pakeitimus. Du žingsniai, žr. Destruktyvių veiksmų patvirtinimas.
duplicate_agentagent_id, pasirinktinis name—Nukopijuoja agentą organizacijoje.
delete_agentagent_id, confirmation_token per antrą užklausąD, IVisam laikui ištrina agentą. Du žingsniai.
list_agent_versionsagent_idR, IPateikia įdiegtų konfigūracijos versijų sąrašą.

Telefono numeriai ir ryšio tiekėjai

ĮrankisPagrindiniai argumentaiAnotacijosKą jis daro
list_phone_numbers—R, IPateikia organizacijos numerius ir maršrutus.
get_phone_number_limits—R, IGauna valdomų numerių naudojimo duomenis ir limitus.
provision_phone_numberpasirenkami area_code, city, state, idempotency_keyD, OPerka ThunderPhone valdomą įeinančių skambučių numerį.
list_voip_connections—R, IPateikia prijungtus klientų ryšio operatorius.
search_voip_numbersconnection_id, country, type, pasirenkamas area_codeR, I, OIeško ryšio operatoriaus numerių inventoriuje.
import_voip_numbersconnection_id, numbersD, OImportuoja numerius, jau priklausančius ryšio operatoriui.
update_phone_numberphone_number_id, maršruto / etiketės / žiniatinklio kablio laukaiDAtnaujina numerio maršrutą, įskaitant agento priskyrimą.
delete_phone_numberphone_number_id, confirm, pasirenkami release_at_provider, confirmation_token per antrą užklausąD, I, OAtlaisvina numerį. Du etapai.

SMS

ĮrankisPagrindiniai argumentaiAnotacijosKą jis daro
send_smsfrom_number, to, body, idempotency_keyD, I, OSiunčia vieną paprastojo teksto SMS per prijungtą Twilio arba Telnyx numerį.

Skambučiai

ĮrankisPagrindiniai argumentaiAnotacijosKą jis daro
list_callspasirinktiniai filtrai, limit, offsetR, IIšvardija skambučius pagal REST skambučių istorijos filtrus.
get_callcall_idR, IGauna skambučio būseną ir metaduomenis.
get_call_transcriptcall_id, pasirinktinis liveR, IGauna skambučio transkriptą.
get_call_audio_urlcall_id, pasirinktinis downloadR, I, OGrąžina pasirašytą garso URL; garsas niekada netransliuojamas per MCP.
get_call_gradecall_idR, IGauna naujausią skambučio įvertinimą.
place_callagent_id, from_number, to_numberD, OAtlieka vieną neidemponentinį išeinantį skambutį.
export_callsskambučių filtrai, export_formatR, IEksportuoja iki REST galinio taško limito JSON arba CSV formatu.

Testavimas ir tikrinimas

ĮrankisPagrindiniai argumentaiAnotacijosKą jis daro
list_test_scenariosagent_idR, IPateikia testavimo scenarijų sąrašą.
create_test_scenarioagent_id, title, scenario_prompt, neprivalomos sąlygos—Sukuria scenarijų.
generate_test_scenariosagent_id, neprivalomi count, include_edge_cases, localeOGeneruoja scenarijus pagal agento užklausą.
run_agent_testsagent_id, channel, consent_to_charge, neprivaloma atranka arba matricaD, OVykdo scenarijus žiniatinklyje arba telefonijos kanalu.
get_test_runagent_id, batch_idR, IGauna paketo būseną ir kiekvieno scenarijaus rezultatus.
list_validation_runsagent_idR, IPateikia naujausių juodraščio tikrinimo vykdymų sąrašą.
get_validation_statusagent_idR, IGauna naujausią tikrinimo būseną ir atitikimą juodraščiui.

Žinios

ĮrankisPagrindiniai argumentaiAnotacijosKą atlieka
list_knowledge_bases—R, IPateikia žinių bazių sąrašą.
create_knowledge_basename, pasirinktinis description—Sukuria žinių bazę.
add_knowledge_documentknowledge_base_id, name, content—Prideda tekstą arba Markdown.
import_knowledge_urlurl, pasirinktinis nameOĮtraukia viešą puslapį į saugaus įkėlimo eilę.
search_knowledgeknowledge_base_id, queryR, IIeško produkcinėje paieškoje.

Integracijos, saityno kabliai ir nuotoliniai MCP serveriai

ĮrankisPagrindiniai argumentaiAnotacijosKą jis daro
list_integrations—R, IIšvardija HTTP funkcijų integracijas.
create_integrationdisplay_name, funkcijos spec, pasirenkami galinio taško laukai—Sukuria HTTP įrankį. Autentifikavimo antraštes pridėkite valdymo skydelyje.
test_integrationurl, pasirenkami metodas / turinys / skirtasis laikas, integration_id su header_names, confirmation_token antrojoje užklausojeD, OIš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, IIšvardija pasirašytus webhook galinius taškus.
list_webhook_deliveriespasirenkamas agent_id, pasirenkamas endpoint_idR, IIšvardija naujausius webhook pristatymo rezultatus be duomenų turinio.
create_webhook_endpointlabel, url, pasirenkami įvykiai / būsenaOSukuria pasirašytą webhook galinį tašką.
test_webhook_endpointendpoint_idOIšsiunčia sintetinį įvykį įprastu pristatymo būdu.
list_mcp_servers—R, IIšvardija nuotolinius serverius, kuriuos gali iškviesti balso agentai.
create_mcp_serverdisplay_name, urlOUžregistruoja ir sinchronizuoja nuotolinį serverį. Serveriai, kuriems reikia autentifikavimo antraščių, pridedami valdymo skydelyje.
sync_mcp_server_toolsserver_idD, OAtnaujina nuotolinio serverio įrankių katalogą.

Kampanijos

ĮrankisPagrindiniai argumentaiAnotacijosKą atlieka
list_campaigns—R, IPateikia išeinančių kampanijų sąrašą.
create_campaignkampanijos laukai—Sukuria kampanijos juodraštį.
add_campaign_contactscampaign_id, contacts—Prideda iki 5 000 JSON kontaktų.
campaign_actioncampaign_id, action, pasirinktinis consent_to_charge, confirmation_token antroje užklausojeD, OVykdo start, pause, resume arba stop. start ir resume atliekami dviem etapais; pause ir stop vykdomi nedelsiant.
get_campaign_statscampaign_idR, IGauna skaitiklius ir naujausius rezultatus.

Balsai, atsiskaitymas ir dokumentacija

ĮrankisPagrindiniai argumentaiAnotacijosKą jis daro
list_voices—R, IPateikia balsų ir palaikomų kalbų sąrašą.
preview_voicevoice, language, textOSugeneruoja pavyzdį ir grąžina pasirašytą URL.
list_voice_clones—R, IPateikia tinkintų balso klonų sąrašą.
get_billing_summary—R, IGauna likutį ir oficialias pakopų kainas; mokėjimų keitimo operacijos nepateikiamos.
search_docsquery, pasirinktinis limitR, I, OIeško viešajame dokumentacijos indekse.
get_doc_pagepathR, I, OGauna 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_receptionist
  • run_agent_tests
  • buy_and_attach_number
  • review_low_grade_calls
  • add_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:

URITurinys
thunderphone://docs/llms.txtViešos dokumentacijos rodyklė.
thunderphone://docs/quickstartGreitos pradžios Markdown.
thunderphone://pricingDabartinių 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ą.