ThunderPhone 2.0 er lanceret.Selvbetjening fra 2 cent pr. minut.Læs mere om lanceringen

Connect tools & data

Brug ThunderPhone som en MCP-server

Byg, test, valider og administrer ThunderPhone-stemmeagenter fra Claude, ChatGPT, Claude Code, Codex, Cursor, VS Code eller en anden Streamable HTTP MCP-klient.

ThunderPhone eksponerer en Streamable HTTP Model Context Protocol-server på:

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

Dette er den modsatte retning af at forbinde en ekstern MCP-server til en stemmeagent:

RetningResultat
Ekstern MCP-server → ThunderPhone-agentEn stemmeagent kan kalde den eksterne servers værktøjer.
ThunderPhone → din MCP-klientDin kodningsagent kan bygge, teste og drive ThunderPhone.

Godkendelse

Brug som standard OAuth til katalogklienter: Log ind, vælg en organisation, og godkend de anmodede tilladelser. Tilbagekald adgang under Organisation → API-nøgler → Autoriserede apps.

For klienter, der er konfigureret med en API-nøgle, skal du oprette en sk_live_-nøgle under Organisation → Nøgler og eksponere den for din MCP-klient som THUNDERPHONE_API_KEY. Nøglen er knyttet til én organisation; et id, der ejes af en anden organisation, opfører sig som om, det ikke findes.

CLI- og stdio-alternativer

ThunderPhone CLI kan skrive klientkonfiguration, mens ikke-relaterede servere bevares:

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

Efter en global installation af @thunderphone/mcp skal du bruge thunderphone-mcp setup med de samme indstillinger. Opsætning understøtter Claude Code, Codex, Cursor, VS Code, Gemini, Claude Desktop og Windsurf. Direkte HTTP foretrækkes; Desktop bruger stdio.

For enhver klient, der understøtter stdio, skal du konfigurere command: "npx" med args: ["-y", "@thunderphone/mcp"]. Wrapperen bruger først THUNDERPHONE_API_KEY, derefter legitimationsoplysninger fra thunderphone login, opdaterer udløbne tokens og derefter OAuth via mcp-remote. Enhedslogin og OAuth kræver den tilsvarende API- OAuth-udrulning. API-nøglestien gør ikke. Direkte HTTP-konfigurationer læser ikke CLI-legitimationslageret; brug stdio-wrapperen for at genbruge enhedslogin.

Dette er alternativer til de manuelle klientkonfigurationer nedenfor.

Klientkonfiguration

Claude og ChatGPT logger ind med OAuth; der bruges ingen API-nøgle. Hvis du endnu ikke har en ThunderPhone-konto, skal du vælge Opret konto på login-siden. Efter du har bekræftet din e-mail, vender du tilbage til godkendelsesskærmen.

Claude (web, desktop og mobil)

  1. Åbn Tilpas → Forbindelser (Indstillinger → Forbindelser i ældre versioner). Hvis ThunderPhone vises i oversigten over forbindelser, skal du vælge den. Ellers skal du vælge Tilføj brugerdefineret forbindelse, navngive den ThunderPhone og angive https://api.thunderphone.com/v1/mcp.
  2. Vælg Forbind, log ind på ThunderPhone, vælg organisationen, og godkend tilladelserne.
  3. Aktivér ThunderPhone fra værktøjsmenuen i en chat, og bed om det, du har brug for, f.eks. "Vis mine agenter".

Claude spørger, før den bruger hvert værktøj første gang. For at springe de fleste af disse forespørgsler over skal du åbne Tilpas → Forbindelser → ThunderPhone og indstille Skrivebeskyttede værktøjer til altid at være tilladt. Disse værktøjer slår kun ting op: agenter, opkald, transskriptioner, saldi og dokumentation. Lad Værktøjer til skrivning/sletning kræve godkendelse, hvis du vil se hver ændring, før den sker.

Brugerdefinerede forbindelser kræver et betalt Claude-abonnement. På Team- og Enterprise-abonnementer tilføjer en ejer først forbindelsen under organisationens forbindelsesindstillinger, hvorefter hvert medlem forbinder sin egen ThunderPhone-konto.

ChatGPT

  1. Hvis ThunderPhone vises i ChatGPTs appoversigt, skal du vælge den og oprette forbindelse.
  2. Ellers skal du åbne Indstillinger → Apps og forbindelser → Avancerede indstillinger, slå Udviklertilstand til og oprette en forbindelse med URL-adressen https://api.thunderphone.com/v1/mcp og OAuth-godkendelse.
  3. Log ind på ThunderPhone, vælg organisationen, og godkend tilladelserne. Føj ThunderPhone til en chat fra værktøjsmenuen.

Sletning af en agent eller et telefonnummer, kassering af et udkast, lancering af en kampagne og afsendelse af en testanmodning, der kan skrive til et eksternt system, kræver en ekstra bekræftelse i begge apps. Se Bekræftelse af destruktive handlinger.

Claude Code

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

Codex

Føj dette til ~/.codex/config.toml:

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

Cursor

Opret .cursor/mcp.json:

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

Claude Desktop

Føj en mcp-remote-bro til Claude Desktop-konfigurationen:

{
  "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

Opret .vscode/mcp.json, og indtast nøglen via VS Codes inputprompt:

{
  "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}"
      }
    }
  }
}

Værktøjer

Alle værktøjer har MCP-annoteringer. I tabellerne betyder R skrivebeskyttet, D destruktiv, I idempotent og O interaktion med omverdenen/netværket. En tankestreg betyder, at der ikke er angivet noget hint.

Forbindelse

VærktøjPrimære argumenterAnnoteringerHvad det gør
get_connection_identity—R, IValiderer legitimationsoplysningerne og returnerer organisationen samt sikre metadata for legitimationsoplysninger.

Agenter

VærktøjPrimære argumenterAnnotationerHvad det gør
list_agents—R, IViser agenter.
get_agentagent_idR, IHenter én agent.
create_agentagentkonfiguration—Opretter en agent.
update_agentagent_id, ændrede felterDKlargør felter i agentens kladde og erstatter det, kladden indeholdt. Kører uden et bekræftelsestrin: Den deployede agent er uændret indtil deploy_agent, og discard_agent_draft gendanner kladden.
deploy_agentagent_id, valgfri if_updated_atD, IForfremmer kladden til produktion.
discard_agent_draftagent_id, valgfri if_updated_at, confirmation_token i den anden anmodningD, IKasserer klargjorte ændringer. To trin, se Bekræftelse af destruktive handlinger.
duplicate_agentagent_id, valgfri name—Kopierer en agent i organisationen.
delete_agentagent_id, confirmation_token i den anden anmodningD, ISletter en agent permanent. To trin.
list_agent_versionsagent_idR, IViser deployede konfigurationsversioner.

Telefonnumre og operatører

VærktøjHovedargumenterAnnotationerHvad det gør
list_phone_numbers—R, IViser organisationens numre og routing.
get_phone_number_limits—R, IHenter forbrug og grænser for administrerede numre.
provision_phone_numbervalgfri area_code, city, state, idempotency_keyD, OKøber et ThunderPhone-administreret indgående nummer.
list_voip_connections—R, IViser tilsluttede kundeteleoperatører.
search_voip_numbersconnection_id, country, type, valgfri area_codeR, I, OSøger i teleoperatørens nummerbeholdning.
import_voip_numbersconnection_id, numbersD, OImporterer numre, der allerede ejes hos teleoperatøren.
update_phone_numberphone_number_id, routing-/etiket-/webhook-felterDOpdaterer nummerrouting, herunder tildeling af agent.
delete_phone_numberphone_number_id, confirm, valgfri release_at_provider, confirmation_token ved den anden anmodningD, I, OFrigiver et nummer. To trin.

SMS

VærktøjVigtigste argumenterAnnotationerHvad det gør
send_smsfrom_number, to, body, idempotency_keyD, I, OSender én SMS i ren tekst via et tilsluttet Twilio- eller Telnyx-nummer.

Opkald

VærktøjPrimære argumenterAnnotationerHvad det gør
list_callsvalgfrie filtre, limit, offsetR, IViser opkald med REST-filtrene for opkaldshistorik.
get_callcall_idR, IHenter opkaldsstatus og metadata.
get_call_transcriptcall_id, valgfri liveR, IHenter opkaldstransskriptionen.
get_call_audio_urlcall_id, valgfri downloadR, I, OReturnerer en signeret lyd-URL; den streamer aldrig lyd via MCP.
get_call_gradecall_idR, IHenter den seneste opkaldsvurdering.
place_callagent_id, from_number, to_numberD, OForetager ét ikke-idempotent udgående opkald.
export_callsopkaldsfiltre, export_formatR, IEksporterer op til REST-endpointets grænse som JSON eller CSV.

Test og validering

VærktøjPrimære argumenterAnnotationerHvad det gør
list_test_scenariosagent_idR, IViser testscenarier.
create_test_scenarioagent_id, title, scenario_prompt, valgfri betingelser—Opretter et scenarie.
generate_test_scenariosagent_id, valgfri count, include_edge_cases, localeOGenererer scenarier ud fra agentens prompt.
run_agent_testsagent_id, channel, consent_to_charge, valgfrit udvalg/matrixD, OKører scenarier via web eller telefoni.
get_test_runagent_id, batch_idR, IHenter batchstatus og resultater pr. scenarie.
list_validation_runsagent_idR, IViser seneste valideringskørsler for kladder.
get_validation_statusagent_idR, IHenter den seneste valideringstilstand og kladdematch.

Viden

VærktøjPrimære argumenterAnnoteringerHvad det gør
list_knowledge_bases—R, IViser en liste over vidensbaser.
create_knowledge_basename, valgfri description—Opretter en vidensbase.
add_knowledge_documentknowledge_base_id, name, content—Tilføjer tekst eller Markdown.
import_knowledge_urlurl, valgfri nameOSætter en offentlig side i kø til sikker indlæsning.
search_knowledgeknowledge_base_id, queryR, ISøger via produktionshentning.

Integrationer, webhooks og eksterne MCP-servere

VærktøjPrimære argumenterAnnoteringerHvad det gør
list_integrations—R, IViser HTTP-funktionsintegrationer.
create_integrationdisplay_name, funktions-spec, valgfrie endpointfelter—Opretter et HTTP-værktøj. Tilføj godkendelsesheadere i dashboardet.
test_integrationurl, valgfri metode/body/timeout, integration_id med header_names, confirmation_token ved den anden anmodningD, OSender en afgrænset, SSRF-beskyttet testanmodning. Gemte headerværdier udfyldes fra integrationen og sendes kun til dens egen vært. POST (standarden), PUT, PATCH og DELETE foregår i to trin; GET kører med det samme.
list_webhook_endpoints—R, IViser signerede webhook-endpoints.
list_webhook_deliveriesvalgfri agent_id, valgfri endpoint_idR, IViser nylige resultater for webhook-leveringer uden payload.
create_webhook_endpointlabel, url, valgfrie hændelser/statusOOpretter et signeret webhook-endpoint.
test_webhook_endpointendpoint_idOSender en syntetisk hændelse gennem den normale levering.
list_mcp_servers—R, IViser fjernservere, som kan kaldes af stemmeagenter.
create_mcp_serverdisplay_name, urlORegistrerer og synkroniserer en fjernserver. Servere, der kræver godkendelsesheadere, tilføjes i dashboardet.
sync_mcp_server_toolsserver_idD, OOpdaterer en fjernservers værktøjskatalog.

Kampagner

VærktøjPrimære argumenterAnnoteringerHvad det gør
list_campaigns—R, IViser en liste over udgående kampagner.
create_campaignkampagnefelter—Opretter en kampagnekladde.
add_campaign_contactscampaign_id, contacts—Tilføjer op til 5.000 JSON-kontakter.
campaign_actioncampaign_id, action, valgfri consent_to_charge, confirmation_token i den anden anmodningD, OKører start, pause, resume eller stop. start og resume er i to trin; pause og stop køres med det samme.
get_campaign_statscampaign_idR, IHenter tællere og seneste resultater.

Stemmer, fakturering og dokumentation

VærktøjPrimære argumenterAnnoteringerHvad det gør
list_voices—R, IViser stemmer og understøttede sprog.
preview_voicevoice, language, textOGenererer en prøve og returnerer en signeret URL.
list_voice_clones—R, IViser brugerdefinerede stemmekloner.
get_billing_summary—R, IHenter saldo og autoritative priser for niveauer; ingen betalingsændringer er tilgængelige.
search_docsquery, valgfri limitR, I, OSøger i det offentlige dokumentationsindeks.
get_doc_pagepathR, I, OHenter én offentlig Markdown-dokumentationsside.

Alle produktværktøjer bruger de samme REST-kodestier som det offentlige API. REST-validering, organisationsafgrænsning, roller, faktureringsadgang, kvoter, TCPA-bekræftelse, udbydersikkerhed og revisionsadfærd gælder derfor uændret.

Bekræftelse af destruktive handlinger

Værktøjer markeret med D ændrer eller fjerner noget eller begynder at ringe til rigtige personer. De, der ikke kan fortrydes, kræver to anmodninger. Den første anmodning ændrer ikke noget og returnerer:

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

Assistenten viser brugeren, hvad der påvirkes, og beder om et ja. Derefter gentager den anmodningen med de samme argumenter plus confirmation_token. En token er gyldig i 10 minutter og dækker én organisation, ét værktøj og ét præcist sæt argumenter, så sletning af tre agenter kræver tre bekræftelser. campaign_action med pause eller stop springer dette trin over, så en kørende kampagne altid kan stoppes med det samme, og det samme gælder test_integration med GET. Nogle D-værktøjer kører i én anmodning, fordi D angiver deres effekt, ikke en bekræftelse på serversiden: update_agent erstatter det, kladden indeholdt (discard_agent_draft gendanner det), deploy_agent erstatter den aktive konfiguration, update_phone_number omdirigerer aktive opkald, sync_mcp_server_tools erstatter et fjernservers værktøjskatalog, import_voip_numbers omdirigerer numre til din operatør, run_agent_tests kan bruge kredit, send_sms og place_call kontakter en rigtig person (place_call beholder sin egen samtykkebekræftelse), og provision_phone_number køber et nummer. Din MCP-klient kan stadig bede dig om at godkende dem.

Startprompter

prompts/list tilbyder fem genanvendelige arbejdsgange:

  • create_inbound_receptionist
  • run_agent_tests
  • buy_and_attach_number
  • review_low_grade_calls
  • add_url_to_agent_knowledge

Brug prompts/get med det angivne promptnavn og dets deklarerede argumenter for at modtage en klar-til-kørsel-brugermeddelelse.

Ressourcer

resources/list eksponerer offentlige, cachelagrede referencer:

URIIndhold
thunderphone://docs/llms.txtOffentligt dokumentationsindeks.
thunderphone://docs/quickstartHurtigstart-Markdown.
thunderphone://pricingAktuel offentlig pris-Markdown.

Læs en ressource med resources/read. Offentlige hentninger bruger en kort timeout, en grænse på 2 MiB og en ti minutters cache i processen.

Protokol og fejl

Serveren understøtter protokolversionerne 2025-06-18 og 2025-03-26; den gengiver en understøttet klientversion og vælger ellers 2025-06-18. Den implementerer initialize, ping, værktøjer, prompter, ressourcer og notifikationer. Notifikationer returnerer 202 Accepted. Denne tilstandsløse server eksponerer ikke en SSE-lytter eller sletning af sessioner, så GET og DELETE returnerer 405 Method Not Allowed med Allow: POST.

Værktøjsfejl forbliver vellykkede JSON-RPC-svar med isError: true. Deres tekst indeholder en kort sætning efterfulgt af en 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."
}

Det særskilte præfiks outbound_tcpa_confirmation_required: bevares for place_call. Ukendte JSON-RPC-metoder returnerer -32601 i et HTTP-200-svar. JSON-RPC-batches understøttes ikke af MCP 2025-06-18 og returnerer en ren -32600-fejl for ugyldig anmodning.