---
title: "Kasuta ThunderPhone’i MCP-serverina"
description: "Ehita, testi, valideeri ja halda ThunderPhone’i häälagente Claude’i, ChatGPT, Claude Code’i, Codexi, Cursori, VS Code’i või muu Streamable HTTP MCP-kliendi kaudu."
---

ThunderPhone pakub voogedastatavat HTTP Model Context Protocoli serverit aadressil:

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

See on vastupidine suund võrreldes [kaughostitud MCP-serveri ühendamisega häälagendiga](/et/guides/mcp-servers):

| Suund | Tulemus |
| --- | --- |
| Kaug-MCP-server → ThunderPhone'i agent | Häälagent saab kutsuda kaugserveri tööriistu. |
| ThunderPhone → sinu MCP-klient | Sinu programmeerimisagent saab ThunderPhone'i luua, testida ja hallata. |

## Autentimine

Kasuta kataloogiklientide puhul vaikimisi [OAuthi](/et/guides/oauth): logi sisse, vali organisatsioon ja kinnita taotletud õigused. Tühista juurdepääs jaotises **Organisatsioon → API võtmed → Volitatud rakendused**.

API-võtmega seadistatud klientide puhul loo jaotises **Organisatsioon → Võtmed** `sk_live_`-võti ja anna see oma MCP-kliendile keskkonnamuutujana `THUNDERPHONE_API_KEY`. Võti on seotud ühe organisatsiooniga; teisele organisatsioonile kuuluv ID käitub nagu seda ei leitaks.

<Warning>
  `sk_live_`-võti saab lugeda organisatsiooni andmeid ja teha tootmiskeskkonna toiminguid, näiteks agente juurutada, kõnesid teha, numbreid osta, kampaaniaid käivitada ja ressursse kustutada. Hoia see brauserikoodist, repositooriumidest, ekraanipiltidelt ja vestluslogidest eemal. Kasuta oma kliendi saladuste hoidlat või keskkonnamuutujate tuge ning tühista avalikuks saanud võti kohe.
</Warning>

## CLI ja stdio alternatiivid

[ThunderPhone CLI](/et/guides/cli) saab kirjutada kliendi konfiguratsiooni, säilitades
muud serverid:

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

Pärast `@thunderphone/mcp` globaalset installimist kasuta `thunderphone-mcp setup` koos
samade valikutega. Seadistus toetab Claude Code'i, Codexi, Cursorit, VS Code'i, Geminit, Claude
Desktopi ja Windsurfi. Eelistatud on otsene HTTP; Desktop kasutab stdio't.

Mis tahes stdio-võimelise kliendi jaoks seadista `command: "npx"` koos
`args: ["-y", "@thunderphone/mcp"]`. Ümbris kasutab esmalt `THUNDERPHONE_API_KEY`-d,
seejärel `thunderphone login`i kaudu saadud mandaate, värskendades aegunud tokeneid, ning seejärel
OAuthi `mcp-remote`i kaudu. Seadme sisselogimine ja OAuth nõuavad vastava API
OAuthi kasutuselevõttu. API-võtme kasutusviis seda ei nõua. Otsesed HTTP-konfiguratsioonid ei loe
CLI mandaatide hoidlat; seadme sisselogimise taaskasutamiseks kasuta stdio-ümbrist.

Need on alternatiivid allolevatele käsitsi kliendikonfiguratsioonidele.

## Kliendi seadistamine

Claude ja ChatGPT logivad sisse [OAuthi](/et/guides/oauth) abil; API-võtit ei kasutata. Kui sul veel ThunderPhone'i kontot pole, vali sisselogimislehel **Loo konto** ning pärast e-posti kinnitamist naased loa andmise kuvale.

### Claude (veeb, töölaua- ja mobiilirakendus)

1. Ava **Seaded → Konnektorid**. Kui ThunderPhone kuvatakse konnektorite kataloogis, vali see. Vastasel juhul vali **Lisa kohandatud konnektor**, nimeta see `ThunderPhone` ja sisesta `https://api.thunderphone.com/v1/mcp`.
2. Vali **Ühenda**, logi ThunderPhone'i sisse, vali organisatsioon ja kinnita õigused.
3. Luba vestluses ThunderPhone tööriistamenüüst ja küsi vajalikku, näiteks „Kuva minu agendid”.

Kohandatud konnektorite kasutamiseks vajad tasulist Claude'i paketti. Team- ja Enterprise-pakettides lisab omanik konnektori esmalt organisatsiooni konnektoriseadetes, seejärel ühendab iga liige oma ThunderPhone'i konto.

### ChatGPT

1. Kui ThunderPhone kuvatakse ChatGPT rakenduste kataloogis, vali see ja ühenda.
2. Vastasel juhul ava **Seaded → Rakendused ja konnektorid → Täpsemad seaded**, lülita sisse **Arendajarežiim** ja loo konnektor URL-iga `https://api.thunderphone.com/v1/mcp` ning OAuth-autentimisega.
3. Logi ThunderPhone'i sisse, vali organisatsioon ja kinnita õigused. Lisa ThunderPhone vestlusesse tööriistamenüüst.

Agendi või telefoninumbri kustutamine, mustandi hülgamine ja kampaania käivitamine nõuavad mõlemas rakenduses teist kinnitust; vaata [hävitavate toimingute kinnitamist](#confirming-destructive-actions).

### Claude Code

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

### Codex

Lisa see faili `~/.codex/config.toml`:

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

### Cursor

Loo `.cursor/mcp.json`:

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

### Claude Desktop

Lisa Claude Desktopi konfiguratsiooni `mcp-remote` sild:

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

Loo `.vscode/mcp.json` ja sisesta võti VS Code'i sisestusviiba kaudu:

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

## Tööriistad

Igal tööriistal on MCP annotatsioonid. Tabelites tähendab **R** ainult lugemist, **D** hävitavat toimingut, **I** idempotentset toimingut ja **O** avatud maailma/võrguinteraktsiooni. Kriips tähendab, et vihjet pole määratud.

### Agendid

| Tööriist | Peamised argumendid | Annotatsioonid | Mida see teeb |
| --- | --- | --- | --- |
| `list_agents` | — | R, I | Loetleb agendid. |
| `get_agent` | `agent_id` | R, I | Hangib ühe agendi. |
| `create_agent` | agendi konfiguratsioon | — | Loob agendi. |
| `update_agent` | `agent_id`, muudetud väljad | — | Etapistab väljad agendi mustandisse. |
| `deploy_agent` | `agent_id`, valikuline `if_updated_at` | I | Viib mustandi tootmisse. |
| `discard_agent_draft` | `agent_id`, valikuline `if_updated_at`, `confirmation_token` teisel päringul | D, I | Hülgab etapistatud muudatused. Kaheetapiline, vaata [hävitavate toimingute kinnitamist](#confirming-destructive-actions). |
| `duplicate_agent` | `agent_id`, valikuline `name` | — | Kopeerib agendi organisatsiooni sees. |
| `delete_agent` | `agent_id`, `confirmation_token` teisel päringul | D, I | Kustutab agendi jäädavalt. Kaheetapiline. |
| `list_agent_versions` | `agent_id` | R, I | Loetleb juurutatud konfiguratsiooniversioonid. |

### Telefoninumbrid ja operaatorid

| Tööriist | Peamised argumendid | Annotatsioonid | Mida see teeb |
| --- | --- | --- | --- |
| `list_phone_numbers` | — | R, I | Loetleb organisatsiooni numbrid ja marsruutimise. |
| `get_phone_number_limits` | — | R, I | Hangib hallatavate numbrite kasutuse ja piirangud. |
| `provision_phone_number` | valikuline `area_code`, `city`, `state`, `idempotency_key` | O | Ostab ThunderPhone'i hallatava sissetulevate kõnede numbri. |
| `list_voip_connections` | — | R, I | Loetleb ühendatud kliendioperaatorid. |
| `search_voip_numbers` | `connection_id`, `country`, `type`, valikuline `area_code` | R, I, O | Otsib operaatori numbrivalikust. |
| `import_voip_numbers` | `connection_id`, `numbers` | O | Impordib operaatorile juba kuuluvad numbrid. |
| `update_phone_number` | `phone_number_id`, marsruutimise/sildi/webhooki väljad | — | Uuendab numbri marsruutimist, sealhulgas agendi määramist. |
| `delete_phone_number` | `phone_number_id`, `confirm`, valikuline `release_at_provider`, `confirmation_token` teisel päringul | D, I, O | Vabastab numbri. Kaheetapiline. |

### Kõned

| Tööriist | Peamised argumendid | Annotatsioonid | Mida see teeb |
| --- | --- | --- | --- |
| `list_calls` | valikulised filtrid, `limit`, `offset` | R, I | Loetleb kõned REST-i kõneajaloo filtritega. |
| `get_call` | `call_id` | R, I | Hangib kõne oleku ja metaandmed. |
| `get_call_transcript` | `call_id`, valikuline `live` | R, I | Hangib kõne transkriptsiooni. |
| `get_call_audio_url` | `call_id`, valikuline `download` | R, I, O | Tagastab allkirjastatud audio-URL-i; see ei voogedasta audiot kunagi MCP kaudu. |
| `get_call_grade` | `call_id` | R, I | Hangib uusima kõnehinde. |
| `place_call` | `agent_id`, `from_number`, `to_number` | O | Teeb ühe mitteidempotentse väljamineva kõne. |
| `export_calls` | kõnefiltrid, `export_format` | R, I | Ekspordib kuni REST-i lõpp-punkti piiranguni JSON-i või CSV-na. |

### Testimine ja valideerimine

| Tööriist | Peamised argumendid | Annotatsioonid | Mida see teeb |
| --- | --- | --- | --- |
| `list_test_scenarios` | `agent_id` | R, I | Loetleb testistsenaariumid. |
| `create_test_scenario` | `agent_id`, `title`, `scenario_prompt`, valikulised tingimused | — | Loob stsenaariumi. |
| `generate_test_scenarios` | `agent_id`, valikuline `count`, `include_edge_cases`, `locale` | O | Genereerib stsenaariumid agendi viibast. |
| `run_agent_tests` | `agent_id`, `channel`, `consent_to_charge`, valikuline valik/maatriks | O | Käivitab stsenaariumid veebi või telefoni kaudu. |
| `get_test_run` | `agent_id`, `batch_id` | R, I | Hangib paketi oleku ja stsenaariumipõhised tulemused. |
| `list_validation_runs` | `agent_id` | R, I | Loetleb hiljutised mustandi valideerimiskäivitused. |
| `get_validation_status` | `agent_id` | R, I | Hangib uusima valideerimisoleku ja mustandi vastavuse. |

### Teadmised

| Tööriist | Peamised argumendid | Annotatsioonid | Mida see teeb |
| --- | --- | --- | --- |
| `list_knowledge_bases` | — | R, I | Loetleb teadmistebaasid. |
| `create_knowledge_base` | `name`, valikuline `description` | — | Loob teadmistebaasi. |
| `add_knowledge_document` | `knowledge_base_id`, `name`, `content` | — | Lisab teksti või MarkDowni. |
| `import_knowledge_url` | `url`, valikuline `name` | O | Lisab avaliku lehe turvaliseks sissevõtuks järjekorda. |
| `search_knowledge` | `knowledge_base_id`, `query` | R, I | Otsib tootmiskeskkonna päringusüsteemist. |

### Integratsioonid, webhookid ja kaug-MCP-serverid

| Tööriist | Peamised argumendid | Annotatsioonid | Mida see teeb |
| --- | --- | --- | --- |
| `list_integrations` | — | R, I | Loetleb HTTP-funktsiooni integratsioonid. |
| `create_integration` | `display_name`, funktsiooni `spec`, valikulised lõpp-punkti väljad | — | Loob HTTP-tööriista. |
| `test_integration` | `url`, valikuline meetod/päised/sisu/ajalõpp | O | Saadab piiratud, SSRF-i eest kaitstud testpäringu. |
| `list_webhook_endpoints` | — | R, I | Loetleb allkirjastatud webhooki lõpp-punktid. |
| `create_webhook_endpoint` | `label`, `url`, valikulised sündmused/olek | O | Loob allkirjastatud webhooki lõpp-punkti. |
| `test_webhook_endpoint` | `endpoint_id` | O | Saadab sünteetilise sündmuse tavapärase edastuse kaudu. |
| `list_mcp_servers` | — | R, I | Loetleb kaugserverid, mida häälagendid saavad kutsuda. |
| `create_mcp_server` | `display_name`, `url`, valikulised päised | O | Registreerib ja sünkroonib kaugserveri. |
| `sync_mcp_server_tools` | `server_id` | O | Värskendab kaugserveri tööriistakataloogi. |

### Kampaaniad

| Tööriist | Peamised argumendid | Annotatsioonid | Mida see teeb |
| --- | --- | --- | --- |
| `list_campaigns` | — | R, I | Loetleb väljaminevad kampaaniad. |
| `create_campaign` | kampaania väljad | — | Loob kampaania mustandi. |
| `add_campaign_contacts` | `campaign_id`, `contacts` | — | Lisab kuni 5000 JSON-kontakti. |
| `campaign_action` | `campaign_id`, `action`, valikuline `consent_to_charge`, `confirmation_token` teisel päringul | D, O | Käivitab `start`, `pause`, `resume` või `stop`. `start` ja `resume` on kaheetapilised; `pause` ja `stop` käivituvad kohe. |
| `get_campaign_stats` | `campaign_id` | R, I | Hangib loendurid ja hiljutised tulemused. |

### Hääled, arveldamine, importimine ja dokumentatsioon

| Tööriist | Peamised argumendid | Annotatsioonid | Mida see teeb |
| --- | --- | --- | --- |
| `list_voices` | — | R, I | Loetleb hääled ja toetatud keeled. |
| `preview_voice` | `voice`, `language`, `text` | O | Genereerib näidise ja tagastab allkirjastatud URL-i. |
| `list_voice_clones` | — | R, I | Loetleb kohandatud häälekloonid. |
| `get_billing_summary` | — | R, I | Hangib saldo ja ametlikud paketihinnad; maksemuudatusi ei pakuta. |
| `create_agent_import` | `vendor`, `vendor_key` | O | Käivitab krüptitud Vapi, Retell, ElevenLabs või Bland impordi. |
| `get_agent_import` | `public_id` | R, I | Hangib kavandatud impordi erinevused. |
| `commit_agent_import` | `public_id` | — | Kinnitab ülevaadatud plaanist valitud agendid. |
| `search_docs` | `query`, valikuline `limit` | R, I, O | Otsib avalike dokumentide indeksist. |
| `get_doc_page` | `path` | R, I, O | Toob ühe avaliku Markdowni dokumentatsioonilehe. |

Kõik tootetööriistad kasutavad samu REST-i kooditeid nagu avalik API. REST-i valideerimine, organisatsiooni ulatus, rollid, arvelduse lubamine, kvoodid, TCPA kinnitus, teenusepakkuja turvalisus ja auditeerimiskäitumine kehtivad seega muutmata kujul.

## Hävitavate toimingute kinnitamine

D-ga märgitud tööriistad muudavad või eemaldavad midagi, mida ei saa taastada, või alustavad pärisinimestele helistamist. Need nõuavad kahte päringut. Esimene päring ei muuda midagi ja tagastab:

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

Assistent näitab kasutajale, mida see mõjutab, ja küsib kinnitust. Seejärel kordab ta päringut samade argumentidega ning lisab `confirmation_token`. Token kehtib 10 minutit ja hõlmab üht organisatsiooni, üht tööriista ning üht täpset argumentide komplekti, seega kolme agendi kustutamiseks on vaja kolme kinnitust. `campaign_action` väärtustega `pause` või `stop` jätab selle sammu vahele, et käimasoleva kampaania saaks alati kohe peatada.

## Alustusviibad

`prompts/list` pakub kuut korduskasutatavat töövoogu:

- `create_inbound_receptionist`
- `run_agent_tests`
- `import_vapi_assistants`
- `buy_and_attach_number`
- `review_low_grade_calls`
- `add_url_to_agent_knowledge`

Kasuta käsku `prompts/get` koos loetletud viiba nime ja selle deklareeritud argumentidega, et saada käivitamiseks valmis kasutajasõnum.

## Ressursid

`resources/list` avaldab avalikud vahemällu salvestatud viited:

| URI | Sisu |
| --- | --- |
| `thunderphone://docs/llms.txt` | Avaliku dokumentatsiooni indeks. |
| `thunderphone://docs/quickstart` | Kiirstardi Markdown. |
| `thunderphone://pricing` | Kehtiva avaliku hinnastuse Markdown. |

Loe üks neist käsuga `resources/read`. Avalikud päringud kasutavad lühikest ajalõppu, 2 MiB piirangut ja kümneminutilist protsessisisest vahemälu.

## Protokoll ja vead

Server toetab protokolliversioone `2025-06-18` ja `2025-03-26`; see tagastab toetatud kliendiversiooni ning muul juhul valib `2025-06-18`. See rakendab käsud `initialize`, `ping`, tööriistad, viibad, ressursid ja teavitused. Teavitused tagastavad `202 Accepted`. See olekuta server ei paku SSE-kuulajat ega seansi kustutamist, seega tagastavad `GET` ja `DELETE` väärtuse `405 Method Not Allowed` koos väärtusega `Allow: POST`.

Tööriistade tõrked jäävad edukateks JSON-RPC vastusteks koos väärtusega `isError: true`. Nende tekst sisaldab lühikest lauset, millele järgneb JSON-plokk:

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

Eristuv eesliide `outbound_tcpa_confirmation_required:` säilitatakse käsu `place_call` jaoks. Tundmatud JSON-RPC meetodid tagastavad HTTP `200` vastuses väärtuse `-32601`. JSON-RPC pakette MCP `2025-06-18` ei toeta ja need tagastavad korrektse `-32600` vigase päringu vea.
