Windsurf MCP सेटअप: Cascade में इमेज जनरेट करें
Windsurf में रिमोट MCP सर्वर जोड़ें और सीधे चैट से इमेज बनाएं: mcp_config.json, Devin एजेंट कॉन्फिग विभाजन, महत्वपूर्ण टिप्स और $0.03 से कीमतें।

Windsurf में एक MCP सर्वर एक ऐसा बाहरी टूलबॉक्स है जिसे एजेंट बातचीत के दौरान जरूरत पड़ने पर कॉल कर सकता है: आप इसे mcp_config.json में एक बार जोड़ते हैं, और Cascade को ऐसी क्षमताएं मिल जाती हैं जो बेस मॉडल में पहले से मौजूद नहीं होतीं। इमेज जनरेशन इनमें सबसे स्पष्ट कमी है। Windsurf सेटिंग्स स्क्रीन का ढांचा तैयार कर देगा, रूट्स जोड़ देगा और टेस्ट भी लिख देगा, लेकिन जहां चित्र होने चाहिए वहां तीन खाली धूसर आयत छोड़ देगा।
संक्षिप्त विवरण, यदि आप केवल त्वरित सेटअप चाहते हैं: अपने BananaBanana प्रोफाइल में एक की (key) बनाएं, फिर ~/.codeium/windsurf/mcp_config.json में यह ब्लॉक जोड़ें:
{
"mcpServers": {
"bananabanana": {
"serverUrl": "https://bananabanana.pro/api/mcp",
"headers": {
"Authorization": "Bearer ${env:BB_API_KEY}"
}
}
}
}
पर्यावरण चर export BB_API_KEY=bb_live_YOUR_KEY सेट करें, MCP सर्वर रीलोड करें, और Cascade में दस टूल्स उपलब्ध हो जाएंगे। छवियां प्रीपेयड बैलेंस से $0.03 प्रति इमेज से शुरू होती हैं और वीडियो $0.10 से, बिना किसी मासिक सब्सक्रिप्शन और बिना किसी क्लाउड प्रोजेक्ट के। पेस्ट करने से पहले एक बात ध्यान रखें: हालिया बिल्ड में हो सकता है कि आपका एजेंट यह फ़ाइल न पढ़ रहा हो। इसके बारे में नीचे विस्तार से बताया गया है।
Cascade को इमेज जनरेटर से क्यों जोड़ें?
क्योंकि जब आपको किसी इमेज की आवश्यकता होती है, तो वह समय कोड एडिटर छोड़ने के लिए बिल्कुल सही नहीं होता। आप ऑनबोर्डिंग फ्लो के कोड में गहराई से काम कर रहे हैं, खाली स्थिति (empty state) के लिए आर्टवर्क चाहिए, और विकल्प यह है कि ब्राउज़र टैब खोलें, प्रॉम्प्ट लिखें, डाउनलोड करें, नाम बदलें, public/ में ड्रैग करें और फिर से कोड में अपनी जगह खोजें।
एक निर्देश पूरे चक्कर को समाप्त कर देता है। Cascade खुद प्रॉम्प्ट लिखता है, generate_image को कॉल करता है, फ़ाइल को सही फ़ोल्डर में ले जाता है और alt टेक्स्ट के साथ <img> टैग लिख देता है। आपको केवल diff की समीक्षा करनी होती है।
एक और कारण इस क्लाइंट के लिए विशेष रूप से महत्वपूर्ण है। Cascade को केवल एकल संपादन के बजाय पूरी सुविधाएं बनाने के लिए डिज़ाइन किया गया है, इसलिए इसे जिन एसेट्स की आवश्यकता होती है वे सेट में आते हैं: तीन खाली स्थितियां, छह श्रेणी थंबनेल, एक प्लेसहोल्डर अवतार पैक। ब्राउज़र टैब में इन्हें मैन्युअल रूप से बनाना काफी असुविधाजनक होता है।
रिमोट सर्वर का विकल्प अपनी मशीन पर एक स्थानीय इमेज MCP सर्वर चलाना है, जिसका अर्थ है Node या Python प्रोसेस और साथ ही आपकी अपनी क्लाउड एपीआई की। रिमोट सर्वर इन दोनों झंझटों से बचाता है। एंडपॉइंट हमारी ओर से उसी पाइपलाइन पर चलता है जिस पर वेब जनरेटर, और आपका एकमात्र क्रेडेंशियल एक bb_live_ स्ट्रिंग है जिसे आप प्रोफाइल पेज से कभी भी रद्द कर सकते हैं।

Windsurf अब MCP कॉन्फ़िगरेशन कहाँ रखता है?
अगस्त 2026 में यह वह बिंदु है जहां कई लोग उलझ जाते हैं, और किसी भी फ़ाइल को संपादित करने से पहले इसे समझना आवश्यक है। Windsurf अब Cognition के Devin Desktop का हिस्सा बन गया है: windsurf.com अब devin.ai/desktop पर रीडायरेक्ट करता है, और पुराना URL docs.windsurf.com/windsurf/cascade/mcp अब 307 रीडायरेक्ट के साथ docs.devin.ai/desktop/cascade/mcp पर जाता है। डिस्क पर ऐप का नाम अभी भी Windsurf है, डीपलिंक स्कीम windsurf:// है, और कॉन्फिग फ़ोल्डर ~/.codeium/windsurf/ ही है। केवल ब्रांडिंग बदली है।
वास्तविक बदलाव यह है कि अब दो अलग कॉन्फिग सिस्टम वाले दो एजेंट हैं, और Cascade MCP दस्तावेज़ शीर्ष पर चेतावनी बॉक्स में यह स्पष्ट करते हैं: mcp_config.json फ़ाइल लीगेसी Cascade एजेंट पर लागू होती है, जबकि Devin Local एजेंट (जो नए टैब में डिफ़ॉल्ट है) Devin CLI कॉन्फ़िगरेशन पढ़ता है। सत्यापित: 20 अगस्त 2026।
इसलिए फ़ाइल का चयन इस आधार पर करें कि आप वास्तव में किस एजेंट से बात कर रहे हैं।
लीगेसी Cascade फ़ाइल ~/.codeium/windsurf/mcp_config.json पढ़ता है (Windows पर %USERPROFILE%\.codeium\windsurf\mcp_config.json)। वहां रिमोट सर्वर serverUrl या url फ़ील्ड और headers स्वीकार करते हैं, जो इस लेख की शुरुआत में दिया गया स्निपेट है।
Devin Local एजेंट CLI कॉन्फ़िग फ़ाइलें पढ़ता है: उपयोगकर्ता स्तर के लिए ~/.config/devin/mcp_config.json, git साझा प्रोजेक्ट के लिए .devin/mcp_config.json, और व्यक्तिगत मानों के लिए .devin/mcp_config.local.json (जो gitignore में स्वतः शामिल है)। फ़ील्ड के नाम थोड़े अलग हैं:
{
"mcpServers": {
"bananabanana": {
"url": "https://bananabanana.pro/api/mcp",
"transport": "http",
"headers": {
"Authorization": "Bearer ${env:BB_API_KEY}"
}
}
}
}
या एडिटर खोले बिना: devin mcp add bananabanana https://bananabanana.pro/api/mcp लोकल स्कोप में एंट्री बना देता है, और आप बाद में headers ब्लॉक जोड़ सकते हैं। devin mcp list और devin mcp get bananabanana कमांड दर्शाते हैं कि CLI ने वास्तव में क्या लोड किया है।
दोनों ही मामलों में, एंडपॉइंट https://bananabanana.pro/api/mcp है। न कि /mcp (जो इंसानों के पढ़ने के लिए डॉक्स वेबपेज है)। वहां POST अनुरोध भेजने पर HTML वापस आएगा जिससे एजेंट भ्रमित हो जाएगा। हमारे MCP सर्वर पेज पर यही स्निपेट और सभी सत्यापित क्लाइंट्स के लिए अनुकूलता तालिका उपलब्ध है:

कनेक्ट होने के बाद, list_models और get_account मुफ्त कॉल्स हैं — कनेक्शन जांचने के लिए Cascade से इनमें से एक चलाने को कहें। get_account आपका बैलेंस, की का नाम और दैनिक सीमा लौटाता है, जिससे बिना इमेज जनरेट किए प्रमाणीकरण की पुष्टि हो जाती है।
उपयोग का उदाहरण: Cascade द्वारा बनाई गई ऐप के लिए एम्प्टी स्टेट्स का सेट
यह वह वास्तविक परिदृश्य है जिस पर मैंने यह डेमो बनाया था। Cascade एक आंतरिक टूल का ढांचा तैयार करता है, तीन खाली स्थितियां धूसर प्लेसहोल्डर डिव के रूप में बनती हैं, और डिज़ाइन टूल खोलने के बजाय आप एजेंट को एक स्टाइल वाक्य देते हैं और पूरा सेट जनरेट करवाते हैं।
स्टाइल वाक्य ही मुख्य कड़ी है। खाली स्थितियां केवल एक सेट के रूप में अच्छी लगती हैं: रंग पैलेट, लाइन की मोटाई और रिक्त स्थान का अनुपात सभी छवियों में एक जैसा होना चाहिए। वाक्य को एक बार लिखें, एजेंट को हर कॉल पर इसे शब्दशः पुन: उपयोग करने का निर्देश दें और केवल विषय बदलें:
→ generate_image {"prompt": "A flat vector illustration for an app empty
state: an open cardboard box floating above a soft shadow with three small
paper envelopes drifting out of it, muted teal and warm coral palette on an
off-white background, thin confident outlines, generous negative space,
centered composition, no text", "model": "nano-banana-pro",
"aspect_ratio": "4:3"}
← {"job_id": "…", "status": "processing", "cost_charged_usd": 0.11}

फिर उसी स्टाइल वाक्य के साथ «कोई परिणाम नहीं» स्क्रीन के लिए अलग विषय:

ये प्लेसहोल्डर के रूप में एक आदर्श जोड़ी बनाते हैं। यदि आपको इससे भी अधिक सटीकता चाहिए, तो generate_image में seed पैरामीटर उपलब्ध है, और उसी स्टाइल वाक्य के साथ एक ही सीड को दोहराने से परिणाम और भी करीब आते हैं। ऐसे पात्रों या शुभंकर (mascot) के लिए जिन्हें दर्जनों छवियों में समान दिखना है, प्रॉम्प्टिंग तकनीक क्लाइंट से अधिक महत्वपूर्ण है, जैसा कि हमारे कैरेक्टर निरंतरता गाइड में बताया गया है।
दो पारदर्शी बातें: मैंने इन उदाहरणों को $0.11 पर Nano Banana Pro पर चलाया क्योंकि वे इस पृष्ठ पर प्रदर्शित हो रहे हैं और मुझे विवरण चाहिए था। उन प्लेसहोल्डर्स के लिए जिन्हें एक डिज़ाइनर दो सप्ताह में बदल देगा, $0.03 पर nano-banana-2-lite सही विकल्प है, और हमारा Lite गाइड बताता है कि यह सस्ता मॉडल कहां पर्याप्त है। यह टूल का डिफ़ॉल्ट मॉडल भी है।
वीडियो भी इसी चैट से बनता है। generate_video पहली कॉल पर कभी शुल्क नहीं लेता: यह एक कोटेशन देता है, और रेंडरिंग शुरू होने से पहले एजेंट को उस सटीक राशि के साथ confirm_cost सेट करके कॉल दोहराना होता है। 4 सेकंड का मूक 720p वीडियो Veo 3.1 Lite पर $0.10 से शुरू होता है; Omni Flash हमेशा ऑडियो के साथ $0.10 प्रति सेकंड पर शुल्क लेता है, यानी 3 सेकंड का क्लिप $0.30 में तैयार होता है।
Windsurf की महत्वपूर्ण बातें जो जानना जरूरी हैं
सेटअप के दौरान एकत्र किए गए पांच व्यावहारिक बिंदु:

1. अपरिभाषित पर्यावरण चर बिना किसी त्रुटि के विफल हो जाता है। दस्तावेज़ स्पष्ट हैं: ${env:VAR_NAME} को चर के मान से बदल दिया जाता है, और यदि चर सेट नहीं है, तो यह खाली स्ट्रिंग बन जाता है। कोई त्रुटि नहीं, कोई चेतावनी नहीं। हेडर केवल Bearer बनकर जाता है, सर्वर 401 उत्तर देता है, और ऐसा लगता है जैसे सर्वर खराब है जबकि समस्या केवल चर की अनुपस्थिति है। GUI से लॉन्च किए गए ऐप्स शेल प्रोफाइल नहीं पढ़ते, इसलिए .zshrc में एक्सपोर्ट तब तक नहीं दिखेगा जब तक कि Windsurf को टर्मिनल से लॉन्च न किया गया हो। यदि list_models प्रमाणीकरण त्रुटि देता है, तो सबसे पहले पर्यावरण चर की जांच करें।
2. ${file:…} अधिक विश्वसनीय है और यह Windsurf की अपनी विशेषता है। कॉन्फ़िग ${file:/path/to/file} का समर्थन करता है, जो फ़ाइल की सामग्री को ट्रिम करके उपयोग करता है (टिल्ड ~ पाथ सहित)। इसलिए "Authorization": "Bearer ${file:~/.secrets/bb_key.txt}" बिना किसी पर्यावरण चर के काम करता है और GUI लॉन्च की समस्या को पूरी तरह से हल कर देता है। Windsurf में मैं इसी की सलाह देता हूँ। Cursor और VS Code में यह सुविधा नहीं है।
3. Cascade में अधिकतम 100 टूल्स की सीमा है। यह आपके सभी कनेक्टेड MCP सर्वरों की कुल सीमा है। प्रत्येक सर्वर के सेटिंग्स पेज पर आप अप्रयुक्त टूल्स को बंद कर सकते हैं। हमारा सर्वर दस टूल्स जोड़ता है। यदि आप पहले से ही बड़े सर्वर चला रहे हैं, तो अनावश्यक टूल्स बंद कर दें: यदि आपको केवल स्थिर छवियां चाहिए तो generate_speech, edit_video और list_generations को आसानी से हटाया जा सकता है।
4. वन-क्लिक डीपलिंक आपकी की (key) को लीक नहीं करता। Windsurf windsurf://windsurf-mcp-registry?serverName=<name> लिंक का समर्थन करता है जो इंस्टॉलेशन से पहले समीक्षा के लिए मार्केटप्लेस खोलता है। इसमें कोई एन्कोडेड कॉन्फ़िगरेशन नहीं होती, इसलिए base64 लिंक के विपरीत साझा URL में क्रेडेंशियल लीक होने का जोखिम नहीं होता। वर्तमान में हम सार्वजनिक मार्केटप्लेस में नहीं हैं, इसलिए यह मैन्युअल JSON सेटअप है।
5. टीम प्लान्स में सर्वर आईडी केस-सेंसिटिव होता है। जैसे ही कोई एडमिन किसी एक MCP सर्वर को अनुमति सूची में डालता है, टीम के लिए अन्य सभी सर्वर ब्लॉक हो जाते हैं, और स्वीकृत Server ID का आपके mcp_config.json में की (key) के नाम से केस-सेंसिटिव रूप से मेल खाना आवश्यक है। यानी अगर एडमिन ने bananabanana स्वीकृत किया और आपने BananaBanana लिखा, तो यह कनेक्ट नहीं होगा और त्रुटि का कारण भी स्पष्ट नहीं होगा।
एक और बिंदु: generate_speech ऑडियो को एक URL के रूप में लौटाता है न कि इनलाइन प्लेयर के रूप में, इसलिए आपको फ़ाइल को अलग से खोलना होगा। छवियों के मामले में लिंक के साथ इनलाइन थंबनेल प्रीव्यू भी आता है, जो काफी सुविधाजनक है।
API की के बजाय OAuth का उपयोग करने पर क्या होगा?
दोनों तरीके उपलब्ध हैं, और वे अलग-अलग एजेंटों के लिए उपयुक्त हैं।
Devin CLI (यानी Devin Local एजेंट) में पूर्ण OAuth समर्थन है: devin mcp login <name> ब्राउज़र में लॉगिन प्रवाह खोलता है, टोकन को स्थानीय रूप से संग्रहीत करता है और डायनेमिक क्लाइंट रजिस्ट्रेशन (DCR) के माध्यम से उन्हें स्वतः रीफ़्रेश करता है। हमारा सर्वर DCR और RFC 8707 संसाधन संकेतकों के साथ एक OAuth 2.1 प्राधिकरण सर्वर है।
इस लेख के लिए मैंने API की विधि का परीक्षण किया (initialize, get_account, list_models वास्तविक bb_live_ की के साथ)। यदि आप OAuth आज़माते हैं और समस्या आती है, तो आवश्यक सेटिंग oauthResource है, जो RFC 8707 resource पैरामीटर को ओवरराइड करती है, क्योंकि हमारा एंडपॉइंट https://bananabanana.pro/api/mcp स्वीकार करता है।
की को प्राथमिकता देने का एक व्यावहारिक कारण भी है: की पूरी तरह से मुफ्त हैं और आप कई की बना सकते हैं, जिनमें से प्रत्येक का अपना उपयोग लॉग (टूल, मॉडल, लागत, प्रॉम्प्ट सारांश) और प्रोफाइल पेज पर एक वैकल्पिक दैनिक USD सीमा होती है। किसी स्वायत्त एजेंट को खर्च करने की अनुमति देने से पहले यह दैनिक सीमा निर्धारित करना सबसे महत्वपूर्ण कदम है।
अनुमतियों के संदर्भ में: Devin CLI कॉन्फ़िग mcp__<server>__<tool> चयनकर्ताओं के साथ प्रति-टूल नियमों का समर्थन करता है, जो एक सशुल्क सर्वर के लिए बहुत उपयुक्त है।
{
"permissions": {
"allow": ["mcp__bananabanana__list_models", "mcp__bananabanana__get_result"],
"ask": ["mcp__bananabanana__generate_video"]
}
}
मुफ्त जानकारी अनुरोध बिना किसी रुकावट के चलेंगे, और रेंडरिंग शुरू करने वाले ऑपरेशन आपसे अनुमति मांगेंगे।
इस लेख के डेमो मीडिया की कुल लागत क्या थी?
प्रति-जनरेशन मानक कीमतें, वही आंकड़े जो list_models एजेंट को लौटाता है:
| एसेट | मॉडल | कीमत |
|---|---|---|
| खाली स्थिति, इनबॉक्स | Nano Banana Pro, 1K | $0.11 |
| खाली स्थिति, खोज | Nano Banana Pro, 1K | $0.11 |
| कवर + 2 संपादकीय चित्रण | Nano Banana Pro, 1K | $0.33 |
| डॉक्स-पेज स्क्रीनशॉट | ब्राउज़र कैप्चर, जनरेशन नहीं | $0.00 |
| कुल | $0.55 |
दोनों खाली स्थितियां पहली ही बार में बन गईं। यदि आप वास्तविक दिखने वाले उत्पाद शॉट्स बना रहे हैं, तो कुछ अतिरिक्त प्रयासों का बजट रखना बुद्धिमानी होगी।
यदि आप पहले से ही किसी अन्य एडिटर में इस सर्वर का उपयोग कर रहे हैं, तो उपर्युक्त Windsurf कॉन्फ़िग ही एकमात्र नया हिस्सा है: वही की, वही बैलेंस और वही हिस्ट्री। हमारे Cursor गाइड और VS Code गाइड में इन क्लाइंट्स के लिए सेटअप समझाया गया है। शुरुआत करने के लिए तैयार हैं? एक की बनाएं और Cascade से अपनी पहली इमेज जनरेट करवाएं।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
क्या Windsurf Authorization हेडर वाले रिमोट MCP सर्वर का समर्थन करता है?
हाँ। mcp_config.json में रिमोट HTTP सर्वर serverUrl (या url) फ़ील्ड और एक वैकल्पिक headers ऑब्जेक्ट स्वीकार करते हैं, और Cascade stdio, Streamable HTTP और SSE का समर्थन करता है। serverUrl और headers दोनों ${env:VAR} और ${file:/path} इंटरपोलेशन का समर्थन करते हैं ताकि की कभी भी फ़ाइल में सादे टेक्स्ट के रूप में न रहे। 20 अगस्त 2026 के आधिकारिक दस्तावेज़ों के अनुसार सत्यापित।
मेरा Windsurf एजेंट वास्तव में कौन सी कॉन्फ़िग फ़ाइल पढ़ता है?
यह एजेंट पर निर्भर करता है। लीगेसी Cascade एजेंट ~/.codeium/windsurf/mcp_config.json पढ़ता है। नए टैब का डिफ़ॉल्ट Devin Local एजेंट Devin CLI फ़ाइलें पढ़ता है: ~/.config/devin/mcp_config.json, .devin/mcp_config.json, या व्यक्तिगत कीज़ के लिए .devin/mcp_config.local.json। यदि कॉन्फ़िग बदलने के बाद सर्वर दिखाई न दे, तो सबसे पहले इस अंतर की जाँच करें।
क्या Windsurf में इमेज जनरेट करने के लिए मुझे अपने क्लाउड अकाउंट की आवश्यकता है?
नहीं। स्थानीय MCP सर्वरों के लिए बाहरी प्रदाता की और आपके अपने खाते पर बिलिंग की आवश्यकता होती है। रिमोट सर्वर हमारे प्रबंधित पूल पर जनरेशन चलाता है, इसलिए आपको केवल अपने प्रोफ़ाइल से bb_live_ की की आवश्यकता होती है। नए खातों को $0.20 का प्रारंभिक बैलेंस मिलता है, जो भुगतान करने से पहले सस्ते मॉडल पर 6 छवियों के लिए पर्याप्त है।
क्या Cascade उसी सर्वर के माध्यम से वीडियो भी बना सकता है?
हाँ, अनिवार्य पुष्टि चरण के साथ। generate_video पहली कॉल पर मूल्य उद्धरण देता है और कुछ भी शुल्क नहीं लेता; रेंडर शुरू होने से पहले एजेंट को उस सटीक राशि के साथ confirm_cost पास करके कॉल दोहराना होगा। कीमतें Veo 3.1 Lite पर 720p में 4 सेकंड के मूक क्लिप के लिए $0.10 से शुरू होकर ऑडियो के साथ शीर्ष Veo 3.1 रेंडर के लिए $4.40 तक हैं, और Omni Flash ऑडियो के साथ $0.10 प्रति सेकंड शुल्क लेता है। क्लिप बनने में एक से दस मिनट लगते हैं, इस दौरान एजेंट get_result को पोल करता रहता है।
Windsurf में मेरा MCP सर्वर प्रमाणीकरण त्रुटि (Auth Error) क्यों दिखाता है?
दस में से नौ बार समस्या क्रेडेंशियल में होती है, कॉन्फ़िग सिंटैक्स में नहीं। एक अनसेट ${env:BB_API_KEY} बिना किसी त्रुटि के खाली स्ट्रिंग बन जाता है, जिससे अनुरोध खाली बियरर टोकन के साथ जाता है और 401 उत्तर मिलता है। सुनिश्चित करें कि वेरिएबल Windsurf प्रोसेस को दिखाई दे रहा है (GUI लॉन्च शेल प्रोफ़ाइल नहीं पढ़ते), या ${file:~/.secrets/bb_key.txt} पर स्विच करें। यदि की सही है, तो पुष्टि करें कि URL /api/mcp पर समाप्त होता है और टीम अनुमति सूची सर्वर आईडी को ब्लॉक नहीं कर रही है।