ThunderPhone 2.0 متاح الآن.خدمة ذاتية، ابتداءً من 2 سنت/دقيقة.اقرأ الإعلان

Connect tools & data

استخدم ThunderPhone كخادم MCP

أنشئ واختبر وتحقق من صحة وشغّل وكلاء ThunderPhone الصوتيين من Claude أو ChatGPT أو Claude Code أو Codex أو Cursor أو VS Code أو عميل MCP آخر يدعم Streamable HTTP.

يعرض 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

يمكن لـواجهة سطر أوامر 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 إتاحة OAuth المقابلة لواجهة API. أما مسار مفتاح 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_at اختياريD, 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، حقول التوجيه/التسمية/خطاف الويبDيحدّث توجيه الرقم، بما في ذلك تعيين الوكيل.
delete_phone_numberphone_number_id، confirm، اختياري release_at_provider، وconfirmation_token في الطلب الثانيD, I, Oيحرر رقمًا. من خطوتين.

الرسائل النصية القصيرة

الأداةالوسيطات الرئيسيةالتعليقات التوضيحيةما الذي تفعله
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، live اختياريR, Iيجلب النص المفرغ للمكالمة.
get_call_audio_urlcall_id، download اختياريR, 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، وname اختياريOيضع صفحة عامة في قائمة الانتظار للاستيعاب الآمن.
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تسرد نقاط نهاية webhook الموقّعة.
list_webhook_deliveriesagent_id اختياري، وendpoint_id اختياريR، Iتسرد نتائج تسليم webhook الأخيرة من دون حمولات.
create_webhook_endpointlabel، url، وأحداث/حالة اختياريةOتنشئ نقطة نهاية webhook موقّعة.
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، limit اختياريR, 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. لا يدعم MCP 2025-06-18 دفعات JSON-RPC ويُرجع خطأ طلب غير صالح واضحًا بالقيمة -32600.