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.
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, Wan 3.0, MiniMax H3 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
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.proAlur 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.
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):
| Klien | Berfungsi? | Cara |
|---|---|---|
| Claude Code | ya | claude mcp add --transport http … --header |
| Claude Desktop / claude.ai | ya | konektor kustom: tempel URL lalu masuk dengan OAuth (kunci lewat header juga bisa, beta) |
| Cursor | ya | .cursor/mcp.json: url + headers, rahasia (secrets) via ${env:…} — lihat cuplikan kode di atas |
| VS Code / GitHub Copilot | ya | .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 / IDE | ya | ~/.codex/config.toml bersama: url + bearer_token_env_var (kunci di variabel lingkungan). Konektor ChatGPT web masuk lewat OAuth, bukan kunci tempel |
| Gemini CLI | ya | httpUrl + headers di dalam settings.json |
| Windsurf | ya | serverUrl + headers in mcp_config.json (Devin Local agent: url + transport: "http"). Setup guide |
| Cline | ya | type: "streamableHttp" + url + headers in the MCP settings JSON. Setup guide |
| xAI API (Grok) | ya | Tool MCP dengan server_url dan nilai authorization yang dikirim ke server Setup guide |
| grok.com (web) | sebagian | konektor kustom menerima URL server (Connectors → New Connector → Custom); proses masuk melalui alur OAuth 2.1 kami |
| ZCode (GLM-5.2) | ya | Settings → MCP Servers → tipe HTTP + header Authorization; GLM-5.2 di dalam Claude Code mewarisi konfigurasi Claude Code |
| Klien lainnya | ya | JSON-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.
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.structuredContentdan blok teks dalamresult.content— silakan parse bagian mana yang lebih mudah bagi Anda. - Pembuatan video (dan batch multi-gambar) adalah proses dua langkah: panggilan
generate_videopertama akan mengembalikan penawaran harga dan tidak mengenakan biaya apa pun; ulangi panggilan tersebut dengan menyertakanconfirm_costyang nilainya disesuaikan dengan harga penawaran untuk memulai. - Sertakan
idempotency_keypada panggilan pembuatan — percobaan ulang jaringan (retry) tidak akan pernah menagih biaya ganda. tools/listdapat berfungsi tanpa key, sehingga Anda dapat mempelajari seluruh skema sebelum membuat akun. Panggilan tool dibatasi hingga 20 kali per menit untuk setiap key.
Sepuluh tool siap pakai
| Tool | Biaya | Fungsi |
|---|---|---|
| list_models | gratis | Semua model dengan harga per unit langsung, resolusi, dan batasannya. |
| get_account | gratis | Saldo, batas pengeluaran key, dan penggunaan hari ini. |
| top_up | gratis | Buat tautan aman untuk menambah saldo. OAuth mendapat akses khusus deposit; API key menggunakan profil. |
| generate_image | $0.03–$0.20 | Text-to-image pada Nano Banana 2 Lite / 2 / Pro, hingga 4K. Mengembalikan job_id. |
| edit_image | harga satu gambar | Menyempurnakan gambar yang sudah jadi dengan instruksi teks (pengeditan multi-turn). |
| generate_video | $0.10–$6.00 | Keluarga model Veo 3.1 atau Omni Flash (selalu disertai suara), Wan 3.0, MiniMax H3, bisa dimulai dari frame awal dan gambar referensi. Selalu menampilkan penawaran biaya yang tepat terlebih dahulu. |
| edit_video | $0.09–1.00 | Pengeditan 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 karakter | Buat ucapan WAV untuk satu atau dua pembicara. Ditagih per 200 karakter yang dimulai. |
| get_result | gratis | Memantau tugas (polling): URL media yang dihosting (tautan aktif 24 jam), biaya yang dikenakan, sisa saldo, dan pratinjau gambar langsung. |
| list_generations | gratis | Riwayat pembuatan terbaru — sama dengan di situs web. |
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_costuntuk memulai. - Setiap hasil menyertakan nilai
cost_charged_usddanbalance_remaining_usd. - Kegagalan sistem hulu (upstream) dan penolakan filter konten akan dikembalikan (refund) secara otomatis — kebijakan yang sama dengan aplikasi web.
- Opsi
idempotency_keymenjamin bahwa percobaan ulang (retry) tidak akan pernah menagih biaya ganda.
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}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_resultlagi 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.
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