MCP सर्वर
पोर्टल में कहाँ: API reference › Tools (
https://<your-domain>/apidoc) एंडपॉइंट और क्लाइंट स्निपेट दिखाता है; API keys (/api-keys) पर कुंजियाँ बनाई जाती हैं। एडमिन में कोई सेटिंग नहीं है: एंडपॉइंट पैनल का हिस्सा है।
यह क्या करता है
Model Context Protocol (MCP) AI सहायक को टूल्स कॉल करने की अनुमति देता है। NexCMP https://<your-domain>/mcp पर एक MCP एंडपॉइंट प्रदान करता है। हर सार्वजनिक API ऑपरेशन एक टूल (vm_list, vm_start, billing_wallet, ...) बन जाता है, जिससे कोई ग्राहक अपने सहायक से पूछ सकता है "मेरी कौन सी VMs चल रही हैं?" या "स्टेजिंग VM बंद करो"। सहायक केवल ग्राहक की अपनी API कुंजी और अनुमतियों के साथ काम करता है।
AI के साथ खुद NexCMP को कॉन्फ़िगर कर रहे हैं?
यह पेज ग्राहक MCP एंडपॉइंट (/mcp) है। एक एडमिनिस्ट्रेटर के रूप में अपने खुद के पैनल को AI सहायक से कॉन्फ़िगर करने के लिए, Configure with AI (एंडपॉइंट /mcp/admin, एडमिन कुंजियाँ ak_) देखें।
आवश्यकताएं
| आइटम | आवश्यकता |
|---|---|
| सर्वर | इंस्टॉल करने के लिए कुछ नहीं: एंडपॉइंट पैनल द्वारा सर्व किया जाता है और पैनल जहाँ भी हो वहाँ से पहुँचा जा सकता है। आपके रिवर्स प्रॉक्सी को /mcp को पैनल पर अग्रेषित (forward) करना होगा। |
| ग्राहक | एक API key (vk_...) जिसमें सहायक को आवश्यक स्कोप हों। |
| क्लाइंट | एक MCP क्लाइंट जो Streamable HTTP ट्रांसपोर्ट और एक कस्टम Authorization हेडर का समर्थन करता है: Claude Code, Claude Desktop (mcp-remote ब्रिज के माध्यम से), Cursor, Copilot एजेंट मोड के साथ VS Code और इसी तरह के अन्य। |
| प्रोटोकॉल संस्करण | 2025-11-25, 2025-06-18 और 2025-03-26। |
बुनियादी ढांचा तैयार करें
यह सुनिश्चित करने के अलावा कि https://<your-domain>/mcp किसी फ़ायरवॉल या प्रॉक्सी नियम द्वारा अवरुद्ध (block) नहीं है, कुछ नहीं। किसी अन्य ऑरिजिन का ब्राउज़र-आधारित MCP क्लाइंट अस्वीकार कर दिया जाता है जब तक कि वह ऑरिजिन अनुमति प्राप्त न हो; कमांड-लाइन और डेस्कटॉप क्लाइंट कोई Origin हेडर नहीं भेजते हैं और वैसे ही काम करते हैं जैसे वे हैं।
कनेक्ट करें (ग्राहक पक्ष)
पोर्टल में एक API कुंजी बनाएँ (API keys › Create key) केवल उन स्कोप्स के साथ जिनका उपयोग आप सहायक से करवाना चाहते हैं, एक छोटी समाप्ति और, यदि संभव हो, तो एक IP प्रतिबंध।
अपने क्लाइंट में सर्वर जोड़ें।
cloud.example.comऔर कुंजी को बदलें।Claude Code
bashclaude 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) में रखें, जैसा कि ऊपर बताया गया है।
क्लाइंट को पुनः आरंभ करें और इससे अपने टूल्स की सूची दिखाने के लिए कहें।
बिना क्लाइंट के कनेक्शन की जाँच करें:
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"}'यह कैसे काम करता है
| आइटम | 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 सेकंड लगते हैं। |
सुरक्षा नियम
- REST जैसा ही गेट। प्रत्येक
tools/callपैनल के अपने अनुरोध पाइपलाइन से गुजरता है: स्कोप, साइट, IP प्रतिबंध, रेट लिमिट, आइडपोटेंसी, स्वामित्व जांच (अन्य लोगों के संसाधनों के लिए 404) और कोटा सभी लागू होते हैं। MCP ऐसी कोई अनुमति नहीं दे सकता जो कुंजी के पास नहीं है। - पुष्टिकरण। जो टूल पैसे खर्च करते हैं, हटाते हैं, या क्रेडेंशियल लौटाते हैं (कंसोल टिकट, kubeconfig, S3 या SSH सीक्रेट, पासवर्ड रीसेट, नई कुंजियाँ) उनके लिए
confirm: trueतर्क आवश्यक होता है। टूल विवरण सहायक को निर्देश देता है कि इसे केवल उपयोगकर्ता की स्वीकृति के बाद ही पास करे, ताकि वेब पेज या लॉग में छुपा निर्देश इसे अपने आप ट्रिगर न कर सके। - आइडपोटेंसी (Idempotency)। भुगतान वाले टूल
idempotency_keyस्वीकार करते हैं; यदि छोड़ा जाता है तो टूल नाम और तर्कों से एक स्थिर कुंजी प्राप्त की जाती है, ताकि एक समान रीट्राय पर दो बार शुल्क न लगे। - टूल के रूप में उपलब्ध नहीं: स्ट्रीमिंग एंडपॉइंट्स (AI Agent चैट), वन-टाइम SSH या कंसोल WebSocket टिकट, बाइनरी डाउनलोड, और VPN ऐप एंडपॉइंट्स (
/v1/ext/*)। - कभी भी संभव नहीं: API कभी भी टॉप-अप, पासवर्ड बदलने, खाता हटाने या कुंजियाँ बनाने की अनुमति नहीं देता, इसलिए कोई भी सहायक इन्हें नहीं कर सकता।
सीमाएं
| Limit | डिफ़ॉल्ट |
|---|---|
| प्रति कुंजी टूल कॉल | 60 प्रति मिनट |
| प्रति कुंजी MCP अनुरोध | 240 प्रति मिनट |
| साथ ही सामान्य कुंजी और खाता सीमाएं | देखें REST API |
सीमा से अधिक होने पर एंडपॉइंट JSON-RPC त्रुटि और Retry-After के साथ HTTP 429 उत्तर देता है।
सत्यापित करें
- उपरोक्त
curlकमांड एकtoolsसूची के साथ JSON-RPC परिणाम लौटाता है। केवल कुंजी के स्कोप से मेल खाने वाले टूल दिखाई देते हैं। - अपने क्लाइंट में "list my VMs" पूछें: सहायक
vm_listको कॉल करता है और परिणाम दिखाता है। - पोर्टल में कुंजी का Last used समय बदल जाता है, और Key usage log में राइट कॉल दिखाई देते हैं।
Limits & notes
- ब्राउज़र साइन-इन (OAuth)। संदर्भ पृष्ठ उन क्लाइंट्स के लिए ब्राउज़र के माध्यम से साइन इन करने का भी वर्णन करता है जो MCP OAuth का समर्थन करते हैं। स्थापित NexCMP में समर्थित, परीक्षण किया गया तरीका API कुंजी (या CLI के लिए
cmp login) है। - रीसेलर साइटें MCP अनुभाग नहीं दिखाती हैं; उनके ग्राहक API के लिए रीसेलर के डोमेन का उपयोग करते हैं।
- न्यूनतम विशेषाधिकार (Least privilege)। पहले रीड स्कोप के साथ प्रत्येक सहायक के लिए एक समर्पित कुंजी बनाएं; आवश्यकता पड़ने पर ही राइट स्कोप जोड़ें।
- सहायक की पहुँच को तुरंत समाप्त करने के लिए API keys में कुंजी को रद्द करें।
ट्रबलशूटिंग
| लक्षण | कारण | सुधार |
|---|---|---|
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 ब्रिज का उपयोग करें। |