ThunderPhone 2.0 вече е тук.Започнете самостоятелно — от 2 цента/мин.Прочетете съобщението

Connect tools & data

Използвайте ThunderPhone като MCP сървър

Създавайте, тествайте, валидирайте и управлявайте гласови агенти на ThunderPhone от Claude, ChatGPT, Claude Code, Codex, Cursor, VS Code или друг Streamable HTTP MCP клиент.

ThunderPhone предоставя HTTP сървър с поточно предаване за Протокола за контекст на модела на:

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

Това е обратната посока спрямо свързването на отдалечен MCP сървър с гласов агент:

ПосокаРезултат
Отдалечен MCP сървър → агент на ThunderPhoneГласов агент може да извиква инструментите на отдалечения сървър.
ThunderPhone → вашият MCP клиентВашият агент за програмиране може да създава, тества и управлява ThunderPhone.

Удостоверяване

Използвайте OAuth по подразбиране за клиенти от директорията: влезте, изберете организация и одобрете поисканите разрешения. Отнемете достъпа от Организация → API ключове → Упълномощени приложения.

За клиенти, конфигурирани с API ключ, създайте ключ sk_live_ от Организация → Ключове и го предоставете на вашия MCP клиент като THUNDERPHONE_API_KEY. Ключът е обвързан с една организация; идентификатор, притежаван от друга организация, се третира като несъществуващ.

Алтернативи с CLI и stdio

CLI на ThunderPhone може да запише конфигурация на клиента, като запази несвързаните сървъри:

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

След глобална инсталация на @thunderphone/mcp използвайте thunderphone-mcp setup със същите опции. Настройката поддържа Claude Code, Codex, Cursor, VS Code, Gemini, Claude Desktop и Windsurf. Директният HTTP е предпочитан; Desktop използва stdio.

За всеки клиент, който поддържа stdio, конфигурирайте command: "npx" с args: ["-y", "@thunderphone/mcp"]. Обвивката първо използва THUNDERPHONE_API_KEY, след това идентификационните данни от thunderphone login, като обновява изтеклите токени, а после OAuth чрез mcp-remote. Влизането от устройство и OAuth изискват съответното внедряване на API OAuth. Пътят с API ключ не го изисква. Директните HTTP конфигурации не четат хранилището за идентификационни данни на CLI; използвайте обвивката stdio, за да използвате повторно влизането от устройство.

Това са алтернативи на ръчните конфигурации на клиенти по-долу.

Конфигуриране на клиента

Claude и ChatGPT влизат чрез OAuth; не се използва API ключ. Ако все още нямате акаунт в ThunderPhone, изберете Създаване на акаунт на страницата за вход и след потвърждаване на имейла си ще се върнете към екрана за одобрение.

Claude (уеб, настолен компютър и мобилно устройство)

  1. Отворете Персонализиране → Конектори (Настройки → Конектори в по-стари версии). Ако ThunderPhone се показва в директорията с конектори, изберете го. В противен случай изберете Добавяне на персонализиран конектор, наименувайте го ThunderPhone и въведете https://api.thunderphone.com/v1/mcp.
  2. Изберете Свързване, влезте в ThunderPhone, изберете организацията и одобрете разрешенията.
  3. В чат активирайте ThunderPhone от менюто с инструменти и поискайте това, от което се нуждаете, например „Изброй моите агенти“.

Claude пита, преди да използва всеки инструмент за първи път. За да пропуснете повечето от тези подкани, отворете Персонализиране → Конектори → ThunderPhone и настройте Инструменти само за четене да бъдат винаги разрешени. Тези инструменти само извличат информация: агенти, обаждания, транскрипции, салда, документация. Оставете Инструменти за записване/изтриване с изискване за одобрение, ако искате да виждате всяка промяна, преди да се извърши.

Персонализираните конектори изискват платен план за Claude. При планове Team и Enterprise собственикът първо добавя конектора в настройките за конектори на организацията, след което всеки член свързва собствения си акаунт в ThunderPhone.

ChatGPT

  1. Ако ThunderPhone се показва в директорията с приложения на ChatGPT, изберете го и го свържете.
  2. В противен случай отворете Настройки → Приложения и конектори → Разширени настройки, включете Режим за разработчици и създайте конектор с URL адрес https://api.thunderphone.com/v1/mcp и OAuth удостоверяване.
  3. Влезте в ThunderPhone, изберете организацията и одобрете разрешенията. Добавете ThunderPhone към чат от менюто с инструменти.

Изтриването на агент или телефонен номер, отхвърлянето на чернова, стартирането на кампания и изпращането на тестова заявка, която може да записва във външна система, изискват второ потвърждение и в двете приложения; вижте Потвърждаване на разрушителни действия.

Claude Code

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

Codex

Добавете това към ~/.codex/config.toml:

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

Cursor

Създайте .cursor/mcp.json:

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

Claude Desktop

Добавете мост mcp-remote към конфигурацията на Claude Desktop:

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

Създайте .vscode/mcp.json и въведете ключа чрез подканата за въвеждане на VS Code:

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

Инструменти

Всеки инструмент съдържа MCP анотации. В таблиците R означава само за четене, D — деструктивен, I — идемпотентен, а O — взаимодействие с външния свят/мрежата. Тире означава, че няма зададена подсказка.

Връзка

ИнструментОсновни аргументиАнотацииКакво прави
get_connection_identity—R, IВалидира идентификационните данни и връща организацията и безопасни метаданни за идентификационните данни.

Агенти

ИнструментОсновни аргументиАнотацииКакво прави
list_agents—R, IИзвежда списък с агенти.
get_agentagent_idR, IИзвлича един агент.
create_agentконфигурация на агент—Създава агент.
update_agentagent_id, променени полетаDПодготвя полета в черновата на агента, като заменя съществуващите в черновата. Изпълнява се без стъпка за потвърждение: внедреният агент остава непроменен до deploy_agent, а discard_agent_draft връща черновата към предишното ѝ състояние.
deploy_agentagent_id, незадължителен if_updated_atD, IПубликува черновата в продукционна среда.
discard_agent_draftagent_id, незадължителен if_updated_at, confirmation_token при втората заявкаD, IОтхвърля подготвените промени. В две стъпки; вижте Потвърждаване на разрушителни действия.
duplicate_agentagent_id, незадължителен name—Копира агент в организацията.
delete_agentagent_id, confirmation_token при втората заявкаD, IИзтрива агент завинаги. В две стъпки.
list_agent_versionsagent_idR, IИзвежда списък с внедрените версии на конфигурацията.

Телефонни номера и оператори

ИнструментОсновни аргументиАнотацииКакво прави
list_phone_numbers—R, IИзвежда номерата и маршрутизацията на организацията.
get_phone_number_limits—R, IПолучава използването и ограниченията на управляваните номера.
provision_phone_numberнезадължителни area_code, city, state, idempotency_keyD, OКупува входящ номер, управляван от ThunderPhone.
list_voip_connections—R, IИзвежда свързаните телекомуникационни доставчици на клиента.
search_voip_numbersconnection_id, country, type, незадължителен area_codeR, I, OТърси в наличните номера на доставчика.
import_voip_numbersconnection_id, numbersD, OИмпортира номера, които вече са притежавани при доставчика.
update_phone_numberphone_number_id, полета за маршрутизация/етикет/webhookDАктуализира маршрутизацията на номера, включително назначаването на агент.
delete_phone_numberphone_number_id, confirm, незадължителен release_at_provider, confirmation_token при втората заявкаD, I, OОсвобождава номер. В две стъпки.

SMS

ИнструментОсновни аргументиАнотацииКакво прави
send_smsfrom_number, to, body, idempotency_keyD, I, OИзпраща едно SMS съобщение с обикновен текст чрез свързан номер на Twilio или Telnyx.

Обаждания

ИнструментОсновни аргументиАнотацииКакво прави
list_callsнезадължителни филтри, limit, offsetR, IИзвежда списък с обаждания, използвайки REST филтрите за историята на обажданията.
get_callcall_idR, IПолучава статуса и метаданните на обаждане.
get_call_transcriptcall_id, незадължителен liveR, IПолучава транскрипцията на обаждането.
get_call_audio_urlcall_id, незадължителен downloadR, I, OВръща подписан URL адрес за аудио; никога не предава аудио поточно чрез MCP.
get_call_gradecall_idR, IПолучава най-новата оценка на обаждането.
place_callagent_id, from_number, to_numberD, OОсъществява едно неизпълнимо повторно изходящо обаждане.
export_callsфилтри за обаждания, export_formatR, IЕкспортира до лимита на REST крайна точка като JSON или CSV.

Тестване и валидиране

ИнструментОсновни аргументиАнотацииКакво прави
list_test_scenariosagent_idR, IИзвежда списък с тестови сценарии.
create_test_scenarioagent_id, title, scenario_prompt, незадължителни условия—Създава сценарий.
generate_test_scenariosagent_id, незадължителни count, include_edge_cases, localeOГенерира сценарии от подканата на агента.
run_agent_testsagent_id, channel, consent_to_charge, незадължителен избор/матрицаD, OИзпълнява сценарии чрез уеб или телефония.
get_test_runagent_id, batch_idR, IПолучава състоянието на пакета и резултатите за всеки сценарий.
list_validation_runsagent_idR, IИзвежда списък със скорошни изпълнения за валидиране на чернови.
get_validation_statusagent_idR, IПолучава най-новото състояние на валидиране и съответствието на черновата.

Знания

ИнструментОсновни аргументиАнотацииКакво прави
list_knowledge_bases—R, IИзвежда списък с бази знания.
create_knowledge_basename, незадължителен description—Създава база знания.
add_knowledge_documentknowledge_base_id, name, content—Добавя текст или Markdown.
import_knowledge_urlurl, незадължителен nameOПоставя публична страница на опашка за безопасно добавяне.
search_knowledgeknowledge_base_id, queryR, IТърси в извличането от продукционната среда.

Интеграции, уебкуки и отдалечени MCP сървъри

ИнструментОсновни аргументиАнотацииКакво прави
list_integrations—R, IИзвежда интеграциите на HTTP функции.
create_integrationdisplay_name, спецификация на функцията spec, незадължителни полета за крайна точка—Създава HTTP инструмент. Добавете заглавки за удостоверяване в таблото за управление.
test_integrationurl, незадължителни метод/тяло/изчакване, integration_id с header_names, confirmation_token при втората заявкаD, OИзпраща ограничена тестова заявка, защитена срещу SSRF. Запазените стойности на заглавките се попълват от интеграцията и се изпращат само до нейния собствен хост. POST (по подразбиране), PUT, PATCH и DELETE са в две стъпки; GET се изпълнява веднага.
list_webhook_endpoints—R, IИзвежда подписаните крайни точки за уебкуки.
list_webhook_deliveriesнезадължителен agent_id, незадължителен endpoint_idR, IИзвежда последните резултати от доставката на уебкуки без полезен товар.
create_webhook_endpointlabel, url, незадължителни събития/статусOСъздава подписана крайна точка за уебкуки.
test_webhook_endpointendpoint_idOИзпраща синтетично събитие чрез стандартната доставка.
list_mcp_servers—R, IИзвежда отдалечените сървъри, извиквани от гласови агенти.
create_mcp_serverdisplay_name, urlOРегистрира и синхронизира отдалечен сървър. Сървърите, за които са нужни заглавки за удостоверяване, се добавят в таблото за управление.
sync_mcp_server_toolsserver_idD, OОбновява каталога с инструменти на отдалечен сървър.

Кампании

ИнструментОсновни аргументиАнотацииКакво прави
list_campaigns—R, IИзвежда списък с изходящи кампании.
create_campaignполета за кампания—Създава чернова на кампания.
add_campaign_contactscampaign_id, contacts—Добавя до 5 000 JSON контакта.
campaign_actioncampaign_id, action, незадължителни consent_to_charge, confirmation_token при втората заявкаD, OИзпълнява start, pause, resume или stop. start и resume са двустъпкови; pause и stop се изпълняват незабавно.
get_campaign_statscampaign_idR, IПолучава броячи и скорошни резултати.

Гласове, таксуване и документация

ИнструментОсновни аргументиАнотацииКакво прави
list_voices—R, IИзвежда списък с гласове и поддържани езици.
preview_voicevoice, language, textOГенерира пример и връща подписан URL адрес.
list_voice_clones—R, IИзвежда списък с персонализирани гласови клонинги.
get_billing_summary—R, IИзвлича баланса и официалните цени на нивата; не са достъпни промени по плащанията.
search_docsquery, незадължителен limitR, I, OТърси в индекса на публичната документация.
get_doc_pagepathR, I, OИзвлича една публична страница с документация в Markdown.

Всички продуктови инструменти използват същите REST кодови пътища като публичния API. Следователно REST валидирането, обхватът на организацията, ролите, допускането за фактуриране, квотите, потвърждението по TCPA, безопасността на доставчиците и поведението при одит се прилагат без промяна.

Потвърждаване на разрушителни действия

Инструментите, отбелязани с D, променят или премахват нещо, или започват да набират реални хора. За тези, които не могат да бъдат отменени, са необходими две заявки. Първата заявка не променя нищо и връща:

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

Асистентът показва на потребителя какво ще бъде засегнато и иска потвърждение. След това повтаря заявката със същите аргументи плюс confirmation_token. Токенът е валиден 10 минути и важи за една организация, един инструмент и един точен набор от аргументи, така че изтриването на три агента изисква три потвърждения. campaign_action с pause или stop пропуска тази стъпка, за да може текуща кампания винаги да бъде спряна незабавно, както и test_integration с GET. Някои инструменти с D се изпълняват с една заявка, тъй като D обозначава техния ефект, а не потвърждение от страна на сървъра: update_agent заменя съдържанието на черновата (discard_agent_draft го възстановява), deploy_agent заменя активната конфигурация, update_phone_number пренасочва активните обаждания, sync_mcp_server_tools заменя каталога с инструменти на отдалечен сървър, import_voip_numbers пренасочва номерата към вашия телекомуникационен доставчик, run_agent_tests може да изразходва кредит, send_sms и place_call достигат до реален човек (place_call запазва собственото си потвърждение за съгласие), а provision_phone_number купува номер. Вашият MCP клиент все пак може да поиска да ги одобрите.

Начални подкани

prompts/list предоставя пет работни процеса за многократна употреба:

  • create_inbound_receptionist
  • run_agent_tests
  • buy_and_attach_number
  • review_low_grade_calls
  • add_url_to_agent_knowledge

Използвайте prompts/get с името на посочената подкана и декларираните ѝ аргументи, за да получите готово за изпълнение потребителско съобщение.

Ресурси

resources/list предоставя публични кеширани справки:

URIСъдържание
thunderphone://docs/llms.txtИндекс на публичната документация.
thunderphone://docs/quickstartMarkdown за бърз старт.
thunderphone://pricingMarkdown с текущите публични цени.

Прочетете ресурс с resources/read. Публичните извличания използват кратко изчакване, ограничение от 2 MiB и десетминутен кеш в процеса.

Протокол и грешки

Сървърът поддържа версиите на протокола 2025-06-18 и 2025-03-26; връща поддържана версия на клиента, а в противен случай избира 2025-06-18. Той имплементира initialize, ping, инструменти, подкани, ресурси и известия. Известията връщат 202 Accepted. Този сървър без състояние не предоставя SSE слушател или изтриване на сесия, затова GET и DELETE връщат 405 Method Not Allowed с Allow: POST.

Неуспехите на инструменти остават успешни JSON-RPC отговори с isError: true. Текстът им съдържа кратко изречение, последвано от JSON блок:

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

Отличителният префикс outbound_tcpa_confirmation_required: се запазва за place_call. Непознатите JSON-RPC методи връщат -32601 в HTTP отговор 200. JSON-RPC пакетите не се поддържат от MCP 2025-06-18 и връщат коректна грешка за невалидна заявка -32600.