لوكلاء الذكاء الاصطناعي وعملاء MCP

BananaBanana MCP Server

ولّد صورًا وفيديوهات بالذكاء الاصطناعي مباشرة من Claude Desktop وClaude Code وأي عميل MCP آخر — تُحتسب التكلفة لكل عملية توليد من رصيد 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، Wan 3.0، MiniMax H3 مع الصوت ($0.09–1.00). يرى وكيلك الأسعار المباشرة، ويؤكد التكاليف قبل العمليات المكلفة، وتُسجّل جميع عمليات التوليد في نفس السجل والرصيد على الموقع.

  • نقطة النهاية: https://bananabanana.pro/api/mcp (Streamable HTTP)
  • المصادقة: سجّل الدخول عبر OAuth 2.1 (claude.ai وغيره من العملاء المعتمدين على الموصلات) أو استخدم مفتاح API من نوع Bearer من ملفك الشخصي
  • حد الاستخدام: 20 استدعاء أداة في الدقيقة لكل مفتاح؛ مع حد إنفاق يومي اختياري لكل مفتاح
  • ليس لديك عميل MCP؟ نقطة النهاية نفسها هي بروتوكول JSON-RPC عادي عبر HTTPS — يمكنك استدعاؤها عبر curl أو Python أو TypeScript دون أي SDK
  • عمليات التوليد الفاشلة أو التي تم تصفيتها تُسترد مبالغها تلقائيًا
  • افتح المستندات وserver.json وانسخ أمثلة العملاء من مستودع bananabanana-mcp على GitHub
عميل MCPClaude Code / Desktop, Cursor,VS Code, Codex, وأي وكيلOAuth / مفتاح API/api/mcpbananabanana.proStreamable HTTP · 10 أدواتتوليدمجموعة النماذجNano Banana · Veo 3.1Omni Flashلكل وحدةرصيدكالدفع لكل توليداسترداد تلقائي عند الفشل
02البدء السريع

الاتصال في ثلاث خطوات

1. أنشئ حسابًا واشحن رصيدك. 2. في الملف الشخصي ← 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)؛ يتطلب تثبيت Node.js من أجل جسر mcp-remote:

{
  "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 في المشروع؛ لإبقاء المفتاح خارج الملف، استخدم ${env:BB_API_KEY} بدلاً من القيمة الصريحة:

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

دليل كامل لـ Cursor، بما في ذلك الميزات الاستثنائية وتجريب المفاتيح المباشرة: توليد الصور في Cursor.

VS Code / GitHub Copilot

أضف إلى .vscode/mcp.json في مساحة العمل (أو settings.json الخاص بالمسخدم)؛ يطلب VS Code المفتاح مرة واحدة ويخزنه مشفرًا:

{
  "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: فالمصافحة غير المُوثَّقة تُجيب بالرمز 401 مع تحدٍّ في ترويسة WWW-Authenticate. هذا التباين مقصود وليس خللاً: عبر هذا التحدّي يكتشف عميل الموصِّل أن هذا الخادم يعتمد OAuth. ولا يزال بالإمكان قراءة كتالوج الأدوات دون مفتاح.

هل تفضل دليلاً تعليميًا؟ يغطي الشرح توليد الصور في Claude Code إعداد Claude بالكامل خطوة بخطوة، مع أربع حالات استخدام حقيقية وتكاليفها الفعلية.

03يعمل مع

توافق العملاء

بروتوكول MCP هو بروتوكول مفتوح: يتصل أي عميل يدعم Streamable HTTP ويمكنه إرفاق ترويسة Authorization. الحالة الحالية، تم التحقق منها وفقًا للمستندات الرسمية لكل جهة (آخر تحديث في أغسطس 2026):

العميلهل يعمل اليوم؟كيف
Claude Codeنعمclaude mcp add --transport http … --header
Claude Desktop / claude.aiنعمموصل مخصص: الصق الرابط وسجّل الدخول عبر OAuth (مفتاح في الترويسة يعمل أيضًا، تجريبي)
Cursorنعم.cursor/mcp.json: url + headers، الأسرار عبر ${env:…} — انظر المقتطف أعلاه
VS Code / GitHub Copilotنعم.vscode/mcp.json: type: "http" + url + headers؛ يتم تخزين المفتاح كمدخل promptString — يسأل VS Code مرة واحدة ويحتفظ به مشفرًا
ChatGPT desktop / Codex CLI / IDEنعمملف ~/.codex/config.toml المشترك: url + bearer_token_env_var (ضع المفتاح في متغيّر البيئة). أما موصلات ChatGPT على الويب فتسجّل الدخول عبر OAuth بدل لصق المفتاح
Gemini CLIنعمhttpUrl + headers في settings.json
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)جزئيًاالموصلات المخصصة تقبل رابط الخادم (Connectors ← New Connector ← Custom)، ويتم تسجيل الدخول عبر تدفق OAuth 2.1 لدينا
ZCode (GLM-5.2)نعمالإعدادات Settings ← خوادم MCP Servers ← النوع HTTP + ترويسة Authorization؛ يرث نموذج GLM-5.2 داخل Claude Code تكوين Claude Code
أي شيء آخرنعمJSON-RPC مباشر عبر HTTPS — انظر قسم الاستدعاء من الكود أدناه

مثال 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 واحد.

04لا حاجة لـ SDK

الاستدعاء من الكود

ألا تستخدم عميل MCP؟ لا تحتاج إلى واحد — كما أنك لا تحتاج إلى SDK أيضًا. الخادم يعمل ببروتوكول JSON-RPC 2.0 عادي عبر HTTPS: نقطة نهاية POST واحدة، وترویسة Bearer، واستجابة JSON واحدة. إنه عديم الحالة (stateless)، لذا ليس هناك اتصال مصافحة (session handshake) لِإدارته — يعمل 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 بدون مفتاح، مما يتيح لك استكشاف المخططات (schemas) الكاملة قبل إنشاء حساب. تقتصر استدعاءات الأدوات على 20 استدعاء في الدقيقة لكل مفتاح.
05الأدوات

عشر أدوات مصممة لمهام محددة

الأداةالتكلفةوظيفتها
list_modelsمجانيجميع النماذج مع أسعارها المباشرة لكل وحدة، ودقاتها، والقيود المفروضة عليها.
get_accountمجانيالرصيد، حد الإنفاق للمفتاح، والاستخدام اليومي.
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: مقطعك الخاص أو رابط عام — تغيير الأسلوب واستبدال العناصر وإعادة الإضاءة. أول 10 ثوانٍ، بدقة 720p مع الصوت.
generate_speech$0.01 / 200 حرفإنشاء كلام WAV بصوت واحد أو صوتين. تُحسب التكلفة لكل 200 حرف أو جزء منها.
get_resultمجانيالاستعلام عن مهمة: روابط وسائط مستضافة (صالحة لمدة 24 ساعة)، التكلفة المخصومة، الرصيد المتبقي، ومعاينة داخلية للصورة.
list_generationsمجانيسجل عمليات التوليد الأخيرة — مشترك مع الموقع الإلكتروني.
06الأسعار

شفافية الأسعار مدمجة بالكامل

  • تُقدّم الأسعار مباشرة عبر list_models — وهو نفس المصدر الذي يستخدمه الموقع الإلكتروني.
  • كل استدعاء لتوليد فيديو (ودفعة صور متعددة) يعيد أولاً عرض سعر ولا يخصم شيئًا؛ يكرر الوكيل الاستدعاء مع confirm_cost للبدء.
  • تتضمن كل نتيجة قيمتي cost_charged_usd و 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الأمان

روابط الوسائط والأمان

  • روابط النتائج موقعة وصالحة لمدة 24 ساعة؛ وتبقى الوسائط نفسها في حسابك — استدعِ get_result مجددًا للحصول على روابط جديدة، أو قم بتنزيلها من الموقع الإلكتروني.
  • تُخزّن مفاتيح API في شكل هاش (مشفّرة) وتظهر مرة واحدة فقط عند الإنشاء؛ ويمكنك إلغاؤها في أي وقت من ملفك الشخصي.
  • تستخدم اتصالات OAuth رموز وصول صالحة لساعة واحدة مع تدوير رمز التحديث، وتُخزَّن مجزّأة وصالحة لهذا الخادم فقط؛ وفصل أي تطبيق من ملفك الشخصي يُبطل رموزه فورًا.
  • سجل الاستخدام لكل مفتاح (الأداة، النموذج، التكلفة، ومعاينة الوصف) مرئي في الملف الشخصي ← MCP API Keys.
  • تظهر عمليات توليد MCP في نفس سجل عمليات التوليد والتحليلات الخاصة بالتوليد عبر الويب.

جاهز لتوصيل وكيلك؟

أنشئ مفتاحًا، وأضف سطر تكوين واحدًا — وسيقوم وكيلك بتوليد وسائط بجودة الاستوديو في غضون دقائق.

احصل على مفتاح API الخاص بك