Gemini CLI MCP सर्वर: इन्हें कैसे जोड़ें और कॉन्फ़िगर करें
gemini mcp add कमांड या हाथ से लिखी settings.json एंट्री से Gemini CLI में Model Context Protocol सर्वर जोड़ें। stdio, SSE और streamable HTTP के काम करने वाले सेटअप देखें, साथ ही OAuth, टूल फ़िल्टरिंग, ट्रस्ट सेटिंग और वे जाँचें जो Disconnected पर अटके सर्वर को ठीक करती हैं।
Gemini CLI उसी पल से उपयोगी है जब आप इसे इंस्टॉल करते हैं। यह और भी ज़्यादा काम का तब बनता है जब यह आपके इश्यू ट्रैकर, आपके डेटाबेस, या डिज़ाइन फ़ाइलों के फ़ोल्डर तक पहुँच सके, और आपको प्रॉम्प्ट में कुछ भी पेस्ट न करना पड़े। यह ब्रिज Model Context Protocol है, और हर ब्रिज एक MCP server है। Gemini CLI उन सर्वरों से बात कर सकता है जो लोकल प्रोसेस के रूप में चलते हैं, उन सर्वरों से भी जो सादे HTTP endpoint के पीछे हैं, और पुराने स्ट्रीमिंग SSE endpoints से भी। इन्हें रजिस्टर करने के दो तरीके हैं: एक gemini mcp add कमांड, या settings.json में कुछ लाइनें।
यह लेख दोनों तरीकों को असली कमांड के साथ समझाता है, फिर उन हिस्सों पर आता है जो आमतौर पर गड़बड़ होते हैं: स्कोप, सीक्रेट्स, टूल फ़िल्टरिंग, OAuth, और डरावना Disconnected स्टेटस। नीचे दिया हर फ़्लैग और फ़ील्ड आधिकारिक Gemini CLI MCP दस्तावेज़ से लिया गया है, और जहाँ रिलीज़ के बीच व्यवहार अलग है, वहाँ मैं यह बताता हूँ।
💡 त्वरित उत्तर:gemini mcp add -s user <name> <command-or-url> चलाएँ, फिर CLI के अंदर /mcp टाइप करें। सर्वर कनेक्टेड दिखना चाहिए और अपने टूल्स की सूची दिखानी चाहिए।
Gemini CLI में MCP सर्वर क्या जोड़ते हैं
स्टार्टअप के समय Gemini CLI आपके कॉन्फ़िगर किए गए सर्वर पढ़ता है, हर एक से कनेक्ट करता है, और पूछता है कि वह क्या-क्या ऑफ़र करता है। सर्वर टूल्स की एक सूची लौटाता है, और हर टूल का एक नाम, एक विवरण, और उसके इनपुट के लिए एक JSON schema होता है। मॉडल इन टूल्स को बिल्ट-इन टूल्स (फ़ाइल पढ़ना, शेल कमांड, वेब सर्च) के साथ देखता है और जब प्रॉम्प्ट को ज़रूरत हो, तब उन्हें कॉल करता है।
Tools, Prompts और Resources
एक सर्वर तीन तरह की चीज़ें दे सकता है:
Tools एक्शन हैं: टेबल से क्वेरी करना, इश्यू खोलना, इमेज का साइज़ बदलना।
Prompts दोबारा इस्तेमाल होने वाले टेम्पलेट हैं जो स्लैश कमांड के रूप में दिख सकते हैं।
Resources पढ़ने योग्य डेटा हैं, जैसे फ़ाइलें या रिकॉर्ड।
ज़्यादातर सर्वर केवल tools भेजते हैं, और कॉन्फ़िगरेशन की मेहनत का असली फ़ायदा इन्हीं से मिलता है। नीचे का सारा हिस्सा इन्हीं टूल्स को सुरक्षित तरीके से कनेक्ट करने के बारे में है।
ट्रांसपोर्ट चुनें
हर सर्वर एंट्री तीन ट्रांसपोर्ट में से ठीक एक का उपयोग करती है। आप जो फ़ील्ड सेट करते हैं, वही तय करता है कि CLI कौन-सा इस्तेमाल करेगा।
ट्रांसपोर्ट
Config फ़ील्ड
CLI फ़्लैग
सबसे अच्छा किसके लिए
Stdio
command (साथ में args)
डिफ़ॉल्ट, या --transport stdio
लोकल सर्वर जिन्हें CLI npx, node, या python3 से लॉन्च करता है
SSE
url
--transport sse
पुराने रिमोट सर्वर जो अब भी /sse endpoint देते हैं
Streamable HTTP
httpUrl
--transport http
आज के रिमोट सर्वर और होस्टेड सर्विसेज़
Stdio में CLI प्रोसेस शुरू करता है और उससे standard input और output के ज़रिए बात करता है। इसका मतलब है कि सर्वर को stdout पर कभी भी फ़ालतू टेक्स्ट नहीं छापना चाहिए। लॉग्स stderr पर जाने चाहिए, वरना प्रोटोकॉल स्ट्रीम टूट जाती है और सर्वर बाहर हो जाता है।
अक्सर चुनाव आपके लिए पहले से हो जाता है। अगर सर्वर आपकी मशीन पर कोई पैकेज या स्क्रिप्ट है, तो stdio इस्तेमाल करें। अगर वह किसी URL पर है और वेंडर HTTP और SSE दोनों देता है, तो HTTP चुनें, क्योंकि SSE पुराना ट्रांसपोर्ट है और ज़्यादातर उन सर्वरों के लिए बचा है जो अभी तक नए पर नहीं गए।
एक कमांड से सर्वर जोड़ें
अगर gemini अभी तक आपके PATH पर नहीं है, तो उसे npm install -g @google/gemini-cli से इंस्टॉल करें। उसके बाद add कमांड सबसे तेज़ रास्ता है।
रोज़मर्रा के प्रबंधन के लिए उसी कमांड फ़ैमिली का इस्तेमाल होता है:
gemini mcp list
gemini mcp disable issues --session
gemini mcp enable issues
gemini mcp remove issues -s user
--session फ़्लैग, जो enable और disable पर लगता है, स्टेट को सिर्फ़ मौजूदा सेशन के लिए बदलता है। इसके बिना, चुनाव ~/.gemini/mcp-server-enablement.json में सेव होता है।
💡 अपने quotes का ध्यान रखें। पहले उदाहरण में, सिंगल quotes $ISSUES_TOKEN को प्लेसहोल्डर के रूप में रखते हैं। डबल quotes के साथ आपका शेल उसे पहले expand कर देगा और असली टोकन settings.json में पहुँच जाएगा। सर्वर जोड़ने के बाद फ़ाइल खोलकर जाँच लें।
💡 डैश से शुरू होने वाले आर्गुमेंट, जैसे npx -y, को फ़्लैग parser CLI विकल्प समझ सकता है। ऐसे लॉन्च होने वाले सर्वरों के लिए एंट्री settings.json में लिखें।
settings.json को हाथ से संपादित करें
add कमांड आपके लिए JSON लिखता है। उस JSON को सीधे एडिट करने से आपको हर फ़ील्ड पर नियंत्रण मिलता है, आपका सेटअप pull request में समीक्षा योग्य रहता है, और किसी काम करने वाले block को सहकर्मी के साथ साझा करना आसान होता है।
यूज़र स्कोप या प्रोजेक्ट स्कोप
User scope:~/.gemini/settings.json। यह आपके साथ हर फ़ोल्डर में चलता है।
Project scope: रिपॉज़िटरी के अंदर .gemini/settings.json। इसे commit करें और पूरी टीम को एक जैसे सर्वर मिल जाते हैं।
प्रोजेक्ट फ़ाइल यूज़र फ़ाइल के बाद पढ़ी जाती है, इसलिए जब दोनों में एक ही सर्वर नाम हो, तो प्रोजेक्ट वाली जीतती है। याद रखें कि gemini mcp add जब तक -s user पास न करें, प्रोजेक्ट स्कोप में लिखता है।
एक काम करने वाली मल्टी-सर्वर फ़ाइल
यह फ़ाइल हर ट्रांसपोर्ट के लिए एक सर्वर रजिस्टर करती है:
मिलीसेकंड में रिक्वेस्ट टाइमआउट। डिफ़ॉल्ट 600000 है, यानी दस मिनट।
trust
boolean
डिफ़ॉल्ट false। जब true, तब टूल कन्फ़र्मेशन छोड़े जाते हैं।
includeTools
string[]
केवल ये टूल्स चालू होते हैं
excludeTools
string[]
ये टूल्स बंद होते हैं। यह सूची includeTools को ओवरराइड करती है।
oauth, authProviderType
object, string
प्रमाणीकरण सेटिंग्स, जिन्हें नीचे समझाया गया है
सीक्रेट्स को फ़ाइल से बाहर रखें
env ब्लॉक के अंदर, Gemini CLI हर प्लेटफ़ॉर्म पर $NAME और ${NAME} को expand करता है, और Windows पर %NAME% को भी। जो वेरिएबल सेट नहीं होता, वह बिना किसी चेतावनी के खाली string बन जाता है। नतीजा यह होता है कि सर्वर शुरू हो जाता है, फिर authentication में फ़ेल होता है, जो सर्वर का बग लगता है, जबकि असल में वेरिएबल के नाम में टाइपो होता है।
प्रोजेक्ट फ़ाइल आमतौर पर commit होती है, इसलिए उसमें वेरिएबल का रेफ़रेंस दें और कभी सीक्रेट पेस्ट न करें। env ब्लॉक के लिए expansion दस्तावेज़ित है, इसलिए अगर आप headers में टोकन चाहते हैं, तो पुष्टि करें कि आपका CLI वर्ज़न उसे expand करता है, या वह एंट्री यूज़र स्कोप में रखें, जहाँ वह version control तक नहीं पहुँचती।
एक्सेस सीमित करें और Auth संभालें
सर्वर कनेक्ट करने से मॉडल को क्षमताओं का एक नया सेट मिल जाता है। पहले प्रॉम्प्ट से पहले तय करें कि आप उसमें से कितना चाहते हैं।
हर सर्वर के लिए टूल फ़िल्टर करें
मान लीजिए एक सर्वर search_issues, get_issue, और delete_issue देता है। आपको पहले दो चाहिए और तीसरा कभी नहीं:
जब mcp.allowed सेट होता है, तो केवल वही सर्वर कनेक्ट होते हैं जिनके नाम वहाँ लिखे हैं। mcp.excluded उन सर्वरों को ब्लॉक करता है जिन्हें आप सूची में डालते हैं।
Trust का संयम से उपयोग करें
डिफ़ॉल्ट रूप से Gemini CLI टूल चलाने से पहले पूछता है। "trust": true सेट करना, या सर्वर जोड़ते समय --trust पास करना, उस सर्वर के लिए हर कन्फ़र्मेशन बंद कर देता है। जो read-only सर्वर आपने खुद लिखा है, उसके लिए यह ठीक है। लेकिन फ़ाइलें लिख सकने, संदेश भेजने, या कमांड चलाने वाले किसी भी सर्वर के लिए यह बुरा विचार है, क्योंकि एक गलत प्रॉम्प्ट उसे आपकी नज़र में आए बिना ही ट्रिगर कर सकता है।
/mcp auth के साथ OAuth
कई होस्टेड सर्वरों में आपको लॉग इन करना पड़ता है। CLI के अंदर /mcp auth चलाएँ ताकि OAuth सपोर्ट करने वाले सर्वरों की सूची दिखे, फिर नाम से किसी एक को authenticate करें:
/mcp auth docs-search
CLI आपका ब्राउज़र खोलता है, फ़्लो पूरा करता है, और टोकन ~/.gemini/mcp-oauth-tokens.json में सेव करता है। Expire हो चुके टोकन अपने-आप refresh हो जाते हैं। जब कोई सर्वर अपनी OAuth जानकारी प्रकाशित नहीं करता, तो oauth ब्लॉक खुद जोड़ें:
कुछ सर्वर OAuth इस्तेमाल नहीं करते। एक फ़िक्स्ड bearer टोकन headers में जाता है, जैसा पहले दिखाया गया था। Google Cloud की सर्विसेज़ के लिए authProviderType फ़ील्ड google_credentials स्वीकार करता है, और service_account_impersonation के साथ targetServiceAccount भी। Identity-Aware Proxy के पीछे वाले सर्वरों के लिए OAuth client ID के साथ targetAudience जोड़ें। डिफ़ॉल्ट provider ज़्यादातर बाकी सर्वरों के लिए काम करता है, इसलिए जब तक इनमें से कोई ज़रूरत न हो, इस फ़ील्ड को न छुएँ।
जाँचें कि सब कुछ काम कर रहा है
फ़ाइल एडिट करें, फिर /mcp reload चलाएँ। अगर उसके बाद भी CLI पुरानी सेटिंग्स दिखाता है, तो सेशन restart करें।
/mcp कमांड से जाँचें
कमांड
नतीजा
/mcp या /mcp list
सर्वर, कनेक्शन स्टेटस, और टूल्स
/mcp desc
टूल विवरण के साथ वही सूची
/mcp schema
विवरण के साथ हर टूल का इनपुट schema
/mcp auth <server>
एक सर्वर के लिए OAuth शुरू करता है
/mcp reload
सभी सर्वरों को फिर से कनेक्ट करता है और उनके टूल्स रीफ़्रेश करता है
/mcp enable, /mcp disable
सेशन के लिए किसी सर्वर को चालू या बंद करता है
सेशन के बाहर, gemini mcp list शेल से वही कनेक्शन overview देता है।
टूल के नाम कैसे दिखते हैं
हाल के रिलीज़ में MCP टूल्स एक पूरी तरह योग्य नाम के साथ दिखते हैं, जिसका आकार mcp_<server>_<tool> जैसा होता है। issues नाम के सर्वर पर search_issues टूल mcp_issues_search_issues बन जाता है। पुराने लेख server__tool प्रीफ़िक्स का ज़िक्र करते हैं, जो तब इस्तेमाल होता था जब दो सर्वर एक ही नाम का टूल देते थे। अगर किसी ट्यूटोरियल में एक स्टाइल दिखे और आपकी स्क्रीन पर दूसरी, तो आप शायद अलग वर्ज़न पर हैं।
इससे दो व्यावहारिक नतीजे निकलते हैं। पहला, अपने सर्वरों को underscores नहीं, hyphens से नाम दें। नाम mcp_ के बाद पहले underscore पर बाँटा जाता है, और सर्वर नाम के अंदर का underscore policy नियमों को भ्रमित कर सकता है। दूसरा, प्रॉम्प्ट में आपको शायद ही कभी पूरा नाम चाहिए होता है। सादी भाषा में पूछें, जैसे:
Use the issues server to list open bugs labelled regression, newest first.
CLI दिखाता है कि वह कौन-सा टूल कॉल करने की योजना बना रहा है, और जब तक आप trust सेट न करें, तब तक पुष्टि माँगता है।
जो सर्वर कनेक्ट नहीं होते उन्हें ठीक करें
सबसे बोरिंग जाँचों से शुरू करें, क्योंकि ये ज़्यादातर मामले हल कर देती हैं:
सामान्य टर्मिनल में ठीक वही command और args चलाएँ। अगर वहाँ फ़ेल होता है, तो CLI में भी फ़ेल होगा।
पुष्टि करें कि cwd मौजूद है और node, npx, या python3 आपके PATH पर है।
--debug के साथ CLI शुरू करें और कनेक्शन errors पढ़ें।
सर्वर के stderr में stack traces देखें।
हर एडिट के बाद /mcp reload चलाएँ, और अगर पुरानी सेटिंग्स अटकी लगें तो CLI restart करें।
अनट्रस्टेड फ़ोल्डरों में Disconnected
इसमें लोग अक्सर फँस जाते हैं। जिस फ़ोल्डर पर आपने भरोसा नहीं किया है, उसमें Gemini CLI किसी MCP सर्वर से कनेक्ट नहीं करता, और प्रोजेक्ट के .gemini/settings.json को पूरी तरह नज़रअंदाज़ कर देता है। आपकी यूज़र-स्कोप फ़ाइल पढ़ी जाती है, लेकिन प्रोजेक्ट सर्वर बस दिखाई नहीं देते।
फ़ोल्डर पर भरोसा करने के लिए CLI के अंदर /permissions चलाएँ, या पहली बार खोलने पर trust dialog का जवाब दें। यह चुनाव ~/.gemini/trustedFolders.json में सेव होता है। Headless रनों के लिए दस्तावेज़ --skip-trust फ़्लैग और GEMINI_CLI_TRUST_WORKSPACE=true वेरिएबल की सूची देते हैं।
टाइमआउट और साइलेंट फ़ेल्योर
कुछ फ़ेल्योर में कोई error नहीं आता:
कोई टूल सूची में नहीं: सर्वर कनेक्ट हुआ लेकिन कुछ रजिस्टर नहीं किया, या उसके टूल schemas अमान्य JSON Schema हैं। /mcp schema जाँचें।
टूल कॉल अटक जाती हैं: डिफ़ॉल्ट टाइमआउट दस मिनट है। अस्थिर रिमोट सर्वरों के लिए timeout घटाएँ, या बड़ी क्वेरी जैसे धीमे कामों के लिए बढ़ाएँ।
साफ़ start के बाद authentication errors:env में कोई unset वेरिएबल देखें। वह खाली string में expand हुआ था।
टूल सूची से गायब:includeTools और excludeTools जाँचें, और टॉप लेवल पर mcp.allowed सूची भी।
💡 एक तेज़ sanity test: पहले एक छोटा stdio सर्वर जोड़ें, उसे कनेक्ट कराएँ, और उसके बाद ही रिमोट सर्वर जोड़ें। हर नया सर्वर एक और चीज़ है जो फ़ेल हो सकती है, इसलिए उन्हें एक-एक करके जोड़ें।
Picasso IA पर Gemini से कॉन्फ़िग का ड्राफ़्ट बनाएँ
कॉन्फ़िग के बोरिंग हिस्सों का ड्राफ़्ट बनाने के लिए आप एक भाषा मॉडल इस्तेमाल कर सकते हैं, और Picasso IA पर Gemini के कई मॉडल हैं जिन्हें आप ब्राउज़र में खोल सकते हैं। यह वर्कफ़्लो अच्छा काम करता है:
MCP सर्वर के README से setup वाला हिस्सा पेस्ट करें, फिर अपनी शर्तें जोड़ें: ऑपरेटिंग सिस्टम, स्कोप, और कौन-सा एनवायरनमेंट वेरिएबल टोकन रखता है।
दो आउटपुट माँगें: settings.json एंट्री और उसके बराबर gemini mcp add कमांड। मॉडल से कहें कि असली सीक्रेट्स की जगह $VARIABLE रेफ़रेंस इस्तेमाल करे।
जवाब को ऊपर की फ़ील्ड टेबल से मिलाएँ। command, url, या httpUrl में से ठीक एक मौजूद होना चाहिए, और includeTools के हर नाम का मिलान उससे होना चाहिए जो /mcp desc प्रिंट करता है।
एंट्री अपनी फ़ाइल में पेस्ट करें और /mcp reload चलाएँ।
💡 ड्राफ़्ट को पहला पास मानें। मॉडल ऐसा फ़ील्ड गढ़ सकता है जो सही लगे पर असल में न हो। इस आर्टिकल की टेबल और आधिकारिक दस्तावेज़ ही आपका असली स्रोत हैं।
Picasso IA पर अपनी इमेज बनाएँ
एक अच्छा MCP सेटअप साफ़ डेवलपर वर्कफ़्लो का सिर्फ़ आधा हिस्सा है। बाकी आधा उसके आसपास की सामग्री है: README बैनर, ट्यूटोरियल के चित्र, सोशल कार्ड, और उस ब्लॉग पोस्ट के लिए फ़ोटो जो आपका सेटअप समझाती है।
Picasso IA पर आप वे इमेज कुछ मिनटों में बना सकते हैं। विस्तृत फ़ोटोरियलिस्टिक दृश्यों के लिए Seedream 4.5 आज़माएँ, इमेज के अंदर साफ़ टेक्स्ट चाहिए तो GPT Image 2, या तेज़ ड्राफ़्ट के लिए Nano Banana 2 Lite। एक छोटा प्रॉम्प्ट लिखें, कुछ वेरिएशन बनाएँ, और जो आपके पेज में फ़िट बैठे वह रखें।
आज जो प्रोजेक्ट आपके सामने खुला है, उसका एक प्रॉम्प्ट लिखें जो उसका बैनर बताए, और देखें कि क्या आता है। हर उपलब्ध मॉडल picassoia.com/en/all-models पर देखें, और जो मॉडल आपके मन के लुक से मेल खाए, उसी से शुरू करें।