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 (فلیٹ $1.00)۔ آپ کا ایجنٹ لائیو قیمتیں دیکھتا ہے، مہنگے رینڈرز سے پہلے اخراجات کی تصدیق کرتا ہے، اور ہر جنریشن ویب سائٹ کی طرح اسی ہسٹری اور بیلنس میں شامل ہوتی ہے۔
- اینڈ پوائنٹ:
https://bananabanana.pro/api/mcp(Streamable HTTP) - تصدیق (Auth): آپ کے پروفائل سے حاصل کردہ Bearer API کی (OAuth 2.1 سپورٹ کا منصوبہ ہے)
- ریٹ لمیٹ: 20 ٹول کالز فی منٹ فی کی (key)؛ اختیاری طور پر فی کی روزانہ خرچ کی حد
- کوئی MCP کلائنٹ نہیں ہے؟ یہی اینڈ پوائنٹ HTTPS پر ایک سادہ JSON-RPC ہے — بغیر کسی SDK کے اسے curl، Python یا TypeScript سے کال کریں
- ناکام یا فلٹر ہونے والی جنریشنز کے پیسے خودکار طور پر ریفنڈ کر دیے جاتے ہیں
- دستاویزات (docs) اور
server.jsonکھولیں، اور bananabanana-mcp GitHub ریپوزٹری میں موجود کلائنٹ کی مثالوں کو کاپی پیسٹ کریں
تین مراحل میں کنکشن
1۔ ایک اکاؤنٹ بنائیں اور بیلنس ٹاپ اپ کریں۔ 2۔ Profile → MCP API Keys میں ایک کی بنائیں (جو صرف ایک بار دکھائی جاتی ہے)۔ 3۔ سرور کو اپنے کلائنٹ میں شامل کریں:
Claude Code
claude mcp add --transport http bananabanana https://bananabanana.pro/api/mcp \
--header "Authorization: Bearer bb_live_YOUR_KEY"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"
}
}
}
}کوئی بھی دوسرا 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"}کیا آپ گائیڈ دیکھنا پسند کریں گے؟ ٹیوٹوریل Claude Code میں تصاویر تیار کریں Claude سیٹ اپ کا مکمل احاطہ کرتا ہے، جس میں چار حقیقی استعمال کے کیسز اور ان کے حقیقی اخراجات شامل ہیں۔
کلائنٹ مطابقت
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 web کنیکٹرز اس سے مستثنیٰ ہیں — وہ OAuth کے ذریعے تصدیق کرتے ہیں، پیسٹ کی گئی کیز سے نہیں |
| Gemini CLI | جی ہاں | settings.json میں httpUrl + headers |
| xAI API (Grok) | جی ہاں | MCP ٹول جس میں server_url اور سرور کو بھیجی جانے والی ایک authorization ویلیو شامل ہو |
| grok.com (web) | جزوی طور پر | کسٹم کنیکٹرز سرور کا URL لیتے ہیں (Connectors → New Connector → Custom)؛ دستاویزات میں یہ واضح نہیں ہے کہ آیا پیسٹ کردہ API-کی ہیڈر سپورٹڈ ہے، لہذا اس طریقے کے لیے ہمارے آنے والے 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.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ایک کوٹیشن واپس کرتی ہے اور کوئی چارج نہیں لیتی؛ شروع کرنے کے لیے کوٹ کی گئی رقم پرconfirm_costسیٹ کر کے اسے دہرائیں۔ - جنریشن کالز پر ایک
idempotency_keyپاس کریں — نیٹ ورک کی دوبارہ کوششوں پر کبھی بھی دوہرا چارج نہیں لیا جائے گا۔ tools/listبغیر کسی کی (key) کے کام کرتا ہے، لہذا آپ اکاؤنٹ بنانے سے پہلے مکمل اسکیمات دیکھ سکتے ہیں۔ ٹول کالز فی کی (key) فی منٹ 20 تک محدود ہیں۔
سات مخصوص ٹولز
| ٹول | لاگت | یہ کیا کرتا ہے |
|---|---|---|
| list_models | مفت | لائیو فی یونٹ قیمتوں، ریزولیوشنز اور پابندیوں کے ساتھ تمام ماڈلز۔ |
| get_account | مفت | بیلنس، کی (key) کے خرچ کی حد اور آج کا استعمال۔ |
| generate_image | $0.03–$0.20 | Nano Banana 2 Lite / 2 / Pro پر ٹیکسٹ سے تصویر، 4K تک۔ ایک job_id واپس کرتا ہے۔ |
| edit_image | ایک تصویر کی قیمت | ٹیکسٹ ہدایات کے ساتھ تیار شدہ تصویر کو بہتر بنائیں (ملٹی ٹرن ایڈیٹنگ)۔ |
| generate_video | $0.10–$4.40 | Veo 3.1 فیملی یا Omni Flash (ہمیشہ آواز کے ساتھ)۔ ہمیشہ پہلے درست لاگت بتاتا ہے۔ |
| 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 کیز کو ہیش کر کے اسٹور کیا جاتا ہے اور تخلیق کے وقت صرف ایک بار دکھایا جاتا ہے؛ اپنے پروفائل میں کسی بھی وقت انہیں منسوخ کریں۔
- فی کی (key) استعمال کا لاگ (ٹول، ماڈل، لاگت، پرامپٹ پریویو) Profile → MCP API Keys میں دیکھا جا سکتا ہے۔
- MCP جنریشنز اسی جنریشن ہسٹری اور اینالیٹکس میں ظاہر ہوتی ہیں جیسے کہ ویب جنریشنز۔
کیا آپ اپنے ایجنٹ کو منسلک کرنے کے لیے تیار ہیں؟
ایک کی (key) بنائیں، کنفیگریشن کی ایک لائن شامل کریں — آپ کا ایجنٹ منٹوں میں اسٹوڈیو گریڈ میڈیا تیار کرے گا۔
اپنی API کی حاصل کریں