google-flow-mcp
Provides tools for generating images in Google Flow via its web UI, including selecting the model, aspect ratio, and image count, submitting prompts, monitoring generation, and downloading results at 1K, 2K, or 4K.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@google-flow-mcp Generate 4 cinematic 16:9 lighthouse images with Nano Banana Pro and save them at 1K"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
google-flow-mcp
An MCP server that lets AI agents like Claude generate images in Google Flow and download them to disk.
An agent can:
choose the model, aspect ratio and number of images
submit a prompt and wait for the results
download them at 1K (original), 2K or 4K (upscaled)
It works by operating the real Flow web app in a Chrome window that you sign into once. You don't need an API key.
Unofficial. This project is not affiliated with or endorsed by Google. It automates Flow's web UI on your own account, using your own subscription and credits. Review Google's terms before using it heavily, and expect breakage when Flow changes its UI.
Contents
Related MCP server: google-flow-mcp
Requirements
Node.js 20 or newer
Google Chrome (or Chromium)
A Google account with access to Flow (a Google AI plan for paid models and credits)
Install
git clone https://github.com/Dilantha-Wijesinghe/google-flow-mcp.git
cd google-flow-mcp
npm install # also builds dist/Claude Code
claude mcp add google-flow -- node /absolute/path/to/google-flow-mcp/dist/index.jsClaude Desktop and other MCP clients
{
"mcpServers": {
"google-flow": {
"command": "node",
"args": ["/absolute/path/to/google-flow-mcp/dist/index.js"]
}
}
}First run
Ask your agent to call
flow_status, or runnpm run call -- flow_status.The server launches Chrome with a dedicated profile (
~/.flow-mcp/chrome-profile) and remote debugging on127.0.0.1:9222.Sign into Google in that window and open flow.google.com once. The sign-in persists for later sessions.
Why a separate profile? Chrome 136 and later refuse remote debugging on your everyday profile. Google sign-in also blocks browsers launched by automation tools. So the server starts a normal Chrome process on its own profile and attaches to it.
Tools
Tool | Purpose |
| Connect to Chrome, launching it if needed, and report |
| List the models, aspect ratios and counts Flow currently offers your account, read live from the UI. |
| Generate images. Returns new |
| Download images by media id at |
flow_generate_images arguments
Argument | Description |
| Required. |
|
|
| Full name or a unique fragment, e.g. |
| 1–4. |
|
|
| Default |
| Apply the settings and return the credit cost without generating. |
| Download the results in the same call. The default directory is |
| Default 240. |
Example
"Generate 4 cinematic 16:9 images of a lighthouse at golden hour with Nano Banana Pro and save them to ~/Pictures/lighthouse."
The agent calls:
{
"prompt": "A lighthouse on a rocky coast at golden hour, cinematic wide shot",
"model": "Nano Banana Pro",
"aspect_ratio": "16:9",
"count": 4,
"download_size": "1K",
"output_dir": "/Users/you/Pictures/lighthouse"
}And it gets back:
{
"projectUrl": "https://flow.google.com/project/…",
"mediaIds": ["37be9df5-…", "38d1a484-…", "…"],
"credits": 0,
"settings": "Nano Banana Pro · 16:9 · x4",
"files": [{ "mediaId": "37be9df5-…", "path": "/Users/you/Pictures/lighthouse/Lighthouse_…_1K_37be9df5.jpg", "bytes": 917811 }],
"failures": []
}Command-line testing
npm run call # list tools
npm run call -- flow_status
npm run call -- flow_get_options
npm run call -- flow_generate_images '{"prompt":"a red fox in snow","aspect_ratio":"16:9","count":2,"download_size":"1K"}'Configuration
Set these environment variables in your MCP client config:
Variable | Default |
|
|
|
|
| Auto-detected for macOS, Windows and Linux. |
|
|
|
|
How it works
These details were observed on flow.google.com in October 2026.
Settings: the prompt bar's settings chip opens a popover containing:
Image/Video toggles, aspect ratio and count, all Angular Material
role=radiobuttons matched by label.A model menu.
Prompt: a ProseMirror editor. The server types into it with real keyboard input.
Credits: before submitting, the server reads the "Generating will use N credits" line and enforces
max_credits.Progress: each pending image shows a
.loading-percentageplaceholder. Finished images are<img data-media-id>tiles. New images are found by diffing media ids before and after.Download: the tile menu offers Download → 1K, 2K or 4K. Flow builds the file as a
blob:URL and clicks an<a download>. The server intercepts only the click it triggered and writes the bytes where you asked, so Chrome's download settings don't matter.One job at a time: jobs are serialized. Flow attaches a single-use reCAPTCHA token to each generation and flags rapid-fire requests.
All selectors live in SEL at the top of src/flow.ts.
Why UI automation and not Flow's private API?
In September 2026 Flow moved from labs.google/fx to flow.google.com, and the old aisandbox-pa.googleapis.com endpoints stopped working. The new backend uses Google's internal batchexecute RPC, and each generation needs a single-use reCAPTCHA Enterprise token minted in the browser. Replaying that traffic over plain HTTP means working around the bot check. It also breaks every time RPC ids rotate. Driving the real UI is slower, around 20 seconds per batch, but it stays within normal use of the site.
Troubleshooting
Symptom | Fix |
| Sign into Google in the Chrome window the server opened, then retry. |
| Chrome isn't running with remote debugging. Leave |
Port 9222 in use | Set |
Timeouts or "not found" after a Flow update | Flow's UI changed. Update the selectors in |
| Working as intended. Raise |
Known limitations
Images only. Flow's video mode is not wired up yet.
2K and 4K downloads trigger Flow's upscaler, which may use credits.
max_creditsdoes not cover upscaling.Tested on macOS with Chrome 155. Windows and Linux paths are auto-detected but less tested.
Security
~/.flow-mcp/chrome-profileholds a signed-in Google session. Treat it like a password and never share or commit it.The DevTools port is bound to
127.0.0.1. Anything running locally as your user can drive that browser while it is open, so close the window when you're not using it.To report a vulnerability, use GitHub's private vulnerability reporting.
Contributing
Issues and pull requests are welcome. See CONTRIBUTING.md.
Related projects
These were reviewed while building this one:
License
Available Tools
4 toolsflow_download_imagesDownload Flow imagesA
Download images from a Flow project by media id. 1K is the original file; 2K and 4K are upscaled by Flow on request and can take a few minutes.
Inputs: media_ids (required), size, project, output_dir.
flow_generate_imagesGenerate images in FlowA
Set aspect ratio, model and number of images in Google Flow, submit the prompt, and wait until the images finish. Returns the new media ids. Pass download_size to also download them in the same call. Refuses to run when Flow says it would cost more than max_credits.
Inputs: prompt (required), count, model, dry_run, +6 more.
flow_get_optionsList Flow image optionsA
Read the image models, aspect ratios and image counts Flow currently offers this account, plus the current selection. Values are read live from the UI; use them verbatim in flow_generate_images.
Inputs: project.
flow_statusFlow statusA
Connect to the Flow Chrome window (launching it on first use) and report whether you are signed in. Call this first; if signedIn is false, ask the user to sign into Google in the Chrome window that opened.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool maps to a distinct step in a linear pipeline (connect/sign-in, read options, generate, download), so misselection is unlikely. The one soft overlap is that flow_generate_images can also download when given download_size, duplicating part of flow_download_images' purpose.
All names share a clear flow_ prefix in snake_case, and three of four follow a verb_noun pattern (get_options, generate_images, download_images). flow_status deviates by omitting the verb, a minor inconsistency against an otherwise predictable scheme.
Four tools is a tight, purposeful set matching a narrow browser-automation workflow, with no filler tools. It sits at the low edge of the comfortable range, but each tool earns its place as a pipeline stage.
The happy path (status, options, generate, download) is fully covered with no dead ends for a straightforward generation run. Minor gaps exist around recovery and discovery: no way to list existing projects/media ids or re-check an in-flight generation, so a timed-out generate leaves the agent with no fallback.
Maintenance
Related MCP Connectors
Let AI agents use your real, signed-in Chrome: tabs, clicks, forms, screenshots and video.
Google Flow's agent: chat that plans and makes images and videos, approvals, your own media
Generate images, GIFs, videos, and PDFs from HTML, URLs, or templates — from your AI agent.
Give AI agents a real cloud Chrome: open sessions, navigate, read pages, click, type and screenshot.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI agents to drive Google Flow through a real Chrome profile to generate images, videos, characters, and scenes without sharing credentials.41916 npm2MIT
- AlicenseNot gradedqualityCmaintenanceEnables generating images and videos on Google Flow through browser automation using your Google AI Pro subscription, with image generation free and video consuming Flow credits.115 npm1MIT
- AlicenseNot gradedqualityCmaintenanceEnables generating images and videos in Google Flow through an automated browser session using your Google AI Pro subscription, without API keys or third-party credit fees.115 npm2MIT
- AlicenseBqualityBmaintenanceEnables users to generate images and videos on Google Flow through browser automation of an already signed-in Chrome session, downloading the finished media to disk without any API keys. It drives Flow's agent with a range of image and video models, plus reference images, first/last frames, and ingredient-based video jobs, while reusing the user's own Google AI Pro credits.17MIT