Untuk agen AI & klien MCP

Nano Banana MCP Server untuk Claude, Cursor & Gemini CLI

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 / 2.1 / Pro (mulai dari $0.03), video Veo 3.1 / Fast / Lite, dan Gemini Omni Flash, Wan 3.0 dengan suara ($0.09–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: masuk dengan OAuth 2.1 (claude.ai dan klien berbasis konektor lain) atau kunci API Bearer dari profil Anda
  • 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 punOAuth / kunci API/api/mcpbananabanana.proStreamable HTTP · 10 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.ai, Claude Desktop, seluler (OAuth — tanpa menyalin apa pun)

Settings → Connectors → Add custom connector, tempel https://bananabanana.pro/api/mcp, lalu tekan Connect. Claude mendaftar sendiri, Anda menyetujui akses di layar BananaBanana, dan generasi ditagihkan ke akun tempat Anda masuk.

Settings → Connectors → Add custom connector
URL: https://bananabanana.pro/api/mcp
→ Add → Connect → approve access on bananabanana.pro

Alur yang sama berlaku di klien mana pun yang mendukung otorisasi MCP — MCP Inspector, konektor web ChatGPT dan Grok, Claude Code. Aplikasi terhubung tercantum di profil Anda dan bisa diputus kapan saja.

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

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

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

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

Semua metode kecuali ping dan daftar discovery (tools/list, prompts/list, resources/list) memerlukan kredensial — termasuk initialize: handshake tanpa autentikasi menjawab 401 dengan tantangan WWW-Authenticate. Asimetri ini disengaja, bukan bug: lewat tantangan itulah klien konektor mengetahui server ini memakai OAuth. Membaca katalog tool tanpa kunci tetap bisa.

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 Agustus 2026):

KlienBerfungsi?Cara
Claude Codeyaclaude mcp add --transport http … --header
Claude Desktop / claude.aiyakonektor kustom: tempel URL lalu masuk dengan OAuth (kunci lewat header juga bisa, beta)
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 / IDEya~/.codex/config.toml bersama: url + bearer_token_env_var (kunci di variabel lingkungan). Konektor ChatGPT web masuk lewat OAuth, bukan kunci tempel
Gemini CLIyahttpUrl + headers di dalam settings.json
WindsurfyaserverUrl + headers in mcp_config.json (Devin Local agent: url + transport: "http"). Setup guide
Clineyatype: "streamableHttp" + url + headers in the MCP settings JSON. Setup guide
xAI API (Grok)yaTool MCP dengan server_url dan nilai authorization yang dikirim ke server Setup guide
grok.com (web)sebagiankonektor kustom menerima URL server (Connectors → New Connector → Custom); proses masuk melalui alur OAuth 2.1 kami
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.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

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

Sepuluh tool siap pakai

ToolBiayaFungsi
list_modelsgratisSemua model dengan harga per unit langsung, resolusi, dan batasannya.
get_accountgratisSaldo, batas pengeluaran key, dan penggunaan hari ini.
top_upgratisBuat tautan aman untuk menambah saldo. OAuth mendapat akses khusus deposit; API key menggunakan profil.
generate_image$0.03–$0.20Text-to-image pada Nano Banana 2 Lite / 2 / 2.1 / Pro, hingga 4K. Mengembalikan job_id.
edit_imageharga satu gambarMenyempurnakan gambar yang sudah jadi dengan instruksi teks (pengeditan multi-turn).
generate_video$0.10–$6.00Keluarga model Veo 3.1 atau Omni Flash (selalu disertai suara), Wan 3.0, bisa dimulai dari frame awal dan gambar referensi. Selalu menampilkan penawaran biaya yang tepat terlebih dahulu.
edit_video$0.09–1.00Pengeditan video-ke-video di Omni Flash: klip Anda sendiri atau URL publik — ubah gaya, ganti objek, atur ulang cahaya. 10 detik pertama, 720p dengan suara.
generate_speech$0.01 / 200 karakterBuat ucapan WAV untuk satu atau dua pembicara. Ditagih per 200 karakter yang dimulai.
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

Berapa biaya generasi lewat MCP di tahun 2026?

  • 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.
  • Koneksi OAuth memakai token akses satu jam dengan refresh yang dirotasi, disimpan sebagai hash dan hanya berlaku untuk server ini; memutus aplikasi di profil langsung membatalkan tokennya.
  • 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.
09BAYAR PER PANGGILAN

x402: bayar per panggilan dengan USDC, tanpa akun

x402 adalah protokol terbuka yang memungkinkan agen membayar satu permintaan dengan stablecoin. Ini endpoint terpisah dari server MCP: POST /api/x402. Tidak perlu akun, kunci API, atau isi saldo.

  1. Kirim nama tool dan argumennya. Server menjawab 402 dengan harga pasti untuk panggilan itu.
  2. Tanda tangani pembayaran dalam USDC di jaringan Base, lalu ulangi permintaan dengan header X-PAYMENT.
  3. Gambar dan suara dikirim dalam respons yang sama. Video mengembalikan job_id; periksa hasilnya secara gratis lewat GET /api/x402/result/{jobId}.

Tool yang tersedia: generate_image, generate_speech, generate_video. Harganya sama dengan studio web dan MCP; biaya panggilan sama dengan biaya generasi, tanpa minimum isi saldo.

Jika video yang sudah dibayar gagal, pembayar menerima token kredit senilai sama yang berlaku 90 hari. Kirimkan sebagai refund_token pada panggilan berikutnya. Pembayaran tidak dikembalikan secara on-chain. Katalog yang dapat dibaca mesin dengan harga terkini ada di GET /api/x402.

10FAQ

Pertanyaan seputar server MCP Nano Banana

Apa itu server MCP Nano Banana?

Ini adalah server MCP jarak jauh yang memberi agen AI Anda model gambar Nano Banana sebagai tool, lengkap dengan model video dan suara. Agen memanggil generate_image, server menjalankan generasi dan mengembalikan tautan ke file yang sudah jadi. Server di-host oleh BananaBanana di https://bananabanana.pro/api/mcp, jadi tidak ada yang perlu dipasang atau dijalankan secara lokal, dan setiap generasi ditagih dari saldo BananaBanana Anda dengan harga yang sama seperti di studio web.

Bagaimana cara menambahkannya ke Gemini CLI?

Gemini CLI terhubung ke server MCP jarak jauh lewat HTTP, jadi seluruh penyiapan Gemini CLI MCP cukup satu perintah: gemini mcp add --transport http --scope user bananabanana https://bananabanana.pro/api/mcp -H "Authorization: Bearer YOUR_KEY". Saat CLI bertanya apakah Anda memercayai folder tersebut, setujui, lalu jalankan gemini mcp list dan pastikan server tampil sebagai Connected. Dengan --scope user, kunci disimpan di ~/.gemini/settings.json, bukan di .gemini/settings.json proyek, sehingga tidak pernah masuk ke repositori.

Bagaimana cara menghubungkannya ke Claude Desktop, Claude Code, atau Cursor?

Di claude.ai dan Claude Desktop, buka Settings → Connectors → Add custom connector, tempel https://bananabanana.pro/api/mcp, lalu masuk dengan OAuth: tidak ada kunci yang perlu disalin. Di Claude Code, jalankan claude mcp add --transport http bananabanana https://bananabanana.pro/api/mcp, lalu ketik /mcp dan pilih Authenticate, atau kirim API key dengan --header. Di Cursor, tambahkan URL dan header Authorization ke .cursor/mcp.json. Konfigurasi siap tempel untuk klien-klien ini dan lainnya ada di bagian mulai cepat di atas.

Berapa biaya satu panggilan?

Anda membayar per generasi, bukan untuk koneksinya: gambar $0.03–$0.20, video $0.10–$6.00 tergantung model, durasi, resolusi, dan suara, serta text-to-speech $0.01 per 200 karakter yang dimulai. Tool bantu seperti list_models, get_result, dan get_account gratis. Panggilan video dan multi-gambar lebih dulu mengembalikan penawaran harga yang pasti dan tidak menagih apa pun sampai agen mengonfirmasinya; generasi yang gagal atau terfilter dikembalikan ke saldo secara otomatis.

Apakah perlu akun Google atau langganan?

Tidak. Anda tidak memerlukan akun Google maupun kunci dari penyedia model mana pun, cukup akun BananaBanana (alamat email sudah cukup) dengan saldo prabayar. Tidak ada langganan dan saldo tidak kedaluwarsa. Klien berbasis kunci memakai API key BananaBanana dari profil Anda; klien bertipe konektor masuk dengan OAuth. Agen yang membayar lewat x402 bahkan bisa tanpa akun: setiap panggilan dibayar dengan USDC di jaringan Base.

Model apa saja yang bisa dipakai agen saya?

Gambar: Nano Banana 2 Lite (bawaan), Nano Banana 2 dan Nano Banana Pro hingga 4K, ditambah GPT Image 2.5 dan Qwen Image 3.0 Pro. Nano Banana 2.1 menambahkan format panorama hingga 8:1. Video: Veo 3.1, Veo 3.1 Fast dan Veo 3.1 Lite, Gemini Omni Flash, Wan 3.0, serta Grok Imagine Video 1.5. Suara: Gemini 3.1 Flash TTS dengan 30 suara. Tool list_models mengembalikan daftar terkini beserta harga, resolusi, dan batasan, sehingga agen selalu bekerja dengan katalog yang berlaku.

Apakah server MCP pembuat gambar ini juga bisa membuat video?

Ya. Ini adalah server MCP untuk pembuatan gambar (generate_image, edit_image) sekaligus video dalam satu koneksi: generate_video membuat klip dari teks, frame awal, atau gambar referensi, dan edit_video mengubah gaya klip yang sudah ada atau memperpanjangnya. Ada juga generate_speech untuk sulih suara dengan satu atau dua pembicara. Semuanya dibayar dari satu saldo, dan hasil gambar serta video masuk ke riwayat yang sama dengan studio 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