ThunderPhone 2.0 ist live.Direkt im Self-Service – ab 2 ¢/Min..Ankündigung lesen

Connect tools & data

ThunderPhone als MCP-Server verwenden

ThunderPhone-Sprachagenten über Claude, ChatGPT, Claude Code, Codex, Cursor, VS Code oder einen anderen Streamable-HTTP-MCP-Client erstellen, testen, validieren und betreiben.

ThunderPhone stellt unter folgender Adresse einen Streamable-HTTP-Server für das Model Context Protocol bereit:

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

Dies ist die entgegengesetzte Richtung zu einem mit einem Sprachagenten verbundenen Remote-MCP-Server:

RichtungErgebnis
Remote-MCP-Server → ThunderPhone-AgentEin Sprachagent kann die Tools des Remote-Servers aufrufen.
ThunderPhone → Ihr MCP-ClientIhr Programmieragent kann ThunderPhone erstellen, testen und betreiben.

Authentifizieren

Verwenden Sie für Verzeichnis-Clients standardmäßig OAuth: Melden Sie sich an, wählen Sie eine Organisation aus und genehmigen Sie die angeforderten Berechtigungen. Widerrufen Sie den Zugriff unter Organisation → API-Schlüssel → Autorisierte Apps.

Erstellen Sie für Clients, die mit einem API-Schlüssel konfiguriert sind, unter Organisation → Schlüssel einen sk_live_-Schlüssel und stellen Sie ihn Ihrem MCP-Client als THUNDERPHONE_API_KEY bereit. Der Schlüssel ist an eine Organisation gebunden; eine ID, die einer anderen Organisation gehört, verhält sich wie nicht gefunden.

CLI- und stdio-Alternativen

Die ThunderPhone CLI kann die Client-Konfiguration schreiben und dabei nicht verwandte Server beibehalten:

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

Nach einer globalen Installation von @thunderphone/mcp verwenden Sie thunderphone-mcp setup mit denselben Optionen. Die Einrichtung unterstützt Claude Code, Codex, Cursor, VS Code, Gemini, Claude Desktop und Windsurf. Direktes HTTP wird bevorzugt; Desktop verwendet stdio.

Konfigurieren Sie für jeden stdio-fähigen Client command: "npx" mit args: ["-y", "@thunderphone/mcp"]. Der Wrapper verwendet zuerst THUNDERPHONE_API_KEY, anschließend Anmeldedaten aus thunderphone login, erneuert abgelaufene Tokens und verwendet dann OAuth über mcp-remote. Geräteanmeldung und OAuth erfordern die entsprechende OAuth-Einführung der API. Der API-Schlüsselpfad nicht. Direkte HTTP-Konfigurationen lesen nicht den Anmeldedatenspeicher der CLI; verwenden Sie den stdio-Wrapper, um die Geräteanmeldung erneut zu nutzen.

Dies sind Alternativen zu den manuellen Client-Konfigurationen unten.

Client-Konfiguration

Claude und ChatGPT melden sich über OAuth an; es ist kein API-Schlüssel erforderlich. Wenn Sie noch kein ThunderPhone-Konto haben, wählen Sie auf der Anmeldeseite Konto erstellen. Nach der Bestätigung Ihrer E-Mail-Adresse kehren Sie zum Genehmigungsbildschirm zurück.

Claude (Web, Desktop und Mobilgeräte)

  1. Öffnen Sie Anpassen → Konnektoren (in älteren Versionen Einstellungen → Konnektoren). Wenn ThunderPhone im Konnektorenverzeichnis angezeigt wird, wählen Sie es aus. Andernfalls wählen Sie Benutzerdefinierten Konnektor hinzufügen, benennen ihn ThunderPhone und geben https://api.thunderphone.com/v1/mcp ein.
  2. Wählen Sie Verbinden, melden Sie sich bei ThunderPhone an, wählen Sie die Organisation aus und genehmigen Sie die Berechtigungen.
  3. Aktivieren Sie ThunderPhone in einem Chat über das Tool-Menü und fragen Sie nach dem, was Sie benötigen, zum Beispiel „Meine Agenten auflisten“.

Claude fragt, bevor es jedes Tool zum ersten Mal verwendet. Um die meisten dieser Abfragen zu überspringen, öffnen Sie Anpassen → Konnektoren → ThunderPhone und setzen Sie Schreibgeschützte Tools auf immer zulassen. Diese Tools fragen nur Informationen ab: Agenten, Anrufe, Transkripte, Guthaben, Docs. Lassen Sie Schreib-/Löschtools auf Genehmigung, wenn Sie jede Änderung sehen möchten, bevor sie erfolgt.

Benutzerdefinierte Konnektoren erfordern einen kostenpflichtigen Claude-Tarif. Bei Team- und Enterprise-Tarifen fügt ein Inhaber den Konnektor zuerst in den Konnektoreinstellungen der Organisation hinzu. Anschließend verbindet jedes Mitglied sein eigenes ThunderPhone-Konto.

ChatGPT

  1. Wenn ThunderPhone im ChatGPT-App-Verzeichnis angezeigt wird, wählen Sie es aus und verbinden Sie es.
  2. Andernfalls öffnen Sie Einstellungen → Apps & Konnektoren → Erweiterte Einstellungen, aktivieren Sie den Entwicklermodus und erstellen Sie einen Konnektor mit der URL https://api.thunderphone.com/v1/mcp und OAuth-Authentifizierung.
  3. Melden Sie sich bei ThunderPhone an, wählen Sie die Organisation aus und genehmigen Sie die Berechtigungen. Fügen Sie ThunderPhone über das Tool-Menü zu einem Chat hinzu.

Das Löschen eines Agenten oder einer Telefonnummer, das Verwerfen eines Entwurfs, das Starten einer Kampagne und das Senden einer Testanfrage, die in ein externes System schreiben kann, erfordern in beiden Apps eine zweite Bestätigung; siehe Zerstörerische Aktionen bestätigen.

Claude Code

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

Codex

Fügen Sie dies zu ~/.codex/config.toml hinzu:

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

Cursor

Erstellen Sie .cursor/mcp.json:

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

Claude Desktop

Fügen Sie der Claude-Desktop-Konfiguration eine mcp-remote-Bridge hinzu:

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

Erstellen Sie .vscode/mcp.json und geben Sie den Schlüssel über die Eingabeaufforderung von VS Code ein:

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

Tools

Jedes Tool enthält MCP-Anmerkungen. In den Tabellen bedeutet R schreibgeschützt, D destruktiv, I idempotent und O Interaktion mit der offenen Welt bzw. dem Netzwerk. Ein Gedankenstrich bedeutet, dass kein Hinweis festgelegt ist.

Verbindung

ToolHauptargumenteAnmerkungenFunktion
get_connection_identity—R, IValidiert die Zugangsdaten und gibt die zugehörige Organisation sowie sichere Metadaten zu den Zugangsdaten zurück.

Agenten

ToolHauptargumenteAnmerkungenFunktion
list_agents—R, IListet Agenten auf.
get_agentagent_idR, IRuft einen Agenten ab.
create_agentAgentenkonfiguration—Erstellt einen Agenten.
update_agentagent_id, geänderte FelderDStellt Felder im Agentenentwurf bereit und ersetzt dabei die bisherigen Werte des Entwurfs. Wird ohne Bestätigungsschritt ausgeführt: Der bereitgestellte Agent bleibt unverändert, bis deploy_agent ausgeführt wird, und discard_agent_draft setzt den Entwurf zurück.
deploy_agentagent_id, optional if_updated_atD, IÜbernimmt den Entwurf in die Produktion.
discard_agent_draftagent_id, optional if_updated_at, confirmation_token bei der zweiten AnfrageD, IVerwirft bereitgestellte Änderungen. In zwei Schritten, siehe Bestätigung destruktiver Aktionen.
duplicate_agentagent_id, optional name—Kopiert einen Agenten innerhalb der Organisation.
delete_agentagent_id, confirmation_token bei der zweiten AnfrageD, ILöscht einen Agenten dauerhaft. In zwei Schritten.
list_agent_versionsagent_idR, IListet bereitgestellte Konfigurationsversionen auf.

Telefonnummern und Carrier

ToolHauptargumenteAnmerkungenFunktion
list_phone_numbers—R, IListet Organisationsnummern und Routing auf.
get_phone_number_limits—R, IRuft Nutzung und Limits verwalteter Nummern ab.
provision_phone_numberoptional area_code, city, state, idempotency_keyD, OKauft eine von ThunderPhone verwaltete eingehende Nummer.
list_voip_connections—R, IListet verbundene Kundenanbieter auf.
search_voip_numbersconnection_id, country, type, optional area_codeR, I, ODurchsucht den Bestand des Anbieters.
import_voip_numbersconnection_id, numbersD, OImportiert Nummern, die bereits dem Anbieter gehören.
update_phone_numberphone_number_id, Routing-/Label-/Webhook-FelderDAktualisiert das Nummern-Routing, einschließlich der Agentenzuweisung.
delete_phone_numberphone_number_id, confirm, optional release_at_provider, confirmation_token bei der zweiten AnfrageD, I, OGibt eine Nummer frei. Zwei Schritte.

SMS

ToolHauptargumenteAnmerkungenFunktion
send_smsfrom_number, to, body, idempotency_keyD, I, OSendet eine reine Text-SMS über eine verbundene Twilio- oder Telnyx-Nummer.

Anrufe

ToolHauptargumenteAnmerkungenFunktion
list_callsoptionale Filter, limit, offsetR, IListet Anrufe mit den REST-Filtern für den Anrufverlauf auf.
get_callcall_idR, IRuft Anrufstatus und Metadaten ab.
get_call_transcriptcall_id, optional liveR, IRuft das Anruftranskript ab.
get_call_audio_urlcall_id, optional downloadR, I, OGibt eine signierte Audio-URL zurück; Audio wird niemals über MCP gestreamt.
get_call_gradecall_idR, IRuft die neueste Anrufbewertung ab.
place_callagent_id, from_number, to_numberD, OTätigt einen nicht-idempotenten ausgehenden Anruf.
export_callsAnruffilter, export_formatR, IExportiert bis zur Begrenzung des REST-Endpunkts als JSON oder CSV.

Tests und Validierung

ToolHauptargumenteAnmerkungenFunktion
list_test_scenariosagent_idR, IListet Testszenarien auf.
create_test_scenarioagent_id, title, scenario_prompt, optionale Bedingungen—Erstellt ein Szenario.
generate_test_scenariosagent_id, optional count, include_edge_cases, localeOGeneriert Szenarien aus dem Agenten-Prompt.
run_agent_testsagent_id, channel, consent_to_charge, optionale Auswahl/MatrixD, OFührt Szenarien über das Web oder die Telefonie aus.
get_test_runagent_id, batch_idR, IRuft den Batch-Status und Ergebnisse pro Szenario ab.
list_validation_runsagent_idR, IListet aktuelle Validierungsläufe für Entwürfe auf.
get_validation_statusagent_idR, IRuft den neuesten Validierungsstatus und die Entwurfsübereinstimmung ab.

Wissen

ToolHauptargumenteAnmerkungenFunktion
list_knowledge_bases—R, IListet Wissensdatenbanken auf.
create_knowledge_basename, optional description—Erstellt eine Wissensdatenbank.
add_knowledge_documentknowledge_base_id, name, content—Fügt Text oder Markdown hinzu.
import_knowledge_urlurl, optional nameOStellt eine öffentliche Seite für die sichere Aufnahme in die Warteschlange.
search_knowledgeknowledge_base_id, queryR, IDurchsucht die Produktionsabfrage.

Integrationen, Webhooks und Remote-MCP-Server

ToolHauptargumenteAnmerkungenFunktion
list_integrations—R, IListet HTTP-Funktionsintegrationen auf.
create_integrationdisplay_name, Funktions-spec, optionale Endpunktfelder—Erstellt ein HTTP-Tool. Fügen Sie Authentifizierungs-Header im Dashboard hinzu.
test_integrationurl, optionale Methode/Body/Timeout, integration_id mit header_names, confirmation_token bei der zweiten AnfrageD, OSendet eine begrenzte, SSRF-geschützte Testanfrage. Gespeicherte Header-Werte werden aus der Integration übernommen und nur an deren eigenen Host gesendet. POST (der Standard), PUT, PATCH und DELETE erfolgen in zwei Schritten; GET wird sofort ausgeführt.
list_webhook_endpoints—R, IListet signierte Webhook-Endpunkte auf.
list_webhook_deliveriesoptionale agent_id, optionale endpoint_idR, IListet aktuelle Ergebnisse von Webhook-Zustellungen ohne Payload auf.
create_webhook_endpointlabel, url, optionale Ereignisse/StatusOErstellt einen signierten Webhook-Endpunkt.
test_webhook_endpointendpoint_idOSendet ein synthetisches Ereignis über die normale Zustellung.
list_mcp_servers—R, IListet Remote-Server auf, die von Sprachagenten aufgerufen werden können.
create_mcp_serverdisplay_name, urlORegistriert und synchronisiert einen Remote-Server. Server, die Authentifizierungs-Header benötigen, werden im Dashboard hinzugefügt.
sync_mcp_server_toolsserver_idD, OAktualisiert den Tool-Katalog eines Remote-Servers.

Kampagnen

ToolHauptargumenteAnmerkungenFunktion
list_campaigns—R, IListet ausgehende Kampagnen auf.
create_campaignKampagnenfelder—Erstellt einen Kampagnenentwurf.
add_campaign_contactscampaign_id, contacts—Fügt bis zu 5.000 JSON-Kontakte hinzu.
campaign_actioncampaign_id, action, optional consent_to_charge, confirmation_token bei der zweiten AnfrageD, OFührt start, pause, resume oder stop aus. start und resume erfolgen in zwei Schritten; pause und stop werden sofort ausgeführt.
get_campaign_statscampaign_idR, IRuft Zähler und aktuelle Ergebnisse ab.

Stimmen, Abrechnung und Docs

WerkzeugHauptargumenteAnmerkungenFunktion
list_voices—R, IListet Stimmen und unterstützte Sprachen auf.
preview_voicevoice, language, textOErstellt ein Beispiel und gibt eine signierte URL zurück.
list_voice_clones—R, IListet benutzerdefinierte Stimmklone auf.
get_billing_summary—R, IRuft Guthaben und maßgebliche Preise der Tarifstufen ab; es sind keine Zahlungsänderungen verfügbar.
search_docsquery, optional limitR, I, ODurchsucht den öffentlichen Docs-Index.
get_doc_pagepathR, I, ORuft eine öffentliche Markdown-Dokumentationsseite ab.

Alle Produkt-Tools verwenden dieselben REST-Codepfade wie die öffentliche API. REST-Validierung, Organisationsabgrenzung, Rollen, Abrechnungszulassung, Kontingente, TCPA-Bestätigung, Provider-Sicherheit und Auditverhalten gelten daher unverändert.

Bestätigung destruktiver Aktionen

Mit D gekennzeichnete Tools ändern oder entfernen etwas oder beginnen, echte Personen anzuwählen. Vorgänge, die nicht rückgängig gemacht werden können, erfordern zwei Anfragen. Die erste Anfrage ändert nichts und gibt Folgendes zurück:

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

Der Assistent zeigt dem Benutzer, was betroffen ist, und bittet um eine Bestätigung. Anschließend wiederholt er die Anfrage mit denselben Argumenten sowie confirmation_token. Ein Token ist 10 Minuten gültig und gilt für eine Organisation, ein Tool und einen exakten Satz von Argumenten. Daher erfordert das Löschen von drei Agenten drei Bestätigungen. campaign_action mit pause oder stop überspringt diesen Schritt, damit eine laufende Kampagne jederzeit sofort angehalten werden kann. Dasselbe gilt für test_integration mit GET. Einige D-Tools werden mit einer Anfrage ausgeführt, weil das D ihre Wirkung kennzeichnet und keine serverseitige Bestätigung: update_agent ersetzt den Inhalt des Entwurfs (discard_agent_draft setzt ihn zurück), deploy_agent ersetzt die aktive Konfiguration, update_phone_number leitet aktive Anrufe um, sync_mcp_server_tools ersetzt den Toolkatalog eines Remote-Servers, import_voip_numbers leitet Nummern auf Ihren Anbieter um, run_agent_tests kann Guthaben verbrauchen, send_sms und place_call erreichen eine echte Person (place_call behält seine eigene Einwilligungsbestätigung bei) und provision_phone_number kauft eine Nummer. Ihr MCP-Client kann Sie weiterhin bitten, diese zu genehmigen.

Starter-Prompts

prompts/list stellt fünf wiederverwendbare Workflows bereit:

  • create_inbound_receptionist
  • run_agent_tests
  • buy_and_attach_number
  • review_low_grade_calls
  • add_url_to_agent_knowledge

Verwenden Sie prompts/get mit dem aufgeführten Prompt-Namen und den angegebenen Argumenten, um eine sofort ausführbare Benutzernachricht zu erhalten.

Ressourcen

resources/list stellt öffentliche, zwischengespeicherte Referenzen bereit:

URIInhalt
thunderphone://docs/llms.txtIndex der öffentlichen Dokumentation.
thunderphone://docs/quickstartQuickstart-Markdown.
thunderphone://pricingAktuelles öffentliches Preis-Markdown.

Lesen Sie eine Ressource mit resources/read. Öffentliche Abrufe verwenden ein kurzes Timeout, ein Limit von 2 MiB und einen prozessinternen Cache mit zehn Minuten Laufzeit.

Protokoll und Fehler

Der Server unterstützt die Protokollversionen 2025-06-18 und 2025-03-26; er gibt eine unterstützte Client-Version zurück und wählt andernfalls 2025-06-18. Er implementiert initialize, ping, Tools, Prompts, Ressourcen und Benachrichtigungen. Benachrichtigungen geben 202 Accepted zurück. Dieser zustandslose Server stellt weder einen SSE-Listener noch das Löschen von Sitzungen bereit. Daher geben GET und DELETE 405 Method Not Allowed mit Allow: POST zurück.

Tool-Fehler bleiben erfolgreiche JSON-RPC-Antworten mit isError: true. Ihr Text enthält einen kurzen Satz, gefolgt von einem JSON-Block:

{
  "code": "insufficient_balance",
  "detail": "There is not enough prepaid balance.",
  "next_step": "Call get_billing_summary, add funds in Organization > Billing, then retry."
}

Das eindeutige Präfix outbound_tcpa_confirmation_required: bleibt für place_call erhalten. Unbekannte JSON-RPC-Methoden geben -32601 in einer HTTP-200-Antwort zurück. JSON-RPC-Batches werden von MCP 2025-06-18 nicht unterstützt und geben einen sauberen -32600-Fehler für ungültige Anfragen zurück.