AI ایجنٹس اور MCP کلائنٹس کے لیے
BananaBanana MCP Server
براہ راست Claude Desktop، Claude Code اور کسی بھی دوسرے MCP کلائنٹ سے AI تصاویر اور ویڈیوز تیار کریں — اپنے BananaBanana بیلنس سے فی جنریشن چارج۔ کوئی سبسکرپشن نہیں۔
ایک اینڈ پوائنٹ، ہر ماڈل
ایک ریموٹ Model Context Protocol سرور جو BananaBanana کے مکمل جنریشن اسٹیک کو ایجنٹ ٹولز کے طور بر پیش کرتا ہے: گوگل کی Nano Banana 2 Lite / 2 / Pro تصاویر ($0.03 سے)، Veo 3.1 / Fast / Lite ویڈیو اور آواز کے ساتھ Gemini Omni Flash ($0.09–1.00)، Wan 3.0، MiniMax H3۔ آپ کا ایجنٹ لائیو قیمتیں دیکھتا ہے، مہنگے رینڈرز سے پہلے اخراجات کی تصدیق کرتا ہے، اور ہر جنریشن ویب سائٹ کی طرح اسی ہسٹری اور بیلنس میں شامل ہوتی ہے۔
- اینڈ پوائنٹ:
https://bananabanana.pro/api/mcp(Streamable HTTP) - توثیق: OAuth 2.1 سے سائن اِن (claude.ai اور دیگر کنیکٹر والے کلائنٹس) یا اپنے پروفائل سے Bearer API کلید
- ریٹ لمیٹ: 20 ٹول کالز فی منٹ فی کی (key)؛ اختیاری طور پر فی کی روزانہ خرچ کی حد
- کوئی MCP کلائنٹ نہیں ہے؟ یہی اینڈ پوائنٹ HTTPS پر ایک سادہ JSON-RPC ہے — بغیر کسی SDK کے اسے curl، Python یا TypeScript سے کال کریں
- ناکام یا فلٹر ہونے والی جنریشنز کے پیسے خودکار طور پر ریفنڈ کر دیے جاتے ہیں
- دستاویزات (docs) اور
server.jsonکھولیں، اور bananabanana-mcp GitHub ریپوزٹری میں موجود کلائنٹ کی مثالوں کو کاپی پیسٹ کریں
تین مراحل میں کنکشن
1۔ ایک اکاؤنٹ بنائیں اور بیلنس ٹاپ اپ کریں۔ 2۔ Profile → MCP API Keys میں ایک کی بنائیں (جو صرف ایک بار دکھائی جاتی ہے)۔ 3۔ سرور کو اپنے کلائنٹ میں شامل کریں:
claude.ai، Claude Desktop، موبائل (OAuth — کچھ کاپی کرنے کی ضرورت نہیں)
Settings ← Connectors ← Add custom connector میں https://bananabanana.pro/api/mcp پیسٹ کریں اور Connect دبائیں۔ Claude خود رجسٹر ہو جاتا ہے، آپ BananaBanana کی اسکرین پر رسائی منظور کرتے ہیں، اور جنریشنز اُسی اکاؤنٹ سے کٹتی ہیں جس سے آپ نے سائن اِن کیا۔
Settings → Connectors → Add custom connector
URL: https://bananabanana.pro/api/mcp
→ Add → Connect → approve access on bananabanana.proیہی طریقہ ہر اُس کلائنٹ میں کام کرتا ہے جو MCP اجازت نامہ سپورٹ کرتا ہے — MCP Inspector، ChatGPT اور Grok کے ویب کنیکٹرز، Claude Code۔ منسلک ایپس آپ کے پروفائل میں نظر آتی ہیں اور وہیں سے کسی بھی وقت منقطع کی جا سکتی ہیں۔
Claude Code
# with an API key
claude mcp add --transport http bananabanana https://bananabanana.pro/api/mcp \
--header "Authorization: Bearer bb_live_YOUR_KEY"
# or with OAuth — no key, sign in in the browser
claude mcp add --transport http bananabanana https://bananabanana.pro/api/mcp
# then run /mcp inside Claude Code and pick "Authenticate"Claude Desktop
اسے claude_desktop_config.json (Settings → Developer → Edit Config) میں شامل کریں؛ mcp-remote برج کے لیے Node.js درکار ہے:
{
"mcpServers": {
"bananabanana": {
"command": "npx",
"args": [
"-y", "mcp-remote", "https://bananabanana.pro/api/mcp",
"--header", "Authorization: Bearer bb_live_YOUR_KEY"
]
}
}
}Cursor
پروجیکٹ میں ~/.cursor/mcp.json (گلوبل) یا .cursor/mcp.json میں شامل کریں؛ کی (key) کو فائل سے باہر رکھنے کے لیے، اصل ویلیو کے بجائے ${env:BB_API_KEY} استعمال کریں:
{
"mcpServers": {
"bananabanana": {
"url": "https://bananabanana.pro/api/mcp",
"headers": {
"Authorization": "Bearer bb_live_YOUR_KEY"
}
}
}
}Cursor کا مکمل گائیڈ، بشمول باریکیاں اور لائیو کی (live-key) ڈیمو: Cursor میں تصاویر تیار کریں۔
VS Code / GitHub Copilot
ورک اسپیس میں .vscode/mcp.json (یا اپنے صارف کی settings.json) میں شامل کریں؛ VS Code ایک بار کی (key) مانگے گا اور اسے انکرپٹ کر کے محفوظ کر لے گا:
{
"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 کا مکمل گائیڈ، بشمول باریکیاں اور لائیو کی ڈیمو: VS Code میں تصاویر تیار کریں: Copilot MCP سیٹ اپ گائیڈ۔
Windsurf
اسے ~/.codeium/windsurf/mcp_config.json میں شامل کریں:
{
"mcpServers": {
"bananabanana": {
"serverUrl": "https://bananabanana.pro/api/mcp",
"headers": {
"Authorization": "Bearer bb_live_YOUR_KEY"
}
}
}
}Windsurf MCP Setup: Generate Images in Cascade
Cline
{
"mcpServers": {
"bananabanana": {
"type": "streamableHttp",
"url": "https://bananabanana.pro/api/mcp",
"headers": {
"Authorization": "Bearer bb_live_YOUR_KEY"
},
"disabled": false,
"autoApprove": ["list_models", "get_account", "get_result"]
}
}
}Cline MCP Server: Generate Images From Your Editor
کوئی بھی دوسرا MCP کلائنٹ (خام 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"}ping اور ڈسکوری فہرستوں (tools/list، prompts/list، resources/list) کے سوا ہر طریقے کے لیے اسناد درکار ہیں — initialize بھی شامل ہے: بغیر تصدیق کے ہینڈ شیک WWW-Authenticate چیلنج کے ساتھ 401 واپس کرتا ہے۔ یہ عدم توازن جان بوجھ کر ہے، کوئی خرابی نہیں: کنیکٹر کلائنٹ اسی چیلنج سے جانتا ہے کہ یہ سرور OAuth استعمال کرتا ہے۔ کلید کے بغیر ٹول کیٹلاگ پڑھنا اب بھی ممکن ہے۔
کیا آپ گائیڈ دیکھنا پسند کریں گے؟ ٹیوٹوریل Claude Code میں تصاویر تیار کریں Claude سیٹ اپ کا مکمل احاطہ کرتا ہے، جس میں چار حقیقی استعمال کے کیسز اور ان کے حقیقی اخراجات شامل ہیں۔
کلائنٹ مطابقت
MCP ایک اوپن پروٹوکول ہے: کوئی بھی کلائنٹ جو Streamable HTTP کو سپورٹ کرتا ہے اور ایک Authorization ہیڈر منسلک کر سکتا ہے، وہ جڑ سکتا ہے۔ موجودہ صورتحال، ہر وینڈر کی باضابطہ دستاویزات سے تصدیق شدہ (آخری بار اگست 2026 میں چیک کیا گیا):
| کلائنٹ | کیا آج کام کرتا ہے؟ | کیسے |
|---|---|---|
| Claude Code | جی ہاں | claude mcp add --transport http … --header |
| Claude Desktop / claude.ai | جی ہاں | کسٹم کنیکٹر: URL پیسٹ کریں اور OAuth سے سائن اِن کریں (ہیڈر میں کلید بھی چلتی ہے، بیٹا) |
| 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 |
| Windsurf | جی ہاں | serverUrl + headers in mcp_config.json (Devin Local agent: url + transport: "http"). Setup guide |
| Cline | جی ہاں | type: "streamableHttp" + url + headers in the MCP settings JSON. Setup guide |
| xAI API (Grok) | جی ہاں | MCP ٹول جس میں server_url اور سرور کو بھیجی جانے والی ایک authorization ویلیو شامل ہو Setup guide |
| grok.com (web) | جزوی طور پر | کسٹم کنیکٹرز سرور کا URL لیتے ہیں (Connectors ← New Connector ← Custom)؛ سائن اِن ہمارے OAuth 2.1 کے ذریعے ہوتا ہے |
| ZCode (GLM-5.2) | جی ہاں | Settings → MCP Servers → type HTTP + Authorization ہیڈر؛ Claude Code کے اندر GLM-5.2 خودکار طور پر Claude Code کی کنفیگریشن حاصل کر لیتا ہے |
| کچھ بھی اور | جی ہاں | HTTPS پر خام JSON-RPC — نیچے کوڈ سے کال کریں دیکھیں |
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"Codex کا مکمل گائیڈ — ایک ہی کنفیگریشن سے CLI، IDE ایکسٹینشن اور ChatGPT ڈیسک ٹاپ، بشمول باریکیاں اور لائیو کی ڈیمو: Codex MCP سیٹ اپ: ایک ہی config.toml سے تصاویر اور ویڈیو۔
کوڈ سے کال کریں
کیا آپ MCP کلائنٹ استعمال نہیں کر رہے؟ آپ کو اس کی ضرورت نہیں ہے — اور نہ ہی کسی SDK کی ضرورت ہے۔ یہ سرور HTTPS پر ایک سادہ JSON-RPC 2.0 ہے: ایک POST اینڈ پوائنٹ، ایک Bearer ہیڈر، اور ایک سنگل JSON ریسپانس۔ یہ اسٹیٹ لیس (stateless) ہے، اس لیے کسی سیشن ہینڈ شیک کو مینیج کرنے کی ضرورت نہیں ہے — tools/call پہلی ہی ریکوسٹ کے طور پر curl، Python، TypeScript یا کسی بھی ایسی چیز سے کام کرتا ہے جو HTTP بھیج سکتی ہے۔
curl
# start an image generation (charges one image, $0.03 on the default Lite 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ایک کوٹیشن واپس کرتی ہے اور کوئی چارج نہیں لیتی؛ شروع کرنے کے لیے کوٹ کی گئی رقم پرconfirm_costسیٹ کر کے اسے دہرائیں۔ - جنریشن کالز پر ایک
idempotency_keyپاس کریں — نیٹ ورک کی دوبارہ کوششوں پر کبھی بھی دوہرا چارج نہیں لیا جائے گا۔ tools/listبغیر کسی کی (key) کے کام کرتا ہے، لہذا آپ اکاؤنٹ بنانے سے پہلے مکمل اسکیمات دیکھ سکتے ہیں۔ ٹول کالز فی کی (key) فی منٹ 20 تک محدود ہیں۔
دس مخصوص ٹولز
| ٹول | لاگت | یہ کیا کرتا ہے |
|---|---|---|
| list_models | مفت | لائیو فی یونٹ قیمتوں، ریزولیوشنز اور پابندیوں کے ساتھ تمام ماڈلز۔ |
| get_account | مفت | بیلنس، کی (key) کے خرچ کی حد اور آج کا استعمال۔ |
| top_up | مفت | بیلنس ٹاپ اپ کرنے کے لیے محفوظ لنک بناتا ہے۔ OAuth کو صرف ڈپازٹ تک رسائی ملتی ہے؛ API کیز پروفائل استعمال کرتی ہیں۔ |
| generate_image | $0.03–$0.20 | Nano Banana 2 Lite / 2 / Pro پر ٹیکسٹ سے تصویر، 4K تک۔ ایک job_id واپس کرتا ہے۔ |
| edit_image | ایک تصویر کی قیمت | ٹیکسٹ ہدایات کے ساتھ تیار شدہ تصویر کو بہتر بنائیں (ملٹی ٹرن ایڈیٹنگ)۔ |
| generate_video | $0.10–$6.00 | Veo 3.1 فیملی یا Omni Flash (ہمیشہ آواز کے ساتھ)، Wan 3.0، MiniMax H3، چاہیں تو ابتدائی فریم اور ریفرنس تصاویر سے۔ ہمیشہ پہلے درست لاگت بتاتا ہے۔ |
| edit_video | $0.09–1.00 | Omni Flash پر ویڈیو ٹو ویڈیو ایڈیٹنگ: اپنی کلپ یا عوامی URL — انداز بدلیں، اشیاء تبدیل کریں، روشنی نئے سرے سے سیٹ کریں۔ پہلے 10 سیکنڈ، آواز کے ساتھ 720p۔ |
| generate_speech | $0.01 / 200 حروف | ایک یا دو مقررین کی WAV تقریر بناتا ہے۔ ہر شروع ہونے والے 200 حروف پر چارج ہوتا ہے۔ |
| get_result | مفت | کسی جاب کی حالت چیک کریں: ہوسٹڈ میڈیا URLs (24 گھنٹے کے لنکس)، چارج کی گئی لاگت، باقی بیلنس، اور ان لائن امیج پریویو۔ |
| list_generations | مفت | حالیہ جنریشن ہسٹری — جو ویب سائٹ کے ساتھ شیئر کی جاتی ہے۔ |
لاگت کی شفافیت، بلٹ ان
- قیمتیں
list_modelsکے ذریعے لائیو فراہم کی جاتی ہیں — وہی ذریعہ جو ویب سائٹ استعمال کرتی ہے۔ - ہر ویڈیو (اور ملٹی امیج بیچ) کال پہلے ایک کوٹیشن واپس کرتی ہے اور کوئی چارج نہیں لیتی؛ ایجنٹ شروع کرنے کے لیے
confirm_costکے ساتھ کال دہراتا ہے۔ - ہر رزلٹ میں
cost_charged_usdاورbalance_remaining_usdشامل ہوتے ہیں۔ - سرور کے مسائل یا مواد کے فلٹر کی وجہ سے مسترد ہونے پر پیسے خودکار طور پر ریفنڈ ہو جاتے ہیں — ویب ایپ جیسی پالیسی۔
- اختیاری
idempotency_keyاس بات کی ضمانت دیتا ہے کہ دوبارہ کوشش پر کبھی بھی ڈبل چارج نہیں ہوگا۔
ایک حقیقی گفتگو
→ 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}میڈیا URLs اور سیکیورٹی
- رزلٹ URLs سائنڈ اور 24 گھنٹوں کے لیے کارآمد ہوتے ہیں؛ میڈیا خود آپ کے اکاؤنٹ میں رہتا ہے — تازہ لنکس کے لیے دوبارہ
get_resultکال کریں، یا ویب سائٹ سے ڈاؤن لوڈ کریں۔ - API کیز کو ہیش کر کے اسٹور کیا جاتا ہے اور تخلیق کے وقت صرف ایک بار دکھایا جاتا ہے؛ اپنے پروفائل میں کسی بھی وقت انہیں منسوخ کریں۔
- OAuth کنکشنز کے ایکسیس ٹوکن ایک گھنٹہ چلتے ہیں اور ریفریش ٹوکن ہر بار بدل جاتا ہے؛ صرف ہیش محفوظ ہوتے ہیں اور یہ فقط اسی سرور کے لیے کارآمد ہیں۔ پروفائل سے ایپ منقطع کرتے ہی ٹوکن فوراً بے کار ہو جاتے ہیں۔
- فی کی (key) استعمال کا لاگ (ٹول، ماڈل، لاگت، پرامپٹ پریویو) Profile → MCP API Keys میں دیکھا جا سکتا ہے۔
- MCP جنریشنز اسی جنریشن ہسٹری اور اینالیٹکس میں ظاہر ہوتی ہیں جیسے کہ ویب جنریشنز۔
کیا آپ اپنے ایجنٹ کو منسلک کرنے کے لیے تیار ہیں؟
ایک کی (key) بنائیں، کنفیگریشن کی ایک لائن شامل کریں — آپ کا ایجنٹ منٹوں میں اسٹوڈیو گریڈ میڈیا تیار کرے گا۔
اپنی API کی حاصل کریں