Codex MCP सेटअप: एक config.toml से इमेज और वीडियो बनाएं
Codex CLI, IDE एक्सटेंशन और ChatGPT डेस्कटॉप को एक MCP मीडिया सर्वर से जोड़ें: config.toml, bearer_token_env_var और $0.70 में एक Veo प्रोमो वीडियो।

Codex के लिए एक MCP सर्वर एक बाहरी टूलबॉक्स की तरह है जिसे OpenAI का कोडिंग एजेंट अपने तीनों फ्रंटएंड से एक साथ कॉल कर सकता है: CLI, IDE एक्सटेंशन और ChatGPT डेस्कटॉप ऐप में Codex टैब। बस एक TOML ब्लॉक जोड़ने से, एक ऐसा एजेंट जो आमतौर पर केवल कोड एडिट करता है, उसे ऐसी क्षमताएं मिल जाती हैं जो उसके मॉडल के साथ डिफ़ॉल्ट रूप से नहीं आती हैं, जिसमें इमेज और वीडियो जनरेशन शामिल हैं। Codex दिन भर कोड रिफैक्टर कर सकता है और टेस्ट रन कर सकता है, लेकिन इसके पीछे का कोई भी मॉडल सीधे आपको MP4 फ़ाइल नहीं दे सकता। इसमें एक जनरेशन सर्वर जोड़ें और "रिलीज़ नोट्स के लिए एक प्रोमो क्लिप बनाएं" टर्मिनल पर दी जाने वाली एक ऐसी कमांड बन जाएगी जिसका परिणाम एक वास्तविक फ़ाइल के रूप में सामने आएगा।
यदि आप केवल सेटअप के लिए यहां आए हैं, तो पूरी प्रक्रिया इस प्रकार है। अपने BananaBanana profile में एक API कुंजी (API key) बनाएं, और फिर इसे ~/.codex/config.toml में जोड़ें:
[mcp_servers.bananabanana]
url = "https://bananabanana.pro/api/mcp"
bearer_token_env_var = "BB_API_KEY"
अपने पर्यावरण (environment) में BB_API_KEY=bb_live_YOUR_KEY एक्सपोर्ट करें और Codex को रीस्टार्ट करें। बस इतना ही: कोई लोकल सर्वर प्रोसेस नहीं, कोई Google Cloud प्रोजेक्ट नहीं, कोई सब्सक्रिप्शन नहीं। इमेज जेनरेशन का शुल्क प्रीपेड बैलेंस से $0.03 प्रति इमेज से शुरू होता है, और वीडियो जेनरेशन $0.10 से। नीचे दिया गया डेमो वीडियो मेरे इस लेख को लिखने के दौरान एक लाइव कुंजी (key) पर इसी एंडपॉइंट के माध्यम से जनरेट किया गया था, और इस लेख के लिए कुल $1.03 का मीडिया बिल अंत में विस्तार से दिया गया है।
यहाँ एक config फ़ाइल ही पूरी कहानी क्यों है
अधिकांश MCP क्लाइंट आपको प्रत्येक इंटरफ़ेस को अलग से कॉन्फ़िगर करने के लिए कहते हैं। Codex ऐसा नहीं करता, और यही इसकी सबसे अच्छी बात है। official Codex MCP docs इसे एक वाक्य में स्पष्ट करते हैं: "ChatGPT डेस्कटॉप ऐप, Codex CLI और IDE एक्सटेंशन इस कॉन्फ़िगरेशन को साझा करते हैं।" बस एक बार TOML ब्लॉक पेस्ट करें और वही सात जनरेशन टूल टर्मिनल सेशन से लेकर VS Code और डेस्कटॉप ऐप के Codex टैब तक आपके साथ रहेंगे।

यह इस बात को पूरी तरह बदल देता है कि सर्वर किस काम के लिए है। Cursor या VS Code में इमेज टूल मुख्य रूप से आपके द्वारा खोले गए रेपो के लिए काम करता है। Codex के साथ टर्मिनल खुद ही एक मीडिया कंसोल बन जाता है: आप बिना किसी एडिटर के सीधे शेल से वीडियो रेंडर की मांग कर सकते हैं, और बाद में डेस्कटॉप ऐप से इसकी प्रगति की जांच कर सकते हैं। जो व्यक्ति tmux में रहता है और GUI ऐप्स को कभी-कभार ही इस्तेमाल करता है, उसके लिए यह "एक प्लगइन जिसे मैंने कहीं सेट किया है" और "एक कमांड जिसे मैं सचमुच उपयोग करता हूँ" के बीच का अंतर है।
दूसरा विकल्प हमेशा की तरह आपके अपने Google API कुंजी के साथ एक लोकल MCP सर्वर चलाना है, जिसमें आपके अपने क्लाउड अकाउंट से कोटा और बिलिंग जुड़ी होगी। यह काम करता है, लेकिन इसे लगातार संभालना एक सिरदर्दी है। रिमोट एंडपॉइंट हमारी तरफ से पहले से ही चल रहा है, उसी पाइपलाइन पर जिस पर BananaBanana web generator काम करता है, और आपका एकमात्र क्रेडेंशियल एक प्रतिसंहरणीय (revocable) bb_live_ कुंजी है।
आप Codex को MCP सर्वर से कैसे जोड़ते हैं?
नीचे दिए गए कॉन्फ़िगरेशन विवरण को 11 जुलाई, 2026 तक के आधिकारिक Codex MCP दस्तावेज़ों के अनुसार जांचा गया है (OpenAI ने हाल ही में इसे developers.openai.com से हटाकर learn.chatgpt.com पर स्थानांतरित कर दिया है, इसलिए रीडायरेक्ट होने पर आश्चर्यचकित न हों)।
सबसे पहले, register (रजिस्टर) करें और Profile → MCP API Keys खोलें। कुंजी केवल एक बार दिखाई जाती है और हमारी ओर हैश करके सुरक्षित की जाती है, इसलिए इसे तुरंत कॉपी कर लें। नए खातों को शुरुआत में $0.20 का बैलेंस मिलता है, जिससे सबसे सस्ते मॉडल पर छह परीक्षण चित्र (test images) जनरेट किए जा सकते हैं।
दूसरा, इस लेख के शीर्ष पर दिए गए TOML ब्लॉक को ~/.codex/config.toml में जोड़ें (यदि फ़ाइल मौजूद नहीं है तो इसे बनाएं)। [mcp_servers.bananabanana] टेबल किसी भी Streamable HTTP सर्वर के लिए url और ऑथेंटिकेशन के लिए bearer_token_env_var लेती है: Codex स्टार्टअप पर नामित पर्यावरण चर (environment variable) को पढ़ता है और इसके मान को Authorization हेडर के रूप में भेजता है। कुंजी कभी भी फ़ाइल को नहीं छूती है, जिसका अर्थ है कि फ़ाइल शेयर करने योग्य रहती है, डॉटफ़ाइल्स (dotfiles) रिपॉजिटरी में भी। हमारा MCP server page सत्यापित किए गए प्रत्येक क्लाइंट की संगतता तालिका (compatibility table) के साथ इस स्निपेट को दिखाता है:

तीसरा, वेरिएबल को एक्सपोर्ट करें और रीस्टार्ट करें। CLI में, कनेक्ट होने के बाद codex सर्वर के टूल्स की सूची दिखाएगा; आप इससे "bananabanana पर list_models कॉल करने" के लिए कह सकते हैं और आपको list_models से लेकर list_generations तक के सात टूल्स की वास्तविक कीमतें मिल जाएंगी। IDE एक्सटेंशन और ChatGPT डेस्कटॉप ऐप अगली बार लॉन्च होने पर बिना किसी अतिरिक्त कदम के इसी कॉन्फ़िगरेशन को उठा लेंगे।
macOS पर डेस्कटॉप ऐप के बारे में एक ज़रूरी चेतावनी: Dock से लॉन्च किया गया एक GUI एप्लिकेशन आपकी .zshrc फ़ाइल को नहीं पढ़ता है, इसलिए टर्मिनल में काम करने वाला export ChatGPT के लिए अनुपलब्ध हो सकता है। यदि उपकरण CLI में दिखाई देते हैं लेकिन डेस्कटॉप ऐप में प्रमाणीकरण (auth) विफल हो जाता है, तो लगभग हमेशा यही कारण होता है। launchctl setenv BB_API_KEY bb_live_… इसे ठीक कर देता है, हालांकि यह एक अस्थायी समाधान (workaround) की तरह महसूस हो सकता है, क्योंकि वास्तव में यह वही है।
क्या ChatGPT के अपने कनेक्टर्स उसी कुंजी का उपयोग कर सकते हैं?
संक्षिप्त उत्तर: अभी नहीं, और इसके सटीक कारण को जानना महत्वपूर्ण है। ChatGPT का अपना कनेक्टर्स सिस्टम है (Settings → Connectors, जो पेड प्लान्स पर डेवलपर मोड टॉगल के पीछे होता है) जो MCP सर्वर को Codex के बजाय नियमित चैट में जोड़ता है। वे कनेक्टर्स OAuth प्रवाह के माध्यम से प्रमाणित होते हैं। हमारा एंडपॉइंट वर्तमान में केवल Bearer कुंजी का समर्थन करता है; OAuth 2.1 समर्थन की योजना बनाई गई है, और इसके रोलआउट होने के बाद नियमित ChatGPT चैट भी एक समर्थित क्लाइंट बन जाएगी। तब तक रेखा बिल्कुल स्पष्ट है: Codex फ्रंटएंड (CLI, IDE, डेस्कटॉप ऐप में Codex टैब) आज config.toml के माध्यम से काम करते हैं, जबकि नियमित चैट-साइड कनेक्टर्स ऐसा नहीं करते हैं। compatibility table तारीखों के साथ प्रत्येक क्लाइंट की स्थिति को ट्रैक करती है।
उपयोग का मामला: एक भी ऐप खोले बिना एक प्रोडक्ट प्रोमो वीडियो बनाना
परिदृश्य जिस पर यह लेख आधारित है: रिलीज़ का दिन है, आपके चेंजलॉग को एक संक्षिप्त प्रोमो वीडियो की आवश्यकता है, और आप टर्मिनल छोड़ना नहीं चाहते हैं। आप Codex से उत्पाद शैली (product-style) के वीडियो के लिए कहते हैं, यह एक सिनेमैटिक प्रॉम्प्ट तैयार करता है और generate_video को कॉल करता है। यह टूल पहली कॉल पर कभी भी पैसे चार्ज नहीं करता; यह एक कोट (quote) प्रदान करता है, और एजेंट सटीक राशि स्वीकार करते हुए फिर से कॉल करता है। यह मेरे सत्र का वास्तविक लॉग है:
→ generate_video {"prompt": "Cinematic product promo shot: matte pearl-white
wireless earbuds in an open charging case on a slowly rotating dark
pedestal, dramatic rim lighting in violet and warm amber, soft haze,
slow dolly-in from a slightly low angle, shallow depth of field,
premium tech commercial style", "model": "veo-3.1-fast",
"duration": 8, "resolution": "720p"}
← {"status": "confirmation_required", "quoted_cost_usd": 0.70,
"message": "This video costs $0.70. Nothing has been charged."}
→ generate_video {..., "confirm_cost": 0.70}
← {"job_id": "cmrgrpxgf0002mk7fvfepg82j", "status": "processing",
"cost_charged_usd": 0.70, "balance_remaining_usd": 1553.37}
→ get_result {"job_id": "cmrgrpxgf0002mk7fvfepg82j", "wait_seconds": 30}
← {"status": "completed", "files": [{"url": "https://…/api/files/…"}]}
पुष्टि (confirmation) से लेकर तैयार 720p फ़ाइल मिलने तक केवल दो मिनट और पंद्रह सेकंड का समय लगा। यहाँ वह क्लिप दी गई है, जिसे Veo 3.1 Fast द्वारा पहले ही प्रयास में जनरेट किया गया था:
प्रॉम्प्ट की संरचना हमारे Veo 3.1 prompt guide के पैटर्न का पालन करती है: विषय (subject), क्रिया (action), प्रकाश व्यवस्था (lighting), कैमरे का मूवमेंट, लेंस व्यवहार और शैली। Codex फिर हस्ताक्षरित URL (जो 24 घंटों के लिए वैध है; एक नया get_result इसे फिर से जारी करता है) से फ़ाइल को आपके द्वारा निर्दिष्ट फ़ोल्डर में खींच लेता है और आपके चेंजलॉग पेज के लिए <video> मार्कअप भी लिख सकता है।
एक ईमानदार चेतावनी: $0.70 में केवल "मौन (silent)" संस्करण मिलता है। उसी क्लिप पर मूल ऑडियो की लागत $1.00 है, और ध्वनि के साथ Omni Flash की कीमत $0.10 प्रति सेकंड है — उसी लंबाई की क्लिप के लिए $0.80। लैंडिंग पेज पर म्यूटेड ऑटोप्ले लूप के लिए, मौन संस्करण ही आपकी आवश्यकता के अनुकूल है; हालांकि सोशल मीडिया के लिए आप अतिरिक्त तीस सेंट का भुगतान करना पसंद करेंगे।
इमेज जेनरेशन भी इसी तरह काम करता है, बस इसमें पुष्टिकरण कदम की आवश्यकता नहीं होती, क्योंकि एकल चित्र इतने सस्ते होते हैं कि उन्हें सीधे चलाया जा सकता है: प्रॉम्प्ट के साथ generate_image एक जॉब आईडी प्रदान करता है, और get_result फ़ाइल के साथ एक छोटा इनलाइन पूर्वावलोकन (inline preview) देता है जिसे Codex देख सकता है।
Codex की वे अजीबोगरीब बातें जिन्हें जानना आपके लिए ज़रूरी है
उपरोक्त सेटअप का परीक्षण करते समय एकत्रित की गईं बातें, मोटे तौर पर उसी क्रम में जिनमें आप उनका सामना करेंगे।

1. CLI आपके लिए यह कॉन्फ़िगरेशन स्वचालित रूप से नहीं लिखेगा।
codex mcp add मौजूद है, लेकिन आधिकारिक दस्तावेज़ों के अनुसार इसमें HTTP सर्वर के लिए कोई bearer-token विकल्प नहीं है; यह कमांड केवल स्थानीय stdio सर्वर और OAuth लॉगिन (codex mcp login) को लक्षित करता है। कुंजी-प्रमाणित (key-authenticated) रिमोट सर्वर के लिए आपको मैन्युअल रूप से ~/.codex/config.toml को संपादित करना होगा। इसमें केवल तीस सेकंड का समय लगता है, लेकिन यदि आप claude mcp add --header की तरह सिंगल-लाइन कमांड की उम्मीद कर रहे थे, तो Codex यहाँ भिन्न है।
2. यह TOML है, और तालिका mcp_servers है।
स्नेक_केस (snake_case), चौकोर कोष्ठक (square brackets), कोई JSON नहीं। Cursor या Claude दस्तावेज़ों से कॉपी किए गए कॉन्फ़िगरेशन (mcpServers, घुमावदार कोष्ठक) पार्स नहीं होंगे, और इस फ़ाइल में TOML त्रुटियाँ अक्सर बिना किसी चेतावनी के विफल हो जाती हैं। यदि सर्वर कभी दिखाई नहीं देता है, तो कुछ और संदेह करने से पहले टर्मिनल से codex चलाएं और स्टार्टअप आउटपुट देखें।
3. सीक्रेट्स के पास एक सही फ़ील्ड है और एक लुभावना गलत फ़ील्ड है।
bearer_token_env_var कुंजी को फ़ाइल से बाहर रखता है। वैकल्पिक http_headers मैप स्थिर मान लेता है, जिसका अर्थ है कि एक वास्तविक bb_live_ कुंजी उस फ़ाइल में सादे टेक्स्ट (plaintext) में बैठ जाएगी जिसे डॉटफ़ाइल-सिंक टूल अक्सर प्रकाशित कर देते हैं। पर्यावरण चरों से कस्टम हेडर के लिए env_http_headers भी है। मेरा नियम: हमेशा bearer_token_env_var का उपयोग करें, किसी भी संवेदनशील जानकारी के लिए http_headers का उपयोग कभी न करें।
4. डिफ़ॉल्ट टूल टाइमआउट 60 सेकंड है, और यह ठीक है, लेकिन केवल इसलिए क्योंकि पोलिंग इस तरह काम करती है।
Codex डिफ़ॉल्ट रूप से प्रत्येक टूल कॉल को tool_timeout_sec = 60 देता है। एक वीडियो जनरेशन जॉब में एक से दस मिनट लग सकते हैं, जो सुनने में विरोधाभासी लग सकता है, सिवाय इसके कि generate_video तुरंत एक जॉब आईडी देता है और get_result प्रति कॉल अधिकतम 30 सेकंड के लिए लॉन्ग-पोलिंग करता है। प्रत्येक व्यक्तिगत कॉल आसानी से सीमा के भीतर रहती है; एजेंट बस कुछ ही बार पोल करता है। टाइमआउट को 600 तक बढ़ाकर इसे "ठीक" करने का प्रयास न करें, आपको इसकी आवश्यकता नहीं है, और यदि सर्वर वास्तव में हैंग हो जाता है, तो यह एजेंट को दस मिनट के लिए ब्लॉक कर देगा।
5. अनुमोदन (Approval) व्यवहार प्रति सर्वर कॉन्फ़िगर किया जा सकता है, और वास्तविक पैसों वाले टूल के लिए prompt का उपयोग होना चाहिए।
दस्तावेज़ों के अनुसार, default_tools_approval_mode फ़ील्ड auto, prompt, writes और approve मानों को स्वीकार करती है। ऐसे सर्वर के लिए जहां कई टूल प्रति कॉल वास्तविक डॉलर खर्च करते हैं, मैं पुष्टिकरण प्रॉम्प्ट को चालू रखूंगा और व्यक्तिगत रूप से कॉल्स को स्वीकृत करूँगा; मुफ़्त उपकरण (list_models, get_account, get_result) वे हैं जिन्हें अनुमति सूची (allowlist) में शामिल किया जा सकता है यदि आपका सेटअप टूल-वार निर्णय लेने का समर्थन करता है। वीडियो जेनरेशन में वैसे भी हमारी ओर से एक दूसरी सुरक्षा लॉक लगी हुई है: बिना स्पष्ट confirm_cost भेजे किसी भी उद्धरण (quote) से अधिक का शुल्क नहीं लिया जाता है।
इस लेख के डेमो मीडिया की लागत क्या थी?
वही मानक मूल्य जो list_models एजेंट को रिपोर्ट करता है, कोई विशेष कर्मचारी छूट नहीं:
| परिसंपत्ति (Asset) | मॉडल | कीमत |
|---|---|---|
| प्रोमो वीडियो डेमो, एक लाइव कुंजी पर MCP के माध्यम से | Veo 3.1 Fast, 720p, 8 s, silent | $0.70 |
| कवर + 2 संपादकीय चित्र | Nano Banana Pro, 1K | $0.33 |
| दस्तावेज़-पेज स्क्रीनशॉट | ब्राउज़र, जनरेशन नहीं | $0.00 |
| कुल | $1.03 |
वीडियो पहले ही प्रयास में सफलतापूर्वक जनरेट हो गया, जिस पर मैं हर बार भरोसा नहीं करूँगा; उत्पाद-शैली (product-style) के शॉट आसान होते हैं, लेकिन इंसानी हाथों या पठनीय पाठ (readable text) वाले शॉट काफी जटिल होते हैं। उनके लिए री-रोल बजट ज़रूर रखें।
यदि आप पहले से ही इस सर्वर को किसी अन्य क्लाइंट में चला रहे हैं, तो ऊपर दिया गया TOML ब्लॉक ही एकमात्र नया हिस्सा है: हर जगह एक ही कुंजी, एक ही बैलेंस और एक ही जनरेशन इतिहास रहेगा। बिल्कुल शुरुआत से शुरू करने के लिए, हमारा Claude Code walkthrough चार और उपयोग के मामलों को कवर करता है जो लगभग शब्द-दर-शब्द Codex पर लागू होते हैं। एक Create a key (कुंजी बनाएं) और Codex को अपना पहला रेंडर शुरू करने के लिए कहें।
FAQ
क्या Codex Bearer प्रमाणीकरण के साथ रिमोट MCP सर्वर का समर्थन करता है?
हाँ, मूल रूप से (natively)। एक रिमोट सर्वर ~/.codex/config.toml में एक [mcp_servers.<name>] तालिका है जिसमें एक url फ़ील्ड है, और bearer_token_env_var उस पर्यावरण वेरिएबल का नाम निर्दिष्ट करता है जिसका मान Codex Authorization हेडर के रूप में भेजता है। इसे 11 जुलाई, 2026 को आधिकारिक Codex MCP दस्तावेज़ों के अनुसार सत्यापित किया गया है। OAuth भी समर्थित है (यह उन सर्वरों के लिए डिफ़ॉल्ट प्रमाणीकरण मोड है जो इसकी पेशकश करते हैं), लेकिन एक स्थिर कुंजी सेटअप के लिए उन दो पंक्तियों के अलावा कुछ भी आवश्यक नहीं है।
क्या MCP कॉन्फ़िगरेशन वास्तव में Codex CLI, IDE एक्सटेंशन और ChatGPT डेस्कटॉप के बीच साझा किया जाता है?
हाँ। Codex दस्तावेज़ स्पष्ट करते हैं कि ChatGPT डेस्कटॉप ऐप, Codex CLI और IDE एक्सटेंशन config.toml कॉन्फ़िगरेशन साझा करते हैं। व्यवहार में केवल पर्यावरण वेरिएबल स्वचालित रूप से स्थानांतरित नहीं होता है: आपके शेल एक्सपोर्ट CLI को दिखाई देते हैं, जबकि Dock से लॉन्च किए गए डेस्कटॉप ऐप को OS स्तर पर वेरिएबल सेट करने की आवश्यकता होती है (macOS पर launchctl setenv), अन्यथा यह उसी कॉन्फ़िगरेशन के साथ प्रमाणीकरण में विफल हो जाएगा।
क्या मैं फ़ाइल को संपादित करने के बजाय codex mcp add के साथ सर्वर जोड़ सकता हूँ?
इस प्रकार के सर्वर के लिए नहीं। दस्तावेज़ HTTP सर्वर के लिए codex mcp add पर कोई bearer-token फ़्लैग प्रदान नहीं करते हैं, इसलिए कुंजी-प्रमाणित रिमोट एंडपॉइंट का अर्थ है कि आपको ~/.codex/config.toml को स्वयं संपादित करना होगा। मैन्युअल संपादन का लाभ यह है कि परिणाम स्पष्ट और ट्रैक करने योग्य होता है; ब्लॉक केवल तीन लाइनों का है, और कुंजी फ़ाइल के बजाय पर्यावरण में सुरक्षित रहती है।
मेरी bb_live_ कुंजी ChatGPT की Connectors सेटिंग्स में क्यों काम नहीं करती है?
क्योंकि यह एक अलग एकीकरण (integration) क्षेत्र है। ChatGPT चैट में कनेक्टर्स (वेब और डेस्कटॉप, डेवलपर मोड टॉगल के पीछे) MCP सर्वर को OAuth के माध्यम से प्रमाणित करते हैं, सीधे पेस्ट की गई API कुंजियों से नहीं, इसलिए केवल Bearer एंडपॉइंट वर्तमान में उस प्रवाह को पूरा नहीं कर सकता है। इसके विपरीत, Codex फ्रंटएंड config.toml को पढ़ते हैं और कुंजी के साथ सुचारू रूप से काम करते हैं। एक बार जब हमारा OAuth 2.1 समर्थन आ जाएगा, तो नियमित चैट-साइड कनेक्टर्स भी एक समर्थित पथ बन जाएंगे; client table वर्तमान स्थिति को ट्रैक करती है।
क्या Codex वीडियो जनरेट कर सकता है, और इसकी लागत क्या है?
हाँ, लागत की अनिवार्य पुष्टि (confirmation) के साथ। generate_video हमेशा पहले एक USD उद्धरण (quote) देता है और कुछ भी चार्ज नहीं करता है; एजेंट रेंडर शुरू करने के लिए उद्धृत राशि से मेल खाते confirm_cost के साथ कॉल दोहराता है। कीमतें 4-सेकंड की मौन 720p Veo 3.1 Lite क्लिप के लिए $0.10 से शुरू होकर, इस लेख में 8-सेकंड के Veo 3.1 Fast डेमो के लिए $0.70, और ऑडियो के साथ शीर्ष स्तर के 4K Veo 3.1 रेंडर के लिए $4.40 तक जाती हैं; ध्वनि के साथ Omni Flash की कीमत $0.10 प्रति सेकंड ($0.30–$1.00 प्रति क्लिप) है। जनरेशन विफल होने पर राशि स्वचालित रूप से वापस (refund) कर दी जाती है।