BananaBanana MCP Server
Generates images, videos, and speech via Google Nano Banana, Veo, Omni, and Gemini TTS models with pay-as-you-go crypto payments, no subscription required.
README
BananaBanana MCP Server
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.
- Endpoint:
https://bananabanana.pro/api/mcp(streamable HTTP) - Auth: OAuth 2.1 (sign in — nothing to copy) or
Authorization: Bearer bb_live_…— create a key - Website: https://bananabanana.pro/?utm_source=mcp_readme&utm_medium=mcp_catalog · Docs & live example: https://bananabanana.pro/mcp?utm_source=mcp_readme&utm_medium=mcp_catalog
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:
- OAuth 2.1 (claude.ai, Claude Desktop, Claude mobile, Claude Code, MCP Inspector): add a custom connector with the URL above, press Connect and approve access. No key to copy. See docs/authentication.md.
- API key (Cursor, VS Code, Windsurf, Codex, scripts, CI): create a key in your profile — https://bananabanana.pro/profile?utm_source=mcp_readme&utm_medium=mcp_catalog, API Keys section — and put it in the client config as shown below.
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.
<details> <summary><b>Other clients (Cursor, VS Code, Windsurf)</b></summary>
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" }
}
}
}
</details>
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.
| Tool | What it does | Key parameters |
|---|---|---|
list_models |
List models with live USD prices, resolutions, durations, constraints. Free. | — |
get_account |
Balance, key name, daily cap, spend today. Free. | — |
top_up |
Return a balance top-up link. OAuth gets a one-time deposit-only link; API-key users get the profile URL. Free. | — |
generate_image |
Text-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_image |
Multi-turn edit of a finished image by text instruction. | source_generation_id, prompt, model, resolution |
generate_video |
Video (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_video |
Video-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_speech |
Gemini 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_result |
Poll a job; returns hosted media URLs (24 h) + cost/balance. Free. | job_id, wait_seconds |
list_generations |
Recent 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.
| Model | Type | Price |
|---|---|---|
nano-banana-2-lite |
Image (1024) | $0.03 |
nano-banana-2 |
Image (512→4096) | $0.03 – $0.13 |
nano-banana-pro |
Image (1024→4096) | $0.11 – $0.20 |
veo-3.1-lite |
Video (720p/1080p; 4, 6 or 8 s) | $0.10 – $0.56 |
veo-3.1-fast |
Video (up to 4K; 4, 6 or 8 s) | $0.35 – $2.60 |
veo-3.1 |
Video (up to 4K; 4, 6 or 8 s) | $0.70 – $4.40 |
omni-flash |
Video (720p, sound, 3–10 s) | $0.10 / s ($0.30 – $1.00) |
gemini-3.1-flash-tts-preview |
Speech (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_modelsreturns 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_keybound 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
- Website: https://bananabanana.pro/?utm_source=mcp_readme&utm_medium=mcp_catalog
- MCP docs & live example: https://bananabanana.pro/mcp?utm_source=mcp_readme&utm_medium=mcp_catalog
- Create an API key: https://bananabanana.pro/profile?utm_source=mcp_readme&utm_medium=mcp_catalog
- Authentication ·
docs/authentication.md - Tools reference ·
docs/tools.md - Pricing & limits ·
docs/pricing.md - Troubleshooting ·
docs/troubleshooting.md - Support: support@bananabanana.pro
License
Apache-2.0 © BananaBanana. This repository is public documentation only — it contains no server source code, keys, or secrets.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.