Odel
BananaBanana Image, Video & Speech Generation

BananaBanana Image, Video & Speech Generation

@bananabanana-pro-mcp2Apache-2.0Updated 2w ago

Generate images, video & speech with Nano Banana, Veo, Omni and Gemini TTS. Pay as you go.

View on GitHub
Server endpointStreamable HTTPOAuthProbed

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

BananaBanana MCP Server

MCP Badge

An MCP server for image, video, and speech generation — Google Nano Banana, Veo, Omni, and Gemini TTS models — that lets any MCP client (Claude Code, Claude Desktop, Cursor, and more) create media pay-as-you-go with crypto payments and no subscription.

Generate images from $0.03, videos from $0.10, and speech for $0.01 per started 200 transcript characters, billed from an account balance you top up with crypto. Cost quotes before every expensive call, automatic refunds on failure, and one shared image/video history with the website.

Quick Start

OAuth is the primary connection path. API keys remain available for clients without OAuth and for scripts or CI:

claude.ai / Claude Desktop / mobile (OAuth)

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

Claude Code

# OAuth — no key; run /mcp inside Claude Code and choose "Authenticate"
claude mcp add --transport http bananabanana https://bananabanana.pro/api/mcp

# API-key fallback for non-interactive use
claude mcp add --transport http bananabanana https://bananabanana.pro/api/mcp \
  --header "Authorization: Bearer bb_live_YOUR_KEY"

Claude Desktop

Use Settings → Connectors → Add custom connector and enter https://bananabanana.pro/api/mcp, then press Connect and approve access. If your Desktop build uses claude_desktop_config.json, the OAuth-capable mcp-remote bridge requires Node.js:

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

The bridge opens the OAuth sign-in flow on first use. See docs/authentication.md for the API-key fallback.

Other clients (Cursor, VS Code, Windsurf)

Cursor~/.cursor/mcp.json (global) or .cursor/mcp.json (project):

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

VS Code.vscode/mcp.json (stores the key as an encrypted prompt):

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

Windsurf~/.codeium/windsurf/mcp_config.json:

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

Ready-to-copy configs live in examples/. Once connected, ask your agent to run list_models (free) — it returns the live model list and prices. An OAuth user can also ask the agent to call top_up; the returned browser link grants deposit-only access without exposing the full profile.

No MCP client? The server is plain JSON-RPC over HTTPS — call it from curl, Python or TypeScript with no SDK: examples/no-sdk.md (runnable scripts: generate.py, generate.mjs).

Tools

Ten tools; the read-only and account-access tools are free. Full reference in docs/tools.md.

ToolWhat it doesKey parameters
list_modelsList models with live USD prices, resolutions, durations, constraints. Free.
get_accountBalance, key name, daily cap, spend today. Free.
top_upReturn a balance top-up link. OAuth gets a one-time deposit-only link; API-key users get the profile URL. Free.
generate_imageText-to-image (Nano Banana 2 Lite / 2 / Pro), up to 4K, 1–4 variants. Lite is the default; choose Nano Banana 2 for resolutions above 1024. Returns a job_id.prompt, model, aspect_ratio, resolution, number_of_images, confirm_cost
edit_imageMulti-turn edit of a finished image by text instruction.source_generation_id, prompt, model, resolution
generate_videoVideo (Veo 3.1 family or Omni Flash), optionally from a start frame and reference images. Always quotes first. Returns a job_id.prompt, model, duration, resolution, with_audio, first_frame, reference_images, confirm_cost
edit_videoVideo-to-video editing on Omni Flash: restyle, replace objects, relight an existing clip. Always quotes first.prompt, source_generation_id or video_url, duration, audio_prompt, confirm_cost
generate_speechGemini 3.1 Flash TTS speech: one speaker or a two-speaker dialogue. Returns a hosted WAV URL synchronously.text, voice, language_code, style, speakers
get_resultPoll a job; returns hosted media URLs (24 h) + cost/balance. Free.job_id, wait_seconds
list_generationsRecent account history (shared with the website). Free.limit, type, status

Image and video generation is async: generation/editing calls return a job_id; poll get_result for the media. generate_speech is synchronous and returns its WAV URL directly. generate_video, edit_video and multi-image generate_image quote first and charge nothing until you repeat the call with confirm_cost.

Pricing

Pay-as-you-go in USD: per image, per Veo clip, per second for Omni Flash, and per started 200 transcript characters for speech. Live numbers come from list_models; full tables in docs/pricing.md.

ModelTypePrice
nano-banana-2-liteImage (1024)$0.03
nano-banana-2Image (512→4096)$0.03 – $0.13
nano-banana-proImage (1024→4096)$0.11 – $0.20
veo-3.1-liteVideo (720p/1080p; 4, 6 or 8 s)$0.10 – $0.56
veo-3.1-fastVideo (up to 4K; 4, 6 or 8 s)$0.35 – $2.60
veo-3.1Video (up to 4K; 4, 6 or 8 s)$0.70 – $4.40
omni-flashVideo (720p, sound, 3–10 s)$0.10 / s ($0.30 – $1.00)
gemini-3.1-flash-tts-previewSpeech (WAV)$0.01 / started 200 transcript characters

Images cost $0.03–$0.20 each; video costs $0.10–$4.40 per clip, with Omni Flash billed at $0.10/s. Veo generation accepts 4, 6 or 8 seconds; the 7-second prices returned by list_models are for extension jobs, not a selectable generate_video duration. Free tools: list_models, get_account, top_up, get_result, list_generations. Failed and content-filtered generations are refunded automatically.

Top-up bonuses can lower the effective cost: deposits of $50+ receive 5% extra balance, deposits of $100+ receive 10%, and an active partner promo code adds another 10%. Bonuses stack. The table shows nominal generation charges; effective out-of-pocket cost depends on the top-up bonus. Promo codes require a normal signed-in profile and are intentionally unavailable in an OAuth deposit-only session.

Why this instead of a subscription service

  • You pay for what you generate — nothing else. No monthly fee, no seats, no credits that expire. A quiet month costs $0; the balance you top up is the only spend.
  • The agent sees the price before it spends. list_models returns live prices, and video / batch calls return a quote and charge nothing until confirmed — so an agent can't run up a surprise bill.
  • Failures don't cost you. Upstream errors and content-filter rejections are refunded automatically; optional per-key daily caps and idempotency_key bound the downside further.
  • Crypto top-ups, no card required. Deposits of $50+ / $100+ receive 5% / 10% extra balance, and an active partner promo code adds another 10%. One balance and one image/video history are shared between MCP and the website.

Registry

Published in the official MCP Registry as pro.bananabanana/image-video. The canonical descriptor is server.json. Look it up:

curl -s "https://registry.modelcontextprotocol.io/v0/servers?search=pro.bananabanana/image-video"

Links

License

Apache-2.0 © BananaBanana. This repository is public documentation only — it contains no server source code, keys, or secrets.