Open in
Koristite ThunderPhone kao MCP poslužitelj
Izrađujte, testirajte, provjeravajte i upravljajte glasovnim agentima ThunderPhonea iz Claudea, ChatGPT-a, Claude Codea, Codexa, Cursora, VS Codea ili drugog Streamable HTTP MCP klijenta.
ThunderPhone nudi Streamable HTTP poslužitelj za Model Context Protocol 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 izgraditi, testirati i upravljati ThunderPhoneom. |
Provjera autentičnosti
Za klijente iz direktorija prema zadanim postavkama upotrebljavajte 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 sk_live_ ključ u odjeljku Organizacija → Ključevi i učinite ga dostupnim svojem 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 bez mijenjanja 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. Izravni HTTP ima prednost; Desktop upotrebljava stdio.
Za svaki klijent koji podržava stdio konfigurirajte command: "npx" s
args: ["-y", "@thunderphone/mcp"]. Omotač najprije upotrebljava THUNDERPHONE_API_KEY,
zatim vjerodajnice iz thunderphone login, uz osvježavanje isteklih tokena, a potom
OAuth putem mcp-remote. Prijava uređajem i OAuth zahtijevaju odgovarajuću aktivaciju API
OAutha. Put API ključa to ne zahtijeva. Izravne HTTP konfiguracije ne čitaju
spremište vjerodajnica CLI-ja; 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; nakon potvrde e-pošte vratit ćete se na zaslon za odobravanje.
Claude (web, stolno računalo i mobilni uređaji)
- Otvorite Postavke → Konektori. Ako se ThunderPhone prikazuje u katalogu konektora, odaberite ga. U suprotnom odaberite Dodajte prilagođeni konektor, nazovite ga
ThunderPhonei unesitehttps://api.thunderphone.com/v1/mcp. - Odaberite Poveži, prijavite se u ThunderPhone, odaberite organizaciju i odobrite dozvole.
- U chatu omogućite ThunderPhone u izborniku alata i zatražite ono što vam je potrebno, na primjer "Prikaži moje agente".
Prilagođeni konektori zahtijevaju plaćeni Claude paket. U paketima Team i Enterprise vlasnik najprije dodaje konektor u postavkama konektora organizacije, a zatim svaki član povezuje vlastiti ThunderPhone račun.
ChatGPT
- Ako se ThunderPhone prikazuje u katalogu aplikacija ChatGPT-a, odaberite ga i povežite se.
- U suprotnom otvorite Postavke → Aplikacije i konektori → Napredne postavke, uključite Način rada za razvojne programere i izradite konektor s URL-om
https://api.thunderphone.com/v1/mcpi OAuth autentifikacijom. - Prijavite se u ThunderPhone, odaberite organizaciju i odobrite dozvole. Dodajte ThunderPhone u chat iz izbornika alata.
Brisanje agenta ili telefonskog broja, odbacivanje skice i pokretanje kampanje zahtijevaju dodatnu potvrdu u obje aplikacije; 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 Claude Desktopa:
{
"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 ima 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 naznaka.
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 | — | Postavlja polja u radnu verziju agenta. |
deploy_agent | agent_id, neobavezni if_updated_at | I | Promiče radnu verziju u produkciju. |
discard_agent_draft | agent_id, neobavezni if_updated_at, confirmation_token u drugom zahtjevu | D, I | Odbacuje postavljene promjene. U dva koraka, pogledajte Potvrđivanje destruktivnih radnji. |
duplicate_agent | agent_id, neobavezni name | — | Kopira agenta unutar organizacije. |
delete_agent | agent_id, confirmation_token u drugom zahtjevu | D, I | Trajno briše agenta. U dva koraka. |
list_agent_versions | agent_id | R, I | Navodi implementirane verzije konfiguracije. |
Telefonski brojevi i operateri
| Alat | Glavni argumenti | Napomene | Što radi |
|---|---|---|---|
list_phone_numbers | — | R, I | Navodi brojeve organizacije i usmjeravanje. |
get_phone_number_limits | — | R, I | Dohvaća upotrebu i ograničenja upravljanih brojeva. |
provision_phone_number | neobavezni area_code, city, state, idempotency_key | O | Kupuje dolazni broj kojim upravlja ThunderPhone. |
list_voip_connections | — | R, I | Navodi povezane operatere korisnika. |
search_voip_numbers | connection_id, country, type, neobavezni area_code | R, I, O | Pretražuje inventar operatera. |
import_voip_numbers | connection_id, numbers | O | Uvozi brojeve koji su već u vlasništvu kod operatera. |
update_phone_number | phone_number_id, polja usmjeravanja/oznake/webhooka | — | Ažurira usmjeravanje broja, uključujući dodjelu agenta. |
delete_phone_number | phone_number_id, confirm, neobavezni release_at_provider, confirmation_token u drugom zahtjevu | D, I, O | Oslobađa broj. U dva koraka. |
Pozivi
| Alat | Glavni argumenti | Napomene | Što radi |
|---|---|---|---|
list_calls | neobavezni filtri, limit, offset | R, I | Navodi pozive s filtrima REST povijesti poziva. |
get_call | call_id | R, I | Dohvaća status i metapodatke poziva. |
get_call_transcript | call_id, neobavezni live | R, I | Dohvaća transkript poziva. |
get_call_audio_url | call_id, neobavezni download | R, I, O | Vraća potpisani URL zvuka; nikada ne prenosi zvuk putem MCP-a. |
get_call_grade | call_id | R, I | Dohvaća najnoviju ocjenu poziva. |
place_call | agent_id, from_number, to_number | O | Upućuje jedan neidempotentni odlazni poziv. |
export_calls | filtri poziva, export_format | R, I | Izvozi do ograničenja REST krajnje točke kao JSON ili CSV. |
Testiranje i provjera valjanosti
| Alat | Glavni argumenti | Napomene | Što radi |
|---|---|---|---|
list_test_scenarios | agent_id | R, I | Navodi scenarije testiranja. |
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 upute za agenta. |
run_agent_tests | agent_id, channel, consent_to_charge, neobavezni odabir/matrica | O | Izvršava scenarije putem weba ili telefonije. |
get_test_run | agent_id, batch_id | R, I | Dohvaća status skupine i rezultate po scenariju. |
list_validation_runs | agent_id | R, I | Navodi nedavna pokretanja provjere valjanosti radne verzije. |
get_validation_status | agent_id | R, I | Dohvaća najnovije stanje provjere valjanosti i podudaranje radne verzije. |
Baza znanja
| Alat | Glavni argumenti | Napomene | Što radi |
|---|---|---|---|
list_knowledge_bases | — | R, I | Navodi baze znanja. |
create_knowledge_base | name, neobavezni description | — | Stvara bazu znanja. |
add_knowledge_document | knowledge_base_id, name, content | — | Dodaje tekst ili Markdown. |
import_knowledge_url | url, neobavezni name | O | Stavlja javnu stranicu u red za sigurno uvođenje. |
search_knowledge | knowledge_base_id, query | R, I | Pretražuje produkcijski sustav dohvaćanja. |
Integracije, webhookovi i udaljeni MCP poslužitelji
| Alat | Glavni argumenti | Napomene | Što radi |
|---|---|---|---|
list_integrations | — | R, I | Navodi integracije HTTP funkcija. |
create_integration | display_name, funkcijski spec, neobavezna polja krajnje točke | — | Stvara HTTP alat. |
test_integration | url, neobavezni method/headers/body/timeout | O | Šalje ograničeni testni zahtjev zaštićen od SSRF-a. |
list_webhook_endpoints | — | R, I | Navodi potpisane krajnje točke webhooka. |
create_webhook_endpoint | label, url, neobavezni events/status | O | Stvara potpisanu krajnju točku webhooka. |
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, neobavezni headers | O | Registrira i sinkronizira udaljeni poslužitelj. |
sync_mcp_server_tools | server_id | O | Osvježava katalog alata udaljenog poslužitelja. |
Kampanje
| Alat | Glavni argumenti | Napomene | Što radi |
|---|---|---|---|
list_campaigns | — | R, I | Navodi odlazne kampanje. |
create_campaign | polja kampanje | — | Stvara radnu verziju kampanje. |
add_campaign_contacts | campaign_id, contacts | — | Dodaje do 5.000 JSON kontakata. |
campaign_action | campaign_id, action, neobavezni consent_to_charge, confirmation_token u drugom zahtjevu | D, O | Pokreće start, pause, resume ili stop. start i resume izvode se u dva koraka; pause i stop izvršavaju se odmah. |
get_campaign_stats | campaign_id | R, I | Dohvaća brojače i nedavne ishode. |
Glasovi, naplata, uvozi 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 glasa. |
get_billing_summary | — | R, I | Dohvaća saldo i mjerodavne cijene razreda; izmjene plaćanja nisu dostupne. |
create_agent_import | vendor, vendor_key | O | Pokreće šifrirani uvoz iz Vapi, Retell, ElevenLabs ili Bland. |
get_agent_import | public_id | R, I | Dohvaća predloženu razliku uvoza. |
commit_agent_import | public_id | — | Potvrđuje odabrane agente iz pregledanog plana. |
search_docs | query, neobavezni limit | R, I, O | Pretražuje javni indeks 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. REST provjera valjanosti, opseg organizacije, uloge, odobravanje naplate, kvote, TCPA potvrda, sigurnost pružatelja usluga i ponašanje revizije stoga se primjenjuju nepromijenjeno.
Potvrđivanje destruktivnih radnji
Alati označeni s D mijenjaju ili uklanjaju nešto što se ne može vratiti ili započinju biranje stvarnih ljudi. Za njih su potrebna dva zahtjeva. Prvi zahtjev ništa ne mijenja i vraća:
{
"status": "confirmation_required",
"action": "Delete agent",
"target": { "id": 195, "name": "Front Desk Receptionist" },
"confirmation_token": "…",
"expires_in_seconds": 600,
"next_step": "…"
}Asistent korisniku prikazuje na što to utječe i traži potvrdu. Zatim ponavlja zahtjev s istim argumentima te s confirmation_token. Token vrijedi 10 minuta i obuhvaća jednu organizaciju, jedan alat i jedan točan skup argumenata, pa su za brisanje tri agenta potrebne tri potvrde. campaign_action s pause ili stop preskače ovaj korak kako bi se aktivna kampanja uvijek mogla odmah zaustaviti.
Početni upiti
prompts/list nudi šest višekratno upotrebljivih radnih tijekova:
create_inbound_receptionistrun_agent_testsimport_vapi_assistantsbuy_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 | Markdown za brzi početak. |
thunderphone://pricing | Markdown s trenutačnim javnim cijenama. |
Pročitajte 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 s Allow: POST.
Neuspjesi alata i dalje su uspješni JSON-RPC odgovori s isError: true. Njihov tekst sadrži 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."
}Prepoznatljivi 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 pakete te vraća čistu pogrešku nevaljanog zahtjeva -32600.