Grok MCP: xAI API से इमेज और वीडियो
रिमोट MCP सर्वर को xAI API या grok.com कस्टम कनेक्टर से Grok में कैसे जोड़ें, ताकि वह इमेज, वीडियो और आवाज़ बना सके। असली कॉन्फ़िग और $0.03 से शुरू कीमतें।

Grok में रिमोट MCP टूल xAI API की सर्वर-साइड सुविधा हैं: आप रिक्वेस्ट के tools ऐरे में किसी MCP सर्वर का पता लिखते हैं, और कनेक्शन खोलना, टूल की सूची पढ़ना और Grok के जवाब लिखते समय उन्हें कॉल करना — यह सब xAI का अपना रनटाइम करता है। आपकी मशीन पर कुछ नहीं चलता। Cursor या Claude Code से फ़र्क बस यही है: वहाँ MCP क्लाइंट आपके सामने वाले एडिटर में रहता है और नेटवर्क पर बात आपका कंप्यूटर करता है।
छोटा जवाब: tools में एक ऑब्जेक्ट जोड़िए — {"type": "mcp", "server_url": "https://bananabanana.pro/api/mcp", "server_label": "bananabanana", "authorization": "Bearer bb_live_…"} — और Grok को दस जनरेशन टूल मिल जाते हैं: Nano Banana परिवार से इमेज, Veo 3.1 और Gemini Omni Flash से वीडियो, Gemini TTS से आवाज़। इमेज $0.03 से, वीडियो $0.10 से, और नए अकाउंट में आज़माने के लिए $0.20 पड़े होते हैं। grok.com पर वही URL Connectors → New Connector → Custom में जाता है, हालाँकि साइन-इन वाला हिस्सा कम साफ़ है (उसके लिए नीचे अलग सेक्शन है)।

तार के अपने सिरे के बारे में नीचे जो भी कहा गया है, वह 1 सितंबर 2026 को असली रिक्वेस्ट से मापा गया। xAI के सिरे की हर बात उनके दस्तावेज़ से है, ठीक उसी दिन जैसा वह पढ़ा जा रहा था, और मैं उसे अपने शब्दों में कहने के बजाय उद्धृत कर रहा हूँ, क्योंकि उनके API का यह हिस्सा हिलता रहता है।
दो सतहें, एक सर्वर
"क्या Grok MCP सपोर्ट करता है" असल में दो सवाल हैं, और जवाब अलग-अलग हैं।
| सतह | xAI क्या दस्तावेज़ करता है | MCP क्लाइंट कहाँ चलता है |
|---|---|---|
| xAI API | रिमोट MCP टूल "the xAI native SDK, the OpenAI compatible Responses API, and the Speech to Speech API" में काम करते हैं | xAI के सर्वर पर |
| grok.com | Connectors → New Connector → Custom: "Enter the MCP server URL and complete any required authentication" | xAI के सर्वर पर |
| IDE के भीतर Grok | दोनों में से किसी पेज पर नहीं है | पता नहीं |
उसी पेज की दो पाबंदियाँ दो बार पढ़ने लायक हैं। ट्रांसपोर्ट: "Only Streaming HTTP and SSE transports are supported"। और OpenAI-कम्पैटिबल रास्ता दो पैरामीटर खो देता है, require_approval और connector_id, यानी किसी पैसे वाले कॉल से पहले पुष्टि दिखाने को xAI से कहना वहाँ संभव नहीं। या तो आप खुद बनाइए, या टूल सावधानी से चुनिए।
हमारा एंडपॉइंट स्टेटलेस Streamable HTTP है, ठीक वही ट्रांसपोर्ट जो इस शर्त पर खरा उतरता है। न कोई सेशन हेडर ज़िंदा रखना है, न कोई SSE स्ट्रीम संभालनी है: एक JSON-RPC रिक्वेस्ट, एक JSON जवाब।
BananaBanana को xAI API से जोड़ना
जो सबसे छोटा रूप चलता है, सीधा cURL Responses API पर:
curl https://api.x.ai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $XAI_API_KEY" \
-d '{
"model": "grok-4.6",
"input": [
{ "role": "user",
"content": "Generate a 16:9 product photo of a ceramic cup on linen, soft morning light. Use nano-banana-pro, then give me the URL." }
],
"tools": [
{
"type": "mcp",
"server_url": "https://bananabanana.pro/api/mcp",
"server_label": "bananabanana",
"server_description": "Image, video and speech generation on Google models",
"authorization": "Bearer bb_live_your_key_here",
"allowed_tools": ["list_models", "generate_image", "get_result"]
}
]
}'
वही चीज़ xAI के Python SDK में, जहाँ दो पैरामीटर के नाम बदल जाते हैं:
from xai_sdk import Client
from xai_sdk.chat import user
from xai_sdk.tools import mcp
client = Client(api_key=os.environ["XAI_API_KEY"])
chat = client.chat.create(
model="grok-4.6",
tools=[
mcp(
server_url="https://bananabanana.pro/api/mcp",
server_label="bananabanana",
authorization=os.environ["BB_KEY"], # extra_headers=… also works
allowed_tool_names=["list_models", "generate_image", "get_result"],
)
],
)
chat.append(user("Make me a 16:9 hero image of a ceramic cup on linen."))
bb_live_… कुंजी अपनी प्रोफ़ाइल के API Keys सेक्शन से बनती है। वह सिर्फ़ एक बार दिखती है।
दो बारीकियाँ हैं, हर एक पूरी शाम खा जाती है।
Bearer उपसर्ग। xAI authorization को इस तरह बताता है — "a token that will be set in the Authorization header on requests to the MCP server" — जिससे यह खुला रह जाता है कि वे आपकी जगह Bearer लगाते हैं या नहीं। हमारा सर्वर अंदाज़ा नहीं लगाता। खाली टोकन भेजिए और शिकायत बिल्कुल साफ़ आती है:
{"error":{"code":-32001,"message":"Unsupported Authorization scheme. Use 'Authorization: Bearer <token>'."}}
इसलिए स्कीम खुद लिखिए: "authorization": "Bearer bb_live_…"। अगर कभी xAI की तरफ़ यह दो बार लिपट जाए, तो बिना दुविधा वाला रास्ता लीजिए और हेडर सीधे दीजिए: headers: {"Authorization": "Bearer bb_live_…"}।
allowed_tools सिर्फ़ कागज़ पर वैकल्पिक है। xAI के दस्तावेज़ साफ़ कहते हैं कि इसके बिना सर्वर की सारी टूल परिभाषाएँ मॉडल के कॉन्टेक्स्ट में चली जाती हैं, "if an MCP server exposes 10 different tools and you don't specify allowed_tools, all 10 tool definitions will be available"। हम ठीक दस टूल देते हैं। उनमें से आधे पैसे खर्च करते हैं। इमेज बनाने वाले बॉट के लिए मैं list_models, generate_image और get_result ही खोलता, और वीडियो की ज़रूरत सचमुच पड़ने पर सूची बढ़ाता।

दरवाज़ा खटखटाने पर Grok को क्या दिखता है
यह रहा हमारा हैंडशेक, इसी लेख के लिए चलाया गया। टूल की सूची पाने के लिए कोई क्रेडेंशियल नहीं चाहिए:
curl -s -X POST https://bananabanana.pro/api/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
list_models, get_account, top_up, generate_image, edit_image,
generate_video, edit_video, generate_speech, get_result, list_generations
जो कुछ भी सचमुच काम करता है, वह टोकन दिखाने तक 401 लौटाता है, और जवाब में वह संकेत होता है जिसकी एक सलीकेदार क्लाइंट को ज़रूरत है:
HTTP/2 401
www-authenticate: Bearer realm="bananabanana",
error_description="Authentication required. Connect this server with OAuth,
or create an API key at https://bananabanana.pro/profile",
resource_metadata="https://bananabanana.pro/.well-known/oauth-protected-resource/api/mcp",
scope="mcp"
resource_metadata वाला पता MCP प्राधिकरण स्पेसिफ़िकेशन का protected resource metadata दस्तावेज़ लौटाता है — OAuth वाले क्लाइंट इसी से हमारा authorization server खुद खोज लेते हैं। xAI API के रास्ते पर आपको यह 401 कभी नहीं मिलेगा, क्योंकि आपकी कुंजी हर कॉल के साथ जाती है। लेकिन नीचे वाली कनेक्टर की कहानी में यही बात मायने रखती है।

एक और अनुकूलता वाली बात, क्योंकि यह अपना क्लाइंट लिखने वालों को अक्सर काटती है: हम Accept: application/json, text/event-stream हेडर की माँग नहीं करते और सादा JSON लौटाते हैं। गेटवे के पीछे रहस्यमय ढंग से गिरते वही सर्वर हैं जो SSE वाले Accept पर अड़े रहते हैं।
कोटेशन, जॉब, पोलिंग: वह प्रवाह जो एजेंट को चौंकाता है
इमेज बनाना यानी एक कॉल और थोड़ा इंतज़ार। वीडियो ऐसा नहीं है, और "टूल कॉल करो, जवाब पढ़ो" वाली सोच से लिखा एजेंट लूप यहीं अटकता है।
वीडियो और कई इमेज वाली रिक्वेस्ट जॉब नहीं, कीमत का कोटेशन लौटाती हैं। मॉडल को दूसरी बार टूल कॉल करना पड़ता है, confirm_cost में ठीक वही रकम, पैसे तक सही, और तभी कुछ कटता है। यह जानबूझकर लगाया गया स्पीड-ब्रेकर है: किसी ने "इसे और सिनेमाई बनाओ" लिख दिया, इसलिए एजेंट 4K Veo क्लिप पर $4.40 खर्च कर दे — ऐसा नहीं होना चाहिए।
आगे जनरेशन असिंक्रोनस है। generate_image और generate_video तुरंत job_id लौटाते हैं; get_result हर कॉल में 30 सेकंड तक लॉन्ग-पोलिंग करता है और स्थिति ठहरने तक आप उसे दोबारा बुलाते हैं। इमेज आमतौर पर 10 से 60 सेकंड में आती है। वीडियो मॉडल और लंबाई के हिसाब से 1 से 10 मिनट लेता है।
Responses API के लिए व्यावहारिक नतीजा: उपयोगकर्ता की एक बारी में सर्वर-साइड चार-पाँच टूल कॉल लग सकते हैं, और अगर आपका इंटीग्रेशन टूल स्टेप दो पर बाँध देता है, तो Grok job_id बताकर रुक जाएगा — उस वेटर की तरह जो ऑर्डर लेकर घर चला गया। उसे जगह दीजिए। जनरेशन कॉल में idempotency_key भी भेजिए, ताकि दोबारा भेजी गई रिक्वेस्ट दूसरी बार पैसे न काटे।
नाकामी अपने आप पैसे लौटा देती है। अगर Google का कंटेंट फ़िल्टर प्रॉम्प्ट ठुकरा दे या ऊपर की तरफ़ कॉल मर जाए, बैलेंस अपने आप वापस आ जाता है और get_result बताता है कि किस चरण ने मना किया। जो वीडियो मिला ही नहीं, उसके पैसे कभी नहीं लगते।

क्या grok.com भी यह कर सकता है?
आंशिक रूप से, और ईमानदार जवाब में एक छेद है।
xAI रास्ता साफ़ लिखता है: grok.com/connectors पर जाइए, New Connector दबाइए, Custom चुनिए, फिर "Enter the MCP server URL and complete any required authentication"। सर्वर सार्वजनिक इंटरनेट से पहुँच में होना चाहिए, जो हमारा ज़ाहिर तौर पर है। उसी पेज के मुताबिक़ बिल्ट-इन कनेक्टर OAuth से प्रमाणित होते हैं।

पेज यह नहीं बताता कि कस्टम कनेक्टर कौन-कौन से प्रमाणीकरण तरीक़े स्वीकारता है। बस एक वाक्य, "complete any required authentication", यही पूरा स्पेसिफ़िकेशन है, और पेज आख़िरी बार 17 जुलाई 2026 को अपडेट हुआ।
हमारी स्थिति यह है। हम पूरा OAuth 2.1 authorization server चलाते हैं: डायनामिक क्लाइंट रजिस्ट्रेशन, S256 के साथ PKCE, protected resource metadata, resource indicators — MCP प्राधिकरण स्पेसिफ़िकेशन पूरा। जो भी क्लाइंट उसका पालन करता है, हमारी तरफ़ से एक लाइन काम किए बिना जुड़ जाता है; Claude और ChatGPT के कनेक्टर ठीक इसी तरह काम करते हैं। अगर Grok का कस्टम कनेक्टर उसी प्रवाह से चलता है, तो सब अपने आप चलेगा और आपको अपने अकाउंट के नाम वाला सामान्य साइन-इन पेज दिखेगा।
और अगर वह सिर्फ़ URL सहेजता है, कोई क्रेडेंशियल नहीं भेजता, तो कनेक्टर की सूची में दसों टूल दिखेंगे और हर कॉल 401 लौटाएगा। हमारे यहाँ टूल की खोज गुमनाम है, इसलिए कनेक्टर स्वस्थ दिख सकता है जबकि वह कुछ भी बना नहीं सकता।
यहाँ मैं ज़्यादा दो-टूक होना चाहूँगा। अगर आपने आज़माया है, तो नतीजा [email protected] पर एक मेल के लायक़ है — हमारे MCP पेज की अनुकूलता तालिका उसी दिन अपडेट हो जाती है।
लागत कितनी है
कीमतें हर जनरेशन पर हैं, प्रीपेड बैलेंस से कटती हैं, कोई सब्सक्रिप्शन नहीं।
| क्या | मॉडल | कीमत |
|---|---|---|
| इमेज, 1K | Nano Banana 2 Lite | $0.03 |
| इमेज, 512–4K | Nano Banana 2 | $0.03–$0.13 |
| इमेज, 1K–4K | Nano Banana Pro | $0.11–$0.20 |
| वीडियो, 4 सेकंड 720p बिना आवाज़ | Veo 3.1 Lite | $0.10 |
| वीडियो, न्यूनतम | Veo 3.1 Fast | $0.35 |
| वीडियो, न्यूनतम | Veo 3.1 | $0.70 |
| आवाज़ के साथ वीडियो, प्रति सेकंड | Gemini Omni Flash | $0.10 (न्यूनतम 3 सेकंड के लिए $0.30) |
| आवाज़ | Gemini 3.1 Flash TTS | हर 200 अक्षर पर $0.01 |

यह कप ऊपर वाले cURL उदाहरण का ही प्रॉम्प्ट है, जिसे लिखते-लिखते सचमुच चलाया गया: Nano Banana Pro, 2K, $0.11 कटे, टूल कॉल के 32 सेकंड बाद तैयार।
नया अकाउंट $0.20 से शुरू होता है — यानी छह Lite इमेज या एक छोटी Veo Lite क्लिप। तारें जाँचने भर को काफ़ी, अच्छे मॉडलों पर राय बनाने को नहीं; इसे छिपाने से बेहतर है साफ़ कह देना।
टॉप-अप पर वॉल्यूम बोनस मिलता है: $50 से 5%, $100 से 10%। सक्रिय प्रोमो कोड उसी आधार पर 10% और जोड़ता है, यानी कोड के साथ $100 पर बैलेंस में $120 आते हैं। ताज़ा आँकड़े हमेशा कीमत वाले हिस्से में रहते हैं।
Grok तो ख़ुद इमेज बनाता है, फिर घुमाव क्यों?
जायज़ सवाल, और आधा जवाब xAI की अपनी मॉडल सूची देती है: उनके पास grok-imagine-image-2.0 और grok-imagine-video-1.5 हैं। चैट के भीतर झटपट एक तस्वीर चाहिए तो वही लीजिए। उसके लिए किसी को MCP सर्वर की ज़रूरत नहीं।

जनरेशन बाहर भेजने की वजहें ज़्यादा संकरी हैं, और ज़्यादातर इसी बारे में हैं कि कौन-से मॉडल और बिल कैसा पढ़ा जाता है:
- विशेष Google मॉडल। तस्वीर के भीतर टेक्स्ट और प्रोडक्ट शॉट के लिए Nano Banana Pro, नेटिव आवाज़ वाले वीडियो के लिए Veo 3.1, और जब उसी क्लिप पर आवाज़ के साथ संवादी संपादन चाहिए तो Omni Flash।
- कटौती से पहले कीमत।
list_modelsप्रति-यूनिट कीमतें तुरंत लौटाता है, और वीडियो खर्च से पहले कोटेशन देता है। एजेंट को बजट देकर सचमुच उसमें रखा जा सकता है। - सभी क्लाइंट के लिए एक बैलेंस। वही कुंजी Grok, Gemini CLI, Codex और वेब स्टूडियो में चलती है, और सारे नतीजे एक ही इतिहास में गिरते हैं।
- नाकामी पर पैसा वापस, जो कंटेंट फ़िल्टर के बीच में होते ही सुनने से ज़्यादा मायने रखता है।
इस रास्ते की ईमानदार कीमत: एक अतिरिक्त नेटवर्क हॉप और पोलिंग लूप, वीडियो में पुष्टि का क़दम, Omni Flash की 720p सीमा, और टूल स्कीमा जिसे क्लाइंट जुड़ते समय कैश कर लेते हैं — यानी हमारी तरफ़ नया पैरामीटर आने पर आपको दोबारा कनेक्ट करना पड़ेगा, तभी Grok उसे भेज पाएगा। इनमें से कुछ भी जानलेवा नहीं। और सब कुछ सच है।
FAQ
क्या Grok MCP सर्वर सपोर्ट करता है?
हाँ, API की तरफ़। xAI के Remote MCP Tools नेटिव SDK, OpenAI-कम्पैटिबल Responses API और Speech to Speech API में चलते हैं; server_url और server_label अनिवार्य हैं, authorization, headers और allowed_tools वैकल्पिक। grok.com पर कस्टम MCP कनेक्टर Connectors → New Connector → Custom में मिलते हैं।
OAuth चाहिए या API कुंजी काफ़ी है?
xAI API के लिए bb_live_… कुंजी काफ़ी है और आसान भी: उसे Bearer उपसर्ग सहित authorization में भेजिए। OAuth उन कनेक्टर-शैली क्लाइंट के लिए ज़रूरी है जो उपयोगकर्ता को खुद साइन इन कराते हैं। हमारा सर्वर एक ही एंडपॉइंट पर दोनों स्वीकारता है।
Grok का कौन-सा मॉडल चुनें?
xAI के MCP उदाहरणों में grok-4.6 है, फ़िलहाल उनकी डिफ़ॉल्ट सिफ़ारिश। सर्वर-साइड टूल सपोर्ट करने वाला कोई भी मॉडल चलेगा; टूल का अनुबंध मॉडल बदलने से नहीं बदलता।
क्या इससे आवाज़ वाला वीडियो बन सकता है?
हाँ — आवाज़ के साथ Veo 3.1 से, या Gemini Omni Flash से, जिसमें आवाज़ हमेशा रहती है। दो चरणों वाली पुष्टि और एक मिनट या उससे ज़्यादा की पोलिंग मानकर चलिए। Omni 720p पर रुक जाता है, इसलिए पूरे स्क्रीन वाले मुख्य वीडियो के लिए यह विकल्प नहीं है।
जनरेशन नाकाम हो जाए तो?
कटौती अपने आप पलट जाती है और get_result ऊपर वाली तरफ़ का कारण तथा अगला सुझाया क़दम लौटाता है। कंटेंट फ़िल्टर की मनाही पर शब्द बदलकर दोबारा कोशिश करना ठीक रहता है: वही प्रॉम्प्ट दूसरी बार निकल सकता है, क्योंकि फ़िल्टर सिर्फ़ अनुरोध नहीं, बनी हुई पिक्सल देखता है।