AI एजेंटों और MCP क्लाइंटों के लिए

BananaBanana MCP Server

सीधे Claude Desktop, Claude Code और किसी भी अन्य MCP क्लाइंट से AI इमेज और वीडियो जनरेट करें — आपके BananaBanana बैलेंस से प्रति जनरेशन चार्ज किया जाएगा। कोई सब्सक्रिप्शन नहीं।

API की बनाएँइमेज $0.03 से · वीडियो $0.10 से
01यह क्या है

एक एंडपॉइंट, सभी मॉडल

एक रिमोट Model Context Protocol सर्वर जो एजेंट टूल्स के रूप में संपूर्ण BananaBanana जनरेशन स्टैक प्रदान करता है: Google Nano Banana 2 Lite / 2 / Pro इमेज ($0.03 से), Veo 3.1 / Fast / Lite वीडियो और आवाज के साथ Gemini Omni Flash (फ्लैट $1.00)। आपका एजेंट लाइव कीमतें देखता है, महंगे रन से पहले लागत की पुष्टि करता है, और प्रत्येक जनरेशन वेबसाइट की तरह ही इतिहास और बैलेंस में दर्ज होती है।

  • एंडपॉइंट: https://bananabanana.pro/api/mcp (Streamable HTTP)
  • ऑथेंटिकेशन: आपके प्रोफ़ाइल से Bearer API की (OAuth 2.1 सपोर्ट की योजना है)
  • रेट लिमिट: प्रति की (key) 20 टूल कॉल प्रति मिनट; प्रति-की वैकल्पिक दैनिक खर्च सीमा
  • कोई MCP क्लाइंट नहीं है? यही एंडपॉइंट HTTPS पर सरल JSON-RPC है — बिना किसी SDK के इसे curl, Python या TypeScript से कॉल करें
  • विफल или फ़िल्टर की गई जनरेशन का रिफ़ंड अपने आप मिल जाता है
  • दस्तावेज़, server.json खोलें और bananabanana-mcp GitHub रिपॉजिटरी में क्लाइंट उदाहरणों को कॉपी-पेस्ट करें
MCP क्लाइंटClaude Code / Desktop, Cursor,VS Code, Codex, कोई भी एजेंटBearer की/api/mcpbananabanana.proStreamable HTTP · 7 टूल्सजनरेट करेंमॉडल पूलNano Banana · Veo 3.1Omni Flashप्रति यूनिटआपका बैलेंसप्रति जनरेशन भुगतानविफलता पर ऑटो-रिफंड
02त्वरित शुरुआत

तीन स्टेप्स में कनेक्टेड

1. एक खाता बनाएँ और बैलेंस टॉप अप करें। 2. प्रोफ़ाइल → MCP API Keys में एक की (key) बनाएँ (केवल एक बार दिखाई देती है)। 3. अपने क्लाइंट में सर्वर जोड़ें:

Claude Code

claude mcp add --transport http bananabanana https://bananabanana.pro/api/mcp \
  --header "Authorization: Bearer bb_live_YOUR_KEY"

Claude Desktop

Add to claude_desktop_config.json (Settings → Developer → Edit Config); requires Node.js for the mcp-remote bridge:

{
  "mcpServers": {
    "bananabanana": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "https://bananabanana.pro/api/mcp",
        "--header", "Authorization: Bearer bb_live_YOUR_KEY"
      ]
    }
  }
}

Cursor

Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json in the project; to keep the key out of the file, use ${env:BB_API_KEY} instead of the literal value:

{
  "mcpServers": {
    "bananabanana": {
      "url": "https://bananabanana.pro/api/mcp",
      "headers": {
        "Authorization": "Bearer bb_live_YOUR_KEY"
      }
    }
  }
}

बारीकियों और लाइव-की डेमो सहित संपूर्ण Cursor गाइड: Generate Images in Cursor

VS Code / GitHub Copilot

Add to .vscode/mcp.json in the workspace (or your user settings.json); VS Code prompts for the key once and stores it encrypted:

{
  "servers": {
    "bananabanana": {
      "type": "http",
      "url": "https://bananabanana.pro/api/mcp",
      "headers": {
        "Authorization": "Bearer ${input:bb-api-key}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "bb-api-key",
      "description": "BananaBanana API key (bb_live_…)",
      "password": true
    }
  ]
}

बारीकियों और लाइव-की डेमो सहित संपूर्ण VS Code / Copilot गाइड: Generate Images in VS Code: Copilot MCP Setup Guide

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "bananabanana": {
      "serverUrl": "https://bananabanana.pro/api/mcp",
      "headers": {
        "Authorization": "Bearer bb_live_YOUR_KEY"
      }
    }
  }
}

कोई भी अन्य MCP क्लाइंट (raw JSON-RPC)

POST https://bananabanana.pro/api/mcp
Authorization: Bearer bb_live_YOUR_KEY
Content-Type: application/json
Accept: application/json, text/event-stream

{"jsonrpc":"2.0","id":1,"method":"tools/list"}

गाइड पसंद करेंगे? ट्यूटोरियल Generate Images in Claude Code चार वास्तविक उपयोग के मामलों और उनकी वास्तविक लागतों के साथ Claude सेटअप को शुरू से अंत तक कवर करता है।

03इसके साथ काम करता है

क्लाइंट कम्पैटिबिलिटी

MCP एक ओपन प्रोटोकॉल है: कोई भी क्लाइंट जो Streamable HTTP का समर्थन करता है और Authorization हेडर जोड़ सकता है, कनेक्ट हो जाता है। वर्तमान स्थिति, प्रत्येक वेंडर के आधिकारिक दस्तावेज़ों के विरुद्ध सत्यापित (अंतिम बार जुलाई 2026 को जांचा गया):

क्लाइंटक्या आज काम करता है?कैसे
Claude Codeहाँclaude mcp add --transport http … --header
Claude Desktop / claude.aiहाँरिक्वेस्ट हेडर (बीटा, रोल आउट हो रहा है) के साथ कस्टम कनेक्टर या mcp-remote ब्रिज
Cursorहाँ.cursor/mcp.json: url + headers, ${env:…} के माध्यम से सीक्रेट्स — ऊपर दिया गया स्निपेट देखें
VS Code / GitHub Copilotहाँ.vscode/mcp.json: type: "http" + url + headers; की (key) को promptString इनपुट के रूप में स्टोर करें — VS Code एक बार पूछता है और इसे एन्क्रिप्टेड रखता है
ChatGPT desktop / Codex CLI / IDEहाँसाझा ~/.codex/config.toml: url + bearer_token_env_var (की को एनवायरनमेंट वेरिएबल में डालें)। ChatGPT वेब कनेक्टर अपवाद हैं — वे पेस्ट की गई की के बजाय OAuth के माध्यम से ऑथेंटिकेट करते हैं
Gemini CLIहाँsettings.json में httpUrl + headers
xAI API (Grok)हाँसर्वर को भेजे गए server_url और एक authorization मान के साथ MCP टूल
grok.com (web)आंशिक रूप सेकस्टम कनेक्टर एक सर्वर URL लेते हैं (Connectors → New Connector → Custom); दस्तावेज़ों में यह नहीं बताया गया है कि क्या पेस्ट किया गया API-key हेडर सपोर्टेड है, इसलिए इस पाथ के लिए हमारे आगामी OAuth 2.1 की आवश्यकता हो सकती है
ZCode (GLM-5.2)हाँSettings → MCP Servers → type HTTP + Authorization हेडर; Claude Code के अंदर GLM-5.2, Claude Code कॉन्फ़िगरेशन को इनहेरिट करता है
कुछ भी अन्यहाँHTTPS पर raw JSON-RPC — नीचे Call it from code देखें

Codex उदाहरण — ~/.codex/config.toml में जोड़ें और BB_API_KEY=bb_live_… एक्सपोर्ट करें:

[mcp_servers.bananabanana]
url = "https://bananabanana.pro/api/mcp"
bearer_token_env_var = "BB_API_KEY"

एक ही config.toml से CLI, IDE एक्सटेंशन और ChatGPT डेस्कटॉप का संपूर्ण Codex गाइड, बारीकियों और लाइव-की डेमो के साथ: Codex MCP Setup: Images and Video from One config.toml

04किसी SDK की आवश्यकता नहीं

इसे कोड से कॉल करें

MCP क्लाइंट का उपयोग नहीं करते हैं? आपको इसकी आवश्यकता नहीं है — और आपको किसी SDK की भी आवश्यकता नहीं है। सर्वर HTTPS पर सरल JSON-RPC 2.0 है: एक POST एंडपॉइंट, एक Bearer हेडर, एक सिंगल JSON प्रतिक्रिया। यह स्टेटलेस है, इसलिए प्रबंधित करने के लिए कोई सेशन हैंडशेक नहीं है — tools/call curl, Python, TypeScript या HTTP भेजने में सक्षम किसी भी अन्य चीज़ से पहले अनुरोध के रूप में काम करता है।

curl

# start an image generation (charges one image, $0.06 on the default model)
curl -s https://bananabanana.pro/api/mcp \
  -H "Authorization: Bearer bb_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
        "name":"generate_image",
        "arguments":{"prompt":"studio photo of a ceramic mug on linen, soft daylight"}}}'

# → result.structuredContent.job_id = "cmxy…"

# fetch the result (long-polls server-side up to 30 s; free)
curl -s https://bananabanana.pro/api/mcp \
  -H "Authorization: Bearer bb_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{
        "name":"get_result",
        "arguments":{"job_id":"cmxy…","wait_seconds":30}}}'

Python

केवल requests — कोई MCP लाइब्रेरी नहीं:

import requests

MCP = "https://bananabanana.pro/api/mcp"
HEADERS = {"Authorization": "Bearer bb_live_YOUR_KEY"}

def call(tool, **args):
    r = requests.post(MCP, headers=HEADERS, json={
        "jsonrpc": "2.0", "id": 1, "method": "tools/call",
        "params": {"name": tool, "arguments": args},
    })
    r.raise_for_status()
    return r.json()["result"]["structuredContent"]

job = call("generate_image", prompt="watercolor painting of a lighthouse at dawn")

result = call("get_result", job_id=job["job_id"], wait_seconds=30)
while result["status"] == "processing":
    result = call("get_result", job_id=job["job_id"], wait_seconds=30)

print(result["files"][0]["url"], "cost:", result["cost_charged_usd"])

TypeScript / Node.js

शून्य डिपेंडेंसी — इन-बिल्ट fetch (Node 18+, Deno, Bun, ब्राउज़र):

const MCP = "https://bananabanana.pro/api/mcp";

async function call(tool: string, args: Record<string, unknown>) {
  const res = await fetch(MCP, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.BB_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      jsonrpc: "2.0", id: 1, method: "tools/call",
      params: { name: tool, arguments: args },
    }),
  });
  const { result } = await res.json();
  return result.structuredContent;
}

const job = await call("generate_image", {
  prompt: "isometric 3D render of a tiny greenhouse at golden hour",
});

let out = await call("get_result", { job_id: job.job_id, wait_seconds: 30 });
while (out.status === "processing") {
  out = await call("get_result", { job_id: job.job_id, wait_seconds: 30 });
}
console.log(out.files[0].url, "cost:", out.cost_charged_usd);

जब आप इसे स्क्रिप्ट करते हैं तो महत्वपूर्ण विवरण:

  • प्रत्येक टूल प्रतिक्रिया में एक ही JSON दो बार होता है: मशीन-पठनीय result.structuredContent और result.content में एक टेक्स्ट ब्लॉक — जो भी आसान हो उसे पार्स करें।
  • वीडियो (और मल्टी-इमेज बैच) दो-चरणीय कॉल हैं: पहला generate_video एक उद्धरण (quote) लौटाता है और कोई चार्ज नहीं लेता है; शुरू करने के लिए उद्धृत राशि पर सेट confirm_cost के साथ इसे दोहराएं।
  • जनरेशन कॉल पर idempotency_key पास करें — नेटवर्क रीट्राइ कभी भी दोबारा चार्ज नहीं करेंगे।
  • tools/list बिना की (key) के काम करता है, इसलिए आप खाता बनाने से पहले संपूर्ण स्कीमा तलाश सकते हैं। टूल कॉल प्रति की (key) 20 प्रति मिनट तक सीमित हैं।
05टूल्स

सात कार्य-आधारित टूल्स

टूललागतयह क्या करता है
list_modelsमुफ़्तलाइव प्रति-यूनिट कीमतों, रेज़ोल्यूशन और सीमाओं के साथ सभी मॉडल।
get_accountमुफ़्तबैलेंस, की खर्च सीमा और आज का उपयोग।
generate_image$0.03–$0.20Nano Banana 2 Lite / 2 / Pro पर टेक्स्ट-टू-इमेज, 4K तक। एक job_id लौटाता है।
edit_imageएक इमेज की कीमतटेक्स्ट निर्देश के साथ तैयार इमेज को बेहतर बनाएं (मल्टी-टर्न एडिटिंग)।
generate_video$0.10–$4.40Veo 3.1 फैमिली या Omni Flash (हमेशा आवाज के साथ)। हमेशा पहले सटीक लागत का उद्धरण देता है।
get_resultमुफ़्तकिसी जॉब को पोल करें: होस्ट किए गए मीडिया URL (24 घंटे के लिंक), ली गई लागत, बचा हुआ बैलेंस, इनलाइन इमेज प्रीव्यू।
list_generationsमुफ़्तहालिया जनरेशन का इतिहास — वेबसाइट के साथ साझा।
06कीमतें

बिल्ट-इन लागत पारदर्शिता

  • कीमतें list_models द्वारा लाइव परोसी जाती हैं — वही स्रोत जो वेबसाइट उपयोग करती है।
  • प्रत्येक वीडियो (और मल्टी-इमेज बैच) कॉल पहले एक उद्धरण देती है और कोई शुल्क नहीं लेती है; एजेंट शुरू करने के लिए confirm_cost के साथ कॉल दोहराता है।
  • प्रत्येक परिणाम में cost_charged_usd and balance_remaining_usd शामिल होता है।
  • अपस्ट्रीम विफलताएं और कंटेंट-फ़िल्टर अस्वीकृतियां अपने आप रिफ़ंड हो जाती हैं — वही पॉलिसी जो वेब ऐप की है।
  • वैकल्पिक idempotency_key गारंटी देता है कि रीट्राइ कभी भी दोबारा चार्ज नहीं करेंगे।
07उदाहरण

एक वास्तविक बातचीत

→ generate_video {"prompt": "drone shot over a misty pine forest", "model": "veo-3.1-fast"}
← {"status": "confirmation_required", "quoted_cost_usd": 0.70, ...}
→ generate_video {..., "confirm_cost": 0.70}
← {"job_id": "cmxy…", "status": "processing", "cost_charged_usd": 0.70, "balance_remaining_usd": 12.40}
→ get_result {"job_id": "cmxy…"}
← {"status": "completed", "files": [{"url": "https://…"}], "cost_charged_usd": 0.70}
08सुरक्षा

मीडिया URL और सुरक्षा

  • परिणाम URL हस्ताक्षरित (signed) हैं और 24 घंटे के लिए वैध हैं; मीडिया स्वयं आपके खाते में रहता है — नए लिंक के लिए फिर से get_result कॉल करें, या वेबसाइट से डाउनलोड करें।
  • API की (keys) हैशेड स्टोर की जाती हैं और केवल निर्माण के समय एक बार दिखाई जाती हैं; अपनी प्रोफ़ाइल में उन्हें किसी भी समय रिवोक करें।
  • प्रति-की उपयोग लॉग (टूल, मॉडल, लागत, प्रॉम्प्ट प्रीव्यू) प्रोफ़ाइल → MCP API Keys में दिखाई देता है।
  • MCP जनरेशन उसी जनरेशन इतिहास और एनालिटिक्स में दिखाई देती हैं जो वेब जनरेशन में होती हैं।

अपने एजेंट को प्लग करने के लिए तैयार हैं?

एक की (key) बनाएँ, एक कॉन्फ़िगरेशन लाइन जोड़ें — आपका एजेंट मिनटों में स्टूडियो-ग्रेड मीडिया जनरेट करेगा।

अपनी API की प्राप्त करें