Open in
ThunderPhone
Claude, ChatGPT, Claude Code, Codex, Cursor, VS Code veya başka bir Streamable HTTP MCP istemcisi üzerinden ThunderPhone sesli AI ajanları oluşturun, test edin, doğrulayın ve işletin.
ThunderPhone, aşağıdaki adreste Akışlanabilir HTTP Model Bağlam Protokolü sunucusu sağlar:
https://api.thunderphone.com/v1/mcpBu, uzak bir MCP sunucusunu sesli AI ajanına bağlama işleminin ters yönüdür:
| Yön | Sonuç |
|---|---|
| Uzak MCP sunucusu → ThunderPhone ajanı | Sesli AI ajanı, uzak sunucunun araçlarını çağırabilir. |
| ThunderPhone → MCP istemciniz | Kodlama ajanınız ThunderPhone'u oluşturabilir, test edebilir ve çalıştırabilir. |
Kimlik doğrulama
Dizin istemcileri için varsayılan olarak OAuth kullanın: oturum açın, bir kuruluş seçin ve istenen izinleri onaylayın. Erişimi Kuruluş → API anahtarları → Yetkili uygulamalar altında iptal edin.
API anahtarıyla yapılandırılmış istemciler için Kuruluş → Anahtarlar altında bir sk_live_ anahtarı oluşturun ve bunu MCP istemcinize THUNDERPHONE_API_KEY olarak sağlayın. Anahtar bir kuruluşa bağlıdır; başka bir kuruluşa ait bir kimlik bulunamadı gibi davranır.
CLI ve stdio alternatifleri
ThunderPhone CLI, ilgisiz sunucuları koruyarak istemci yapılandırmasını yazabilir:
npx -y @thunderphone/mcp setup --client cursor --api-key-env THUNDERPHONE_API_KEY
npx thunderphone mcp setup --client claude-desktop --scope user@thunderphone/mcp genel olarak yüklendikten sonra, aynı seçeneklerle
thunderphone-mcp setup kullanın. Kurulum Claude Code, Codex, Cursor, VS Code, Gemini, Claude
Desktop ve Windsurf'ü destekler. Doğrudan HTTP tercih edilir; Desktop stdio kullanır.
stdio destekleyen tüm istemciler için command: "npx" ayarını
args: ["-y", "@thunderphone/mcp"] ile yapılandırın. Sarmalayıcı önce THUNDERPHONE_API_KEY kullanır,
ardından thunderphone login kimlik bilgilerini kullanır, süresi dolmuş belirteçleri yeniler ve son olarak
mcp-remote üzerinden OAuth kullanır. Cihazla oturum açma ve OAuth, karşılık gelen API
OAuth yayınını gerektirir. API anahtarı yolu gerektirmez. Doğrudan HTTP yapılandırmaları
CLI kimlik bilgisi deposunu okumaz; cihazla oturum açmayı yeniden kullanmak için stdio sarmalayıcısını kullanın.
Bunlar, aşağıdaki manuel istemci yapılandırmalarına alternatiftir.
İstemci yapılandırması
Claude ve ChatGPT, OAuth ile oturum açar; API anahtarı gerekmez. Henüz ThunderPhone hesabınız yoksa oturum açma sayfasında Hesap oluştur seçeneğini belirleyin; e-postanızı doğruladıktan sonra onay ekranına dönersiniz.
Claude (web, masaüstü ve mobil)
- Özelleştir → Bağlayıcılar bölümünü açın (eski sürümlerde Ayarlar → Bağlayıcılar). ThunderPhone bağlayıcı dizininde görünüyorsa seçin. Aksi takdirde Özel bağlayıcı ekle seçeneğini belirleyin, adını
ThunderPhoneolarak girin vehttps://api.thunderphone.com/v1/mcpadresini ekleyin. - Bağlan seçeneğini belirleyin, ThunderPhone oturumu açın, kuruluşu seçin ve izinleri onaylayın.
- Bir sohbette, araçlar menüsünden ThunderPhone'u etkinleştirin ve örneğin "Ajanlarımı listele" gibi ihtiyacınız olanı isteyin.
Claude, her aracı ilk kez kullanmadan önce izin ister. Bu istemlerin çoğunu atlamak için Özelleştir → Bağlayıcılar → ThunderPhone bölümünü açın ve Salt okunur araçlar ayarını her zaman izin verecek şekilde belirleyin. Bu araçlar yalnızca bilgi arar: ajanlar, aramalar, transkriptler, bakiyeler, belgeler. Her değişikliği gerçekleşmeden önce görmek istiyorsanız Yazma/silme araçları ayarını onay gerektirecek şekilde bırakın.
Özel bağlayıcılar ücretli bir Claude planı gerektirir. Team ve Enterprise planlarında, bir sahip önce bağlayıcıyı kuruluşun bağlayıcı ayarlarından ekler; ardından her üye kendi ThunderPhone hesabını bağlar.
ChatGPT
- ThunderPhone, ChatGPT uygulama dizininde görünüyorsa seçin ve bağlayın.
- Aksi takdirde Ayarlar → Uygulamalar ve Bağlayıcılar → Gelişmiş ayarlar bölümünü açın, Geliştirici modu seçeneğini etkinleştirin ve
https://api.thunderphone.com/v1/mcpURL'si ile OAuth kimlik doğrulamasını kullanarak bir bağlayıcı oluşturun. - ThunderPhone oturumu açın, kuruluşu seçin ve izinleri onaylayın. Araçlar menüsünden ThunderPhone'u bir sohbete ekleyin.
Bir ajanı veya telefon numarasını silmek, taslağı iptal etmek, kampanya başlatmak ve harici bir sisteme yazabilen test isteği göndermek, her iki uygulamada da ikinci bir onay gerektirir; bkz. Yıkıcı işlemleri onaylama.
Claude Code
claude mcp add --transport http thunderphone https://api.thunderphone.com/v1/mcp \
--header "Authorization: Bearer $THUNDERPHONE_API_KEY"Codex
Bunu ~/.codex/config.toml dosyasına ekleyin:
[mcp_servers.thunderphone]
url = "https://api.thunderphone.com/v1/mcp"
bearer_token_env_var = "THUNDERPHONE_API_KEY"Cursor
.cursor/mcp.json dosyasını oluşturun:
{
"mcpServers": {
"thunderphone": {
"url": "https://api.thunderphone.com/v1/mcp",
"headers": {
"Authorization": "Bearer ${env:THUNDERPHONE_API_KEY}"
}
}
}
}Claude Desktop
Claude Desktop yapılandırmasına bir mcp-remote köprüsü ekleyin:
{
"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 dosyasını oluşturun ve anahtarı VS Code'un giriş istemi aracılığıyla girin:
{
"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}"
}
}
}
}Araçlar
Her araç MCP ek açıklamaları taşır. Tablolarda R salt okunur, D yıkıcı, I idempotent ve O açık dünya/ağ etkileşimi anlamına gelir. Tire işareti, hiçbir ipucunun ayarlanmadığı anlamına gelir.
Bağlantı
| Araç | Ana bağımsız değişkenler | Ek açıklamalar | Ne yapar |
|---|---|---|---|
get_connection_identity | — | R, I | Kimlik bilgisini doğrular ve kuruluşunu ve güvenli kimlik bilgisi meta verilerini döndürür. |
Ajanlar
| Araç | Ana bağımsız değişkenler | Ek açıklamalar | Ne yapar |
|---|---|---|---|
list_agents | — | R, I | Ajanları listeler. |
get_agent | agent_id | R, I | Tek bir ajanı getirir. |
create_agent | ajan yapılandırması | — | Bir ajan oluşturur. |
update_agent | agent_id, değiştirilen alanlar | D | Ajan taslağındaki alanları, taslakta bulunanların yerine koyarak hazırlar. Onay adımı olmadan çalışır: yayınlanan ajan deploy_agent kullanılana kadar değişmez ve discard_agent_draft taslağı geri alır. |
deploy_agent | agent_id, isteğe bağlı if_updated_at | D, I | Taslağı üretim ortamına yükseltir. |
discard_agent_draft | agent_id, isteğe bağlı if_updated_at, ikinci istekte confirmation_token | D, I | Hazırlanan değişiklikleri iptal eder. İki adımlıdır, bkz. Yıkıcı işlemleri onaylama. |
duplicate_agent | agent_id, isteğe bağlı name | — | Bir ajanı kuruluş içinde kopyalar. |
delete_agent | agent_id, ikinci istekte confirmation_token | D, I | Bir ajanı kalıcı olarak siler. İki adımlıdır. |
list_agent_versions | agent_id | R, I | Yayınlanan yapılandırma sürümlerini listeler. |
Telefon numaraları ve operatörler
| Araç | Ana bağımsız değişkenler | Ek açıklamalar | İşlevi |
|---|---|---|---|
list_phone_numbers | — | R, I | Kuruluş numaralarını ve yönlendirmeyi listeler. |
get_phone_number_limits | — | R, I | Yönetilen numara kullanımını ve sınırlarını getirir. |
provision_phone_number | isteğe bağlı area_code, city, state, idempotency_key | D, O | ThunderPhone tarafından yönetilen bir gelen numara satın alır. |
list_voip_connections | — | R, I | Bağlı müşteri operatörlerini listeler. |
search_voip_numbers | connection_id, country, type, isteğe bağlı area_code | R, I, O | Operatör envanterinde arama yapar. |
import_voip_numbers | connection_id, numbers | D, O | Operatörde hâlihazırda sahip olunan numaraları içe aktarır. |
update_phone_number | phone_number_id, yönlendirme/etiket/webhook alanları | D | Yapay zeka ajanı ataması dâhil olmak üzere numara yönlendirmesini günceller. |
delete_phone_number | phone_number_id, confirm, isteğe bağlı release_at_provider, ikinci istekte confirmation_token | D, I, O | Bir numarayı serbest bırakır. İki adımlıdır. |
SMS
| Araç | Ana bağımsız değişkenler | Açıklamalar | Ne yapar |
|---|---|---|---|
send_sms | from_number, to, body, idempotency_key | D, I, O | Bağlı bir Twilio veya Telnyx numarası üzerinden tek bir düz metin SMS gönderir. |
Aramalar
| Araç | Ana bağımsız değişkenler | Açıklamalar | İşlevi |
|---|---|---|---|
list_calls | isteğe bağlı filtreler, limit, offset | R, I | REST çağrı geçmişi filtreleriyle çağrıları listeler. |
get_call | call_id | R, I | Çağrı durumunu ve meta verileri alır. |
get_call_transcript | call_id, isteğe bağlı live | R, I | Çağrı dökümünü alır. |
get_call_audio_url | call_id, isteğe bağlı download | R, I, O | İmzalı bir ses URL'si döndürür; sesi hiçbir zaman MCP üzerinden akıtmaz. |
get_call_grade | call_id | R, I | En son çağrı değerlendirmesini alır. |
place_call | agent_id, from_number, to_number | D, O | İdempotent olmayan tek bir giden çağrı başlatır. |
export_calls | çağrı filtreleri, export_format | R, I | REST uç noktasının sınırına kadar olan çağrıları JSON veya CSV olarak dışa aktarır. |
Test ve doğrulama
| Araç | Ana bağımsız değişkenler | Açıklamalar | Ne yapar |
|---|---|---|---|
list_test_scenarios | agent_id | R, I | Test senaryolarını listeler. |
create_test_scenario | agent_id, title, scenario_prompt, isteğe bağlı koşullar | — | Bir senaryo oluşturur. |
generate_test_scenarios | agent_id, isteğe bağlı count, include_edge_cases, locale | O | Ajan isteminden senaryolar oluşturur. |
run_agent_tests | agent_id, channel, consent_to_charge, isteğe bağlı seçim/matris | D, O | Senaryoları web veya telefon üzerinden yürütür. |
get_test_run | agent_id, batch_id | R, I | Toplu işlem durumunu ve senaryo başına sonuçları alır. |
list_validation_runs | agent_id | R, I | Son taslak doğrulama çalıştırmalarını listeler. |
get_validation_status | agent_id | R, I | En güncel doğrulama durumunu ve taslak eşleşmesini alır. |
Bilgi
| Araç | Ana bağımsız değişkenler | Ek açıklamalar | Ne yapar |
|---|---|---|---|
list_knowledge_bases | — | R, I | Bilgi tabanlarını listeler. |
create_knowledge_base | name, isteğe bağlı description | — | Bir bilgi tabanı oluşturur. |
add_knowledge_document | knowledge_base_id, name, content | — | Metin veya Markdown ekler. |
import_knowledge_url | url, isteğe bağlı name | O | Güvenli alma işlemi için herkese açık bir sayfayı kuyruğa alır. |
search_knowledge | knowledge_base_id, query | R, I | Üretim alma sistemi üzerinden arama yapar. |
Entegrasyonlar, webhook'lar ve uzak MCP sunucuları
| Araç | Ana bağımsız değişkenler | Ek açıklamalar | İşlevi |
|---|---|---|---|
list_integrations | — | R, I | HTTP işlev entegrasyonlarını listeler. |
create_integration | display_name, işlev spec, isteğe bağlı uç nokta alanları | — | Bir HTTP aracı oluşturur. Kimlik doğrulama üst bilgilerini panodan ekleyin. |
test_integration | url, isteğe bağlı yöntem/gövde/zaman aşımı, header_names içeren integration_id, ikinci istekte confirmation_token | D, O | Sınırlı, SSRF korumalı bir test isteği gönderir. Kaydedilen üst bilgi değerleri entegrasyondan doldurulur ve yalnızca kendi ana makinesine gönderilir. POST (varsayılan), PUT, PATCH ve DELETE iki aşamalıdır; GET hemen çalışır. |
list_webhook_endpoints | — | R, I | İmzalı webhook uç noktalarını listeler. |
list_webhook_deliveries | isteğe bağlı agent_id, isteğe bağlı endpoint_id | R, I | Son yük içermeyen webhook teslim sonuçlarını listeler. |
create_webhook_endpoint | label, url, isteğe bağlı olaylar/durum | O | İmzalı bir webhook uç noktası oluşturur. |
test_webhook_endpoint | endpoint_id | O | Normal teslim yoluyla sentetik bir olay gönderir. |
list_mcp_servers | — | R, I | Sesli AI ajanlarının çağırabileceği uzak sunucuları listeler. |
create_mcp_server | display_name, url | O | Uzak bir sunucuyu kaydeder ve senkronize eder. Kimlik doğrulama üst bilgilerine ihtiyaç duyan sunucular panodan eklenir. |
sync_mcp_server_tools | server_id | D, O | Uzak bir sunucunun araç kataloğunu yeniler. |
Kampanyalar
| Araç | Ana bağımsız değişkenler | Ek açıklamalar | Ne yapar |
|---|---|---|---|
list_campaigns | — | R, I | Giden arama kampanyalarını listeler. |
create_campaign | kampanya alanları | — | Taslak bir kampanya oluşturur. |
add_campaign_contacts | campaign_id, contacts | — | En fazla 5.000 JSON kişisi ekler. |
campaign_action | campaign_id, action, isteğe bağlı consent_to_charge, ikinci istekte confirmation_token | D, O | start, pause, resume veya stop çalıştırır. start ve resume iki adımlıdır; pause ve stop hemen çalışır. |
get_campaign_stats | campaign_id | R, I | Sayaçları ve son sonuçları getirir. |
Sesler, faturalandırma ve dokümantasyon
| Araç | Ana parametreler | Notlar | İşlevi |
|---|---|---|---|
list_voices | — | R, I | Sesleri ve desteklenen dilleri listeler. |
preview_voice | voice, language, text | O | Bir örnek oluşturur ve imzalı bir URL döndürür. |
list_voice_clones | — | R, I | Özel ses klonlarını listeler. |
get_billing_summary | — | R, I | Bakiyeyi ve resmi katman fiyatlarını getirir; ödeme değişikliği işlemleri sunulmaz. |
search_docs | query, isteğe bağlı limit | R, I, O | Herkese açık dokümantasyon dizininde arama yapar. |
get_doc_page | path | R, I, O | Herkese açık bir Markdown dokümantasyon sayfasını getirir. |
Tüm ürün araçları, herkese açık API ile aynı REST kod yollarını kullanır. Bu nedenle REST doğrulaması, kuruluş kapsamlandırması, roller, faturalandırma kabulü, kotalar, TCPA onayı, sağlayıcı güvenliği ve denetim davranışı değişmeden uygulanır.
Yıkıcı işlemleri onaylama
D ile işaretlenmiş araçlar bir şeyi değiştirir veya kaldırır ya da gerçek kişileri aramaya başlar. Geri alınamayan işlemler iki istek gerektirir. İlk istek hiçbir şeyi değiştirmez ve şunu döndürür:
{
"status": "confirmation_required",
"action": "Delete agent",
"target": { "id": 195, "name": "Front Desk Receptionist" },
"confirmation_token": "…",
"expires_in_seconds": 600,
"next_step": "…"
}Yapay zeka ajanı, kullanıcıya neyin etkilendiğini gösterir ve onay ister. Ardından aynı bağımsız değişkenlerle, ayrıca confirmation_token ekleyerek isteği tekrarlar. Bir belirteç 10 dakika boyunca geçerlidir ve tek bir kuruluşu, tek bir aracı ve tam olarak tek bir bağımsız değişken kümesini kapsar; bu nedenle üç ajanı silmek için üç onay gerekir. pause veya stop içeren campaign_action, çalışan bir kampanyanın her zaman anında durdurulabilmesi için bu adımı atlar; GET içeren test_integration da aynısını yapar. Bazı D araçları tek istekte çalışır; çünkü D, sunucu tarafı onayı değil, etkilerini belirtir: update_agent taslaktaki içeriği değiştirir (discard_agent_draft bunu geri alır), deploy_agent canlı yapılandırmayı değiştirir, update_phone_number canlı çağrıları yeniden yönlendirir, sync_mcp_server_tools uzak bir sunucunun araç kataloğunu değiştirir, import_voip_numbers numaraları operatörünüze yeniden yönlendirir, run_agent_tests kredi harcayabilir, send_sms ve place_call gerçek bir kişiye ulaşır (place_call kendi onay doğrulamasını korur) ve provision_phone_number bir numara satın alır. MCP istemciniz yine de bunları onaylamanızı isteyebilir.
Başlangıç istemleri
prompts/list, yeniden kullanılabilir beş iş akışını sunar:
create_inbound_receptionistrun_agent_testsbuy_and_attach_numberreview_low_grade_callsadd_url_to_agent_knowledge
Çalıştırmaya hazır bir kullanıcı mesajı almak için listelenen istem adı ve bildirilen bağımsız değişkenleriyle prompts/get kullanın.
Kaynaklar
resources/list, herkese açık, önbelleğe alınmış başvuruları sunar:
| URI | İçerik |
|---|---|
thunderphone://docs/llms.txt | Herkese açık dokümantasyon dizini. |
thunderphone://docs/quickstart | Hızlı başlangıç Markdown'ı. |
thunderphone://pricing | Güncel herkese açık fiyatlandırma Markdown'ı. |
Birini resources/read ile okuyun. Herkese açık getirme işlemleri kısa bir zaman aşımı, 2 MiB sınırı ve işlem içi on dakikalık önbellek kullanır.
Protokol ve hatalar
Sunucu, 2025-06-18 ve 2025-03-26 protokol sürümlerini destekler; desteklenen bir istemci sürümünü yansıtır, aksi durumda 2025-06-18 sürümünü seçer. initialize, ping, araçlar, istemler, kaynaklar ve bildirimleri uygular. Bildirimler 202 Accepted döndürür. Bu durumsuz sunucu bir SSE dinleyicisi veya oturum silme işlemi sunmaz; bu nedenle GET ve DELETE, Allow: POST ile birlikte 405 Method Not Allowed döndürür.
Araç hataları, isError: true içeren başarılı JSON-RPC yanıtları olarak kalır. Metinleri, ardından bir JSON bloğu gelen kısa bir cümle içerir:
{
"code": "insufficient_balance",
"detail": "There is not enough prepaid balance.",
"next_step": "Call get_billing_summary, add funds in Organization > Billing, then retry."
}Ayırt edici outbound_tcpa_confirmation_required: öneki place_call için korunur. Bilinmeyen JSON-RPC yöntemleri, HTTP 200 yanıtında -32601 döndürür. JSON-RPC toplu istekleri MCP 2025-06-18 tarafından desteklenmez ve temiz bir -32600 geçersiz istek hatası döndürür.