Edgegap
आधिकारिकअपने कोडिंग एजेंट से मल्टीप्लेयर गेम सर्वर तैनात करें। दस उपकरण जो Unity, Unreal, या Godot समर्पित सर्वर को कंटेनर इमेज से जुड़े खिलाड़ियों तक ले जाते हैं।
Edgegap MCP के साथ आप क्या कर सकते हैं?
- कंटेनर इमेज से गेम सर्वर तैनात करें — सहायक से अपने कंटेनर इमेज को CPU, मेमोरी और पोर्ट सेटिंग्स के साथ पंजीकृत करने को कहें, फिर इसे विशिष्ट खिलाड़ियों के पास लॉन्च करें।
- तैनाती की स्थिति और कनेक्शन विवरण ट्रैक करें — सहायक से तब तक पोल करने को कहें जब तक आपकी तैनाती तैयार न हो जाए और कनेक्शन पता लौटाए, या चल रहे इंस्टेंस के लिए स्थिति और लॉग जांचें।
- एप्लिकेशन संस्करण प्रबंधित करें — सहायक से मौजूदा ऐप्स और संस्करणों की सूची दिखाने को कहें, या डुप्लिकेशन से बचने के लिए किसी कार्यशील संस्करण की सेटिंग्स से नया संस्करण बनाएं।
- तैनाती को सुचारू रूप से रोकें — सहायक को अनुरोध आईडी द्वारा किसी विशिष्ट तैनाती को समाप्त करने का निर्देश दें, जिससे फोर्स-किल करने के बजाय एक स्वच्छ शटडाउन सिग्नल भेजा जाए।
- अनाथ सर्वर खोजें और साफ करें — सहायक से पिछले सत्रों की सभी तैनातियों की सूची दिखाने को कहें ताकि आप अप्रयुक्त इंस्टेंस की पहचान कर सकें और उन्हें रोक सकें।
होस्ट किया गया MCP सर्वर
npx add-mcp 'https://mcp.edgegap.dev/mcp'Claude Code, Codex, Cursor और अन्य में इंस्टॉल होता है
दस्तावेज़
edgegap-mcp
Edgegap के लिए एक MCP सर्वर जो एक कोडिंग एजेंट को डेवलपर को "मेरे पास एक गेम सर्वर कंटेनर है" से "खिलाड़ी इससे जुड़े हैं" तक ले जाने में सक्षम बनाता है, बिना डेवलपर को API संदर्भ पढ़ने की आवश्यकता के।
दस उपकरण, हाथ से चुने गए। OpenAPI स्पेक से उत्पन्न नहीं — कारण के लिए दायरा देखें।
स्थापना
इसे चलाने के दो तरीके। चुनें कि आप अपने टोकन के स्थान के बारे में कितनी परवाह करते हैं — आपका टोकन कहाँ जाता है देखें।
दूरस्थ समापन बिंदु
Edgegap द्वारा Cloudflare Worker के रूप में होस्ट किया गया। कुछ भी स्थापित करने की आवश्यकता नहीं।
{
"mcpServers": {
"edgegap": {
"type": "http",
"url": "https://mcp.edgegap.dev/mcp",
"headers": { "Authorization": "token YOUR_API_TOKEN" }
}
}
}
यह claude.ai में कस्टम कनेक्टर के रूप में भी काम करता है: https://mcp.edgegap.dev/mcp जोड़ें और वही टोकन प्रदान करें।
स्थानीय
आपकी अपनी मशीन पर चलता है, आपके संपादक द्वारा स्पॉन किया गया। आपके MCP क्लाइंट कॉन्फ़िग में एक पंक्ति, क्लोन करने के लिए कुछ नहीं, बनाने के लिए कुछ नहीं।
{
"mcpServers": {
"edgegap": {
"command": "npx",
"args": ["-y", "@edgegap/mcp"]
}
}
}
Claude Code, Cursor, Codex, और VS Code में काम करता है। उत्पादन में एक संस्करण पिन करें (@edgegap/mcp@0.1.5) बजाय नवीनतम पर तैरने के।
आधिकारिक MCP रजिस्ट्री में dev.edgegap/mcp के रूप में पंजीकृत।
Node संस्करण: स्थानीय सर्वर को Node 18+ चाहिए। Cloudflare Worker की अपनी प्रति तैनात करने के लिए Node 22+ चाहिए, क्योंकि
wranglerको इसकी आवश्यकता है।
आपका टोकन कहाँ जाता है
यह मोड के अनुसार भिन्न होता है, और यह अंतर दोनों मोड के अस्तित्व का कारण है।
स्थानीय। सर्वर आपके अपने कंप्यूटर पर एक प्रक्रिया के रूप में चलता है। पहला टूल कॉल आपसे टोकन मांगता है, दिखाता है कि यह क्या अधिकृत करता है, और इसे स्वीकार करने से पहले स्पष्ट स्वीकृति की आवश्यकता होती है। वह टोकन फिर कहाँ रहता है, पूरी तरह से:
- उस प्रक्रिया की मेमोरी में एक चर, आपके संपादक सत्र के जीवन के लिए
यह पूरी सूची है। डिस्क पर नहीं। कॉन्फ़िग फ़ाइल में नहीं। लॉग में नहीं। किसी Edgegap सर्वर पर नहीं — Edgegap को भेजी गई एकमात्र चीज़ API कॉल ही है, बिल्कुल वैसे जैसे आपने curl चलाया हो। अपना संपादक बंद करने से इस सर्वर की पहुंच पूरी तरह से रद्द हो जाती है।
दूरस्थ। आपका टोकन हर अनुरोध पर mcp.edgegap.dev को भेजा जाता है और वहां से Edgegap API को अग्रेषित किया जाता है। यह Edgegap द्वारा संचालित बुनियादी ढांचे से गुजरता है। वर्कर इसे अनुरोध के जीवन के लिए रखता है और इसे संग्रहीत नहीं करता, लेकिन यह "हम इसे संग्रहीत नहीं करते" का दावा है, "हम इसे कभी नहीं देखते" का नहीं। दोनों अलग हैं, और केवल स्थानीय मोड दूसरा बनाता है।
https://app.edgegap.com/user-settings?tab=tokens पर एक टोकन उत्पन्न करें।
स्थानीय मोड में, EDGEGAP_API_TOKEN सेट करना प्रॉम्प्ट पर प्राथमिकता लेता है, CI और उन क्लाइंट्स के लिए जो प्रॉम्प्ट नहीं दिखा सकते। कमांड-लाइन तर्क के रूप में टोकन न दें — तर्क अन्य प्रक्रियाओं को ps के माध्यम से दिखाई देते हैं, और सर्वर चेतावनी देता है यदि यह एक का पता लगाता है।
कौन सा उपयोग करें। पहली कोशिश, डेमो, या पर्यवेक्षित सत्र के लिए दूरस्थ, जहां सेटअप की परेशानी संरक्षकता से अधिक मायने रखती है। किसी भी अनियंत्रित चीज़ के लिए स्थानीय, किसी संगठन में किसी भी चीज़ के लिए जिसमें लाइव गेम है, और किसी भी चीज़ के लिए जहां आप उस भरोसे का विस्तार नहीं करना चाहते जो आपको नहीं करना है। नीचे वर्णित सुरक्षा उपाय केवल स्थानीय मोड में मौजूद हैं।
एजेंट कनेक्ट करने से पहले यह पढ़ें
Edgegap API टोकन को स्कोप नहीं किया जा सकता। एक टोकन हर एप्लिकेशन, हर संस्करण, हर चालू तैनाती, और पूरे संगठन में आपके उपयोग को अधिकृत करता है। कोई केवल-तैनाती टोकन नहीं है और कोई प्रति-एप्लिकेशन टोकन नहीं है।
परिणाम जिनके बारे में जानबूझकर सोचना चाहिए:
- इस टोकन को रखने वाला एजेंट उत्पादन तैनाती रोक सकता है, न केवल वे परीक्षण जो उसने बनाए।
- एजेंट तक पहुंचने वाला प्रॉम्प्ट इंजेक्शन — रिपो फ़ाइल, मुद्दे, लाई गई पेज से — टोकन तक भी पहुंचता है।
- एजेंट जो कुछ भी लॉग, प्रतिध्वनित, या मॉडल प्रदाता को भेजता है, वह एक स्थान है जहां टोकन समाप्त हो सकता है। यह सर्वर इसे लॉग नहीं करता, लेकिन यह नियंत्रित नहीं कर सकता कि बाकी एजेंट क्या करता है।
- दूरस्थ समापन बिंदु पर, वही अस्कोप्ड टोकन हर कॉल पर Edgegap के वर्कर द्वारा अतिरिक्त रूप से संभाला जाता है।
अनुशंसित सेटअप, सावधानी के घटते क्रम में:
| स्थिति | सेटअप |
|---|---|
| अनियंत्रित या स्वायत्त एजेंट | स्थानीय मोड। अलग गैर-उत्पादन संगठन, साथ ही EDGEGAP_READ_ONLY=1 |
| पर्यवेक्षित एजेंट, संगठन में लाइव गेम | स्थानीय मोड। EDGEGAP_APP_ALLOWLIST काम किए जा रहे ऐप पर स्कोप्ड, साथ ही EDGEGAP_MAX_DURATION_MINUTES। पहले अनुमति सूची का दायरा पढ़ें — जो तैनाती पहले से चल रही हैं वे कवर नहीं हैं |
| एकल डेवलपर, कोई उत्पादन कार्यभार नहीं | कोई भी मोड। डिफ़ॉल्ट ठीक हैं; समाप्त होने पर टोकन रद्द करें |
अनुमति सूची और केवल-पढ़ने का ध्वज स्थानीय सर्वर में लागू किए जाते हैं, जिसका अर्थ है कि वे एक एजेंट के खिलाफ सुरक्षा करते हैं जो गलती करता है, न कि उसके खिलाफ जो सीधे API कॉल करने के लिए समझौता किया गया है। वे विस्फोट त्रिज्या को संकीर्ण करते हैं; वे इसे हटाते नहीं हैं।
अनुमति सूची का दायरा
EDGEGAP_APP_ALLOWLIST चार उपकरणों द्वारा लागू किया जाता है जो एक एप्लिकेशन नाम लेते हैं: edgegap_create_app, edgegap_list_app_versions, edgegap_create_app_version, और edgegap_deploy।
यह नहीं लागू किया जाता है पांच उपकरणों द्वारा जो request_id पर कुंजीबद्ध हैं: edgegap_get_deployment, edgegap_wait_for_deployment, edgegap_list_deployments, edgegap_stop_deployment, और edgegap_get_deployment_logs। अनुमति सूची सेट के साथ चलने वाला एजेंट संगठन में हर तैनाती को सूचीबद्ध कर सकता है और फिर उनमें से किसी का निरीक्षण, लॉग पढ़, या रोक सकता है — जिसमें सूची के बाहर के एप्लिकेशन से संबंधित तैनाती शामिल हैं।
इसलिए अनुमति सूची स्कोप करती है कि एजेंट क्या बना और तैनात कर सकता है, न कि वह क्या चलने के बाद छू सकता है। यह इस दस्तावेज़ के पहले के संस्करणों से संकीर्ण है।
आज एक मजबूत गारंटी के लिए, EDGEGAP_READ_ONLY=1 का उपयोग करें, जो पांच परिवर्तनकारी उपकरणों को कभी पंजीकृत नहीं करता, या एजेंट को एक अलग गैर-उत्पादन संगठन की ओर इंगित करें। दोनों इस अंतर से अप्रभावित हैं।
Syed Anas Mohiuddin द्वारा रिपोर्ट किया गया, सितंबर 2026।
पर्यावरण चर
ये स्थानीय सर्वर को कॉन्फ़िगर करते हैं। दूरस्थ समापन बिंदु पर वे Edgegap द्वारा सेट किए जाते हैं और प्रति डेवलपर नहीं बदले जा सकते — यदि आपको इनमें से किसी की आवश्यकता है, तो स्थानीय रूप से चलाएं।
| चर | डिफ़ॉल्ट | उद्देश्य |
|---|---|---|
EDGEGAP_API_TOKEN | (प्रॉम्प्ट किया गया) | API टोकन। वैकल्पिक — इसे छोड़ दें और डेवलपर से पहले उपयोग पर पूछा जाता है। token उपसर्ग आपके लिए जोड़ा जाता है। |
EDGEGAP_READ_ONLY | 0 | 1 पर सेट करें और पांच परिवर्तनकारी उपकरण कभी पंजीकृत नहीं होते। एजेंट उन्हें नहीं देख सकता, इसलिए उसे उन्हें कॉल करने के लिए बात नहीं की जा सकती। |
EDGEGAP_APP_ALLOWLIST | (खाली) | अल्पविराम से अलग किए गए एप्लिकेशन नाम। सेट होने पर, चार एप्लिकेशन-कुंजीबद्ध उपकरण किसी और चीज़ को छूने से इनकार करते हैं। पांच request_id-कुंजीबद्ध उपकरणों को नहीं स्कोप करता — अनुमति सूची का दायरा देखें। |
EDGEGAP_MAX_DURATION_MINUTES | 60 | max_duration पर सीमा जो एजेंट एक संस्करण पर सेट कर सकता है। अनियंत्रित एजेंट से भागती लागत को सीमित करता है। |
EDGEGAP_TIMEOUT_MS | 30000 | प्रति-अनुरोध HTTP टाइमआउट। |
उपकरण
दस उपकरण, उस क्रम में सूचीबद्ध जिसमें वे स्वर्णिम पथ के साथ आते हैं। दोनों मोड में वही दस।
| उपकरण | परिवर्तनकारी | यह किस लिए है |
|---|---|---|
edgegap_list_apps | कुछ भी करने से पहले अभिविन्यास। डुप्लिकेट एप्लिकेशन रोकता है। | |
edgegap_create_app | ● | संस्करणों के लिए कंटेनर बनाएं। |
edgegap_list_app_versions | एक तैनाती योग्य संस्करण खोजें, या काम करने वाले से सेटिंग्स कॉपी करें। | |
edgegap_create_app_version | ● | CPU, मेमोरी, और पोर्ट के साथ एक कंटेनर छवि पंजीकृत करें। |
edgegap_deploy | ● | निर्दिष्ट खिलाड़ियों के पास एक उदाहरण शुरू करें। |
edgegap_get_deployment | एकल स्थिति पढ़ना। | |
edgegap_wait_for_deployment | बैकऑफ़ के साथ तैयार होने तक पोल करें, फिर कनेक्शन पता लौटाएं। | |
edgegap_list_deployments | पिछले सत्रों से अनाथ सर्वर खोजें। | |
edgegap_stop_deployment | ● | अनुग्रहपूर्ण SIGTERM, एक समय में एक तैनाती। |
edgegap_get_deployment_logs | विफलता के बाद कंटेनर आउटपुट और क्रैश निकास कोड। |
डिज़ाइन निर्णय
क्यूरेटेड, उत्पन्न नहीं। Edgegap API में लगभग साठ ऑपरेशन हैं। प्रति ऑपरेशन एक उपकरण स्वतः उत्पन्न करना सभी साठ विवरणों को हर मोड़ पर एजेंट के संदर्भ में डालता है और उपकरण चयन को मापने योग्य रूप से खराब करता है। ये दस उस पथ को कवर करते हैं जो एक नए डेवलपर को परिवर्तित करता है।
wait_for_deployment एक उपकरण है, लूप नहीं। अपने आप छोड़ दिया गया एजेंट एक स्थिति समापन बिंदु को तंग लूप में कॉल करेगा, मोड़ जलाएगा, और जल्दी हार मान लेगा। पोलिंग और बैकऑफ़ को एक कॉल में मोड़ना एजेंट-संचालित तैनाती में सबसे आम विफलता को हटाता है।
त्रुटियां आत्म-सुधार के लिए लिखी गई हैं। एक 424 वापस आता है जो कहता है कि छवि खींची नहीं जा सकी और कौन से फ़ील्ड जांचने हैं। एक 422 कहता है कि अलग निर्देशांक आज़माएं या संसाधन अनुरोध कम करें। एजेंट इन पर मानव के पास राउंड ट्रिप के बिना कार्य कर सकता है।
वायर से पहले स्थानीय सत्यापन। मेमोरी-से-CPU अनुपात और लापता खिलाड़ी स्थान यहां पकड़े जाते हैं बजाय एक अपारदर्शी 400 के रूप में सतह पर आने के।
थोक संचालन जानबूझकर अनुपस्थित हैं। stop एक request_id लेता है। कोई थोक-रोक उपकरण नहीं है, क्योंकि एक फ़िल्टर अभिव्यक्ति और एक बग वाला एजेंट उत्पादन फ्लीट रोक सकता है।
दोनों एक होस्टेड समापन बिंदु और एक स्थानीय पैकेज। होस्टेड समापन बिंदु इस सर्वर को खोजने और एक उपकरण कॉल करने के बीच हर कदम हटाता है, जहां अधिकांश डेवलपर बाहर निकलते हैं। स्थानीय पैकेज एक अस्कोप्ड टोकन की संरक्षकता को तीसरे पक्ष, हमें सहित, तक विस्तार किए बिना सर्वर चलाने का एकमात्र तरीका है। न तो दूसरे पर हावी है, इसलिए दोनों भेजे जाते हैं। लंबे संस्करण के लिए worker/DECISION.md देखें।
दायरा
जानबूझकर उजागर नहीं: मैचमेकिंग, रिले, निजी फ्लीट, स्मार्ट फ्लीट, समापन बिंदु संग्रहण, ACL/व्हाइटलिस्ट प्रविष्टियां, तैनाती टैग, मेट्रिक्स, कंटेनर रजिस्ट्री प्रबंधन, DNS कॉन्फ़िगरेशन।
ये वास्तविक क्षमताएं हैं, लेकिन वे स्टूडियो से संबंधित हैं जो पहले से प्लेटफ़ॉर्म पर काम कर रहे हैं, न कि एक डेवलपर से जो अपना पहला सर्वर तैनात कर रहा है। उन्हें जोड़ना सतह क्षेत्र के लिए रूपांतरण पथ का व्यापार करेगा।
ज्ञात सीमा: टोकन मांगना
यह स्थानीय मोड पर लागू होता है, जहां टोकन कॉन्फ़िग से पढ़ने के बजाय पूछताछ के माध्यम से एकत्र किया जाता है।
MCP विनिर्देश कहता है कि सर्वर को संवेदनशील डेटा एकत्र करने के लिए पूछताछ का उपयोग नहीं करना चाहिए, और एक API टोकन संवेदनशील है। यह सर्वर इसे वैसे भी करता है, क्योंकि कुछ भी काम करने से पहले कॉन्फ़िग फ़ाइल में टोकन की आवश्यकता ऑनबोर्डिंग फ़नल में सबसे बड़ी गिरावट है, और सर्वर का पूरा बिंदु सेटअप घर्षण को हटाना है।
यह कॉपी करने के लिए एक पैटर्न के बजाय एक जानबूझकर व्यापार है। इसे रक्षात्मक बनाने वाला src/auth.ts में शमन का सेट है — केवल-मेमोरी संग्रहण, सादा-भाषा प्रकटीकरण, आवश्यक स्वीकृति, सभी आउटपुट से संपादन, और पर्यावरण चर हमेशा मौजूद होने पर जीतता है। उनमें से किसी को हटाना व्यापार को तोड़ता है।
असली समाधान Edgegap की ओर है और दोनों मोड में सुधार करेगा: स्कोप्ड, रद्द करने योग्य, केवल-तैनाती क्रेडेंशियल, OAuth के माध्यम से जारी किए गए बजाय एक रहस्य के रूप में चिपकाए जाने के। जब तक वे मौजूद नहीं हैं, इंटरैक्टिव प्रॉम्प्ट एक कार्य-समाधान है और कोड में एक के रूप में लेबल किया गया है।
विकास
npm run typecheck
node smoke.mjs # handshake, tool registration, read-only mode
node guards.mjs # local validation and allowlist enforcement
node elicit.mjs # token prompt: accept, refuse acknowledgement, decline, no support
इनमें से कोई भी नेटवर्क कॉल नहीं करता। elicit.mjs यह दावा करता है कि प्रॉम्प्ट संगठन-व्यापी दायरा बताता है, स्वीकृति आवश्यक है, टोकन कभी उपकरण आउटपुट में प्रकट नहीं होता, और अस्वीकार करना एक रोक-और-रिपोर्ट संदेश उत्पन्न करता है बजाय एक पुनः प्रयास लूप के।