ThunderPhone 2.0 এখন লাইভ।নিজেই ব্যবহার শুরু করুন, 2¢/মিনিট থেকে।ঘোষণাটি পড়ুন

Connect tools & data

ThunderPhone-কে MCP সার্ভার হিসেবে ব্যবহার করুন

Claude, ChatGPT, Claude Code, Codex, Cursor, VS Code বা অন্য কোনো Streamable HTTP MCP ক্লায়েন্ট থেকে ThunderPhone ভয়েস এজেন্ট তৈরি, পরীক্ষা, যাচাই এবং পরিচালনা করুন।

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 হিসেবে প্রকাশ করুন। কীটি একটি সংগঠনের সঙ্গে আবদ্ধ; অন্য সংগঠনের মালিকানাধীন একটি id পাওয়া যায়নি হিসেবে আচরণ করে।

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 থেকে ক্রেডেনশিয়াল ব্যবহার করে, মেয়াদোত্তীর্ণ টোকেন রিফ্রেশ করে, এরপর mcp-remote-এর মাধ্যমে OAuth ব্যবহার করে। ডিভাইস লগইন এবং 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 প্ল্যান প্রয়োজন। Team এবং Enterprise প্ল্যানে, একজন মালিক প্রথমে সংস্থার কানেক্টর সেটিংসে কানেক্টর যোগ করেন, তারপর প্রতিটি সদস্য নিজের ThunderPhone অ্যাকাউন্ট সংযুক্ত করেন।

ChatGPT

  1. ChatGPT অ্যাপ ডিরেক্টরিতে ThunderPhone দেখা গেলে সেটি নির্বাচন করুন এবং সংযুক্ত করুন।
  2. অন্যথায় সেটিংস → অ্যাপস ও কানেক্টর → উন্নত সেটিংস খুলুন, ডেভেলপার মোড চালু করুন এবং https://api.thunderphone.com/v1/mcp URL ও 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

Claude Desktop কনফিগারেশনে একটি mcp-remote ব্রিজ যোগ করুন:

{
  "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-এর ইনপুট prompt-এর মাধ্যমে কী লিখুন:

{
  "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_agentsR, Iএজেন্টের তালিকা দেয়।
get_agentagent_idR, Iএকটি এজেন্ট পায়।
create_agentএজেন্ট কনফিগারেশনএকটি এজেন্ট তৈরি করে।
update_agentagent_id, পরিবর্তিত ফিল্ডএজেন্ট ড্রাফটে ফিল্ড স্টেজ করে।
deploy_agentagent_id, ঐচ্ছিক if_updated_atIড্রাফটকে প্রোডাকশনে উন্নীত করে।
discard_agent_draftagent_id, ঐচ্ছিক if_updated_at, দ্বিতীয় অনুরোধে confirmation_tokenD, Iস্টেজ করা পরিবর্তন বাতিল করে। দুই ধাপের, ধ্বংসাত্মক অ্যাকশন নিশ্চিত করা দেখুন।
duplicate_agentagent_id, ঐচ্ছিক nameসংস্থার মধ্যে একটি এজেন্ট কপি করে।
delete_agentagent_id, দ্বিতীয় অনুরোধে confirmation_tokenD, Iএকটি এজেন্ট স্থায়ীভাবে মুছে দেয়। দুই ধাপের।
list_agent_versionsagent_idR, Iডিপ্লয় করা কনফিগারেশন সংস্করণের তালিকা দেয়।

ফোন নম্বর এবং ক্যারিয়ার

টুলপ্রধান আর্গুমেন্টঅ্যানোটেশনএটি কী করে
list_phone_numbersR, Iসংস্থার নম্বর এবং রাউটিংয়ের তালিকা দেয়।
get_phone_number_limitsR, Iম্যানেজ করা নম্বরের ব্যবহার ও সীমা পায়।
provision_phone_numberঐচ্ছিক area_code, city, state, idempotency_keyOThunderPhone-ম্যানেজ করা একটি ইনবাউন্ড নম্বর কেনে।
list_voip_connectionsR, Iসংযুক্ত কাস্টমার ক্যারিয়ারের তালিকা দেয়।
search_voip_numbersconnection_id, country, type, ঐচ্ছিক area_codeR, I, Oক্যারিয়ার ইনভেন্টরি অনুসন্ধান করে।
import_voip_numbersconnection_id, numbersOক্যারিয়ারের কাছে ইতিমধ্যে মালিকানাধীন নম্বর ইমপোর্ট করে।
update_phone_numberphone_number_id, রাউটিং/লেবেল/webhook ফিল্ডএজেন্ট অ্যাসাইনমেন্টসহ নম্বর রাউটিং আপডেট করে।
delete_phone_numberphone_number_id, confirm, ঐচ্ছিক release_at_provider, দ্বিতীয় অনুরোধে confirmation_tokenD, I, Oএকটি নম্বর রিলিজ করে। দুই ধাপের।

কল

টুলপ্রধান আর্গুমেন্টঅ্যানোটেশনএটি কী করে
list_callsঐচ্ছিক ফিল্টার, limit, offsetR, IREST কল-ইতিহাস ফিল্টারসহ কলের তালিকা দেয়।
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_numberOএকটি নন-আইডেমপোটেন্ট আউটবাউন্ড কল করে।
export_callsকল ফিল্টার, export_formatR, IREST এন্ডপয়েন্টের সীমা পর্যন্ত JSON বা CSV হিসেবে এক্সপোর্ট করে।

পরীক্ষা এবং যাচাইকরণ

টুলপ্রধান আর্গুমেন্টঅ্যানোটেশনএটি কী করে
list_test_scenariosagent_idR, Iপরীক্ষা সিনারিওর তালিকা দেয়।
create_test_scenarioagent_id, title, scenario_prompt, ঐচ্ছিক শর্তএকটি সিনারিও তৈরি করে।
generate_test_scenariosagent_id, ঐচ্ছিক count, include_edge_cases, localeOএজেন্ট prompt থেকে সিনারিও তৈরি করে।
run_agent_testsagent_id, channel, consent_to_charge, ঐচ্ছিক নির্বাচন/ম্যাট্রিক্সOওয়েব বা টেলিফোনির মাধ্যমে সিনারিও চালায়।
get_test_runagent_id, batch_idR, Iব্যাচ স্ট্যাটাস এবং প্রতি-সিনারিও ফলাফল পায়।
list_validation_runsagent_idR, Iসাম্প্রতিক ড্রাফট ভ্যালিডেশন রানের তালিকা দেয়।
get_validation_statusagent_idR, Iসর্বশেষ ভ্যালিডেশন অবস্থা এবং ড্রাফট মিল পায়।

জ্ঞান

টুলপ্রধান আর্গুমেন্টঅ্যানোটেশনএটি কী করে
list_knowledge_basesR, Iজ্ঞানভান্ডারের তালিকা দেয়।
create_knowledge_basename, ঐচ্ছিক descriptionএকটি জ্ঞানভান্ডার তৈরি করে।
add_knowledge_documentknowledge_base_id, name, contentটেক্সট বা Markdown যোগ করে।
import_knowledge_urlurl, ঐচ্ছিক nameOনিরাপদ ইনজেশনের জন্য একটি পাবলিক পেজ সারিবদ্ধ করে।
search_knowledgeknowledge_base_id, queryR, Iপ্রোডাকশন রিট্রিভালের মাধ্যমে অনুসন্ধান করে।

ইন্টিগ্রেশন, webhook এবং রিমোট MCP সার্ভার

টুলপ্রধান আর্গুমেন্টঅ্যানোটেশনএটি কী করে
list_integrationsR, IHTTP ফাংশন ইন্টিগ্রেশনের তালিকা দেয়।
create_integrationdisplay_name, ফাংশন spec, ঐচ্ছিক এন্ডপয়েন্ট ফিল্ডএকটি HTTP টুল তৈরি করে।
test_integrationurl, ঐচ্ছিক মেথড/হেডার/body/timeoutOসীমাবদ্ধ, SSRF-সুরক্ষিত পরীক্ষা অনুরোধ পাঠায়।
list_webhook_endpointsR, Iস্বাক্ষরিত webhook এন্ডপয়েন্টের তালিকা দেয়।
create_webhook_endpointlabel, url, ঐচ্ছিক ইভেন্ট/স্ট্যাটাসOএকটি স্বাক্ষরিত webhook এন্ডপয়েন্ট তৈরি করে।
test_webhook_endpointendpoint_idOস্বাভাবিক ডেলিভারির মাধ্যমে একটি সিন্থেটিক ইভেন্ট পাঠায়।
list_mcp_serversR, Iভয়েস এজেন্ট দ্বারা কল করা যায় এমন রিমোট সার্ভারের তালিকা দেয়।
create_mcp_serverdisplay_name, url, ঐচ্ছিক হেডারOএকটি রিমোট সার্ভার নিবন্ধন ও সিঙ্ক করে।
sync_mcp_server_toolsserver_idOএকটি রিমোট সার্ভারের টুল ক্যাটালগ রিফ্রেশ করে।

ক্যাম্পেইন

টুলপ্রধান আর্গুমেন্টঅ্যানোটেশনএটি কী করে
list_campaignsR, Iআউটবাউন্ড ক্যাম্পেইনের তালিকা দেয়।
create_campaignক্যাম্পেইন ফিল্ডএকটি ড্রাফট ক্যাম্পেইন তৈরি করে।
add_campaign_contactscampaign_id, contactsসর্বোচ্চ 5,000টি JSON কন্ট্যাক্ট যোগ করে।
campaign_actioncampaign_id, action, ঐচ্ছিক consent_to_charge, দ্বিতীয় অনুরোধে confirmation_tokenD, Ostart, pause, resume বা stop চালায়। start এবং resume দুই ধাপের; pause এবং stop তাৎক্ষণিকভাবে চলে।
get_campaign_statscampaign_idR, Iকাউন্টার এবং সাম্প্রতিক ফলাফল পায়।

ভয়েস, বিলিং, ইমপোর্ট এবং ডকস

টুলপ্রধান আর্গুমেন্টঅ্যানোটেশনএটি কী করে
list_voicesR, Iভয়েস এবং সমর্থিত ভাষার তালিকা দেয়।
preview_voicevoice, language, textOএকটি নমুনা তৈরি করে এবং একটি স্বাক্ষরিত URL ফেরত দেয়।
list_voice_clonesR, Iকাস্টম ভয়েস ক্লোনের তালিকা দেয়।
get_billing_summaryR, Iব্যালেন্স এবং প্রামাণিক টিয়ার মূল্য পায়; কোনো পেমেন্ট পরিবর্তন উন্মুক্ত করা হয় না।
create_agent_importvendor, vendor_keyOএকটি এনক্রিপ্ট করা Vapi, Retell, ElevenLabs বা Bland ইমপোর্ট শুরু করে।
get_agent_importpublic_idR, Iপ্রস্তাবিত ইমপোর্ট ডিফ পায়।
commit_agent_importpublic_idপর্যালোচিত প্ল্যান থেকে নির্বাচিত এজেন্ট কমিট করে।
search_docsquery, ঐচ্ছিক limitR, I, Oপাবলিক ডকস ইনডেক্সে অনুসন্ধান করে।
get_doc_pagepathR, I, Oএকটি পাবলিক Markdown ডকস পেজ ফেচ করে।

সব পণ্য টুল পাবলিক API-এর মতো একই REST কোড পাথ ব্যবহার করে। তাই 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 মিনিটের জন্য বৈধ থাকে এবং একটি প্রতিষ্ঠান, একটি টুল ও একটি নির্দিষ্ট আর্গুমেন্ট সেটের জন্য প্রযোজ্য; তাই তিনটি এজেন্ট মুছতে তিনটি নিশ্চিতকরণ লাগে। pause বা stop সহ campaign_action এই ধাপটি এড়িয়ে যায়, যাতে চলমান ক্যাম্পেইন সবসময় সঙ্গে সঙ্গে থামানো যায়।

প্রারম্ভিক prompt

prompts/list ছয়টি পুনঃব্যবহারযোগ্য ওয়ার্কফ্লো প্রকাশ করে:

  • create_inbound_receptionist
  • run_agent_tests
  • import_vapi_assistants
  • buy_and_attach_number
  • review_low_grade_calls
  • add_url_to_agent_knowledge

চালানোর জন্য প্রস্তুত একটি ব্যবহারকারী বার্তা পেতে তালিকাভুক্ত prompt নাম ও তার ঘোষিত আর্গুমেন্টসহ prompts/get ব্যবহার করুন।

রিসোর্স

resources/list সর্বজনীন, ক্যাশ করা রেফারেন্স প্রকাশ করে:

URIবিষয়বস্তু
thunderphone://docs/llms.txtসর্বজনীন ডকুমেন্টেশন সূচি।
thunderphone://docs/quickstartকুইকস্টার্ট Markdown।
thunderphone://pricingবর্তমান সর্বজনীন মূল্য নির্ধারণের Markdown।

একটি পড়তে resources/read ব্যবহার করুন। সর্বজনীন ফেচে স্বল্প টাইমআউট, 2 MiB সীমা এবং প্রক্রিয়ার মধ্যে 10 মিনিটের ক্যাশ ব্যবহৃত হয়।

প্রোটোকল ও ত্রুটি

সার্ভারটি 2025-06-18 এবং 2025-03-26 প্রোটোকল সংস্করণ সমর্থন করে; এটি সমর্থিত ক্লায়েন্ট সংস্করণ প্রতিধ্বনিত করে এবং অন্যথায় 2025-06-18 নির্বাচন করে। এটি initialize, ping, টুল, prompt, রিসোর্স এবং নোটিফিকেশন বাস্তবায়ন করে। নোটিফিকেশন 202 Accepted ফেরত দেয়। এই স্টেটলেস সার্ভার SSE লিসেনার বা সেশন মুছে ফেলার সুবিধা প্রকাশ করে না, তাই GET এবং DELETE, Allow: POST সহ 405 Method Not Allowed ফেরত দেয়।

টুল ব্যর্থতা isError: true সহ সফল JSON-RPC প্রতিক্রিয়া হিসেবেই থাকে। তাদের লেখায় একটি সংক্ষিপ্ত বাক্যের পর একটি 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 মেথড HTTP 200 প্রতিক্রিয়ায় -32601 ফেরত দেয়। JSON-RPC ব্যাচ MCP 2025-06-18 দ্বারা সমর্থিত নয় এবং একটি পরিষ্কার -32600 অবৈধ-অনুরোধ ত্রুটি ফেরত দেয়।