Untuk agen AI & klien MCP

BananaBanana MCP Server

Hasilkan gambar dan video AI langsung dari Claude Desktop, Claude Code, dan klien MCP lainnya — biaya ditagih per pembuatan dari saldo BananaBanana Anda. Tanpa berlangganan.

Buat API keyGambar mulai dari $0.03 · video mulai dari $0.10
01APA ITU

Satu endpoint, semua model

Server remote Model Context Protocol yang mengekspos seluruh stack pembuatan BananaBanana sebagai tool untuk agen: gambar Google Nano Banana 2 Lite / 2 / Pro (mulai dari $0.03), video Veo 3.1 / Fast / Lite, dan Gemini Omni Flash dengan suara (tarif tetap $1.00). Agen Anda dapat melihat harga secara langsung, mengonfirmasi biaya sebelum menjalankan proses yang mahal, dan setiap hasil pembuatan akan masuk ke riwayat dan saldo yang sama dengan versi situs web.

  • Endpoint: https://bananabanana.pro/api/mcp (Streamable HTTP)
  • Autentikasi: Bearer API key dari profil Anda (dukungan OAuth 2.1 direncanakan segera)
  • Batas panggilan: 20 panggilan tool per menit per key; batas pengeluaran harian opsional per key
  • Tidak menggunakan klien MCP? Endpoint yang sama adalah JSON-RPC murni melalui HTTPS — panggil langsung dari curl, Python, atau TypeScript tanpa SDK apa pun
  • Pembuatan yang gagal atau terkena filter keamanan akan dikembalikan (refund) secara otomatis
  • Buka dokumentasi, server.json, lalu salin-tempel contoh klien di repositori GitHub bananabanana-mcp
Klien MCPClaude Code / Desktop, Cursor,VS Code, Codex, agen apa punBearer key/api/mcpbananabanana.proStreamable HTTP · 7 toolhasilkanPool modelNano Banana · Veo 3.1Omni Flashper unitSaldo Andabayar per pembuatanpengembalian otomatis jika gagal
02MULAI CEPAT

Terhubung dalam tiga langkah

1. Buat akun baru dan isi saldo Anda. 2. Di bagian Profil → MCP API Keys, buat key baru (hanya ditampilkan sekali). 3. Tambahkan server ke klien Anda:

Claude Code

claude mcp add --transport http bananabanana https://bananabanana.pro/api/mcp \
  --header "Authorization: Bearer bb_live_YOUR_KEY"

Claude Desktop

Tambahkan ke claude_desktop_config.json (Settings → Developer → Edit Config); memerlukan Node.js untuk modul penghubung (bridge) mcp-remote:

{
  "mcpServers": {
    "bananabanana": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "https://bananabanana.pro/api/mcp",
        "--header", "Authorization: Bearer bb_live_YOUR_KEY"
      ]
    }
  }
}

Cursor

Tambahkan ke ~/.cursor/mcp.json (global) atau .cursor/mcp.json di dalam proyek; untuk menjaga kerahasiaan key agar tidak tertulis langsung di file, gunakan ${env:BB_API_KEY} sebagai gantinya:

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

Panduan lengkap Cursor, termasuk kendala teknis dan demo dengan key aktif: Menghasilkan Gambar di Cursor.

VS Code / GitHub Copilot

Tambahkan ke .vscode/mcp.json di dalam workspace (atau settings.json pengguna Anda); VS Code akan meminta key sekali dan menyimpannya dalam bentuk enkripsi:

{
  "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
    }
  ]
}

Panduan lengkap VS Code / Copilot, termasuk kendala teknis dan demo dengan key aktif: Menghasilkan Gambar di VS Code: Panduan Penyiapan Copilot MCP.

Windsurf

Tambahkan ke ~/.codeium/windsurf/mcp_config.json:

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

Klien MCP lainnya (JSON-RPC murni)

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"}

Lebih menyukai panduan terperinci? Tutorial Menghasilkan Gambar di Claude Code membahas penyiapan Claude dari awal hingga akhir, lengkap dengan empat skenario penggunaan nyata beserta rincian biayanya.

03BEKERJA DENGAN

Kompatibilitas klien

MCP adalah protokol terbuka: klien apa pun yang mendukung Streamable HTTP dan dapat menyertakan header Authorization akan terhubung. Status saat ini, diverifikasi berdasarkan dokumentasi resmi masing-masing vendor (terakhir diperiksa pada Juli 2026):

KlienBerfungsi?Cara
Claude Codeyaclaude mcp add --transport http … --header
Claude Desktop / claude.aiyakonektor kustom dengan header permintaan (beta, sedang diluncurkan) atau bridge mcp-remote
Cursorya.cursor/mcp.json: url + headers, rahasia (secrets) via ${env:…} — lihat cuplikan kode di atas
VS Code / GitHub Copilotya.vscode/mcp.json: type: "http" + url + headers; simpan key sebagai input promptString — VS Code akan memintanya sekali dan menyimpannya secara terenkripsi
ChatGPT desktop / Codex CLI / IDEyabersama ~/.codex/config.toml: url + bearer_token_env_var (masukkan key ke dalam env var). Pengecualian untuk konektor web ChatGPT — mereka menggunakan autentikasi OAuth, bukan key yang ditempel
Gemini CLIyahttpUrl + headers di dalam settings.json
xAI API (Grok)yaTool MCP dengan server_url dan nilai authorization yang dikirim ke server
grok.com (web)sebagiankonektor kustom membutuhkan URL server (Connectors → New Connector → Custom); dokumentasi tidak menyebutkan apakah header API-key yang ditempel didukung, sehingga jalur ini mungkin memerlukan dukungan OAuth 2.1 kami yang akan datang
ZCode (GLM-5.2)yaSettings → MCP Servers → tipe HTTP + header Authorization; GLM-5.2 di dalam Claude Code mewarisi konfigurasi Claude Code
Klien lainnyayaJSON-RPC murni melalui HTTPS — lihat bagian Panggil lewat kode di bawah

Contoh Codex — tambahkan ke ~/.codex/config.toml dan ekspor BB_API_KEY=bb_live_…:

[mcp_servers.bananabanana]
url = "https://bananabanana.pro/api/mcp"
bearer_token_env_var = "BB_API_KEY"

Panduan lengkap Codex — CLI, ekstensi IDE, dan ChatGPT desktop dari satu konfigurasi, termasuk kendala teknis dan demo dengan key aktif: Penyiapan MCP Codex: Gambar dan Video dari Satu config.toml.

04TANPA SDK

Panggil lewat kode

Tidak menggunakan klien MCP? Anda tidak membutuhkannya — dan Anda juga tidak memerlukan SDK. Server menggunakan protokol JSON-RPC 2.0 standar melalui HTTPS: satu endpoint POST, header Bearer, dan satu respons JSON tunggal. Protokol ini bersifat stateless, sehingga tidak ada sesi jabat tangan (handshake) yang perlu dikelola — tools/call dapat langsung berfungsi pada permintaan pertama dari curl, Python, TypeScript, atau apa pun yang bisa mengirim permintaan 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

Hanya menggunakan requests — tanpa pustaka (library) 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

Tanpa dependensi — fetch bawaan (Node 18+, Deno, Bun, browser):

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);

Detail penting saat Anda membuat skrip:

  • Setiap respons tool membawa JSON yang sama dua kali: format yang mudah dibaca mesin result.structuredContent dan blok teks dalam result.content — silakan parse bagian mana yang lebih mudah bagi Anda.
  • Pembuatan video (dan batch multi-gambar) adalah proses dua langkah: panggilan generate_video pertama akan mengembalikan penawaran harga dan tidak mengenakan biaya apa pun; ulangi panggilan tersebut dengan menyertakan confirm_cost yang nilainya disesuaikan dengan harga penawaran untuk memulai.
  • Sertakan idempotency_key pada panggilan pembuatan — percobaan ulang jaringan (retry) tidak akan pernah menagih biaya ganda.
  • tools/list dapat berfungsi tanpa key, sehingga Anda dapat mempelajari seluruh skema sebelum membuat akun. Panggilan tool dibatasi hingga 20 kali per menit untuk setiap key.
05TOOL

Tujuh tool siap pakai

ToolBiayaFungsi
list_modelsgratisSemua model dengan harga per unit langsung, resolusi, dan batasannya.
get_accountgratisSaldo, batas pengeluaran key, dan penggunaan hari ini.
generate_image$0.03–$0.20Text-to-image pada Nano Banana 2 Lite / 2 / Pro, hingga 4K. Mengembalikan job_id.
edit_imageharga satu gambarMenyempurnakan gambar yang sudah jadi dengan instruksi teks (pengeditan multi-turn).
generate_video$0.10–$4.40Keluarga model Veo 3.1 atau Omni Flash (selalu disertai suara). Selalu menampilkan penawaran biaya yang tepat terlebih dahulu.
get_resultgratisMemantau tugas (polling): URL media yang dihosting (tautan aktif 24 jam), biaya yang dikenakan, sisa saldo, dan pratinjau gambar langsung.
list_generationsgratisRiwayat pembuatan terbaru — sama dengan di situs web.
06HARGA

Transparansi biaya, sudah terintegrasi

  • Harga disajikan secara langsung oleh list_models — sumber data yang sama dengan yang digunakan situs web.
  • Setiap pembuatan video (dan batch multi-gambar) awalnya hanya mengembalikan penawaran harga dan tidak memungut biaya; agen akan mengulangi panggilan dengan menyertakan confirm_cost untuk memulai.
  • Setiap hasil menyertakan nilai cost_charged_usd dan balance_remaining_usd.
  • Kegagalan sistem hulu (upstream) dan penolakan filter konten akan dikembalikan (refund) secara otomatis — kebijakan yang sama dengan aplikasi web.
  • Opsi idempotency_key menjamin bahwa percobaan ulang (retry) tidak akan pernah menagih biaya ganda.
07CONTOH

Percakapan nyata

→ 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}
08KEAMANAN

URL Media & Keamanan

  • URL hasil pembuatan telah ditandatangani secara digital (signed) dan aktif selama 24 jam; media itu sendiri tetap tersimpan di akun Anda — panggil get_result lagi untuk mendapatkan tautan baru, atau unduh langsung dari situs web.
  • API key disimpan dalam bentuk hash dan hanya ditampilkan sekali saat dibuat; Anda dapat mencabut (revoke) aksesnya kapan saja di profil Anda.
  • Log penggunaan untuk setiap key (tool, model, biaya, pratinjau prompt) dapat dilihat di Profil → MCP API Keys.
  • Pembuatan media melalui MCP akan muncul di riwayat pembuatan dan analitik yang sama dengan pembuatan versi web.

Siap menghubungkan agen Anda?

Buat key baru, tambahkan satu baris konfigurasi — agen Anda siap menghasilkan media kelas studio dalam hitungan menit.

Dapatkan API key Anda