MCP.so
Sign In

BananaBanana

@BananaBanana

About BananaBanana

Generate images and video (Nano Banana, Veo, Omni) from any MCP client — pay-as-you-go, no subscription, crypto payments.

Config

Add this server to your MCP-compatible client using the configuration below.

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

Tools

10

List all available image, video and speech generation models with current per-unit USD prices, supported resolutions, durations and constraints. Prices come from the same source as the website — call this before quoting costs to a user or choosing a model. Free, no charge.

Get the current account balance (USD), this API key's name, optional daily spend cap and how much of it is used today. Free, no charge. Use it to check affordability before starting expensive generations.

Get a balance top-up link. OAuth connections receive a one-time deposit-only link valid for 30 minutes; opening it cannot expose API keys, profile data or generation history. Bearer API-key users receive the normal profile link. Free, no charge.

Start an AI image generation (Google Nano Banana family). Charges the account balance immediately and returns a job_id — poll get_result for the finished image URLs. Typical completion: 10–60 seconds. The default nano-banana-2-lite model is the cheapest option and produces 1024px images; choose nano-banana-2 explicitly for 512px, 2048px or 4096px output. Optional reference_images provide the model with the actual subject, product, character or style pixels; Nano Banana Pro supports up to 14 references. Costs $0.03–$0.20 per image depending on model and resolution (see list_models). Failed generations are automatically refunded. If a legitimate prompt is rejected by Google's content filter, retry with relaxed_filter: true. Generating several images at once (number_of_images > 1) is a batch: the first call returns a price quote and charges nothing — repeat the call with confirm_cost set to the quoted amount to start. Example: {"prompt": "studio photo of a ceramic mug on linen, soft daylight", "model": "nano-banana-2-lite", "aspect_ratio": "4:5", "resolution": "1024"}

Edit / refine a previously generated image with a text instruction on Nano Banana 2 Lite / 2 / Pro (multi-turn editing: change colors, remove objects, restyle, etc.). This tool modifies an image that already exists — use generate_image to create a new image from a prompt. Pass the job_id of a COMPLETED image generation as source_generation_id. Charged like a single image of the chosen model/resolution; auto-refund on failure. Example: {"source_generation_id": "cmxyz...", "prompt": "make the background pure white and add soft shadow"}

Start an AI video generation (Google Veo 3.1 family or Gemini Omni Flash). EXPENSIVE: $0.10–$4.40 per clip. Cost confirmation is mandatory: the first call always returns a USD quote and charges nothing — repeat the call with confirm_cost set to the quoted amount to actually start. Returns a job_id; poll get_result (videos take 1–10+ minutes). Failed generations are auto-refunded. Models: veo-3.1-fast (default, good quality/price), veo-3.1 (best Veo quality), veo-3.1-lite (cheapest, 720p/1080p), omni-flash (always has sound, any duration from 3 to 10 s at $0.10/s, supports conversational editing via edit_from_generation_id). Content filtering differs by model: omni-flash is by far the strictest, so a clip rejected as SAFETY_FILTERED on omni-flash is often produced by veo-3.1-fast without changing a word. Video has no configurable safety settings on Google's side (relaxed_filter is accepted for Veo but only pins its default personGeneration=allow_adult), and refused clips are refunded, so a retry is cheap in money and expensive only in time. Image inputs: first_frame animates a still picture, reference_images keep a subject/style consistent — both accept a job_id of a completed image generation on this account, a public image URL, or inline base64 image data, and on omni-flash they can be combined (up to 10 images total). Example: {"prompt": "drone shot over a misty pine forest at sunrise", "model": "veo-3.1-fast", "duration": 8, "resolution": "720p", "confirm_cost": 0.70}

Edit an EXISTING video with Gemini Omni Flash (video-to-video): restyle it, replace or add objects, relight the scene, change the mood — motion and composition of the source clip are preserved. Billed by output length at $0.10/s; cost confirmation is mandatory (first call returns the quote and charges nothing). Source: either source_generation_id (a completed video from this account — see list_generations) or video_url (public http(s) link, max 200 MB). The source is normalised to MP4 720p and the FIRST 10 SECONDS (model limit); output is 720p with sound, aspect ratio follows the source. OUTPUT LENGTH ALWAYS EQUALS SOURCE LENGTH (the model cannot stretch or shorten a clip), so duration only works downwards: it trims the source to the first N seconds. Omit duration to edit the whole clip — the quote tells you the resolved length. Returns a job_id; poll get_result. Failed edits are auto-refunded. Example: {"prompt": "make the whole scene look like a pencil sketch, keep the motion identical", "source_generation_id": "clx…", "confirm_cost": 1}

Generate natural speech with Gemini 3.1 Flash TTS Preview. This synchronous tool returns a hosted WAV URL directly (no get_result polling). Supports one voice or an exactly two-speaker dialogue, automatic language detection or a BCP-47 language_code, natural-language direction for accent/tone/pace, and inline performance tags such as [whispers], [laughs], [very slow] and [excited]. Price is $0.01 per started 200 transcript characters; the account is charged only after Google has returned valid audio. Example: {"text":"[cheerfully] Welcome to BananaBanana!","voice":"Kore","style":"Warm product announcement, medium pace."}

Get the status and result of a generation job started with generate_image / edit_image / generate_video / edit_video. Waits up to wait_seconds for completion before returning (long-poll). On success returns hosted media URLs (valid 24 h — call again for fresh links), cost_charged_usd and balance_remaining_usd, plus a small inline preview for images. Free, no charge. Poll roughly every 10–15 s for videos.

List this account's recent generations (both MCP and website) — id, type, model, status, cost and prompt preview. Use it to find a job_id to re-download results or to pick a source for edit_image / edit_video / generate_video edit_from_generation_id. Free, no charge.

Overview

BananaBanana is a remote MCP server for image, video and speech generation — Google Nano Banana 2, Veo 3.1, Omni Flash and Gemini 3.1 Flash TTS — billed pay-as-you-go from a balance you top up with crypto. No subscription, no seats, no expiring credits.


Why this instead of a subscription service

You pay for what you generate — nothing else. 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 and batch calls return a quote and charge nothing until the agent repeats the call with confirm_cost. An autonomous agent cannot 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. One balance and one generation history are shared between MCP and the web app.


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"

Cursor — ~/.cursor/mcp.json or .cursor/mcp.json

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

No MCP client? The server is plain JSON-RPC over HTTPS — call it from curl, Python or TypeScript with no SDK.

Once connected, ask your agent to run list_models (free) — it returns the live model list and prices.


Tools

Ten tools. Read-only and account-access tools are free.

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. 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: 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) plus cost and balance. Free.job_id, wait_seconds
list_generationsRecent account history, shared with the website. Free.limit, type, status

Image and video generation is asynchronous: generation and editing calls return a job_id, and you poll get_result for the media. generate_speech is synchronous and returns its WAV URL directly.


Pricing

Per image, per Veo clip, per second for Omni Flash, and per started 200 transcript characters for speech. Live numbers come from list_models.

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

Free tools: list_models, get_account, top_up, get_result, list_generations.

Top-up bonuses 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.


Registry

Published in the official MCP Registry as pro.bananabanana/image-video.

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

Source of truth for docs: https://github.com/bananabanana-pro-mcp/bananabanana-mcp · Support: [email protected]

Comments

More Media & Design MCP servers