openFlow
by openflowmcp.com in Other
Omni Flash and Veo video, Nano Banana images on Google Flow, from any MCP client
https://openflowmcp.com/mcp- Tools
- 49
- open to any client
- Uptime
- 100%
- last 30 days
- Response time
- 215 ms
- 299 ms slowest 5%
- Last check
- Passed
- 10 h ago, next any minute now
Reliability
Status and outage history · Atom feed · Watch with other listings
How to connect
Add it to any MCP client that supports remote servers.
{
"mcpServers": {
"openflow": {
"type": "http",
"url": "https://openflowmcp.com/mcp"
}
}
}49 tools
- 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…
- 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…
- 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…
- 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…
- 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…
- 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…
- 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…
- 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…
- 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…
- 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…
- 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…
- 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…
- 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…
- 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…
- 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_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…
- 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…
- 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…
- 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…
- 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…
- 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…
- generate_voice
Speak `text` aloud with a Gemini TTS voice and return a WAV (24 kHz, mono, 16-bit). Takes ~15-25 seconds. 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 characters)…
- 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…
- 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…
- 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…
- 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…
- 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"…
- 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…
- 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…
- 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…
- 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…
- 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.
Security scan
4 findings
- Unusually long description in tool:generate_image
generate_image (generate image) Generate an image from a text prompt via Google … - Unusually long description in tool:generate_scene
generate_scene (generate scene) Build a location precisely from a scene-layout/v… - Unusually long description in tool:create_character_from_photo
create_character_from_photo (create character from photo) Create a new Flow char… - Unusually long description in tool:add_account_token
add_account_token (add account token) Attach one of YOUR OWN Google accounts to …
Recent checks
| When | Result | HTTP | Time |
|---|---|---|---|
| 10 h ago | Passed | 200 | 236 ms |
| 19 h ago | Passed | 200 | 253 ms |
| 29 h ago | Passed | 200 | 266 ms |
| 38 h ago | Passed | 200 | 234 ms |
| 2 days ago | Passed | 200 | 231 ms |
Show 10 older checks
| 2 days ago | Passed | 200 | 215 ms |
| 3 days ago | Passed | 200 | 219 ms |
| 3 days ago | Passed | 200 | 210 ms |
| 4 days ago | Passed | 200 | 207 ms |
| 4 days ago | Passed | 200 | 210 ms |
| 4 days ago | Passed | 200 | 183 ms |
| 5 days ago | Passed | 200 | 201 ms |
| 5 days ago | Passed | 200 | 299 ms |
| 6 days ago | Passed | 200 | 219 ms |
| 6 days ago | Passed | 200 | 213 ms |