Open in
Користите ThunderPhone као MCP сервер
Правите, тестирајте, проверавајте и користите ThunderPhone гласовне агенте из Claude, ChatGPT, Claude Code, Codex, Cursor, VS Code или другог Streamable HTTP MCP клијента.
ThunderPhone пружа Streamable HTTP сервер за Model Context Protocol на адреси:
https://api.thunderphone.com/v1/mcpОво је супротан смер од повезивања удаљеног MCP сервера са гласовним агентом:
| Смер | Резултат |
|---|---|
| Удаљени MCP сервер → ThunderPhone агент | Гласовни агент може да позива алате удаљеног сервера. |
| ThunderPhone → Ваш MCP клијент | Ваш агент за програмирање може да изграђује, тестира и користи ThunderPhone. |
Потврда идентитета
Подразумевано користите OAuth за клијенте из директоријума: пријавите се, изаберите организацију и одобрите затражене дозволе. Опозовите приступ у оквиру Организација → API кључеви → Овлашћене апликације.
За клијенте конфигурисане са API кључем, креирајте sk_live_ кључ у оквиру Организација → Кључеви и изложите га MCP клијенту као THUNDERPHONE_API_KEY. Кључ је везан за једну организацију; идентификатор у власништву друге организације понаша се као да није пронађен.
Алтернативе за CLI и stdio
ThunderPhone CLI може да упише конфигурацију клијента уз очување неповезаних сервера:
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 захтевају одговарајуће увођење
OAuth-а за API. Путања са API кључем то не захтева. Конфигурације за директни HTTP не читају
CLI складиште акредитива; користите stdio омотач да бисте поново користили пријаву путем уређаја.
Ово су алтернативе ручним конфигурацијама клијента у наставку.
Конфигурација клијента
Claude и ChatGPT се пријављују преко OAuth-а; API кључ није потребан. Ако још немате ThunderPhone налог, на страници за пријављивање изаберите Направите налог; након потврде имејл адресе вратићете се на екран за одобравање.
Claude (веб, рачунар и мобилни уређаји)
- Отворите Подешавања → Конектори. Ако се ThunderPhone појављује у директоријуму конектора, изаберите га. У супротном, изаберите Додајте прилагођени конектор, назовите га
ThunderPhoneи унеситеhttps://api.thunderphone.com/v1/mcp. - Изаберите Повежите, пријавите се на ThunderPhone, одаберите организацију и одобрите дозволе.
- У ћаскању омогућите ThunderPhone из менија алатки и затражите оно што Вам је потребно, на пример „Прикажи моје агенте“.
Прилагођени конектори захтевају плаћени Claude пакет. У пакетима Team и Enterprise власник најпре додаје конектор у подешавањима конектора организације, а затим сваки члан повезује сопствени ThunderPhone налог.
ChatGPT
- Ако се ThunderPhone појављује у директоријуму ChatGPT апликација, изаберите га и повежите.
- У супротном, отворите Подешавања → Апликације и конектори → Напредна подешавања, укључите Режим за програмере и направите конектор са URL адресом
https://api.thunderphone.com/v1/mcpи OAuth аутентификацијом. - Пријавите се на 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 интеракцију са отвореним светом/мрежом. Цртица означава да напомена није постављена.
Агенти
| Алатка | Главни аргументи | Напомене | Шта ради |
|---|---|---|---|
list_agents | — | R, I | Приказује листу агената. |
get_agent | agent_id | R, I | Преузима једног агента. |
create_agent | конфигурација агента | — | Креира агента. |
update_agent | agent_id, измењена поља | — | Поставља поља у радну верзију агента. |
deploy_agent | agent_id, опциони if_updated_at | I | Промовише радну верзију у продукцију. |
discard_agent_draft | agent_id, опциони if_updated_at, confirmation_token у другом захтеву | D, I | Одбацује припремљене измене. У два корака, погледајте Потврђивање деструктивних радњи. |
duplicate_agent | agent_id, опциони name | — | Копира агента унутар организације. |
delete_agent | agent_id, confirmation_token у другом захтеву | D, I | Трајно брише агента. У два корака. |
list_agent_versions | agent_id | R, I | Приказује листу верзија конфигурације у продукцији. |
Бројеви телефона и оператери
| Алатка | Главни аргументи | Напомене | Шта ради |
|---|---|---|---|
list_phone_numbers | — | R, I | Приказује листу бројева организације и усмеравања. |
get_phone_number_limits | — | R, I | Преузима коришћење и ограничења управљаних бројева. |
provision_phone_number | опциони area_code, city, state, idempotency_key | O | Купује долазни број којим управља ThunderPhone. |
list_voip_connections | — | R, I | Приказује листу повезаних оператера клијента. |
search_voip_numbers | connection_id, country, type, опциони area_code | R, I, O | Претражује инвентар оператера. |
import_voip_numbers | connection_id, numbers | O | Увози бројеве који су већ у власништву код оператера. |
update_phone_number | phone_number_id, поља за усмеравање/ознаку/веб-закачку | — | Ажурира усмеравање броја, укључујући доделу агента. |
delete_phone_number | phone_number_id, confirm, опциони release_at_provider, confirmation_token у другом захтеву | D, I, O | Ослобађа број. У два корака. |
Позиви
| Алатка | Главни аргументи | Напомене | Шта ради |
|---|---|---|---|
list_calls | опциони филтери, limit, offset | R, I | Приказује листу позива помоћу REST филтера за историју позива. |
get_call | call_id | R, I | Преузима статус и метаподатке позива. |
get_call_transcript | call_id, опциони live | R, I | Преузима транскрипт позива. |
get_call_audio_url | call_id, опциони download | R, I, O | Враћа потписани URL за аудио; никада не стримује аудио преко MCP-а. |
get_call_grade | call_id | R, I | Преузима најновију оцену позива. |
place_call | agent_id, from_number, to_number | O | Успоставља један неидемпотентни одлазни позив. |
export_calls | филтери позива, export_format | R, I | Извози до ограничења REST крајње тачке као JSON или CSV. |
Тестирање и валидација
| Алатка | Главни аргументи | Напомене | Шта ради |
|---|---|---|---|
list_test_scenarios | agent_id | R, I | Приказује листу сценарија за тестирање. |
create_test_scenario | agent_id, title, scenario_prompt, опциони услови | — | Креира сценарио. |
generate_test_scenarios | agent_id, опциони count, include_edge_cases, locale | O | Генерише сценарије из упита агента. |
run_agent_tests | agent_id, channel, consent_to_charge, опциони избор/матрица | O | Извршава сценарије преко веба или телефоније. |
get_test_run | agent_id, batch_id | R, I | Преузима статус пакета и резултате по сценарију. |
list_validation_runs | agent_id | R, I | Приказује листу недавних покретања валидације радне верзије. |
get_validation_status | agent_id | R, I | Преузима најновије стање валидације и подударање радне верзије. |
Знање
| Алатка | Главни аргументи | Напомене | Шта ради |
|---|---|---|---|
list_knowledge_bases | — | R, I | Приказује листу база знања. |
create_knowledge_base | name, опциони description | — | Креира базу знања. |
add_knowledge_document | knowledge_base_id, name, content | — | Додаје текст или Markdown. |
import_knowledge_url | url, опциони name | O | Ставља јавну страницу у ред за безбедно уношење. |
search_knowledge | knowledge_base_id, query | R, I | Претражује продукциони систем за преузимање знања. |
Интеграције, веб-закачке и удаљени MCP сервери
| Алатка | Главни аргументи | Напомене | Шта ради |
|---|---|---|---|
list_integrations | — | R, I | Приказује листу интеграција HTTP функција. |
create_integration | display_name, функцијски spec, опциона поља крајње тачке | — | Креира HTTP алатку. |
test_integration | url, опциони метод/заглавља/тело/временско ограничење | O | Шаље ограничен тест захтев заштићен од SSRF-а. |
list_webhook_endpoints | — | R, I | Приказује листу потписаних крајњих тачака веб-закачки. |
create_webhook_endpoint | label, url, опциони догађаји/статус | O | Креира потписану крајњу тачку веб-закачке. |
test_webhook_endpoint | endpoint_id | O | Шаље синтетички догађај путем уобичајене испоруке. |
list_mcp_servers | — | R, I | Приказује листу удаљених сервера које гласовни агенти могу да позивају. |
create_mcp_server | display_name, url, опциона заглавља | O | Региструје и синхронизује удаљени сервер. |
sync_mcp_server_tools | server_id | O | Освежава каталог алатки удаљеног сервера. |
Кампање
| Алатка | Главни аргументи | Напомене | Шта ради |
|---|---|---|---|
list_campaigns | — | R, I | Приказује листу одлазних кампања. |
create_campaign | поља кампање | — | Креира радну верзију кампање. |
add_campaign_contacts | campaign_id, contacts | — | Додаје до 5.000 JSON контаката. |
campaign_action | campaign_id, action, опциони consent_to_charge, confirmation_token у другом захтеву | D, O | Покреће start, pause, resume или stop. start и resume су у два корака; pause и stop покрећу се одмах. |
get_campaign_stats | campaign_id | R, I | Преузима бројаче и недавне исходе. |
Гласови, наплата, увози и документација
| Алатка | Главни аргументи | Напомене | Шта ради |
|---|---|---|---|
list_voices | — | R, I | Приказује листу гласова и подржаних језика. |
preview_voice | voice, language, text | O | Генерише узорак и враћа потписани URL. |
list_voice_clones | — | R, I | Приказује листу прилагођених клонова гласова. |
get_billing_summary | — | R, I | Преузима стање и званичне цене нивоа; нису доступне измене плаћања. |
create_agent_import | vendor, vendor_key | O | Покреће шифровани увоз из Vapi, Retell, ElevenLabs или Bland. |
get_agent_import | public_id | R, I | Преузима предложену разлику увоза. |
commit_agent_import | public_id | — | Потврђује изабране агенте из прегледаног плана. |
search_docs | query, опциони limit | R, I, O | Претражује јавни индекс документације. |
get_doc_page | path | R, 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 прескаче овај корак како би активна кампања увек могла одмах да се заустави.
Почетни упити
prompts/list нуди шест вишекратно употребљивих токова рада:
create_inbound_receptionistrun_agent_testsimport_vapi_assistantsbuy_and_attach_numberreview_low_grade_callsadd_url_to_agent_knowledge
Користите prompts/get са наведеним именом упита и његовим декларисаним аргументима да бисте добили поруку корисника спремну за покретање.
Ресурси
resources/list излаже јавне, кеширане референце:
| URI | Садржај |
|---|---|
thunderphone://docs/llms.txt | Индекс јавне документације. |
thunderphone://docs/quickstart | Quickstart Markdown. |
thunderphone://pricing | Тренутни јавни Markdown са ценама. |
Прочитајте један помоћу 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.