لوكلاء الذكاء الاصطناعي وعملاء MCP
BananaBanana MCP Server
ولّد صورًا وفيديوهات بالذكاء الاصطناعي مباشرة من Claude Desktop وClaude Code وأي عميل MCP آخر — تُحتسب التكلفة لكل عملية توليد من رصيد BananaBanana الخاص بك. بدون اشتراك.
نقطة نهاية واحدة، لجميع النماذج
خادم 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
الاتصال في ثلاث خطوات
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 بالكامل خطوة بخطوة، مع أربع حالات استخدام حقيقية وتكاليفها الفعلية.
توافق العملاء
بروتوكول 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 واحد.
الاستدعاء من الكود
ألا تستخدم عميل 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 استدعاء في الدقيقة لكل مفتاح.
عشر أدوات مصممة لمهام محددة
| الأداة | التكلفة | وظيفتها |
|---|---|---|
| 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 | مجاني | سجل عمليات التوليد الأخيرة — مشترك مع الموقع الإلكتروني. |
شفافية الأسعار مدمجة بالكامل
- تُقدّم الأسعار مباشرة عبر
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}روابط الوسائط والأمان
- روابط النتائج موقعة وصالحة لمدة 24 ساعة؛ وتبقى الوسائط نفسها في حسابك — استدعِ
get_resultمجددًا للحصول على روابط جديدة، أو قم بتنزيلها من الموقع الإلكتروني. - تُخزّن مفاتيح API في شكل هاش (مشفّرة) وتظهر مرة واحدة فقط عند الإنشاء؛ ويمكنك إلغاؤها في أي وقت من ملفك الشخصي.
- تستخدم اتصالات OAuth رموز وصول صالحة لساعة واحدة مع تدوير رمز التحديث، وتُخزَّن مجزّأة وصالحة لهذا الخادم فقط؛ وفصل أي تطبيق من ملفك الشخصي يُبطل رموزه فورًا.
- سجل الاستخدام لكل مفتاح (الأداة، النموذج، التكلفة، ومعاينة الوصف) مرئي في الملف الشخصي ← MCP API Keys.
- تظهر عمليات توليد MCP في نفس سجل عمليات التوليد والتحليلات الخاصة بالتوليد عبر الويب.
جاهز لتوصيل وكيلك؟
أنشئ مفتاحًا، وأضف سطر تكوين واحدًا — وسيقوم وكيلك بتوليد وسائط بجودة الاستوديو في غضون دقائق.
احصل على مفتاح API الخاص بك