NestDaddy

openFlow

io.github.molkex/omni-flash-veo3-nano-banana · v1.1.0

Omni Flash and Veo video, Nano Banana images on Google Flow, from any MCP client

Connect Remote server

Terminal
claude mcp add --transport http omni-flash-veo3-nano-banana https://openflowmcp.com/mcp --header "Authorization: Bearer <YOUR_API_KEY>"
~/.cursor/mcp.json
{
  "mcpServers": {
    "omni-flash-veo3-nano-banana": {
      "url": "https://openflowmcp.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_API_KEY>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "omni-flash-veo3-nano-banana": {
      "type": "http",
      "url": "https://openflowmcp.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_API_KEY>"
      }
    }
  }
}
Claude Desktop
Settings > Connectors > Add custom connector
URL: https://openflowmcp.com/mcp

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools 56 found in our last check

  • generate_with_face

    Generate a NEW image of the SAME PERSON/character as an existing photo or portrait — dress them differently, move them somewhere else, make an avatar. This is the tool for "here is my photo, now put me in a suit / in a park", and also the ONLY tool for "generate another picture…

  • generate_image

    Generate an image from a text prompt via Google Flow. model — pass ONE of these exact ids (from GET v1/flow/models, verified 2026-07-25): BELUGA = "Nano Banana 2" — the DEFAULT, ~30s (legacy id NARWHAL is accepted as an alias) GEM_PIX_2 = "Nano Banana Pro" — highest quality, ~40…

  • music_generate

    Generate a full song from a text brief via Google Flow Music (Lyria). prompt — free text: genre, mood, BPM, instruments, and whether you want vocals or an instrumental (e.g. "dreamy synthwave, retro 80s, 110 bpm, instrumental"). The Producer agent turns it into a finished track…

  • music_chat

    Talk to the Google Flow Music Producer agent instead of one-shotting a track. Use this when the work is a conversation rather than a single brief: asking what it can do, having it write lyrics first, or editing a track it already made ("drop the vocals", "same song, 30 seconds s…

  • music_stems

    Split a track we generated into stems (vocals, instrumental, drums, bass, …). clip_id — the id of a clip returned by music_generate (or music_video's song). Runs on the same account that made the track. Returns {"stems": {name: "/v1/media/..."}, "media": [...]} when done, or a j…

  • music_list

    List the user's music tracks.

  • music_get

    Get metadata for a single music track.

  • music_download

    Download the raw .m4a file of a track to the server.

  • music_credits

    Check remaining flowmusic credits and subscription tier.

  • generate_scene

    Build a location precisely from a scene-layout/v2 map and generate its plate. This is the "exact location building" path: instead of describing the room in prose (which the model reinterprets — furniture drifts, depths change between shots), it renders a control image from the m…

  • generate_video

    Generate a video from a text prompt via Google Flow (Veo models). video_model_key options: abra_t2v_4s (default, 7 credits), veo_3_1_t2v_lite (10cr, visibly cleaner), veo_3_1_t2v (100cr, "Quality" tier), veo_3_1_t2v_fast (20cr). project_id: put the clip into a project made with…

  • edit_video

    Rewrite a video from a plain description: "make the sky stormy", "take the passer-by out of the shot", "warmer light", "put the product from the image on the table". Source — ONE of: media_id: id from a previous generate_video* result (OUR OWN generation). Job is pinned to the a…

  • recast_video

    Re-make a video with YOUR character in place of the person in it: same camera, movement, gestures, timing and mouth movement, the character's look. character: name from list_characters (its portrait is used as the look). Source — ONE of media_id (a video this service made) or vi…

  • extend_video

    Continue a video this service already generated — Flow writes what happens next. media_id: the id from a previous generate_video* result (the bare id, not the /v1/media/... path). Only videos made through this service can be extended: the id belongs to a specific Google account'…

  • generate_video_between_frames

    Generate the transition between TWO given frames: the video starts at the first image and ends at the second one, Flow invents everything in between. This is Flow's "Кадры" with both slots filled — a different mechanism from generate_video_from_image, which only pins the FIRST f…

  • generate_video_from_image

    Generate a video that starts from a given image (i2v — image-to-video). Pass exactly one start: start_image_base64 (raw base64 image bytes, no data: URI prefix) or start_media_id (media_id of one of YOUR finished videos — the clip then starts from that video's `frame`, "last" by…

  • generate_video_with_reference

    Generate a video using up to 7 reference images (r2v — e.g. a consistent character/subject across the video). reference_images_base64: raw base64-encoded image bytes (no data: URI prefix), up to 7 with Omni Flash keys (abra_r2v_*, the default), up to 3 with Veo r2v keys (veo_3_1…

  • generate_character_image

    Generate a portrait or body image for an existing Flow character. entity_id: the character's entityId — from create_character or create_character_from_photo, or create_character_from_description's own result (which already calls this for slot 0 — no need to call it again for tha…

  • create_character

    Create a new, empty Flow character (just gets you an entity_id — no portrait/body, no description yet). Plain HTTP, no browser involved. Low-level building block — for "make me a character from a description and generate its portrait", call create_character_from_description inst…

  • create_character_from_photo

    Create a new Flow character whose portrait (and optionally body) is a REAL PHOTO, not a text description or generation. Both photos become the character's slot-0 (portrait) and slot-1 (body) images directly — Flow's own upload mechanism in its New Character composer, discovered…

  • create_character_from_description

    Invent a new character from a text description and generate its portrait — the full "make me a character, no photo involved" path in ONE call, instead of gluing together create_character + update_character + generate_character_image yourself. name: short and unique among YOUR OW…

  • list_characters

    List the characters YOU created (create_character_from_description, or create_character_from_photo with name=...) and can now generate more images of via generate_with_face(character=<name>, prompt=...). Read-only, no Flow calls, no credits spent. Returns {"characters": [{"name"…

  • generate_character_turnaround

    Generate a single image showing the character's FULL BODY from 3 angles (front/side/back) in one row, labeled — a "turnaround sheet". Pure HTTP as of 2026-07-26 — no browser involved (see below for what changed and what that does and does NOT prove). History, so the mechanism ch…

  • generate_character_expression_sheet

    Generate a single image showing the character's FACE with several different expressions in one row, labeled — an "expression sheet". Same job type and same history as generate_character_turnaround — see its docstring for the full story: the 2026-07-11 finding (plain Android-bear…

  • create_project

    Create a NEW Flow project on one of your Google accounts and return its project_id. Use this to give every one of YOUR OWN clients their own namespace: create a project per client once, then pass that project_id to generate_image / generate_video so their results never mix with…

  • generate_voice

    Speak `text` aloud with a Gemini TTS voice and return a WAV (24 kHz, mono, 16-bit). Takes ~15-25 seconds for up to 300 characters. Costs no image/video quota. Russian, English and most other languages work; the voice name only sets the timbre. text: what to say, up to 5000 chara…

  • set_character_voice

    Attach a preset Gemini TTS voice to a Flow character for auto-lipsync in future videos. Synthesizes a short reference audio in the chosen voice and attaches its media_id to the character's `audio_references`. This is a ONE-TIME setup per character: any subsequent video generatio…

  • list_voices

    The 30 Gemini TTS voices usable with generate_voice: name, gender, short description. Gender/description are a rough guide only; any voice reads any language.

  • check_credits

    Check projects for a Google account (or all). NOTE: for the credit BALANCE and a full at-a-glance overview, prefer `flow_dashboard()` — it returns real credit numbers per account + totals. This tool only returns the project list.

  • flow_dashboard

    The account-pool control panel: for EVERY Google account, the real credit balance, subscription tier, project count, and health status, plus totals — one call, formatted for reading. Use this to answer "how many accounts, how many credits on each and in total, what projects" — t…

  • update_character

    Save a character's display name and/or personality notes. Without this, a character stays 'Untitled Character' with no description even after portrait/body images exist. account must be whichever Google account's project owns this entity_id.

  • upscale_image

    Upscale an existing generated image (from a prior generate_image call) to a higher resolution -- the same "1K/2K/4K" choice Flow offers when downloading. account: the Google account whose project owns media_id. Do not guess it and do not ask the user: the generate_image result y…

  • upscale_video

    Upscale an existing generated video (from a prior generate_video call) to a higher resolution -- the same "270p/720p/1080p/4K" choice Flow offers when downloading. Counts against the weekly free video limit (3 a week without a subscription), like any other video operation, and s…

  • check_job

    Check the status/result of a job previously returned by generate_image, generate_video, generate_video_from_image, or generate_video_with_reference. Besides status/result it reports PROGRESS, so you can tell the person something truthful instead of "still waiting": queue_positio…

  • fetch_media

    Download a generated media file (video, frame) and return its bytes, base64-encoded, so the file can be saved or shown even though the media endpoint isn't publicly reachable with your MCP key. THIS IS THE EXPENSIVE PATH — prefer `download_url` from the job result. Bytes returne…

  • add_account_token

    Attach one of YOUR OWN Google accounts to the pool using an oauth_token captured on the USER'S OWN machine (password/2FA never leave it). This is the self-serve onboarding path — no server-side browser, no SSH. PREFERRED PATH — no oauth_token handling at all: call flow_status; i…

  • contact_support

    Send a message to the openFlow human operator (no Telegram needed). Replies come from a human, usually within hours; read them with support_replies.

  • support_replies

    Your support thread, including operator replies (from a human, usually within hours). `since` is a unix timestamp: only newer messages.

  • add_antigravity_start

    Begin connecting a Google ANTIGRAVITY account (used by the Claude/Gemini models via OmniRoute — not a Google Flow account). Returns `authorize_url` and `state`. The next step is on the USER's side: give them `next_step` wording and the URL, they sign in and press Accept in their…

  • add_antigravity_submit

    Finish connecting a Google Antigravity account started with add_antigravity_start. `code` is the value of `?code=...` on the antigravity.google/oauth-callback page the user landed on; `state` is what add_antigravity_start returned. Returns {status, account_id, account_email, req…

  • complete_antigravity_account

    Finish an Antigravity account started with add_antigravity_submit. Creates the GCP project needed before the account can serve LLM requests. Idempotent — safe to retry; already-onboarded accounts return their project_id.

  • list_llm_accounts

    List the Google accounts you connected for the LLM relay with their tier (Free/Pro/Ultra); refresh=True re-checks the tier with Google. The model is chosen per request (chat tools / relay `model`); pin an account with the `X-Account-Email` header.

  • flow_status

    What this key still needs before it can do everything — READ-ONLY, spends nothing. Call this BEFORE the first generation of a session, whenever a call is refused, and whenever the user asks why something does not work. It answers in one shot: is a Google account connected, how m…

  • flow_health

    Check whether the Flow generation backend is reachable and see current queue depth (queued + warming + running jobs), plus disk state (`disk`: free_gb, below_target, below_floor, refusing_jobs); status is "degraded" when disk is below the floor. Note: the Android emulator is now…

  • list_live_models

    Live from Google, no credits, use to answer «is this model still working?». Reads Google Flow's own current model catalog (modelConfig: usage keys, per-tier credit prices, durations) and the availability status of each model family, through one of the caller's connected accounts…

  • list_models

    List every valid model id this service accepts — READ-ONLY, spends no credits, calls nothing outside this service. Call this BEFORE generate_image/generate_video if you're unsure of an exact id: guessing (e.g. the family key "nano_banana_pro" or a display name like "Nano Banana…

  • chat_gemini_pro

    Запрос к Gemini 3 Pro через вашу подписку Google AI Pro. Использует ваш подключённый Google-аккаунт (подключите на /connect-google). Расходует вашу квоту Google, не наши токены. Args: messages: список {"role": "user|assistant", "content": "..."}. system: системный промпт (опцион…

  • chat_gemini_flash

    Быстрый и дешёвый Gemini 3 Flash — для коротких запросов, классификации, извлечения полей из текста. Идёт в вашу подписку Google, наши токены не тратит. Args: messages: список {"role": "user|assistant", "content": "..."}. system: системный промпт (опционально). max_tokens: макси…

  • chat_claude_sonnet

    Запрос к Claude Sonnet 4.6 через вашу подписку Anthropic (если подключена) или через подписку Google (Vertex). Поддерживает инструменты (tool_use). Args: messages: список {"role": "user|assistant", "content": "..."}. system: системный промпт (опционально). max_tokens: максимальн…

  • chat_gemini_argon

    Запрос к Gemini 4 Argon (medium) через вашу подписку Google AI Pro. Самая новая линейка Gemini. Требует аккаунт, которому Argon открыт: если Google отвечает 404 на модель, у подключённого аккаунта нет доступа — смотрите list_available_llm и переключайтесь через account_email. Ar…

  • chat_gemini_carbon

    Запрос к Gemini 4 Carbon (medium) через вашу подписку Google AI Pro. Средняя линейка Gemini 4: дешевле и быстрее Hydrogen при похожем качестве на коротких задачах. Как и остальные Gemini 4, требует аккаунт, которому Carbon открыт: 404 от Google значит, что у подключённого аккаун…

  • chat_gemini_hydrogen

    Запрос к Gemini 4 Hydrogen (medium) через вашу подписку Google AI Pro. Старшая линейка Gemini 4: до 262144 токенов выхода у самой модели, есть уровень размышления `xhigh` (`gemini-4-hydrogen-xhigh`). Требует аккаунт, которому Hydrogen открыт: 404 от Google значит, что у подключё…

  • chat_claude_opus

    Запрос к Claude Opus 5.5 (medium) — сильная модель для сложных задач. Поддерживает tool_use. Если модель не отдаётся, у аккаунта нет доступа — проверьте list_available_llm. Args: messages: список {"role": "user|assistant", "content": "..."}. system: системный промпт (опционально…

  • chat_claude_sonnet_55

    Запрос к Claude Sonnet 5.5 (high) — быстрее Opus 5.5, поддерживает tool_use. Args: messages: список {"role": "user|assistant", "content": "..."}. system: системный промпт (опционально). max_tokens: максимальное количество токенов в ответе. tools: описание инструментов в формате…

  • list_available_llm

    Какие LLM-модели доступны этому ключу прямо сейчас, и какая у ключа квота. Делает два параллельных запроса: GET /llm/models (OmniRoute — список моделей и подключённых Google-аккаунтов) и GET /v1/me (openFlow — plan + квоты). ETag от /v1/me держится OmniRoute'ом в кэше ~5 минут;…

  • refresh_llm_models

    Получить актуальный список LLM-моделей из каталога OmniRoute. OmniRoute сам опрашивает Google раз в час; `force_live=True` просит релей сходить в Google прямо сейчас (жёсткий rate-limit на стороне релея: не чаще 10 секунд). Полезно, когда клиент видит 404 на недавно добавленную…

Headers

NameDescription
Authorization
Required, secret
Bearer <key>. Get a key instantly at https://openflowmcp.com/ — no card, images are free.

Details

Endpointhttps://openflowmcp.com/mcp (Streamable HTTP)
First published23 Aug 2026
Last updated23 Aug 2026
Registry nameio.github.molkex/omni-flash-veo3-nano-banana

More ai and media servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.