---
title: "Uporabljajte ThunderPhone kot strežnik MCP"
description: "Gradite, preizkušajte, potrjujte in upravljajte glasovne agente ThunderPhone iz Claude, ChatGPT, Claude Code, Codex, Cursor, VS Code ali drugega odjemalca Streamable HTTP MCP."
---

ThunderPhone ponuja pretočni strežnik HTTP Model Context Protocol na naslovu:

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

To je nasprotna smer od [povezovanja oddaljenega strežnika MCP z glasovnim agentom](/sl/guides/mcp-servers):

| Smer | Rezultat |
| --- | --- |
| Oddaljeni strežnik MCP → agent ThunderPhone | Glasovni agent lahko kliče orodja oddaljenega strežnika. |
| ThunderPhone → vaš odjemalec MCP | Vaš agent za programiranje lahko razvija, preizkuša in upravlja ThunderPhone. |

## Preverjanje pristnosti

Za odjemalce v imeniku privzeto uporabite [OAuth](/sl/guides/oauth): prijavite se, izberite organizacijo in odobrite zahtevana dovoljenja. Dostop prekličite v **Organizacija → Ključi API → Pooblaščene aplikacije**.

Za odjemalce, konfigurirane s ključem API, ustvarite ključ `sk_live_` v **Organizacija → Ključi** in ga svojemu odjemalcu MCP izpostavite kot `THUNDERPHONE_API_KEY`. Ključ je vezan na eno organizacijo; id, ki pripada drugi organizaciji, se obravnava kot da ne obstaja.

<Warning>
  Ključ `sk_live_` lahko bere podatke organizacije in izvaja produkcijska dejanja, kot so uvajanje agentov, vzpostavljanje klicev, nakup številk, začetek kampanj in brisanje virov. Ne vključujte ga v kodo brskalnika, repozitorije, posnetke zaslona in dnevnike klepetov. Uporabite shrambo skrivnosti ali podporo za okoljske spremenljivke svojega odjemalca ter izpostavljen ključ nemudoma prekličite.
</Warning>

## Možnosti CLI in stdio

[CLI ThunderPhone](/sl/guides/cli) lahko zapiše konfiguracijo odjemalca in pri tem ohrani
nepovezane strežnike:

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

Po globalni namestitvi `@thunderphone/mcp` uporabite `thunderphone-mcp setup` z
enakimi možnostmi. Nastavitev podpira Claude Code, Codex, Cursor, VS Code, Gemini, Claude
Desktop in Windsurf. Prednost ima neposredni HTTP; Desktop uporablja stdio.

Za katerega koli odjemalca, ki podpira stdio, konfigurirajte `command: "npx"` z
`args: ["-y", "@thunderphone/mcp"]`. Ovojnica najprej uporabi `THUNDERPHONE_API_KEY`,
nato poverilnice iz `thunderphone login`, pri čemer osveži potekle žetone, nato pa
OAuth prek `mcp-remote`. Prijava z napravo in OAuth zahtevata ustrezno uvedbo
OAuth za API. Pot s ključem API tega ne zahteva. Konfiguracije neposrednega HTTP ne berejo
shrambe poverilnic CLI; za ponovno uporabo prijave z napravo uporabite ovojnico stdio.

To so možnosti namesto spodnjih ročnih konfiguracij odjemalca.

## Konfiguracija odjemalca

Claude in ChatGPT se prijavita z [OAuth](/sl/guides/oauth); ključ API ni potreben. Če še nimate računa ThunderPhone, na strani za prijavo izberite **Ustvari račun**; po potrditvi e-poštnega naslova se vrnete na zaslon za odobritev.

### Claude (splet, namizje in mobilne naprave)

1. Odprite **Nastavitve → Povezovalniki**. Če je ThunderPhone prikazan v imeniku povezovalnikov, ga izberite. V nasprotnem primeru izberite **Dodajte povezovalnik po meri**, ga poimenujte `ThunderPhone` in vnesite `https://api.thunderphone.com/v1/mcp`.
2. Izberite **Poveži**, prijavite se v ThunderPhone, izberite organizacijo in odobrite dovoljenja.
3. V klepetu v meniju orodij omogočite ThunderPhone in zahtevajte, kar potrebujete, na primer »Prikaži moje agente«.

Povezovalniki po meri zahtevajo plačljivi paket Claude. Pri paketih Team in Enterprise lastnik najprej doda povezovalnik v nastavitvah povezovalnikov organizacije, nato pa vsak član poveže svoj račun ThunderPhone.

### ChatGPT

1. Če je ThunderPhone prikazan v imeniku aplikacij ChatGPT, ga izberite in povežite.
2. V nasprotnem primeru odprite **Nastavitve → Aplikacije in povezovalniki → Napredne nastavitve**, vklopite **Način za razvijalce** in ustvarite povezovalnik z URL-jem `https://api.thunderphone.com/v1/mcp` ter preverjanjem pristnosti OAuth.
3. Prijavite se v ThunderPhone, izberite organizacijo in odobrite dovoljenja. V klepet dodajte ThunderPhone iz menija orodij.

Brisanje agenta ali telefonske številke, zavrženje osnutka in zagon kampanje v obeh aplikacijah zahtevajo drugo potrditev; glejte [Potrjevanje uničujočih dejanj](#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

To dodajte v `~/.codex/config.toml`:

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

### Cursor

Ustvarite `.cursor/mcp.json`:

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

### Claude Desktop

V konfiguracijo Claude Desktop dodajte most `mcp-remote`:

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

Ustvarite `.vscode/mcp.json` in ključ vnesite v pozivnem oknu za vnos v VS Code:

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

## Orodja

Vsako orodje vsebuje anotacije MCP. V tabelah **R** pomeni samo za branje, **D** destruktivno, **I** idempotentno in **O** interakcijo z odprtim svetom/omrežjem. Pomišljaj pomeni, da ni nastavljen noben namig.

### Agenti

| Orodje | Glavni argumenti | Anotacije | Kaj počne |
| --- | --- | --- | --- |
| `list_agents` | — | R, I | Navede agente. |
| `get_agent` | `agent_id` | R, I | Pridobi enega agenta. |
| `create_agent` | konfiguracija agenta | — | Ustvari agenta. |
| `update_agent` | `agent_id`, spremenjena polja | — | Doda polja v osnutek agenta. |
| `deploy_agent` | `agent_id`, izbirni `if_updated_at` | I | Promovira osnutek v produkcijo. |
| `discard_agent_draft` | `agent_id`, izbirni `if_updated_at`, `confirmation_token` pri drugi zahtevi | D, I | Zavrže pripravljene spremembe. Dvostopenjsko, glejte [Potrjevanje destruktivnih dejanj](#confirming-destructive-actions). |
| `duplicate_agent` | `agent_id`, izbirni `name` | — | Kopira agenta znotraj organizacije. |
| `delete_agent` | `agent_id`, `confirmation_token` pri drugi zahtevi | D, I | Trajno izbriše agenta. Dvostopenjsko. |
| `list_agent_versions` | `agent_id` | R, I | Navede nameščene različice konfiguracije. |

### Telefonske številke in ponudniki

| Orodje | Glavni argumenti | Anotacije | Kaj počne |
| --- | --- | --- | --- |
| `list_phone_numbers` | — | R, I | Navede številke organizacije in usmerjanje. |
| `get_phone_number_limits` | — | R, I | Pridobi porabo in omejitve upravljanih številk. |
| `provision_phone_number` | izbirni `area_code`, `city`, `state`, `idempotency_key` | O | Kupi dohodno številko, ki jo upravlja ThunderPhone. |
| `list_voip_connections` | — | R, I | Navede povezane ponudnike strank. |
| `search_voip_numbers` | `connection_id`, `country`, `type`, izbirni `area_code` | R, I, O | Preišče inventar ponudnika. |
| `import_voip_numbers` | `connection_id`, `numbers` | O | Uvozi številke, ki so že v lasti pri ponudniku. |
| `update_phone_number` | `phone_number_id`, polja za usmerjanje/oznako/webhook | — | Posodobi usmerjanje številke, vključno z dodelitvijo agenta. |
| `delete_phone_number` | `phone_number_id`, `confirm`, izbirni `release_at_provider`, `confirmation_token` pri drugi zahtevi | D, I, O | Sprosti številko. Dvostopenjsko. |

### Klici

| Orodje | Glavni argumenti | Anotacije | Kaj počne |
| --- | --- | --- | --- |
| `list_calls` | izbirni filtri, `limit`, `offset` | R, I | Navede klice s filtri zgodovine klicev REST. |
| `get_call` | `call_id` | R, I | Pridobi stanje in metapodatke klica. |
| `get_call_transcript` | `call_id`, izbirni `live` | R, I | Pridobi prepis klica. |
| `get_call_audio_url` | `call_id`, izbirni `download` | R, I, O | Vrne podpisan URL za zvok; zvoka nikoli ne pretaka prek MCP. |
| `get_call_grade` | `call_id` | R, I | Pridobi najnovejšo oceno klica. |
| `place_call` | `agent_id`, `from_number`, `to_number` | O | Izvede en neidempotenten odhodni klic. |
| `export_calls` | filtri klicev, `export_format` | R, I | Izvozi do omejitve končne točke REST v obliki JSON ali CSV. |

### Testiranje in preverjanje

| Orodje | Glavni argumenti | Anotacije | Kaj počne |
| --- | --- | --- | --- |
| `list_test_scenarios` | `agent_id` | R, I | Navede testne scenarije. |
| `create_test_scenario` | `agent_id`, `title`, `scenario_prompt`, izbirni pogoji | — | Ustvari scenarij. |
| `generate_test_scenarios` | `agent_id`, izbirni `count`, `include_edge_cases`, `locale` | O | Ustvari scenarije iz poziva agenta. |
| `run_agent_tests` | `agent_id`, `channel`, `consent_to_charge`, izbirna izbira/matrika | O | Izvede scenarije prek spleta ali telefonije. |
| `get_test_run` | `agent_id`, `batch_id` | R, I | Pridobi stanje paketa in rezultate posameznih scenarijev. |
| `list_validation_runs` | `agent_id` | R, I | Navede nedavna izvajanja preverjanja osnutka. |
| `get_validation_status` | `agent_id` | R, I | Pridobi najnovejše stanje preverjanja in ujemanje osnutka. |

### Znanje

| Orodje | Glavni argumenti | Anotacije | Kaj počne |
| --- | --- | --- | --- |
| `list_knowledge_bases` | — | R, I | Navede baze znanja. |
| `create_knowledge_base` | `name`, izbirni `description` | — | Ustvari bazo znanja. |
| `add_knowledge_document` | `knowledge_base_id`, `name`, `content` | — | Doda besedilo ali Markdown. |
| `import_knowledge_url` | `url`, izbirni `name` | O | Doda javno stran v čakalno vrsto za varen vnos. |
| `search_knowledge` | `knowledge_base_id`, `query` | R, I | Išče po produkcijskem pridobivanju znanja. |

### Integracije, webhooki in oddaljeni strežniki MCP

| Orodje | Glavni argumenti | Anotacije | Kaj počne |
| --- | --- | --- | --- |
| `list_integrations` | — | R, I | Navede integracije funkcij HTTP. |
| `create_integration` | `display_name`, specifikacija funkcije `spec`, izbirna polja končne točke | — | Ustvari orodje HTTP. |
| `test_integration` | `url`, izbirni method/headers/body/timeout | O | Pošlje omejeno testno zahtevo, zaščiteno pred SSRF. |
| `list_webhook_endpoints` | — | R, I | Navede podpisane končne točke webhookov. |
| `create_webhook_endpoint` | `label`, `url`, izbirni events/status | O | Ustvari podpisano končno točko webhooka. |
| `test_webhook_endpoint` | `endpoint_id` | O | Pošlje sintetični dogodek prek običajne dostave. |
| `list_mcp_servers` | — | R, I | Navede oddaljene strežnike, ki jih lahko kličejo glasovni agenti. |
| `create_mcp_server` | `display_name`, `url`, izbirni headers | O | Registrira in sinhronizira oddaljeni strežnik. |
| `sync_mcp_server_tools` | `server_id` | O | Osveži katalog orodij oddaljenega strežnika. |

### Kampanje

| Orodje | Glavni argumenti | Anotacije | Kaj počne |
| --- | --- | --- | --- |
| `list_campaigns` | — | R, I | Navede odhodne kampanje. |
| `create_campaign` | polja kampanje | — | Ustvari osnutek kampanje. |
| `add_campaign_contacts` | `campaign_id`, `contacts` | — | Doda do 5.000 stikov JSON. |
| `campaign_action` | `campaign_id`, `action`, izbirni `consent_to_charge`, `confirmation_token` pri drugi zahtevi | D, O | Izvede `start`, `pause`, `resume` ali `stop`. `start` in `resume` sta dvostopenjska; `pause` in `stop` se izvedeta takoj. |
| `get_campaign_stats` | `campaign_id` | R, I | Pridobi števce in nedavne rezultate. |

### Glasovi, obračunavanje, uvozi in dokumentacija

| Orodje | Glavni argumenti | Anotacije | Kaj počne |
| --- | --- | --- | --- |
| `list_voices` | — | R, I | Navede glasove in podprte jezike. |
| `preview_voice` | `voice`, `language`, `text` | O | Ustvari vzorec in vrne podpisan URL. |
| `list_voice_clones` | — | R, I | Navede prilagojene klone glasov. |
| `get_billing_summary` | — | R, I | Pridobi dobroimetje in uradne cene paketov; spremembe plačil niso izpostavljene. |
| `create_agent_import` | `vendor`, `vendor_key` | O | Začne šifriran uvoz iz Vapi, Retell, ElevenLabs ali Bland. |
| `get_agent_import` | `public_id` | R, I | Pridobi predlagano razliko pri uvozu. |
| `commit_agent_import` | `public_id` | — | Uveljavi izbrane agente iz pregledanega načrta. |
| `search_docs` | `query`, izbirni `limit` | R, I, O | Preišče javni indeks dokumentacije. |
| `get_doc_page` | `path` | R, I, O | Pridobi eno javno stran dokumentacije Markdown. |

Vsa produktna orodja uporabljajo iste kodne poti REST kot javni API. Preverjanje REST, omejevanje na organizacijo, vloge, odobritev obračunavanja, kvote, potrditev TCPA, varnost ponudnika in revizijsko vedenje zato veljajo nespremenjeno.

## Potrjevanje destruktivnih dejanj

Orodja, označena z D, spremenijo ali odstranijo nekaj, česar ni mogoče obnoviti, ali začnejo klicati resnične osebe. Zahtevajo dve zahtevi. Prva zahteva ničesar ne spremeni in vrne:

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

Pomočnik uporabniku prikaže, na kaj to vpliva, in zaprosi za potrditev. Nato zahtevo ponovi z enakimi argumenti in dodatnim `confirmation_token`. Žeton je veljaven 10 minut ter velja za eno organizacijo, eno orodje in en natančen nabor argumentov, zato brisanje treh agentov zahteva tri potrditve. `campaign_action` z `pause` ali `stop` ta korak preskoči, da je mogoče aktivno kampanjo vedno takoj ustaviti.

## Začetni pozivi

`prompts/list` ponuja šest delovnih tokov za ponovno uporabo:

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

Uporabite `prompts/get` z navedenim imenom poziva in njegovimi deklariranimi argumenti, da prejmete uporabniško sporočilo, pripravljeno za zagon.

## Viri

`resources/list` izpostavlja javne predpomnjene reference:

| URI | Vsebina |
| --- | --- |
| `thunderphone://docs/llms.txt` | Kazalo javne dokumentacije. |
| `thunderphone://docs/quickstart` | Markdown za hitri začetek. |
| `thunderphone://pricing` | Markdown s trenutno javno cenovno ponudbo. |

Posamezen vir preberite z `resources/read`. Javna pridobivanja uporabljajo kratek časovni limit, omejitev 2 MiB in desetminutni predpomnilnik znotraj procesa.

## Protokol in napake

Strežnik podpira različici protokola `2025-06-18` in `2025-03-26`; vrne podprto različico odjemalca, sicer pa izbere `2025-06-18`. Izvaja `initialize`, `ping`, orodja, pozive, vire in obvestila. Obvestila vrnejo `202 Accepted`. Ta strežnik brez stanja ne izpostavlja poslušalca SSE ali brisanja sej, zato `GET` in `DELETE` vrneta `405 Method Not Allowed` z `Allow: POST`.

Napake orodij ostanejo uspešni odgovori JSON-RPC z `isError: true`. Njihovo besedilo vsebuje kratek stavek, ki mu sledi blok JSON:

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

Razločna predpona `outbound_tcpa_confirmation_required:` se ohrani za `place_call`. Neznane metode JSON-RPC vrnejo `-32601` v odgovoru HTTP `200`. Paketi JSON-RPC niso podprti v MCP `2025-06-18` in vrnejo čisto napako neveljavne zahteve `-32600`.
