---
title: MCP सर्वर
description: Claude, Cursor, VS Code और अन्य AI सहायकों को /mcp पर मौजूद इनबिल्ट MCP एंडपॉइंट के माध्यम से अपने इंस्टॉलेशन के API से कनेक्ट करें — प्रमाणीकरण, क्लाइंट कॉन्फ़िगरेशन, टूल्स और सुरक्षा नियम।
url: https://nexcmp.com/hi/docs/developers/mcp/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# MCP सर्वर {#mcp-server}

> **पोर्टल में कहाँ:** API reference › Tools (`https://<your-domain>/apidoc`) एंडपॉइंट और क्लाइंट स्निपेट दिखाता है; API keys (`/api-keys`) पर कुंजियाँ बनाई जाती हैं। एडमिन में कोई सेटिंग नहीं है: एंडपॉइंट पैनल का हिस्सा है।

## यह क्या करता है {#what-it-does}

**Model Context Protocol (MCP)** AI सहायक को टूल्स कॉल करने की अनुमति देता है। NexCMP `https://<your-domain>/mcp` पर एक MCP एंडपॉइंट प्रदान करता है। हर सार्वजनिक API ऑपरेशन एक **टूल** (`vm_list`, `vm_start`, `billing_wallet`, ...) बन जाता है, जिससे कोई ग्राहक अपने सहायक से पूछ सकता है "मेरी कौन सी VMs चल रही हैं?" या "स्टेजिंग VM बंद करो"। सहायक केवल ग्राहक की अपनी API कुंजी और अनुमतियों के साथ काम करता है।

::: tip AI के साथ खुद NexCMP को कॉन्फ़िगर कर रहे हैं?
यह पेज **ग्राहक** MCP एंडपॉइंट (`/mcp`) है। एक एडमिनिस्ट्रेटर के रूप में अपने खुद के पैनल को AI सहायक से कॉन्फ़िगर करने के लिए, [Configure with AI](https://nexcmp.com/hi/docs/configure-with-ai/mcp-admin/) (एंडपॉइंट `/mcp/admin`, एडमिन कुंजियाँ `ak_`) देखें।
:::

## आवश्यकताएं {#requirements}

| आइटम | आवश्यकता |
|---|---|
| सर्वर | इंस्टॉल करने के लिए कुछ नहीं: एंडपॉइंट पैनल द्वारा सर्व किया जाता है और पैनल जहाँ भी हो वहाँ से पहुँचा जा सकता है। आपके रिवर्स प्रॉक्सी को `/mcp` को पैनल पर अग्रेषित (forward) करना होगा। |
| ग्राहक | एक [API key](https://nexcmp.com/hi/docs/developers/api-keys/) (`vk_...`) जिसमें सहायक को आवश्यक स्कोप हों। |
| क्लाइंट | एक MCP क्लाइंट जो **Streamable HTTP** ट्रांसपोर्ट और एक कस्टम `Authorization` हेडर का समर्थन करता है: Claude Code, Claude Desktop (`mcp-remote` ब्रिज के माध्यम से), Cursor, Copilot एजेंट मोड के साथ VS Code और इसी तरह के अन्य। |
| प्रोटोकॉल संस्करण | 2025-11-25, 2025-06-18 और 2025-03-26। |

## बुनियादी ढांचा तैयार करें {#prepare-the-infrastructure}

यह सुनिश्चित करने के अलावा कि `https://<your-domain>/mcp` किसी फ़ायरवॉल या प्रॉक्सी नियम द्वारा अवरुद्ध (block) नहीं है, कुछ नहीं। किसी अन्य ऑरिजिन का ब्राउज़र-आधारित MCP क्लाइंट अस्वीकार कर दिया जाता है जब तक कि वह ऑरिजिन अनुमति प्राप्त न हो; कमांड-लाइन और डेस्कटॉप क्लाइंट कोई `Origin` हेडर नहीं भेजते हैं और वैसे ही काम करते हैं जैसे वे हैं।

## कनेक्ट करें (ग्राहक पक्ष) {#connect-customer-side}

1. पोर्टल में एक API कुंजी बनाएँ (**API keys › Create key**) केवल उन स्कोप्स के साथ जिनका उपयोग आप सहायक से करवाना चाहते हैं, एक छोटी समाप्ति और, यदि संभव हो, तो एक IP प्रतिबंध।
2. अपने क्लाइंट में सर्वर जोड़ें। `cloud.example.com` और कुंजी को बदलें।

   **Claude Code**

   ```bash
   claude mcp add --transport http cloud https://cloud.example.com/mcp \
     --header "Authorization: Bearer vk_XXXX"
   ```

   **Cursor** (`~/.cursor/mcp.json` या `.cursor/mcp.json`; उस वातावरण में `CLOUD_API_KEY` सेट करें जहाँ से Cursor शुरू होता है):

   ```json
   {
     "mcpServers": {
       "cloud": {
         "url": "https://cloud.example.com/mcp",
         "headers": { "Authorization": "Bearer ${env:CLOUD_API_KEY}" }
       }
     }
   }
   ```

   **Claude Desktop** (Node.js 18+ की आवश्यकता है; `claude_desktop_config.json`), `mcp-remote` ब्रिज के माध्यम से:

   ```json
   {
     "mcpServers": {
       "cloud": {
         "command": "npx",
         "args": ["-y", "mcp-remote", "https://cloud.example.com/mcp", "--header", "Authorization:${CLOUD_AUTH_HEADER}"],
         "env": { "CLOUD_AUTH_HEADER": "Bearer vk_XXXX" }
       }
     }
   }
   ```

   कॉलन के बाद बिना स्पेस के हेडर लिखें और पूरे मान को पर्यावरण चर (environment variable) में रखें, जैसा कि ऊपर बताया गया है।

3. क्लाइंट को पुनः आरंभ करें और इससे अपने टूल्स की सूची दिखाने के लिए कहें।


बिना क्लाइंट के कनेक्शन की जाँच करें:

```bash
curl -s https://cloud.example.com/mcp \
  -H "Authorization: Bearer vk_XXXX" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

## यह कैसे काम करता है {#how-it-works}

| आइटम | Detail |
|---|---|
| Endpoint | `POST /mcp` एक JSON-RPC 2.0 संदेश के साथ; उत्तर `application/json` है। `GET /mcp` 405 उत्तर देता है (कोई सर्वर-से-क्लाइंट स्ट्रीम नहीं); `DELETE /mcp` सत्र समाप्त करता है। |
| Authentication | केवल `Authorization: Bearer vk_...` (सत्र टोकन, कुकीज़ और एडमिन कुंजियाँ 401 और `WWW-Authenticate: Bearer` हेडर के साथ अस्वीकार कर दी जाती हैं)। |
| सत्र | `Mcp-Session-Id` को `initialize` द्वारा जारी किया जाता है, उस कुंजी से बंधा होता है, 24 घंटे के लिए वैध होता है; प्रति कुंजी अधिकतम 16 सत्र। |
| टूल्स | कुंजी को दिखाई देने वाले प्रत्येक सार्वजनिक API ऑपरेशन के लिए एक। टूल का नाम स्पेस और डैश के बजाय `_` वाला CLI कमांड है (`vm firewall add`, `vm_firewall_add` बन जाता है) और OpenAPI `operationId` के बराबर होता है। एक टूल तभी सूचीबद्ध होता है जब कुंजी के पास उसका स्कोप हो और मॉड्यूल सक्षम हो। |
| क्षमताएं | केवल टूल्स (कोई संसाधन या प्रॉम्प्ट नहीं)। |
| आकार | अनुरोध बॉडी 1 MB तक; टूल परिणाम पाठ लगभग 100 KB तक (बाकी एक नोट के साथ काट दिया जाता है); एक कॉल में अधिकतम 55 सेकंड लगते हैं। |

### सुरक्षा नियम {#safety-rules}

- **REST जैसा ही गेट।** प्रत्येक `tools/call` पैनल के अपने अनुरोध पाइपलाइन से गुजरता है: स्कोप, साइट, IP प्रतिबंध, रेट लिमिट, आइडपोटेंसी, स्वामित्व जांच (अन्य लोगों के संसाधनों के लिए 404) और कोटा सभी लागू होते हैं। MCP ऐसी कोई अनुमति नहीं दे सकता जो कुंजी के पास नहीं है।
- **पुष्टिकरण।** जो टूल पैसे खर्च करते हैं, हटाते हैं, या क्रेडेंशियल लौटाते हैं (कंसोल टिकट, kubeconfig, S3 या SSH सीक्रेट, पासवर्ड रीसेट, नई कुंजियाँ) उनके लिए `confirm: true` तर्क आवश्यक होता है। टूल विवरण सहायक को निर्देश देता है कि इसे केवल उपयोगकर्ता की स्वीकृति के बाद ही पास करे, ताकि वेब पेज या लॉग में छुपा निर्देश इसे अपने आप ट्रिगर न कर सके।
- **आइडपोटेंसी (Idempotency)।** भुगतान वाले टूल `idempotency_key` स्वीकार करते हैं; यदि छोड़ा जाता है तो टूल नाम और तर्कों से एक स्थिर कुंजी प्राप्त की जाती है, ताकि एक समान रीट्राय पर दो बार शुल्क न लगे।
- **टूल के रूप में उपलब्ध नहीं:** स्ट्रीमिंग एंडपॉइंट्स (AI Agent चैट), वन-टाइम SSH या कंसोल WebSocket टिकट, बाइनरी डाउनलोड, और VPN ऐप एंडपॉइंट्स (`/v1/ext/*`)।
- **कभी भी संभव नहीं:** API कभी भी टॉप-अप, पासवर्ड बदलने, खाता हटाने या कुंजियाँ बनाने की अनुमति नहीं देता, इसलिए कोई भी सहायक इन्हें नहीं कर सकता।

### सीमाएं {#limits}

| Limit | डिफ़ॉल्ट |
|---|---|
| प्रति कुंजी टूल कॉल | 60 प्रति मिनट |
| प्रति कुंजी MCP अनुरोध | 240 प्रति मिनट |
| साथ ही सामान्य कुंजी और खाता सीमाएं | देखें [REST API](https://nexcmp.com/hi/docs/developers/api/#rate-limits) |

सीमा से अधिक होने पर एंडपॉइंट JSON-RPC त्रुटि और `Retry-After` के साथ HTTP 429 उत्तर देता है।

## सत्यापित करें {#verify}

1. उपरोक्त `curl` कमांड एक `tools` सूची के साथ JSON-RPC परिणाम लौटाता है। केवल कुंजी के स्कोप से मेल खाने वाले टूल दिखाई देते हैं।
2. अपने क्लाइंट में "list my VMs" पूछें: सहायक `vm_list` को कॉल करता है और परिणाम दिखाता है।
3. पोर्टल में कुंजी का **Last used** समय बदल जाता है, और **Key usage log** में राइट कॉल दिखाई देते हैं।

## Limits & notes {#limits-notes}

- **ब्राउज़र साइन-इन (OAuth)।** संदर्भ पृष्ठ उन क्लाइंट्स के लिए ब्राउज़र के माध्यम से साइन इन करने का भी वर्णन करता है जो MCP OAuth का समर्थन करते हैं। स्थापित NexCMP में समर्थित, परीक्षण किया गया तरीका API कुंजी (या CLI के लिए `cmp login`) है।
- **रीसेलर साइटें** MCP अनुभाग नहीं दिखाती हैं; उनके ग्राहक API के लिए रीसेलर के डोमेन का उपयोग करते हैं।
- **न्यूनतम विशेषाधिकार (Least privilege)।** पहले रीड स्कोप के साथ प्रत्येक सहायक के लिए एक समर्पित कुंजी बनाएं; आवश्यकता पड़ने पर ही राइट स्कोप जोड़ें।
- सहायक की पहुँच को तुरंत समाप्त करने के लिए **API keys** में कुंजी को रद्द करें।

## ट्रबलशूटिंग {#troubleshooting}

| लक्षण | कारण | सुधार |
|---|---|---|
| `WWW-Authenticate: Bearer` के साथ 401 | कोई कुंजी नहीं, गलत कुंजी, या सत्र टोकन | `Authorization: Bearer vk_...` भेजें। |
| `Origin` के बारे में 403 | किसी अन्य मूल (origin) पर एक ब्राउज़र पेज | डेस्कटॉप या CLI क्लाइंट का उपयोग करें; या अपने व्यवस्थापक से मूल (`mcp_allowed_origins`) की अनुमति देने के लिए कहें। |
| `Mcp-Session-Id` के साथ अनुरोध पर 404 | सत्र किसी अन्य कुंजी का है या समाप्त हो गया है | `initialize` को फिर से चलाएँ। |
| `GET /mcp` पर 405 | अपेक्षित: सर्वर में कोई इवेंट स्ट्रीम नहीं है | केवल POST का उपयोग करें (क्लाइंट यह स्वतः करते हैं)। |
| टूल सूची छोटी है | कुंजी स्कोप या मॉड्यूल | कुंजी में स्कोप जोड़ें; मॉड्यूल सक्षम करें। |
| टूल उत्तर देता है कि उसे `confirm: true` चाहिए | भुगतान वाला, हटाने वाला या संवेदनशील टूल | आपके अनुमोदन के बाद सहायक को `confirm` सेट करना होगा। |
| 429 | MCP या कुंजी दर सीमा | `Retry-After` की प्रतीक्षा करें। |
| क्लाइंट किसी हेडर के साथ कनेक्ट नहीं हो सकता | कस्टम-हेडर समर्थन के बिना क्लाइंट | `mcp-remote` ब्रिज का उपयोग करें। |


