---
title: "ThunderPhone चा MCP सर्व्हर म्हणून वापर करा"
description: "Claude, ChatGPT, Claude Code, Codex, Cursor, VS Code किंवा इतर Streamable HTTP MCP क्लायंटमधून ThunderPhone व्हॉइस एजंट तयार करा, चाचणी करा, वैधता तपासा आणि चालवा."
---

ThunderPhone येथे स्ट्रीम करण्यायोग्य HTTP Model Context Protocol सर्व्हर उपलब्ध करून देते:

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

हे [रिमोट MCP सर्व्हरला व्हॉइस एजंटशी जोडण्याच्या](/mr/guides/mcp-servers) उलट दिशेने कार्य करते:

| दिशा | परिणाम |
| --- | --- |
| रिमोट MCP सर्व्हर → ThunderPhone एजंट | व्हॉइस एजंट रिमोट सर्व्हरची साधने कॉल करू शकतो. |
| ThunderPhone → तुमचा MCP क्लायंट | तुमचा कोडिंग एजंट ThunderPhone तयार करू, चाचणी करू आणि चालवू शकतो. |

## प्रमाणीकरण

डिरेक्टरी क्लायंटसाठी डीफॉल्टनुसार [OAuth](/mr/guides/oauth) वापरा: साइन इन करा, संस्था निवडा आणि विनंती केलेल्या परवानग्या मंजूर करा. **संस्था → API की → अधिकृत अॅप्स** अंतर्गत प्रवेश रद्द करा.

API कीसह कॉन्फिगर केलेल्या क्लायंटसाठी, **संस्था → की** अंतर्गत `sk_live_` की तयार करा आणि ती तुमच्या MCP क्लायंटला `THUNDERPHONE_API_KEY` म्हणून उपलब्ध करून द्या. ही की एका संस्थेशी बांधलेली असते; दुसऱ्या संस्थेच्या मालकीचा ID सापडला नाही असे वर्तन करतो.

<Warning>
  `sk_live_` की संस्था डेटा वाचू शकते आणि एजंट डिप्लॉय करणे, कॉल करणे, नंबर खरेदी करणे, मोहिमा सुरू करणे आणि संसाधने हटवणे यांसारख्या उत्पादनातील कृती करू शकते. ती ब्राउझर कोड, रिपॉझिटरी, स्क्रीनशॉट आणि चॅट लॉगपासून दूर ठेवा. तुमच्या क्लायंटचे सिक्रेट स्टोअर किंवा एन्व्हायर्नमेंट समर्थन वापरा आणि उघड झालेली की त्वरित रद्द करा.
</Warning>

## CLI आणि stdio पर्याय

[ThunderPhone CLI](/mr/guides/cli) असंबंधित सर्व्हर जतन ठेवून क्लायंट कॉन्फिगरेशन लिहू शकते:

```bash
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](/mr/guides/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 चॅटमध्ये जोडा.

एजंट किंवा फोन नंबर हटवणे, मसुदा रद्द करणे आणि मोहीम सुरू करणे यांसाठी दोन्ही अॅप्समध्ये दुसरी पुष्टी आवश्यक असते; [विध्वंसक कृतींची पुष्टी करणे](#confirming-destructive-actions) पहा.

### Claude Code

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

### Codex

हे `~/.codex/config.toml` मध्ये जोडा:

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

### Cursor

`.cursor/mcp.json` तयार करा:

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

### Claude Desktop

Claude Desktop कॉन्फिगरेशनमध्ये `mcp-remote` ब्रिज जोडा:

```json
{
  "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 च्या इनपुट प्रॉम्प्टद्वारे की प्रविष्ट करा:

```json
{
  "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 | स्टेज केलेले बदल रद्द करते. दोन-टप्प्यांचे; [विनाशकारी क्रियांची पुष्टी करणे](#confirming-destructive-actions) पहा. |
| `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`, राउटिंग/लेबल/webhook फील्ड्स | — | एजंट असाइनमेंटसह नंबर राउटिंग अपडेट करते. |
| `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 | एजंट prompt वरून परिस्थिती निर्माण करते. |
| `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`, ऐच्छिक पद्धत/हेडर्स/body/timeout | O | मर्यादित, SSRF-संरक्षित चाचणी विनंती पाठवते. |
| `list_webhook_endpoints` | — | R, I | स्वाक्षरी केलेल्या webhook एंडपॉइंटची यादी देते. |
| `create_webhook_endpoint` | `label`, `url`, ऐच्छिक इव्हेंट्स/स्थिती | O | स्वाक्षरी केलेला webhook एंडपॉइंट तयार करते. |
| `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 | प्रस्तावित इंपोर्ट diff मिळवते. |
| `commit_agent_import` | `public_id` | — | पुनरावलोकन केलेल्या प्लॅनमधून निवडलेले एजंट कमिट करते. |
| `search_docs` | `query`, ऐच्छिक `limit` | R, I, O | सार्वजनिक दस्तऐवज इंडेक्समध्ये शोधते. |
| `get_doc_page` | `path` | R, I, O | एक सार्वजनिक Markdown दस्तऐवज पेज मिळवते. |

सर्व उत्पादन साधने सार्वजनिक API प्रमाणेच REST कोड पाथ वापरतात. त्यामुळे REST प्रमाणीकरण, संस्था स्कोपिंग, भूमिका, बिलिंग प्रवेश, कोटा, TCPA पुष्टीकरण, प्रदाता सुरक्षा आणि ऑडिट वर्तन कोणत्याही बदलाशिवाय लागू होते.

## विनाशकारी कृतींची पुष्टी करणे

D ने चिन्हांकित केलेली साधने अशी गोष्ट बदलतात किंवा काढून टाकतात जी पुनर्संचयित करता येत नाही, किंवा प्रत्यक्ष लोकांना कॉल करणे सुरू करतात. त्यांना दोन विनंत्या लागतात. पहिली विनंती काहीही बदलत नाही आणि खालील परत करते:

```json
{
  "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 मर्यादा आणि दहा मिनिटांचा इन-प्रोसेस कॅश वापरला जातो.

## प्रोटोकॉल आणि त्रुटी

सर्व्हर `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 ब्लॉक असतो:

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

`place_call` साठी वेगळा `outbound_tcpa_confirmation_required:` उपसर्ग कायम ठेवला जातो. अज्ञात JSON-RPC पद्धती HTTP `200` प्रतिसादात `-32601` परत करतात. JSON-RPC बॅचेसना MCP `2025-06-18` समर्थन देत नाही आणि त्या स्वच्छ `-32600` अवैध-विनंती त्रुटी परत करतात.
