{
  "markdown": "# BananaBanana MCP Server\n\n[![MCP Badge](https://lobehub.com/badge/mcp/bananabanana-pro-mcp-bananabanana-mcp)](https://lobehub.com/mcp/bananabanana-pro-mcp-bananabanana-mcp)\n\nAn 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**.\n\n- **Endpoint:** `https://bananabanana.pro/api/mcp` (streamable HTTP)\n- **Auth:** OAuth 2.1 (sign in — nothing to copy) or `Authorization: Bearer bb_live_…` — [create a key](https://bananabanana.pro/profile?utm_source=mcp_readme&utm_medium=mcp_catalog)\n- **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>\n\nGenerate images from $0.03, videos from $0.10, and speech for $0.01 per started 200\ntranscript characters, billed from an account balance you top up with crypto. Cost\nquotes before every expensive call, automatic refunds on failure, and one shared\nimage/video history with the website.\n\n## Quick Start\n\nOAuth is the primary connection path. API keys remain available for clients without\nOAuth and for scripts or CI:\n\n- **OAuth 2.1** (claude.ai, Claude Desktop, Claude mobile, Claude Code, MCP Inspector):\n  add a custom connector with the URL above, press Connect and approve access. No key\n  to copy. See [docs/authentication.md](./docs/authentication.md).\n- **API key** (Cursor, VS Code, Windsurf, Codex, scripts, CI): create a key in your\n  profile — <https://bananabanana.pro/profile?utm_source=mcp_readme&utm_medium=mcp_catalog>, API Keys section — and put it in the\n  client config as shown below.\n\n### claude.ai / Claude Desktop / mobile (OAuth)\n\n```\nSettings → Connectors → Add custom connector\nURL: https://bananabanana.pro/api/mcp\n→ Add → Connect → approve access on bananabanana.pro\n```\n\n### Claude Code\n\n```bash\n# OAuth — no key; run /mcp inside Claude Code and choose \"Authenticate\"\nclaude mcp add --transport http bananabanana https://bananabanana.pro/api/mcp\n\n# API-key fallback for non-interactive use\nclaude mcp add --transport http bananabanana https://bananabanana.pro/api/mcp \\\n  --header \"Authorization: Bearer bb_live_YOUR_KEY\"\n```\n\n### Claude Desktop\n\nUse **Settings → Connectors → Add custom connector** and enter\n`https://bananabanana.pro/api/mcp`, then press **Connect** and approve access. If your\nDesktop build uses `claude_desktop_config.json`, the OAuth-capable `mcp-remote` bridge\nrequires [Node.js](https://nodejs.org):\n\n```json\n{\n  \"mcpServers\": {\n    \"bananabanana\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\", \"mcp-remote\", \"https://bananabanana.pro/api/mcp\"\n      ]\n    }\n  }\n}\n```\n\nThe bridge opens the OAuth sign-in flow on first use. See\n[`docs/authentication.md`](./docs/authentication.md) for the API-key fallback.\n\n<details>\n<summary><b>Other clients (Cursor, VS Code, Windsurf)</b></summary>\n\n**Cursor** — `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (project):\n\n```json\n{\n  \"mcpServers\": {\n    \"bananabanana\": {\n      \"url\": \"https://bananabanana.pro/api/mcp\",\n      \"headers\": { \"Authorization\": \"Bearer bb_live_YOUR_KEY\" }\n    }\n  }\n}\n```\n\n**VS Code** — `.vscode/mcp.json` (stores the key as an encrypted prompt):\n\n```json\n{\n  \"servers\": {\n    \"bananabanana\": {\n      \"type\": \"http\",\n      \"url\": \"https://bananabanana.pro/api/mcp\",\n      \"headers\": { \"Authorization\": \"Bearer ${input:bb-api-key}\" }\n    }\n  },\n  \"inputs\": [\n    { \"type\": \"promptString\", \"id\": \"bb-api-key\", \"description\": \"BananaBanana API key (bb_live_…)\", \"password\": true }\n  ]\n}\n```\n\n**Windsurf** — `~/.codeium/windsurf/mcp_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"bananabanana\": {\n      \"serverUrl\": \"https://bananabanana.pro/api/mcp\",\n      \"headers\": { \"Authorization\": \"Bearer bb_live_YOUR_KEY\" }\n    }\n  }\n}\n```\n\n</details>\n\nReady-to-copy configs live in [`examples/`](./examples). Once connected, ask your agent\nto run `list_models` (free) — it returns the live model list and prices. An OAuth user\ncan also ask the agent to call `top_up`; the returned browser link grants deposit-only\naccess without exposing the full profile.\n\n**No MCP client?** The server is plain JSON-RPC over HTTPS — call it from curl, Python\nor TypeScript with no SDK: [`examples/no-sdk.md`](./examples/no-sdk.md) (runnable\nscripts: [`generate.py`](./examples/generate.py), [`generate.mjs`](./examples/generate.mjs)).\n\n## Tools\n\nTen tools; the read-only and account-access tools are free. Full reference in\n[`docs/tools.md`](./docs/tools.md).\n\n| Tool | What it does | Key parameters |\n|---|---|---|\n| `list_models` | List models with live USD prices, resolutions, durations, constraints. Free. | — |\n| `get_account` | Balance, key name, daily cap, spend today. Free. | — |\n| `top_up` | Return a balance top-up link. OAuth gets a one-time deposit-only link; API-key users get the profile URL. Free. | — |\n| `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` |\n| `edit_image` | Multi-turn edit of a finished image by text instruction. | `source_generation_id`, `prompt`, `model`, `resolution` |\n| `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` |\n| `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` |\n| `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` |\n| `get_result` | Poll a job; returns hosted media URLs (24 h) + cost/balance. Free. | `job_id`, `wait_seconds` |\n| `list_generations` | Recent account history (shared with the website). Free. | `limit`, `type`, `status` |\n\nImage and video generation is async: generation/editing calls return a `job_id`; poll\n`get_result` for the media. `generate_speech` is synchronous and returns its WAV URL\ndirectly. `generate_video`, `edit_video` and multi-image `generate_image` **quote first\nand charge nothing** until you repeat the call with `confirm_cost`.\n\n## Pricing\n\nPay-as-you-go in USD: per image, per Veo clip, per second for Omni Flash, and per\nstarted 200 transcript characters for speech. Live numbers come from `list_models`;\nfull tables in [`docs/pricing.md`](./docs/pricing.md).\n\n| Model | Type | Price |\n|---|---|---|\n| `nano-banana-2-lite` | Image (1024) | $0.03 |\n| `nano-banana-2` | Image (512→4096) | $0.03 – $0.13 |\n| `nano-banana-pro` | Image (1024→4096) | $0.11 – $0.20 |\n| `veo-3.1-lite` | Video (720p/1080p; 4, 6 or 8 s) | $0.10 – $0.56 |\n| `veo-3.1-fast` | Video (up to 4K; 4, 6 or 8 s) | $0.35 – $2.60 |\n| `veo-3.1` | Video (up to 4K; 4, 6 or 8 s) | $0.70 – $4.40 |\n| `omni-flash` | Video (720p, sound, 3–10 s) | $0.10 / s ($0.30 – $1.00) |\n| `gemini-3.1-flash-tts-preview` | Speech (WAV) | $0.01 / started 200 transcript characters |\n\nImages cost **$0.03–$0.20** each; video costs **$0.10–$4.40** per clip, with Omni\nFlash billed at **$0.10/s**. Veo generation accepts 4, 6 or 8 seconds; the 7-second\nprices returned by `list_models` are for extension jobs, not a selectable\n`generate_video` duration. Free tools: `list_models`, `get_account`, `top_up`,\n`get_result`, `list_generations`. Failed and content-filtered generations are refunded\nautomatically.\n\nTop-up bonuses can lower the effective cost: deposits of $50+ receive 5% extra\nbalance, deposits of $100+ receive 10%, and an active partner promo code adds another\n10%. Bonuses stack. The table shows nominal generation charges; effective\nout-of-pocket cost depends on the top-up bonus. Promo codes require a normal signed-in\nprofile and are intentionally unavailable in an OAuth deposit-only session.\n\n## Why this instead of a subscription service\n\n- **You pay for what you generate — nothing else.** No monthly fee, no seats, no credits\n  that expire. A quiet month costs $0; the balance you top up is the only spend.\n- **The agent sees the price before it spends.** `list_models` returns live prices, and\n  video / batch calls return a quote and charge nothing until confirmed — so an agent\n  can't run up a surprise bill.\n- **Failures don't cost you.** Upstream errors and content-filter rejections are\n  refunded automatically; optional per-key daily caps and `idempotency_key` bound the\n  downside further.\n- **Crypto top-ups, no card required.** Deposits of $50+ / $100+ receive 5% / 10%\n  extra balance, and an active partner promo code adds another 10%. One balance and\n  one image/video history are shared between MCP and the website.\n\n## Registry\n\nPublished in the official [MCP Registry](https://github.com/modelcontextprotocol/registry)\nas **`pro.bananabanana/image-video`**. The canonical descriptor is\n[`server.json`](./server.json). Look it up:\n\n```bash\ncurl -s \"https://registry.modelcontextprotocol.io/v0/servers?search=pro.bananabanana/image-video\"\n```\n\n## Links\n\n- **Website:** <https://bananabanana.pro/?utm_source=mcp_readme&utm_medium=mcp_catalog>\n- **MCP docs & live example:** <https://bananabanana.pro/mcp?utm_source=mcp_readme&utm_medium=mcp_catalog>\n- **Create an API key:** <https://bananabanana.pro/profile?utm_source=mcp_readme&utm_medium=mcp_catalog>\n- **Authentication** · [`docs/authentication.md`](./docs/authentication.md)\n- **Tools reference** · [`docs/tools.md`](./docs/tools.md)\n- **Pricing & limits** · [`docs/pricing.md`](./docs/pricing.md)\n- **Troubleshooting** · [`docs/troubleshooting.md`](./docs/troubleshooting.md)\n- **Support:** support@bananabanana.pro\n\n## License\n\n[Apache-2.0](./LICENSE) © BananaBanana. This repository is public documentation only —\nit contains no server source code, keys, or secrets.\n",
  "bytes": 10242,
  "sha": "dc7b5f4a6a10adaee5f8ec0d38d224fd0b995414bd0bcc31e6ad80a5a6456b8d",
  "repo_slug": "bananabanana-pro-mcp/bananabanana-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_pro_bananabanana_image_video_4b160044/readme"
}