GitHub Copilot MCP सर्वर सेटअप: रजिस्ट्री, allowlist और कॉन्फ़िग
अंदाज़े के बिना GitHub Copilot से MCP सर्वर जोड़ें। जानें कि mcp.json कहाँ रहता है, GitHub MCP Registry कैसे काम करती है, एडमिन managed settings में allowedMcpServers और deniedMcpServers कैसे लागू करते हैं, और उन एरर को कैसे ठीक करें जो चुपचाप आपके टूल रोक देते हैं।
GitHub Copilot में आपका पहला MCP सर्वर लगभग दो मिनट में जुड़ जाता है। लेकिन उसी सर्वर को सिक्योरिटी टीम से मंज़ूरी दिलाना, रजिस्ट्री में सूचीबद्ध करना और allowlist में पिन करना पूरा हफ़्ता ले सकता है, जब तक आप यह न जानें कि कौन-सी सेटिंग क्या करती है। यह लेख तीनों परतों को क्रम से समझाता है: वह कॉन्फ़िग फ़ाइल जो डेवलपर लिखता है, वह रजिस्ट्री जिसे टीम ब्राउज़ करती है, और वह allowlist जिसे एडमिन लागू करता है। हर JSON सैंपल मौजूदा GitHub और VS Code डॉक्यूमेंटेशन से मेल खाता है, और हर सीमा ठीक उसी जगह बताई गई है जहाँ वह असर डालती है।
💡 संक्षेप में: डेवलपर mcp.json लिखते हैं, टीमें रजिस्ट्री से सर्वर चुनती हैं, और एडमिन allowedMcpServers को managed-settings.json में लागू करते हैं। तीन फ़ाइलें, तीन मालिक, और इनमें से किसी एक में भी गड़बड़ी हो तो लगता है कि "Copilot के पास कोई टूल नहीं है।"
Copilot के अंदर MCP क्या करता है
Model Context Protocol (MCP) एक ओपन स्टैंडर्ड है जो Copilot को एडिटर के बाहर रहने वाले टूल्स को कॉल करने देता है: डेटाबेस क्वेरी, Sentry इश्यू लुकअप, ब्राउज़र सेशन, टिकट ट्रैकर। MCP के बिना Copilot बस वही देखता है जो आपका एडिटर उसे दिखाता है। MCP के साथ एजेंट मोड फ़ेल हो रहा इश्यू पढ़ सकता है, उसके पीछे का डेटा क्वेरी कर सकता है, फिर समस्या पैदा करने वाला कोड एडिट कर सकता है, और यह सब एक ही बातचीत में होता है।
हर सर्वर टूल्स दिखाता है, और एजेंट उनमें से कोई भी चलाने से पहले Copilot आपकी मंज़ूरी माँगता है। लोकल सर्वर stdio के ज़रिए बात करते हैं, यानी Copilot आपकी मशीन पर एक प्रोसेस लॉन्च करता है। रिमोट सर्वर streamable HTTP या पुराने SSE ट्रांसपोर्ट के ज़रिए बात करते हैं, यानी Copilot एक URL से कनेक्ट होता है। यही एक अंतर, कमांड बनाम URL, आगे के लगभग हर सेटअप फ़ैसले को तय करता है: कौन-से JSON फ़ील्ड लिखने हैं, ऑथेंटिकेशन कैसे काम करेगा और allowlist सर्वर से कैसे मेल खाएगी।
कौन-से क्लाइंट इसे सपोर्ट करते हैं
Copilot के अलग-अलग सरफ़ेस पर MCP सेटअप एक जैसा नहीं होता। हर सरफ़ेस पर फ़ाइल और फ़ॉर्मेट बदल जाते हैं:
Copilot सरफ़ेस
कॉन्फ़िग कहाँ रहती है
फ़ॉर्मेट के नोट
VS Code वर्कस्पेस
.vscode/mcp.json
servers, साथ में वैकल्पिक inputs
VS Code यूज़र प्रोफ़ाइल
MCP: Open User Configuration
वही फ़ॉर्मेट, हर वर्कस्पेस पर लागू होता है
पोर्टेबल फ़ाइलें
वर्कस्पेस रूट में .mcp.json, या ~/.copilot/mcp-config.json
VS Code रेफ़रेंस में पोर्टेबल फ़ॉर्मेट के रूप में सूचीबद्ध
Copilot CLI
~/.copilot/mcp-config.json, या सेशन में /mcp add
टर्मिनल छोड़े बिना सर्वर जोड़ें
Copilot क्लाउड एजेंट
GitHub पर रिपॉज़िटरी सेटिंग्स
mcpServers, साथ में ज़रूरी tools सूची
कॉन्फ़िग फ़ाइलें और वे कहाँ रहती हैं
फ़ाइल गलत जगह रखें तो Copilot उसे बिना किसी साफ़ एरर के नज़रअंदाज़ कर देता है। पहले तय करें कि सर्वर किसे मिलना चाहिए।
वर्कस्पेस बनाम यूज़र स्कोप
.vscode/mcp.json रिपॉज़िटरी में रहती है, इसलिए जो भी उसे क्लोन करता है उसे वही सर्वर मिलते हैं। इसी वजह से प्रोजेक्ट टूल्स, जैसे डेटाबेस इंस्पेक्टर या Playwright ब्राउज़र, के लिए यही सही जगह है। आपकी यूज़र प्रोफ़ाइल की कॉन्फ़िग आपकी मशीन के हर वर्कस्पेस पर लागू होती है। इसे Command Palette से MCP: Open User Configuration के ज़रिए खोलें और निजी टूल्स वहीं रखें।
एक सीधा नियम काम करता है: अगर सर्वर न होने पर कोई टीममेट उलझ जाए, तो उसे कमिट करें। अगर उसे सिर्फ़ आप इस्तेमाल करते हैं, तो उसे अपनी प्रोफ़ाइल में रखें।
दूसरे क्लाइंट्स के लिए पोर्टेबल फ़ाइलें
VS Code MCP कॉन्फ़िगरेशन रेफ़रेंस में एक पोर्टेबल फ़ॉर्मेट भी सूचीबद्ध है: वर्कस्पेस रूट में .mcp.json, या आपके यूज़र के लिए ~/.copilot/mcp-config.json। इसका इस्तेमाल तब करें जब एक ही रिपॉज़िटरी एक से ज़्यादा Copilot क्लाइंट में खोली जाती हो और आप तीन की जगह एक ही परिभाषा चाहते हों।
हर सर्वर एंट्री इन्हीं छोटे फ़ील्ड्स के सेट से बनती है:
फ़ील्ड
लागू होता है
उद्देश्य
type
सभी सर्वर
stdio, http या sse
command, args
stdio
एक्ज़िक्यूटेबल और उसके आर्गुमेंट्स
env, envFile
stdio
इनलाइन या फ़ाइल से एनवायरनमेंट वेरिएबल
cwd
stdio
प्रोसेस के लिए वर्किंग डायरेक्टरी
url
http, sse
सर्वर एंडपॉइंट
headers
http, sse
स्टैटिक हेडर, जैसे Authorization हेडर
oauth
http, sse
OAuth सेटिंग्स ऑब्जेक्ट
dev
stdio
डेवलपमेंट मोड, जिसमें dev.watch रीस्टार्ट पैटर्न शामिल हैं
दो अतिरिक्त चीज़ें सिर्फ़ macOS और Linux पर मिलती हैं: एक टॉप-लेवल sandbox ऑब्जेक्ट (फ़ाइल सिस्टम और नेटवर्क नियम) और हर सर्वर के लिए sandboxEnabled स्विच।
अपनी पहली mcp.json लिखें
आप फ़ाइल हाथ से लिख सकते हैं, या Command Palette से MCP: Add Server चलाकर VS Code को एंट्री बनाने दे सकते हैं। इसे एक बार हाथ से लिखना फ़ायदेमंद है, क्योंकि जब आप जानते हैं कि सही फ़ाइल कैसी दिखती है, तो बाद की हर समस्या को पहचानना आसान हो जाता है।
एक लोकल stdio सर्वर
यह एंट्री जब भी Copilot को ज़रूरत हो, npx के ज़रिए Playwright MCP सर्वर लॉन्च करती है:
फ़ाइल सेव करें, तो VS Code एंट्री के ऊपर Start, Stop और Restart एक्शन दिखाता है। उसे शुरू करें, एजेंट मोड में Copilot Chat खोलें और टूल्स पिकर देखें: सर्वर के टूल्स अब सूचीबद्ध होने चाहिए और चालू करने के लिए तैयार होने चाहिए।
एक रिमोट HTTP सर्वर
रिमोट सर्वर को कमांड की जगह एक URL चाहिए। यह वाला होस्टेड GitHub MCP सर्वर की ओर इशारा करता है:
अगर सर्वर OAuth सपोर्ट करता है, तो पहली बार टूल चलने पर VS Code साइन-इन फ़्लो खोलता है। अगर उसे स्टैटिक टोकन चाहिए, तो उसे headers के ज़रिए भेजें, और टोकन को कभी भी किसी कमिट की गई फ़ाइल में सीधे पेस्ट न करें।
कॉन्फ़िग से सीक्रेट्स बाहर रखें
VS Code इसका हल input variables से देता है। आप एक input एक बार घोषित करते हैं, उसे पासवर्ड के रूप में चिह्नित करते हैं, और ${input:id} से उसका संदर्भ देते हैं:
सर्वर पहली बार शुरू होने पर VS Code वैल्यू माँगता है, इसलिए रिपॉज़िटरी में हमेशा सिर्फ़ प्लेसहोल्डर रहता है। inputs तीन प्रकार के होते हैं: टाइप किए गए टेक्स्ट के लिए promptString, ड्रॉपडाउन के लिए pickString, और कमांड चलाकर बनी वैल्यू के लिए command। हर input को type, id और description चाहिए।
💡 टोकन पेस्ट की हुई और कमिट की गई .vscode/mcp.json MCP लीक का सबसे आम तरीका है। अगर आप envFile इस्तेमाल करते हैं, तो उसी कमिट में वह फ़ाइल .gitignore में जोड़ें।
रजिस्ट्री में सर्वर खोजें
हर सर्वर के लिए हाथ से JSON लिखना जल्दी ही थका देता है। रजिस्ट्री इसीलिए है ताकि आपको यह न करना पड़े।
GitHub MCP रजिस्ट्री
github.com/mcp उन कम्युनिटी सर्वरों की सूची देता है जो मॉडलों को फ़ाइलों, APIs और डेटाबेस से जोड़ते हैं। इस लेख के लिखे जाने के समय उसमें 375 सर्वर दिख रहे थे, Microsoft के Markitdown से लेकर Stripe और Figma तक, और हर एक के साथ Install बटन है। Install करने पर आपकी कॉन्फ़िग में एंट्री जुड़ती है, इसलिए सर्वर शुरू करने से पहले उसे पढ़ लें: कमांड, पैकेज का नाम और URL जाँच लें।
VS Code एडिटर के अंदर भी MCP सर्वर सूचीबद्ध करता है। उन्हें ब्राउज़ करने के लिए Extensions व्यू के सर्च बॉक्स में @mcp टाइप करें, कोई एक इंस्टॉल करें, और VS Code उसकी एंट्री आपकी यूज़र या वर्कस्पेस कॉन्फ़िग में जोड़ देगा। किसी रजिस्ट्री लिस्टिंग को सिक्योरिटी रिव्यू नहीं, बल्कि शुरुआती बिंदु मानें।
अपनी खुद की रजिस्ट्री चलाएँ
संगठन अपनी MCP रजिस्ट्री होस्ट कर सकते हैं और Copilot को उसकी ओर इशारा कर सकते हैं। अगर आप उसे Azure API Center पर बनाते हैं, तो बेस URL इस रूप में डालें:
/v0.1/servers जैसा कोई रूट सफ़िक्स न जोड़ें। Copilot MCP v0.1 पाथ अपने आप जोड़ता है, और सफ़िक्स रजिस्ट्री में एरर पैदा कर देता है। एंटरप्राइज़ ओनर URL को AI controls और फिर MCP के तहत सेट करते हैं। ऑर्गनाइज़ेशन ओनर इसे Copilot और फिर Policies के तहत सेट करते हैं।
Allowlists से सर्वर लॉक करें
एडमिन के पास यह तय करने के दो तरीके हैं कि डेवलपर कौन-से सर्वर चला सकते हैं। ये बराबर नहीं हैं, इसलिए सोच-समझकर चुनें।
managed-settings.json
Registry only नीति
स्टेटस
6 अगस्त 2026 से आम तौर पर उपलब्ध
पब्लिक प्रीव्यू
कहाँ रहती है
copilot/managed-settings.json में .github-private
एंटरप्राइज़ AI controls, या ऑर्गनाइज़ेशन Copilot नीतियाँ
मिलान किस पर होता है
सर्वर URL, लोकल कमांड या नाम
नाम या ID
कमज़ोर पहलू
ख़राब कॉन्फ़िग पर फ़ेल-क्लोज़्ड रहता है
यूज़र इससे बचने के लिए कॉन्फ़िग फ़ाइलें बदल सकते हैं
लागू होता है
GitHub Copilot ऐप, Copilot CLI, VS Code
सपोर्टेड IDEs और Copilot CLI
GitHub के अपने डॉक्यूमेंटेशन managed settings को ज़्यादा सुरक्षित और आम तौर पर उपलब्ध तरीका कहते हैं, और रजिस्ट्री नीति को अनुशंसित न होने वाला बताते हैं।
Managed settings का तरीका
allowedMcpServers और deniedMcpServers में से कोई एक या दोनों को copilot/managed-settings.json में जोड़ें, जो आपके संगठन की .github-private रिपॉज़िटरी में है, फिर डिफ़ॉल्ट ब्रांच पर कमिट करें:
serverUrl रिमोट HTTP और SSE सर्वरों से मेल खाता है, * वाइल्डकार्ड सपोर्ट करता है और चकमा देने से रोकने के लिए URLs को मानक रूप (canonical) में बदलता है।
serverCommand लोकल stdio सर्वर से उसके सटीक कमांड और आर्गुमेंट्स के आधार पर मेल खाता है।
serverName यूज़र ने अपनी कॉन्फ़िग में जो लेबल लिखा है, उससे मेल खाता है। यह सुविधा के लिए है, सुरक्षा की सीमा नहीं।
मिलान कैसे काम करता है
Copilot किसी सर्वर का मूल्यांकन एक तय क्रम में करता है:
बिल्ट-इन डिफ़ॉल्ट्स हमेशा अनुमत होते हैं।
deny सूची में जो भी मेल खाए, उसे ब्लॉक करती है।
अगर allowlist मौजूद है, तो सर्वर को किसी एंट्री से मेल खाना होगा, वरना वह ब्लॉक हो जाएगा।
कॉन्फ़िग में कोई भी अनसुलझा ${VARIABLE} सर्वर को ब्लॉक कर देता है।
अगर कोई allowlist है ही नहीं, तो सर्वर तब तक चलता है जब तक उसे deny न किया गया हो या उसमें कोई अनसुलझा वेरिएबल न हो। जब कई managed-settings.json स्रोत लागू होते हैं, तो हर सेटिंग लागू होती है और किसी भी स्रोत का deny नियम सर्वर को ब्लॉक कर देता है। आप सेटिंग्स को overridable चिह्नित कर सकते हैं, ताकि कोई टीम अपनी परत को कस्टमाइज़ कर सके।
💡 कमांड मिलान सटीक होता है। अगर आप ["npx", "@playwright/mcp@latest"] की अनुमति देते हैं, तो npx -y @playwright/mcp@latest चलाने वाला डेवलपर मेल नहीं खाएगा, क्योंकि आर्गुमेंट्स अलग हैं। ठीक वही एंट्री प्रकाशित करें जिसे आप लोगों को कॉपी करवाना चाहते हैं।
Registry only नीति
अभी भी प्रीव्यू पाथ पर हैं? MCP servers in Copilot पॉलिसी चालू करें, अपना रजिस्ट्री URL दर्ज करें, फिर Restrict MCP access to registry servers को Registry only पर सेट करें। यह बदलाव तुरंत लागू हो जाता है। यह नाम या ID के आधार पर मिलान करता है, इसलिए इसे सिर्फ़ ईमानदार गलतियों से बचाने वाला सुरक्षा उपाय मानें, और ज़्यादा जोखिम वाले एनवायरनमेंट को मैनेज्ड सेटिंग्स पर ले जाएँ। पूरे स्टेप GitHub के MCP एक्सेस डॉक्यूमेंटेशन में दिए गए हैं।
क्लाउड एजेंट और CLI सेटअप
Copilot क्लाउड एजेंट (पहले coding agent) GitHub के इंफ़्रास्ट्रक्चर पर चलता है, इसलिए वह आपकी लोकल .vscode/mcp.json नहीं पढ़ सकता। उसकी अपनी कॉन्फ़िगरेशन होती है, और ज़्यादातर कॉपी-पेस्ट की गलतियाँ वहीं होती हैं।
रिपॉज़िटरी खोलें, Settings पर जाएँ, Code & automation के तहत Copilot चुनें, और MCP configuration बॉक्स एडिट करें:
tools ज़रूरी है। सब कुछ के लिए ["*"] इस्तेमाल करें, या एजेंट को कसकर सीमित रखने के लिए टूल नामों की सूची दें।
सीक्रेट्स को एजेंट सीक्रेट्स या ऐसे वेरिएबल्स के रूप में जोड़ना होगा जिनके नाम COPILOT_MCP_ से शुरू होते हों, और कॉन्फ़िग में उन्हीं सटीक नामों का संदर्भ होना चाहिए।
सिर्फ़ टूल्स सपोर्टेड हैं, और रिमोट सर्वर OAuth का इस्तेमाल नहीं कर सकते।
GitHub और Playwright MCP सर्वर हर रिपॉज़िटरी में पहले से चालू हैं, इसलिए आप बस वही जोड़ते हैं जो गायब है। डेटा लिखने वाली कोई भी चीज़ जोड़ने से पहले क्लाउड एजेंट MCP डॉक्यूमेंटेशन पढ़ें।
Copilot CLI. CLI ~/.copilot/mcp-config.json पढ़ता है। इंटरैक्टिव सेशन के अंदर /mcp add आपको JSON हाथ से संपादित किए बिना सर्वर जोड़ने में मदद करता है। managed settings की allowlists यहाँ भी लागू होती हैं, इसलिए जो सर्वर VS Code में चलता है पर टर्मिनल में ब्लॉक है, वह आम तौर पर टूटे इंस्टॉल के बजाय नीति के मेल न खाने की ओर इशारा करता है।
आम एरर जल्दी ठीक करें
ज़्यादातर विफलताएँ पाँच कारणों से होती हैं। कुछ भी दोबारा इंस्टॉल करने से पहले अपनी समस्या का लक्षण नीचे की तालिका से मिलाएँ।
लक्षण
संभावित कारण
समाधान
सर्वर VS Code में कभी नहीं दिखता
टॉप-लेवल फ़ील्ड mcpServers है
उसका नाम बदलकर servers करें
सर्वर शुरू होता है, पिकर में कोई टूल नहीं दिखता
पिकर में टूल्स बंद हैं
एजेंट मोड में टूल्स चालू करें
क्लाउड एजेंट एक टूल को नज़रअंदाज़ करता है
tools सूची गायब है या बहुत सीमित है
टूल का नाम या ["*"] जोड़ें
क्लाउड एजेंट को खाली सीक्रेट दिखता है
नाम में COPILOT_MCP_ नहीं है
सीक्रेट और संदर्भ दोनों का नाम बदलें
आपके लिए चलता है, टीममेट के लिए ब्लॉक है
allowlist एंट्री मेल नहीं खाती
URL, कमांड और आर्गुमेंट्स की तुलना करें
सर्वर शुरू होता है, पर टूल्स नहीं हैं
MCP: List Servers चलाएँ, सर्वर चुनें और उसका आउटपुट खोलें। लॉन्च पर क्रैश आम तौर पर गायब रनटाइम (Node या Python PATH पर नहीं) या गलत पैकेज नाम दिखाता है। अगर प्रोसेस ठीक चल रहा है, तो एजेंट मोड में टूल्स पिकर खोलें और पुष्टि करें कि टूल्स चालू हैं।
नीति से ब्लॉक
ब्लॉक हुए सर्वर के लगभग हमेशा तीन में से एक कारण होता है: allowlist मौजूद है और कुछ भी मेल नहीं खाता, किसी दूसरे managed-settings.json स्रोत का deny नियम लागू होता है, या कॉन्फ़िग में कोई अनसुलझा ${VARIABLE} है। चूँकि नीतियाँ fail closed होती हैं, गड़बड़ सेटिंग्स फ़ाइल सर्वरों को आगे बढ़ने देने के बजाय उन्हें ब्लॉक कर देती है। अपनी कॉन्फ़िग एडिट करने से पहले एडमिन से पूछें कि किस स्रोत ने उसे ब्लॉक किया है।
दूसरे क्लाइंट्स से पेस्ट किए गए स्निपेट। किसी दूसरे MCP क्लाइंट के डॉक्यूमेंटेशन से कॉपी किया गया स्निपेट लगभग हमेशा mcpServers इस्तेमाल करता है। उसे .vscode/mcp.json में पेस्ट करें तो कुछ भी लोड नहीं होता, और कोई एरर भी नहीं आती। फ़ील्ड का नाम बदलें, type साफ़-साफ़ जोड़ें, और इसी दौरान सीक्रेट्स को inputs में ले जाएँ।
PicassoIA को काम पर लगाएँ
एक और जोड़ी आँखें उबाऊ बग पकड़ लेती हैं: गलत फ़ील्ड नाम, गायब tools सूची, या ऐसा आर्गुमेंट जो सटीक मिलान तोड़ दे। इसके लिए बस एक मिनट लगेगा।
PicassoIA पर Claude Sonnet 5 इस्तेमाल करें
Claude Sonnet 5 कॉन्फ़िग पढ़ता है, मल्टी-स्टेप समस्याओं पर रीज़निंग करता है और इमेज स्वीकार करता है, इसलिए यह इस काम के लिए अच्छा बैठता है। इसे इस्तेमाल करने का दोहराने योग्य तरीका यह है:
System Prompt में एक बार भूमिका सेट करें: "आप GitHub Copilot MCP कॉन्फ़िग की समीक्षा करते हैं। टॉप-लेवल फ़ील्ड, ट्रांसपोर्ट प्रकार, टूल्स की सूची, सीक्रेट्स को संभालने का तरीका और सटीक-मिलान वाली allowlist एंट्रियाँ जाँचें।"
अपना mcp.json या managed-settings.jsonPrompt में पेस्ट करें। पहले हर असली टोकन को प्लेसहोल्डर से बदल दें।
allowlist लॉजिक के लिए Effort को high पर सेट करें। टाइपो जाँच के लिए डिफ़ॉल्ट low ठीक है और कुछ ही सेकंड में जवाब देता है।
Max Tokens को 8192 पर छोड़ दें, जो पूरी समीक्षा के लिए काफ़ी है।
अगर आपके पास एरर का स्क्रीनशॉट है, तो उसे Image फ़ील्ड में अटैच करें, क्योंकि मॉडल इमेज पढ़ता है।
इसे चलाएँ, फिर सुधार एक-एक करके लागू करें और हर बार के बाद सर्वर रीस्टार्ट करें।
दूसरी राय के लिए वही प्रॉम्प्ट GPT 5.6 Sol, Gemini 3.1 Pro या Kimi K2.6 को भेजें और देखें कि वे कहाँ असहमत हैं। असहमति आम तौर पर उस पंक्ति की ओर इशारा करती है जिसे आपको खुद पढ़ना चाहिए।
अगला काम: अपनी इमेज बनाएँ
इसे टीम में लागू करने का मतलब है एक विकी पेज, सिक्योरिटी रिव्यू के लिए एक स्लाइड, और एक हेडर इमेज जो स्टॉक क्लिप आर्ट जैसी न लगे। Picasso IA यह सब एक टेक्स्ट प्रॉम्प्ट से बना देता है। फ़ोटोरियलिस्टिक दृश्यों के लिए Qwen Image 3, साफ़ 2K आउटपुट के लिए Seedream 5 Pro, या जब तेज़ ड्राफ़्ट चाहिए तब GPT Image 2.5 Flare आज़माएँ। दृश्य का वर्णन करें, 16:9 आस्पेक्ट रेशियो चुनें, और जब तक वह आपके डॉक्यूमेंट में फ़िट न हो जाए तब तक दोहराएँ। Picasso IA खोलें, अपना पहला प्रॉम्प्ट लिखें, और देखें कि असली हेडर इमेज के साथ आपकी अगली रोलआउट पोस्ट कैसी दिखती है।