لوكلاء الذكاء الاصطناعي وعملاء 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 مع الصوت (بسعر ثابت قدره $1.00). يرى وكيلك الأسعار المباشرة، ويؤكد التكاليف قبل العمليات المكلفة، وتُسجّل جميع عمليات التوليد في نفس السجل والرصيد على الموقع.
- نقطة النهاية:
https://bananabanana.pro/api/mcp(Streamable HTTP) - المصادقة: مفتاح Bearer API من ملفك الشخصي (دعم OAuth 2.1 مخطط له قريباً)
- حد الاستخدام: 20 استدعاء أداة في الدقيقة لكل مفتاح؛ مع حد إنفاق يومي اختياري لكل مفتاح
- ليس لديك عميل MCP؟ نقطة النهاية نفسها هي بروتوكول JSON-RPC عادي عبر HTTPS — يمكنك استدعاؤها عبر curl أو Python أو TypeScript دون أي SDK
- عمليات التوليد الفاشلة أو التي تم تصفيتها تُسترد مبالغها تلقائيًا
- افتح المستندات و
server.jsonوانسخ أمثلة العملاء من مستودع bananabanana-mcp على GitHub
الاتصال في ثلاث خطوات
1. أنشئ حسابًا واشحن رصيدك. 2. في الملف الشخصي ← 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)؛ يتطلب تثبيت 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"
}
}
}
}أي عميل 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؛ يتم تخزين المفتاح كمدخل promptString — يسأل VS Code مرة واحدة ويحتفظ به مشفرًا |
| ChatGPT desktop / Codex CLI / IDE | نعم | ملف مشترك ~/.codex/config.toml: url + bearer_token_env_var (ضع المفتاح في متغير البيئة). موصلات ChatGPT عبر الويب هي الاستثناء — حيث تتم مصادقتها عبر OAuth، وليس عبر المفاتيح المنسوخة |
| Gemini CLI | نعم | httpUrl + headers في settings.json |
| 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 ← النوع 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.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بدون مفتاح، مما يتيح لك استكشاف المخططات (schemas) الكاملة قبل إنشاء حساب. تقتصر استدعاءات الأدوات على 20 استدعاء في الدقيقة لكل مفتاح.
سبع أدوات مصممة لمهام محددة
| الأداة | التكلفة | وظيفتها |
|---|---|---|
| list_models | مجاني | جميع النماذج مع أسعارها المباشرة لكل وحدة، ودقاتها، والقيود المفروضة عليها. |
| get_account | مجاني | الرصيد، حد الإنفاق للمفتاح، والاستخدام اليومي. |
| 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 | مجاني | الاستعلام عن مهمة: روابط وسائط مستضافة (صالحة لمدة 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 في شكل هاش (مشفّرة) وتظهر مرة واحدة فقط عند الإنشاء؛ ويمكنك إلغاؤها في أي وقت من ملفك الشخصي.
- سجل الاستخدام لكل مفتاح (الأداة، النموذج، التكلفة، ومعاينة الوصف) مرئي في الملف الشخصي ← MCP API Keys.
- تظهر عمليات توليد MCP في نفس سجل عمليات التوليد والتحليلات الخاصة بالتوليد عبر الويب.
جاهز لتوصيل وكيلك؟
أنشئ مفتاحًا، وأضف سطر تكوين واحدًا — وسيقوم وكيلك بتوليد وسائط بجودة الاستوديو في غضون دقائق.
احصل على مفتاح API الخاص بك