---
title: "Naudokite ThunderPhone kaip MCP serverį"
description: "Kurkite, testuokite, tikrinkite ir valdykite ThunderPhone balso agentus naudodami Claude, ChatGPT, Claude Code, Codex, Cursor, VS Code arba kitą srautiniu HTTP MCP klientą."
---

ThunderPhone teikia srautinio HTTP Model Context Protocol serverį adresu:

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

Tai yra priešinga kryptis nei [nuotolinio MCP serverio prijungimas prie balso agento](/lt/guides/mcp-servers):

| Kryptis | Rezultatas |
| --- | --- |
| Nuotolinis MCP serveris → ThunderPhone agentas | Balso agentas gali kviesti nuotolinio serverio įrankius. |
| ThunderPhone → jūsų MCP klientas | Jūsų programavimo agentas gali kurti, testuoti ir valdyti ThunderPhone. |

## Autentifikavimas

Katalogo klientams pagal numatytuosius nustatymus naudokite [OAuth](/lt/guides/oauth): prisijunkite, pasirinkite organizaciją ir patvirtinkite prašomus leidimus. Prieigą atšaukite skiltyje **Organizacija → API raktai → Įgaliotos programos**.

Klientams, sukonfigūruotiems naudojant API raktą, sukurkite `sk_live_` raktą skiltyje **Organizacija → Raktai** ir pateikite jį MCP klientui kaip `THUNDERPHONE_API_KEY`. Raktas susietas su viena organizacija; kitos organizacijos turimas ID laikomas nerastu.

<Warning>
  `sk_live_` raktas gali skaityti organizacijos duomenis ir atlikti produkcinės aplinkos veiksmus, pvz., diegti agentus, inicijuoti skambučius, pirkti numerius, pradėti kampanijas ir šalinti išteklius. Nelaikykite jo naršyklės kode, saugyklose, ekrano kopijose ir pokalbių žurnaluose. Naudokite kliento slaptųjų duomenų saugyklą arba aplinkos palaikymą ir nedelsdami atšaukite atskleistą raktą.
</Warning>

## CLI ir stdio alternatyvos

[ThunderPhone CLI](/lt/guides/cli) gali įrašyti kliento konfigūraciją, išsaugodama
nesusijusius serverius:

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

Visuotinai įdiegę `@thunderphone/mcp`, naudokite `thunderphone-mcp setup` su
tomis pačiomis parinktimis. Sąranka palaiko Claude Code, Codex, Cursor, VS Code, Gemini, Claude
Desktop ir Windsurf. Pirmenybė teikiama tiesioginiam HTTP; Desktop naudoja stdio.

Bet kuriam stdio palaikančiam klientui sukonfigūruokite `command: "npx"` su
`args: ["-y", "@thunderphone/mcp"]`. Apvalkalas pirmiausia naudoja `THUNDERPHONE_API_KEY`,
tada prisijungimo duomenis iš `thunderphone login`, atnaujindamas nebegaliojančius prieigos raktus, o paskui
OAuth per `mcp-remote`. Prisijungimui įrenginiu ir OAuth reikalingas atitinkamas API
OAuth diegimas. API rakto keliui jo nereikia. Tiesioginės HTTP konfigūracijos neskaito
CLI prisijungimo duomenų saugyklos; norėdami pakartotinai naudoti prisijungimą įrenginiu, naudokite stdio apvalkalą.

Tai yra alternatyvos toliau pateiktoms rankinėms kliento konfigūracijoms.

## Kliento konfigūracija

Claude ir ChatGPT prisijungia naudodami [OAuth](/lt/guides/oauth); API rakto nereikia. Jei dar neturite ThunderPhone paskyros, prisijungimo puslapyje pasirinkite **Sukurti paskyrą** ir, patvirtinę el. paštą, grįšite į patvirtinimo ekraną.

### Claude (žiniatinklis, darbalaukis ir mobilieji įrenginiai)

1. Atidarykite **Nustatymai → Jungtys**. Jei ThunderPhone rodomas jungčių kataloge, pasirinkite jį. Kitu atveju pasirinkite **Pridėti pasirinktinę jungtį**, suteikite jai pavadinimą `ThunderPhone` ir įveskite `https://api.thunderphone.com/v1/mcp`.
2. Pasirinkite **Prisijungti**, prisijunkite prie ThunderPhone, pasirinkite organizaciją ir patvirtinkite leidimus.
3. Pokalbyje įrankių meniu įjunkite ThunderPhone ir pateikite prašymą, pavyzdžiui, „Išvardyk mano agentus“.

Pasirinktinėms jungtims reikia mokamo Claude plano. Team ir Enterprise planuose savininkas pirmiausia prideda jungtį organizacijos jungčių nustatymuose, tada kiekvienas narys prijungia savo ThunderPhone paskyrą.

### ChatGPT

1. Jei ThunderPhone rodomas ChatGPT programų kataloge, pasirinkite jį ir prisijunkite.
2. Kitu atveju atidarykite **Nustatymai → Programos ir jungtys → Išplėstiniai nustatymai**, įjunkite **Kūrėjo režimą** ir sukurkite jungtį su URL `https://api.thunderphone.com/v1/mcp` bei OAuth autentifikavimu.
3. Prisijunkite prie ThunderPhone, pasirinkite organizaciją ir patvirtinkite leidimus. Įtraukite ThunderPhone į pokalbį iš įrankių meniu.

Abiejose programose, ištrinant agentą ar telefono numerį, atmetant juodraštį ir paleidžiant kampaniją, prašoma papildomo patvirtinimo; žr. [Naikinamųjų veiksmų patvirtinimas](#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

Pridėkite tai į `~/.codex/config.toml`:

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

### Cursor

Sukurkite `.cursor/mcp.json`:

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

### Claude Desktop

Į Claude Desktop konfigūraciją pridėkite `mcp-remote` tarpinę jungtį:

```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

Sukurkite `.vscode/mcp.json` ir įveskite raktą per VS Code įvesties raginimą:

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

## Įrankiai

Kiekvienas įrankis turi MCP anotacijas. Lentelėse **R** reiškia tik skaitymą, **D** – naikinantį veiksmą, **I** – idempotentinį veiksmą, o **O** – sąveiką su atviruoju pasauliu arba tinklu. Brūkšnys reiškia, kad nėra nustatyta užuomina.

### Agentai

| Įrankis | Pagrindiniai argumentai | Anotacijos | Ką jis daro |
| --- | --- | --- | --- |
| `list_agents` | — | R, I | Pateikia agentų sąrašą. |
| `get_agent` | `agent_id` | R, I | Gauna vieną agentą. |
| `create_agent` | agento konfigūracija | — | Sukuria agentą. |
| `update_agent` | `agent_id`, pakeisti laukai | — | Įtraukia laukus į agento juodraštį. |
| `deploy_agent` | `agent_id`, pasirinktinis `if_updated_at` | I | Perkelia juodraštį į produkcinę aplinką. |
| `discard_agent_draft` | `agent_id`, pasirinktinis `if_updated_at`, `confirmation_token` antrojoje užklausoje | D, I | Atmeta įtrauktus pakeitimus. Dviejų etapų veiksmas; žr. [Naikinančių veiksmų patvirtinimas](#confirming-destructive-actions). |
| `duplicate_agent` | `agent_id`, pasirinktinis `name` | — | Nukopijuoja agentą organizacijoje. |
| `delete_agent` | `agent_id`, `confirmation_token` antrojoje užklausoje | D, I | Negrįžtamai ištrina agentą. Dviejų etapų veiksmas. |
| `list_agent_versions` | `agent_id` | R, I | Pateikia įdiegtų konfigūracijos versijų sąrašą. |

### Telefono numeriai ir ryšio paslaugų teikėjai

| Įrankis | Pagrindiniai argumentai | Anotacijos | Ką jis daro |
| --- | --- | --- | --- |
| `list_phone_numbers` | — | R, I | Pateikia organizacijos numerių ir nukreipimo sąrašą. |
| `get_phone_number_limits` | — | R, I | Gauna valdomų numerių naudojimo duomenis ir limitus. |
| `provision_phone_number` | pasirinktinis `area_code`, `city`, `state`, `idempotency_key` | O | Perka ThunderPhone valdomą įeinantį numerį. |
| `list_voip_connections` | — | R, I | Pateikia prijungtų klientų ryšio paslaugų teikėjų sąrašą. |
| `search_voip_numbers` | `connection_id`, `country`, `type`, pasirinktinis `area_code` | R, I, O | Ieško ryšio paslaugų teikėjo numerių inventoriuje. |
| `import_voip_numbers` | `connection_id`, `numbers` | O | Importuoja numerius, kurie jau priklauso ryšio paslaugų teikėjui. |
| `update_phone_number` | `phone_number_id`, nukreipimo / žymos / webhook laukai | — | Atnaujina numerio nukreipimą, įskaitant agento priskyrimą. |
| `delete_phone_number` | `phone_number_id`, `confirm`, pasirinktinis `release_at_provider`, `confirmation_token` antrojoje užklausoje | D, I, O | Atlaisvina numerį. Dviejų etapų veiksmas. |

### Skambučiai

| Įrankis | Pagrindiniai argumentai | Anotacijos | Ką jis daro |
| --- | --- | --- | --- |
| `list_calls` | pasirinktiniai filtrai, `limit`, `offset` | R, I | Pateikia skambučių sąrašą su REST skambučių istorijos filtrais. |
| `get_call` | `call_id` | R, I | Gauna skambučio būseną ir metaduomenis. |
| `get_call_transcript` | `call_id`, pasirinktinis `live` | R, I | Gauna skambučio transkriptą. |
| `get_call_audio_url` | `call_id`, pasirinktinis `download` | R, I, O | Grąžina pasirašytą garso URL; garsas niekada netransliuojamas per MCP. |
| `get_call_grade` | `call_id` | R, I | Gauna naujausią skambučio įvertinimą. |
| `place_call` | `agent_id`, `from_number`, `to_number` | O | Atlieka vieną ne idempotentinį išeinantį skambutį. |
| `export_calls` | skambučių filtrai, `export_format` | R, I | Eksportuoja iki REST galinio taško ribos kaip JSON arba CSV. |

### Testavimas ir tikrinimas

| Įrankis | Pagrindiniai argumentai | Anotacijos | Ką jis daro |
| --- | --- | --- | --- |
| `list_test_scenarios` | `agent_id` | R, I | Pateikia testavimo scenarijų sąrašą. |
| `create_test_scenario` | `agent_id`, `title`, `scenario_prompt`, pasirinktinės sąlygos | — | Sukuria scenarijų. |
| `generate_test_scenarios` | `agent_id`, pasirinktinis `count`, `include_edge_cases`, `locale` | O | Generuoja scenarijus pagal agento raginimą. |
| `run_agent_tests` | `agent_id`, `channel`, `consent_to_charge`, pasirinktinė atranka / matrica | O | Vykdo scenarijus per žiniatinklį arba telefoniją. |
| `get_test_run` | `agent_id`, `batch_id` | R, I | Gauna paketo būseną ir kiekvieno scenarijaus rezultatus. |
| `list_validation_runs` | `agent_id` | R, I | Pateikia naujausių juodraščio tikrinimo vykdymų sąrašą. |
| `get_validation_status` | `agent_id` | R, I | Gauna naujausią tikrinimo būseną ir juodraščio atitiktį. |

### Žinios

| Įrankis | Pagrindiniai argumentai | Anotacijos | Ką jis daro |
| --- | --- | --- | --- |
| `list_knowledge_bases` | — | R, I | Pateikia žinių bazių sąrašą. |
| `create_knowledge_base` | `name`, pasirinktinis `description` | — | Sukuria žinių bazę. |
| `add_knowledge_document` | `knowledge_base_id`, `name`, `content` | — | Prideda tekstą arba Markdown. |
| `import_knowledge_url` | `url`, pasirinktinis `name` | O | Įtraukia viešą puslapį į saugaus įkėlimo eilę. |
| `search_knowledge` | `knowledge_base_id`, `query` | R, I | Ieško produkcinėje gavimo sistemoje. |

### Integracijos, webhook ir nuotoliniai MCP serveriai

| Įrankis | Pagrindiniai argumentai | Anotacijos | Ką jis daro |
| --- | --- | --- | --- |
| `list_integrations` | — | R, I | Pateikia HTTP funkcijų integracijų sąrašą. |
| `create_integration` | `display_name`, funkcijos `spec`, pasirinktiniai galinio taško laukai | — | Sukuria HTTP įrankį. |
| `test_integration` | `url`, pasirinktinis metodas / antraštės / turinys / laikas | O | Siunčia ribotą, nuo SSRF apsaugotą bandomąją užklausą. |
| `list_webhook_endpoints` | — | R, I | Pateikia pasirašytų webhook galinių taškų sąrašą. |
| `create_webhook_endpoint` | `label`, `url`, pasirinktiniai įvykiai / būsena | O | Sukuria pasirašytą webhook galinį tašką. |
| `test_webhook_endpoint` | `endpoint_id` | O | Siunčia sintetinį įvykį naudodamas įprastą pristatymą. |
| `list_mcp_servers` | — | R, I | Pateikia nuotolinių serverių, kuriuos gali iškviesti balso agentai, sąrašą. |
| `create_mcp_server` | `display_name`, `url`, pasirinktinės antraštės | O | Registruoja ir sinchronizuoja nuotolinį serverį. |
| `sync_mcp_server_tools` | `server_id` | O | Atnaujina nuotolinio serverio įrankių katalogą. |

### Kampanijos

| Įrankis | Pagrindiniai argumentai | Anotacijos | Ką jis daro |
| --- | --- | --- | --- |
| `list_campaigns` | — | R, I | Pateikia išeinančių kampanijų sąrašą. |
| `create_campaign` | kampanijos laukai | — | Sukuria kampanijos juodraštį. |
| `add_campaign_contacts` | `campaign_id`, `contacts` | — | Prideda iki 5 000 JSON kontaktų. |
| `campaign_action` | `campaign_id`, `action`, pasirinktinis `consent_to_charge`, `confirmation_token` antrojoje užklausoje | D, O | Vykdo `start`, `pause`, `resume` arba `stop`. `start` ir `resume` yra dviejų etapų veiksmai; `pause` ir `stop` vykdomi iš karto. |
| `get_campaign_stats` | `campaign_id` | R, I | Gauna skaitiklius ir naujausias baigtis. |

### Balsai, atsiskaitymas, importavimas ir dokumentacija

| Įrankis | Pagrindiniai argumentai | Anotacijos | Ką jis daro |
| --- | --- | --- | --- |
| `list_voices` | — | R, I | Pateikia balsų ir palaikomų kalbų sąrašą. |
| `preview_voice` | `voice`, `language`, `text` | O | Sugeneruoja pavyzdį ir grąžina pasirašytą URL. |
| `list_voice_clones` | — | R, I | Pateikia pasirinktinių balso kopijų sąrašą. |
| `get_billing_summary` | — | R, I | Gauna likutį ir oficialias pakopų kainas; mokėjimų pakeitimo veiksmai neteikiami. |
| `create_agent_import` | `vendor`, `vendor_key` | O | Pradeda šifruotą Vapi, Retell, ElevenLabs arba Bland importavimą. |
| `get_agent_import` | `public_id` | R, I | Gauna siūlomą importavimo skirtumą. |
| `commit_agent_import` | `public_id` | — | Patvirtina iš peržiūrėto plano pasirinktus agentus. |
| `search_docs` | `query`, pasirinktinis `limit` | R, I, O | Ieško viešos dokumentacijos indekse. |
| `get_doc_page` | `path` | R, I, O | Gauna vieną viešą Markdown dokumentacijos puslapį. |

Visi produkto įrankiai naudoja tuos pačius REST kodo kelius kaip viešoji API. Todėl REST tikrinimas, organizacijos aprėptis, vaidmenys, atsiskaitymo patvirtinimas, kvotos, TCPA patvirtinimas, tiekėjo sauga ir audito veikimas taikomi be pakeitimų.

## Destruktyvių veiksmų patvirtinimas

Įrankiai, pažymėti D, pakeičia arba pašalina tai, ko negalima atkurti, arba pradeda skambinti tikriems žmonėms. Jiems reikia dviejų užklausų. Pirmoji užklausa nieko nekeičia ir grąžina:

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

Asistentas parodo naudotojui, kas bus paveikta, ir paprašo patvirtinimo. Tada jis pakartoja užklausą su tais pačiais argumentais ir papildomu `confirmation_token`. Žetonas galioja 10 minučių ir apima vieną organizaciją, vieną įrankį ir vieną tikslų argumentų rinkinį, todėl norint ištrinti tris agentus reikia trijų patvirtinimų. `campaign_action` su `pause` arba `stop` praleidžia šį veiksmą, kad vykdomą kampaniją visada būtų galima nedelsiant sustabdyti.

## Pradinės užklausos

`prompts/list` pateikia šešias pakartotinai naudojamas darbo eigas:

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

Naudokite `prompts/get` su nurodytu užklausos pavadinimu ir jo deklaruotais argumentais, kad gautumėte paruoštą vykdyti naudotojo pranešimą.

## Ištekliai

`resources/list` pateikia viešas, podėlyje saugomas nuorodas:

| URI | Turinys |
| --- | --- |
| `thunderphone://docs/llms.txt` | Viešos dokumentacijos rodyklė. |
| `thunderphone://docs/quickstart` | Trumpasis pradžios vadovas Markdown formatu. |
| `thunderphone://pricing` | Dabartinė vieša kainodara Markdown formatu. |

Vieną iš jų nuskaitykite naudodami `resources/read`. Viešoms užklausoms taikoma trumpa laukimo trukmė, 2 MiB riba ir dešimties minučių proceso podėlis.

## Protokolas ir klaidos

Serveris palaiko protokolo versijas `2025-06-18` ir `2025-03-26`; jis atkartoja palaikomą kliento versiją, o kitu atveju parenka `2025-06-18`. Jis įgyvendina `initialize`, `ping`, įrankius, užklausas, išteklius ir pranešimus. Pranešimai grąžina `202 Accepted`. Šis bestatis serveris nepateikia SSE klausytojo ar sesijos ištrynimo, todėl `GET` ir `DELETE` grąžina `405 Method Not Allowed` su `Allow: POST`.

Įrankių nesėkmės išlieka sėkmingais JSON-RPC atsakymais su `isError: true`. Jų tekste pateikiamas trumpas sakinys, po kurio eina JSON blokas:

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

Išskirtinė `outbound_tcpa_confirmation_required:` priešdėlio forma išlaikoma `place_call`. Nežinomi JSON-RPC metodai grąžina `-32601` HTTP `200` atsakyme. JSON-RPC paketai nėra palaikomi MCP `2025-06-18` ir grąžina aiškią `-32600` netinkamos užklausos klaidą.
