Yapay zeka ajanları ve MCP istemcileri için
BananaBanana MCP Server
Doğrudan Claude Desktop, Claude Code and diğer tüm MCP istemcilerinden yapay zeka görselleri ve videoları üretin — ödemenizi abonelik olmadan, doğrudan BananaBanana bakiyenizden üretim başına yapın.
Tek uç nokta, tüm modeller
Uzak bir Model Context Protocol sunucusu, tüm BananaBanana üretim altyapısını ajan araçları olarak sunar: Google Nano Banana 2 Lite / 2 / Pro görselleri ($0.03'dan başlayan), Veo 3.1 / Fast / Lite videoları ve sesli Gemini Omni Flash (sabit $1.00). Ajanınız güncel fiyatları görür, yüksek maliyetli işlemlerden önce maliyeti onaylar; ayrıca her üretim, web sitesiyle ortak olan geçmişe ve bakiyeye işlenir.
- Uç Nokta:
https://bananabanana.pro/api/mcp(Streamable HTTP) - Kimlik Doğrulama: profil sayfanızdan alacağınız Bearer API anahtarı (OAuth 2.1 desteği planlanmaktadır)
- İstek Sınırı: Anahtar başına dakikada 20 araç çağrısı; isteğe bağlı anahtar bazlı günlük harcama limiti
- MCP istemciniz yok mu? Aynı uç nokta HTTPS üzerinden düz JSON-RPC'dir — herhangi bir SDK kullanmadan curl, Python veya TypeScript ile çağırın
- Başarısız olan veya içerik filtresine takılan üretimler otomatik olarak iade edilir
- Dokümanlara ve
server.jsondosyasına göz atın; bananabanana-mcp GitHub deposundaki hazır istemci şablonlarını kopyalayıp yapıştırın
Üç adımda bağlantı
1. Bir hesap oluşturun ve bakiye yükleyin. 2. Profil → MCP API Anahtarları bölümünde bir anahtar oluşturun (yalnızca bir kez gösterilir). 3. Sunucuyu istemcinize ekleyin:
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 dosyasına ekleyin (Settings → Developer → Edit Config); mcp-remote köprüsü için Node.js gerekir:
{
"mcpServers": {
"bananabanana": {
"command": "npx",
"args": [
"-y", "mcp-remote", "https://bananabanana.pro/api/mcp",
"--header", "Authorization: Bearer bb_live_YOUR_KEY"
]
}
}
}Cursor
Global olarak ~/.cursor/mcp.json dosyasına veya proje içindeki .cursor/mcp.json dosyasına ekleyin; anahtarı dosyada açıkça yazmamak için doğrudan değer yerine ${env:BB_API_KEY} kullanın:
{
"mcpServers": {
"bananabanana": {
"url": "https://bananabanana.pro/api/mcp",
"headers": {
"Authorization": "Bearer bb_live_YOUR_KEY"
}
}
}
}Özellikler ve canlı anahtarlı demo dahil olmak üzere eksiksiz Cursor incelemesi: Cursor'da Görsel Üretin.
VS Code / GitHub Copilot
Çalışma alanındaki .vscode/mcp.json dosyasına (veya kullanıcı settings.json dosyanıza) ekleyin; VS Code anahtarı sizden bir kez ister ve şifrelenmiş olarak saklar:
{
"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
}
]
}İpuçları ve canlı anahtarlı demo dahil olmak üzere eksiksiz VS Code / Copilot incelemesi: VS Code'da Görsel Üretin: Copilot MCP Kurulum Kılavuzu.
Windsurf
~/.codeium/windsurf/mcp_config.json dosyasına ekleyin:
{
"mcpServers": {
"bananabanana": {
"serverUrl": "https://bananabanana.pro/api/mcp",
"headers": {
"Authorization": "Bearer bb_live_YOUR_KEY"
}
}
}
}Diğer tüm MCP istemcileri (düz 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"}Detaylı bir rehber mi istersiniz? Claude Code'da Görsel Üretin eğitim içeriği, dört gerçek kullanım senaryosu ve bunların maliyetleriyle birlikte Claude kurulumunu uçtan uca ele alıyor.
İstemci uyumluluğu
MCP açık bir protokoldür: Streamable HTTP konuşabilen ve bir Authorization başlığı ekleyebilen tüm istemciler bağlanabilir. Sağlayıcıların resmi belgeleriyle doğrulanan güncel durum (son kontrol: Temmuz 2026):
| İstemci | Şu an çalışıyor mu? | Nasıl |
|---|---|---|
| Claude Code | evet | claude mcp add --transport http … --header |
| Claude Desktop / claude.ai | evet | istek başlığına sahip özel bağlayıcı (beta, kademeli olarak sunuluyor) veya mcp-remote köprüsü |
| Cursor | evet | .cursor/mcp.json: url + headers, gizli anahtarlar ${env:…} üzerinden — yukarıdaki kod parçasına bakın |
| VS Code / GitHub Copilot | evet | .vscode/mcp.json: type: "http" + url + headers; anahtarı promptString girdisi olarak kaydedin — VS Code anahtarı bir kez ister ve şifrelenmiş olarak saklar |
| ChatGPT desktop / Codex CLI / IDE | evet | ortak ~/.codex/config.toml: url + bearer_token_env_var (anahtarı env değişkenine koyun). ChatGPT web entegrasyonları istisnadır — yapıştırılmış anahtarlarla değil, OAuth ile kimlik doğrulaması yaparlar |
| Gemini CLI | evet | settings.json dosyasında httpUrl + headers |
| xAI API (Grok) | evet | sunucuya gönderilen server_url ve authorization değeri ile MCP aracı |
| grok.com (web) | kısmen | özel bağlayıcılar bir sunucu URL'si alır (Connectors → New Connector → Custom); belgeler yapıştırılan API anahtarı başlığının desteklenip desteklenmediğini belirtmediğinden, bu yöntem yakında çıkacak olan OAuth 2.1 desteğimize ihtiyaç duyabilir |
| ZCode (GLM-5.2) | evet | Settings → MCP Servers → HTTP türü + Authorization başlığı; Claude Code içindeki GLM-5.2, Claude Code yapılandırmasını miras alır |
| Diğer her şey | evet | HTTPS üzerinden düz JSON-RPC — aşağıdaki Kodla çağırın bölümüne bakın |
Codex örneği — ~/.codex/config.toml dosyasına ekleyin ve BB_API_KEY=bb_live_… değerini export edin:
[mcp_servers.bananabanana]
url = "https://bananabanana.pro/api/mcp"
bearer_token_env_var = "BB_API_KEY"Tek bir yapılandırmadan CLI, IDE eklentisi ve ChatGPT masaüstü dahil eksiksiz Codex incelemesi (püf noktaları ve canlı anahtarlı demo): Codex MCP Kurulumu: Tek bir config.toml ile Görsel ve Video.
Kodla çağırın
MCP istemcisi kullanmıyor musunuz? Buna ihtiyacınız yok; üstelik bir SDK'ya da gerek yok. Sunucu, HTTPS üzerinden düz JSON-RPC 2.0 protokolünü kullanır: tek bir POST uç noktası, bir Bearer başlığı ve tek bir JSON yanıtı. Durumsuz (stateless) yapısı sayesinde yönetilecek bir oturum el sıkışması (handshake) yoktur — tools/call, curl, Python, TypeScript ya da HTTP isteği gönderebilen herhangi bir sistemden gelen ilk istek olarak doğrudan çalışır.
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
Yalnızca requests — MCP kütüphanesi gerekmez:
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
Sıfır bağımlılık — yerleşik fetch (Node 18+, Deno, Bun, tarayıcılar):
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);Kodlama yaparken önem taşıyan detaylar:
- Her araç yanıtı aynı JSON verisini iki kez taşır: makine tarafından okunabilen
result.structuredContentveresult.contentiçindeki düz metin bloğu — hangisini ayrıştırmak kolaysanız onu seçin. - Video (and çoklu görsel serileri) iki aşamalı bir çağrıdır: ilk
generate_videoçağrısı bir maliyet teklifi döner ve bakiye düşmez; işlemi başlatmak için teklif edilen tutara eşitlenmişconfirm_costparametresiyle çağrıyı tekrarlayın. - Üretim çağrılarında
idempotency_keyparametresi gönderin — ağ kesintilerindeki tekrarlar asla mükerrer ücrete yol açmaz. tools/listanahtarsız da çalışır; böylece hesap oluşturmadan önce tüm şemaları inceleyebilirsiniz. Araç çağrıları anahtar başına dakikada 20 adet ile sınırlıdır.
Görev odaklı yedi araç
| Araç | Maliyet | Ne işe yarar |
|---|---|---|
| list_models | ücretsiz | Anlık birim fiyatları, çözünürlükleri ve kısıtlamalarıyla tüm modeller. |
| get_account | ücretsiz | Bakiye, anahtar harcama limiti ve bugünkü kullanım verileri. |
| generate_image | $0.03–$0.20 | Nano Banana 2 Lite / 2 / Pro modelleriyle 4K'ya kadar metinden görsel üretimi. Bir job_id döndürür. |
| edit_image | tek görsel fiyatı | Tamamlanmış bir görseli metin talimatıyla hassaslaştırın (çok aşamalı düzenleme). |
| generate_video | $0.10–$4.40 | Veo 3.1 ailesi veya Omni Flash (her zaman sesli). Her zaman önce net maliyet teklifi sunar. |
| get_result | ücretsiz | Bir işi sorgulayın (poll): yüklenen medya URL'leri (24 saat geçerli linkler), tahsil edilen ücret, kalan bakiye ve görsel önizlemesi. |
| list_generations | ücretsiz | Yakın zamandaki üretim geçmişi — web sitesiyle ortaktır. |
Entegre maliyet şeffaflığı
- Fiyatlar, web sitesinin kullandığı kaynakla aynı olan
list_modelsüzerinden anlık sunulur. - Her video (veya çoklu görsel serisi) çağrısı önce bakiye düşmeden bir fiyat teklifi döner; ajan işlemi başlatmak için
confirm_costile çağrıyı yineler. - Her sonuç
cost_charged_usdvebalance_remaining_usddeğerlerini içerir. - Sistemsel hatalar ve içerik filtresi reddetmeleri otomatik olarak iade edilir — web uygulamasıyla aynı politika geçerlidir.
- İsteğe bağlı
idempotency_key, tekrarlanan isteklerin asla mükerrer ücretlendirilmeyeceğini garanti eder.
Gerçek bir sohbet
→ 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}Medya URL'leri ve güvenlik
- Sonuç URL'leri imzalıdır ve 24 saat geçerlidir; medyanın kendisi hesabınızda kalır — yeni linkler almak için tekrar
get_resultçağrısı yapabilir veya web sitesinden indirebilirsiniz. - API anahtarları hash'lenerek saklanır ve oluşturulurken yalnızca bir kez gösterilir; dilediğiniz zaman profilinizden anahtarları iptal edebilirsiniz.
- Anahtar başına kullanım geçmişi (araç, model, maliyet, prompt önizlemesi) Profil → MCP API Anahtarları sayfasında görülebilir.
- MCP üretimleri, web üzerinden yapılan üretimlerle aynı geçmişte ve analiz panellerinde yer alır.
Ajanınızı bağlamaya hazır mısınız?
Bir anahtar oluşturun, tek bir yapılandırma satırı ekleyin — ajanınız dakikalar içinde stüdyo kalitesinde medya üretmeye başlasın.
API anahtarınızı alın