Open in
Koristite ThunderPhone kao MCP poslužitelj
Izradite, testirajte, provjerite i upravljajte glasovnim agentima ThunderPhonea iz Claudea, ChatGPT-a, Claude Codea, Codexa, Cursora, VS Codea ili drugog Streamable HTTP MCP klijenta.
ThunderPhone izlaže Streamable HTTP poslužitelj Model Context Protocola na adresi:
https://api.thunderphone.com/v1/mcpOvo je suprotan smjer od povezivanja udaljenog MCP poslužitelja s glasovnim agentom:
| Smjer | Rezultat |
|---|---|
| Udaljeni MCP poslužitelj → ThunderPhone agent | Glasovni agent može pozivati alate udaljenog poslužitelja. |
| ThunderPhone → Vaš MCP klijent | Vaš agent za programiranje može izraditi, testirati i upravljati ThunderPhoneom. |
Autentifikacija
Za klijente iz direktorija prema zadanim postavkama koristite OAuth: prijavite se, odaberite organizaciju i odobrite zatražene dozvole. Opozovite pristup u odjeljku Organizacija → API ključevi → Ovlaštene aplikacije.
Za klijente konfigurirane s API ključem izradite ključ sk_live_ u odjeljku Organizacija → Ključevi i izložite ga MCP klijentu kao THUNDERPHONE_API_KEY. Ključ je vezan uz jednu organizaciju; ID u vlasništvu druge organizacije ponaša se kao da nije pronađen.
CLI i stdio alternative
ThunderPhone CLI može zapisati konfiguraciju klijenta uz očuvanje nepovezanih poslužitelja:
npx -y @thunderphone/mcp setup --client cursor --api-key-env THUNDERPHONE_API_KEY
npx thunderphone mcp setup --client claude-desktop --scope userNakon globalne instalacije paketa @thunderphone/mcp, upotrijebite thunderphone-mcp setup s
istim opcijama. Postavljanje podržava Claude Code, Codex, Cursor, VS Code, Gemini, Claude
Desktop i Windsurf. Prednost ima izravni HTTP; Desktop koristi stdio.
Za svaki klijent koji podržava stdio konfigurirajte command: "npx" s
args: ["-y", "@thunderphone/mcp"]. Omotač najprije koristi THUNDERPHONE_API_KEY,
zatim vjerodajnice iz thunderphone login, osvježava istekle tokene, a zatim koristi
OAuth putem mcp-remote. Prijava uređajem i OAuth zahtijevaju odgovarajuće uvođenje API
OAuth-a. Put s API ključem to ne zahtijeva. Izravne HTTP konfiguracije ne čitaju
spremište CLI vjerodajnica; upotrijebite stdio omotač za ponovnu upotrebu prijave uređajem.
Ovo su alternative ručnim konfiguracijama klijenta u nastavku.
Konfiguracija klijenta
Claude i ChatGPT prijavljuju se putem OAutha; API ključ nije potreban. Ako još nemate ThunderPhone račun, na stranici za prijavu odaberite Izradite račun i nakon potvrde e-pošte vratit ćete se na zaslon za odobrenje.
Claude (web, stolno računalo i mobilni uređaji)
- Otvorite Prilagodba → Poveznici (Postavke → Poveznici u starijim verzijama). Ako se ThunderPhone prikazuje u direktoriju poveznika, odaberite ga. U suprotnom odaberite Dodajte prilagođeni poveznik, nazovite ga
ThunderPhonei unesitehttps://api.thunderphone.com/v1/mcp. - Odaberite Povežite, prijavite se u ThunderPhone, odaberite organizaciju i odobrite dozvole.
- U chatu omogućite ThunderPhone iz izbornika alata i zatražite što vam je potrebno, na primjer „Prikaži moje agente”.
Claude traži potvrdu prije prve upotrebe svakog alata. Kako biste preskočili većinu tih upita, otvorite Prilagodba → Poveznici → ThunderPhone i postavite Alati samo za čitanje na uvijek dopušteno. Ti alati samo dohvaćaju podatke: agente, pozive, prijepise, stanja računa i dokumentaciju. Ostavite Alati za pisanje/brisanje na potvrdi ako želite vidjeti svaku promjenu prije nego što se izvrši.
Prilagođeni poveznici zahtijevaju plaćeni Claude paket. U paketima Team i Enterprise vlasnik najprije dodaje poveznik u postavkama poveznika organizacije, a zatim svaki član povezuje vlastiti ThunderPhone račun.
ChatGPT
- Ako se ThunderPhone prikazuje u direktoriju aplikacija za ChatGPT, odaberite ga i povežite.
- U suprotnom otvorite Postavke → Aplikacije i poveznici → Napredne postavke, uključite Način za razvojne programere i izradite poveznik s URL-om
https://api.thunderphone.com/v1/mcpi OAuth provjerom autentičnosti. - Prijavite se u ThunderPhone, odaberite organizaciju i odobrite dozvole. Dodajte ThunderPhone u chat iz izbornika alata.
Brisanje agenta ili telefonskog broja, odbacivanje skice, pokretanje kampanje i slanje testnog zahtjeva koji može upisivati podatke u vanjski sustav zahtijevaju drugu potvrdu u bilo kojoj aplikaciji; pogledajte Potvrđivanje destruktivnih radnji.
Claude Code
claude mcp add --transport http thunderphone https://api.thunderphone.com/v1/mcp \
--header "Authorization: Bearer $THUNDERPHONE_API_KEY"Codex
Dodajte ovo u ~/.codex/config.toml:
[mcp_servers.thunderphone]
url = "https://api.thunderphone.com/v1/mcp"
bearer_token_env_var = "THUNDERPHONE_API_KEY"Cursor
Izradite .cursor/mcp.json:
{
"mcpServers": {
"thunderphone": {
"url": "https://api.thunderphone.com/v1/mcp",
"headers": {
"Authorization": "Bearer ${env:THUNDERPHONE_API_KEY}"
}
}
}
}Claude Desktop
Dodajte most mcp-remote u konfiguraciju aplikacije 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
Izradite .vscode/mcp.json i unesite ključ putem upita za unos u VS Codeu:
{
"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}"
}
}
}
}Alati
Svaki alat sadrži MCP napomene. U tablicama R znači samo za čitanje, D destruktivno, I idempotentno, a O interakciju s otvorenim svijetom/mrežom. Crtica znači da nije postavljena nikakva napomena.
Veza
| Alat | Glavni argumenti | Napomene | Što radi |
|---|---|---|---|
get_connection_identity | — | R, I | Provjerava vjerodajnicu i vraća njezinu organizaciju i sigurne metapodatke vjerodajnice. |
Agenti
| Alat | Glavni argumenti | Napomene | Što radi |
|---|---|---|---|
list_agents | — | R, I | Navodi agente. |
get_agent | agent_id | R, I | Dohvaća jednog agenta. |
create_agent | konfiguracija agenta | — | Stvara agenta. |
update_agent | agent_id, promijenjena polja | D | Priprema polja u nacrtu agenta te zamjenjuje ono što je nacrt sadržavao. Izvršava se bez koraka potvrde: objavljeni agent ostaje nepromijenjen do deploy_agent, a discard_agent_draft vraća nacrt na prethodno stanje. |
deploy_agent | agent_id, neobavezno if_updated_at | D, I | Promiče nacrt u produkciju. |
discard_agent_draft | agent_id, neobavezno if_updated_at, confirmation_token pri drugom zahtjevu | D, I | Odbacuje pripremljene promjene. Postupak u dva koraka, pogledajte Potvrđivanje destruktivnih radnji. |
duplicate_agent | agent_id, neobavezno name | — | Kopira agenta unutar organizacije. |
delete_agent | agent_id, confirmation_token pri drugom zahtjevu | D, I | Trajno briše agenta. Postupak u dva koraka. |
list_agent_versions | agent_id | R, I | Navodi objavljene verzije konfiguracije. |
Telefonski brojevi i pružatelji usluga
| Alat | Glavni argumenti | Napomene | Što radi |
|---|---|---|---|
list_phone_numbers | — | R, I | Prikazuje brojeve organizacije i usmjeravanje. |
get_phone_number_limits | — | R, I | Dohvaća upotrebu i ograničenja upravljanih brojeva. |
provision_phone_number | neobavezno area_code, city, state, idempotency_key | D, O | Kupuje dolazni broj kojim upravlja ThunderPhone. |
list_voip_connections | — | R, I | Prikazuje povezane pružatelje usluga korisnika. |
search_voip_numbers | connection_id, country, type, neobavezno area_code | R, I, O | Pretražuje inventar pružatelja usluga. |
import_voip_numbers | connection_id, numbers | D, O | Uvozi brojeve koji su već u vlasništvu kod pružatelja usluga. |
update_phone_number | phone_number_id, polja za usmjeravanje/oznaku/webhook | D | Ažurira usmjeravanje broja, uključujući dodjelu agenta. |
delete_phone_number | phone_number_id, confirm, neobavezno release_at_provider, confirmation_token u drugom zahtjevu | D, I, O | Oslobađa broj. U dva koraka. |
SMS
| Alat | Glavni argumenti | Napomene | Što radi |
|---|---|---|---|
send_sms | from_number, to, body, idempotency_key | D, I, O | Šalje jednu SMS poruku s običnim tekstom putem povezanog Twilio ili Telnyx broja. |
Pozivi
| Alat | Glavni argumenti | Napomene | Što radi |
|---|---|---|---|
list_calls | neobavezni filtri, limit, offset | R, I | Prikazuje pozive uz filtre REST povijesti poziva. |
get_call | call_id | R, I | Dohvaća status poziva i metapodatke. |
get_call_transcript | call_id, neobavezni live | R, I | Dohvaća prijepis poziva. |
get_call_audio_url | call_id, neobavezni download | R, I, O | Vraća potpisani URL zvuka; zvuk se nikada ne prenosi putem MCP-a. |
get_call_grade | call_id | R, I | Dohvaća najnoviju ocjenu poziva. |
place_call | agent_id, from_number, to_number | D, O | Upućuje jedan neidemponentan odlazni poziv. |
export_calls | filtri poziva, export_format | R, I | Izvozi do ograničenja REST krajnje točke u formatu JSON ili CSV. |
Testiranje i provjera
| Alat | Glavni argumenti | Napomene | Što radi |
|---|---|---|---|
list_test_scenarios | agent_id | R, I | Navodi testne scenarije. |
create_test_scenario | agent_id, title, scenario_prompt, neobavezni uvjeti | — | Stvara scenarij. |
generate_test_scenarios | agent_id, neobavezni count, include_edge_cases, locale | O | Generira scenarije iz upita agenta. |
run_agent_tests | agent_id, channel, consent_to_charge, neobavezan odabir/matrica | D, O | Izvršava scenarije putem weba ili telefonije. |
get_test_run | agent_id, batch_id | R, I | Dohvaća status skupne obrade i rezultate po scenariju. |
list_validation_runs | agent_id | R, I | Navodi nedavna pokretanja provjere valjanosti nacrta. |
get_validation_status | agent_id | R, I | Dohvaća najnovije stanje provjere valjanosti i podudaranje nacrta. |
Znanje
| Alat | Glavni argumenti | Napomene | Što radi |
|---|---|---|---|
list_knowledge_bases | — | R, I | Prikazuje baze znanja. |
create_knowledge_base | name, neobavezno description | — | Stvara bazu znanja. |
add_knowledge_document | knowledge_base_id, name, content | — | Dodaje tekst ili Markdown. |
import_knowledge_url | url, neobavezno name | O | Stavlja javnu stranicu u red za siguran unos. |
search_knowledge | knowledge_base_id, query | R, I | Pretražuje produkcijsko dohvaćanje. |
Integracije, webhookovi i udaljeni MCP poslužitelji
| Alat | Glavni argumenti | Oznake | Što radi |
|---|---|---|---|
list_integrations | — | R, I | Navodi integracije HTTP funkcija. |
create_integration | display_name, specifikacija funkcije spec, neobavezna polja krajnje točke | — | Stvara HTTP alat. Dodajte zaglavlja za autentifikaciju na nadzornoj ploči. |
test_integration | url, neobavezni metoda/tijelo/vremensko ograničenje, integration_id s header_names, confirmation_token pri drugom zahtjevu | D, O | Šalje ograničen testni zahtjev zaštićen od SSRF-a. Spremljene vrijednosti zaglavlja popunjavaju se iz integracije i šalju samo njezinu vlastitom hostu. POST (zadano), PUT, PATCH i DELETE izvode se u dva koraka; GET se izvršava odmah. |
list_webhook_endpoints | — | R, I | Navodi potpisane krajnje točke web-dojava. |
list_webhook_deliveries | neobavezni agent_id, neobavezni endpoint_id | R, I | Navodi nedavne ishode isporuke web-dojava bez sadržaja. |
create_webhook_endpoint | label, url, neobavezni događaji/status | O | Stvara potpisanu krajnju točku web-dojave. |
test_webhook_endpoint | endpoint_id | O | Šalje sintetički događaj putem uobičajene isporuke. |
list_mcp_servers | — | R, I | Navodi udaljene poslužitelje koje mogu pozivati glasovni agenti. |
create_mcp_server | display_name, url | O | Registrira i sinkronizira udaljeni poslužitelj. Poslužitelji koji trebaju zaglavlja za autentifikaciju dodaju se na nadzornoj ploči. |
sync_mcp_server_tools | server_id | D, O | Osvježava katalog alata udaljenog poslužitelja. |
Kampanje
| Alat | Glavni argumenti | Napomene | Što radi |
|---|---|---|---|
list_campaigns | — | R, I | Prikazuje odlazne kampanje. |
create_campaign | polja kampanje | — | Stvara nacrt kampanje. |
add_campaign_contacts | campaign_id, contacts | — | Dodaje do 5.000 JSON kontakata. |
campaign_action | campaign_id, action, neobavezno consent_to_charge, confirmation_token pri drugom zahtjevu | D, O | Izvršava start, pause, resume ili stop. start i resume su dvokoračni; pause i stop izvršavaju se odmah. |
get_campaign_stats | campaign_id | R, I | Dohvaća brojače i nedavne ishode. |
Glasovi, naplata i dokumentacija
| Alat | Glavni argumenti | Napomene | Što radi |
|---|---|---|---|
list_voices | — | R, I | Navodi glasove i podržane jezike. |
preview_voice | voice, language, text | O | Generira uzorak i vraća potpisani URL. |
list_voice_clones | — | R, I | Navodi prilagođene klonove glasova. |
get_billing_summary | — | R, I | Dohvaća stanje računa i mjerodavne cijene razina; nisu dostupne izmjene plaćanja. |
search_docs | query, neobavezno limit | R, I, O | Pretražuje indeks javne dokumentacije. |
get_doc_page | path | R, I, O | Dohvaća jednu javnu Markdown stranicu dokumentacije. |
Svi alati proizvoda koriste iste REST putanje koda kao javni API. Stoga se REST provjera, opseg organizacije, uloge, odobrenje naplate, kvote, TCPA potvrda, sigurnost pružatelja usluga i ponašanje revizije primjenjuju nepromijenjeno.
Potvrđivanje destruktivnih radnji
Alati označeni slovom D mijenjaju ili uklanjaju nešto ili započinju pozivanje stvarnih osoba. Za one čije se radnje ne mogu poništiti potrebna su dva zahtjeva. Prvi zahtjev ne mijenja ništa i vraća:
{
"status": "confirmation_required",
"action": "Delete agent",
"target": { "id": 195, "name": "Front Desk Receptionist" },
"confirmation_token": "…",
"expires_in_seconds": 600,
"next_step": "…"
}Pomoćnik korisniku prikazuje na što radnja utječe i traži potvrdu. Zatim ponavlja zahtjev s istim argumentima uz confirmation_token. Token vrijedi 10 minuta i odnosi se na jednu organizaciju, jedan alat i jedan točan skup argumenata, pa su za brisanje triju agenata potrebne tri potvrde. campaign_action s pause ili stop preskače ovaj korak kako bi se aktivna kampanja uvijek mogla odmah zaustaviti, kao i test_integration s GET. Neki alati označeni slovom D izvršavaju se u jednom zahtjevu jer D označava njihov učinak, a ne potvrdu na strani poslužitelja: update_agent zamjenjuje sadržaj nacrta (discard_agent_draft ga vraća), deploy_agent zamjenjuje aktivnu konfiguraciju, update_phone_number preusmjerava aktivne pozive, sync_mcp_server_tools zamjenjuje katalog alata udaljenog poslužitelja, import_voip_numbers preusmjerava brojeve na Vašeg operatera, run_agent_tests može potrošiti kredit, send_sms i place_call kontaktiraju stvarnu osobu (place_call zadržava vlastitu potvrdu pristanka), a provision_phone_number kupuje broj. Vaš MCP klijent i dalje može zatražiti da ih odobrite.
Početni upiti
prompts/list nudi pet ponovno upotrebljivih tijekova rada:
create_inbound_receptionistrun_agent_testsbuy_and_attach_numberreview_low_grade_callsadd_url_to_agent_knowledge
Upotrijebite prompts/get s navedenim nazivom upita i njegovim deklariranim argumentima da biste primili korisničku poruku spremnu za pokretanje.
Resursi
resources/list izlaže javne, predmemorirane reference:
| URI | Sadržaj |
|---|---|
thunderphone://docs/llms.txt | Indeks javne dokumentacije. |
thunderphone://docs/quickstart | Quickstart Markdown. |
thunderphone://pricing | Trenutačni javni Markdown s cijenama. |
Pročitajte pojedini resurs pomoću resources/read. Javna dohvaćanja koriste kratko vremensko ograničenje, ograničenje od 2 MiB i desetominutnu predmemoriju unutar procesa.
Protokol i pogreške
Poslužitelj podržava verzije protokola 2025-06-18 i 2025-03-26; vraća podržanu verziju klijenta, a u suprotnom odabire 2025-06-18. Implementira initialize, ping, alate, upite, resurse i obavijesti. Obavijesti vraćaju 202 Accepted. Ovaj poslužitelj bez stanja ne izlaže SSE slušatelj ni brisanje sesije, stoga GET i DELETE vraćaju 405 Method Not Allowed uz Allow: POST.
Neuspjesi alata ostaju uspješni JSON-RPC odgovori s isError: true. Njihov tekst sadržava kratku rečenicu nakon koje slijedi JSON blok:
{
"code": "insufficient_balance",
"detail": "There is not enough prepaid balance.",
"next_step": "Call get_billing_summary, add funds in Organization > Billing, then retry."
}Zasebni prefiks outbound_tcpa_confirmation_required: zadržava se za place_call. Nepoznate JSON-RPC metode vraćaju -32601 u HTTP odgovoru 200. MCP 2025-06-18 ne podržava JSON-RPC skupove zahtjeva te vraćaju jasnu pogrešku neispravnog zahtjeva -32600.