google-flow-mcp
Enables generating images and videos on Google Flow through browser automation, using an authenticated Google account to create media such as Nano Banana/Imagen images and Veo videos, and download the generated results.
Click on "Install 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-mcpGenerate a video of a futuristic city skyline at sunset"
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
MCP server that generates images and video on Google Flow through browser automation, so you can use your own Google AI Pro subscription instead of paying per-credit services. Ships with a Claude Code skill.
Validated end-to-end: images (Nano Banana / Imagen) and video (Veo 3.1 / Omni Flash) are generated in a real Flow project and downloaded to disk.
Adapted and hardened for the current agent-first Flow UI (and Windows) from TMSSS05/google-flow-browser-mcp.
This repository is a fork of GabrielGargiuloDev/google-flow-mcp (MIT, see
LICENSE), maintained here because upstream stopped working when Google moved Flow toflow.google.comin 2026-09. See Fork changes.
flow_generate — the agent-free path
Flow's prompt bar has an Agent chip. Pressed, a language model reads the prompt, rewrites it and picks the parameters; ratio and model are account-wide defaults and no price is shown anywhere before the spend. Released, the bar exposes its own control panel — mode, ratio, model, resolution, duration, count — and prints the exact credit cost of the next click.
flow_generate drives the released state and is the preferred tool. flow_generate_image
and flow_generate_video remain for the agent path.
// Costs nothing: configures, reads the price off the page, returns.
{ "prompt": "a red bicycle against a yellow brick wall",
"mode": "image", "ratio": "9:16", "model": "Nano Banana Pro", "count": "x1" }
// -> { "credits_required": 0, "configured": "Nano Banana Pro · crop_9_16 · x1", ... }
// Same call plus auto_confirm submits that exact configuration.
{ "...": "...", "auto_confirm": true }What it buys:
The price before the spend. Read from the panel, so
auto_confirm: falseis a real quote and asking never submits. Images are 0 credits; a 720p/10s/x1 video is 15.Parameters that are per call and verified. Every toggle carries
aria-checkedand is read back after clicking, so a parameter that did not take throws instead of being reported as applied.The prompt reaches the model verbatim — nothing rewrites it, and the imperative wrapper the agent path needs is gone.
Three defects found while building it, all of which also affect the agent path:
createNewProjectran its "did Flow ask for a project name?" step unconditionally. Inside a project the only[contenteditable]is the prompt box, and its confirm list included[type="submit"]— the generate button. So every new project silently generated an extra image captioned with the project name. Free for images; 15 credits a call for video.Taking the first media that appears after submitting returned a valid, correctly sized, entirely unrelated image — the spurious generation above landed first. The scan now waits for the set to stop growing.
The same asset is served at several signed URLs, so comparing whole URLs downloaded one image twice. Identity is now the media id (
mediaIdinsrc/utils/media-urls.js).
Each downloaded file is reported with the title Flow gave its tile, which is what says whether the output answered the prompt.
Related MCP server: Google Flow Browser MCP
Fork changes
Upstream was written against labs.google/fx/tools/flow and no longer runs: Google moved
Flow to its own domain and changed how media is served. Every fix below was measured against
the live app, not inferred.
# | Broken upstream | Fix |
1 |
| log to stderr |
2 |
|
|
3 | Download endpoint | fetch the media URL directly on the session cookie |
4 | Media URLs no longer carry a uuid |
|
5 |
|
|
6 | Aspect ratio was accepted as an argument and silently ignored — a 9:16 request returned 1024x1024 | applied in the Settings panel, and the result reports whether it landed |
The result payload also reported ratio, model_used and credits_consumed as claims rather
than measurements. They now say what actually happened, including "unknown" where the UI
exposes no number.
Locale: set flowUrl to https://flow.google.com/?hl=en. Without hl=en the UI renders
in the account's language and every English selector misses. Upstream's French/Italian
selectors are unnecessary with the override.
What it does
Playwright connects over the Chrome DevTools Protocol to a dedicated Chrome that is logged into your Google account. It drives Flow's agent to generate media and downloads the result through the authenticated session. No API keys, no password handling — it uses your existing browser session.
Tools (17): flow_connect, flow_status, flow_account_check, flow_discover_ui,
flow_generate_image, flow_generate_video, flow_download_latest, character/scene
tools, flow_use_grid_architect, flow_screenshot, flow_queue_status, …
⚠️ Terms of Service
This is unofficial browser automation. There is no official Google API for Flow.
The launcher starts Chrome directly so navigator.webdriver is false, which is an
explicit anti-bot measure. Automating Google properties can violate Google's Terms of
Service and may put your account at risk. Use at your own risk, on your own account.
Requirements
Node.js ≥ 18
Google Chrome (Chrome 149+ needs Playwright ≥ 1.61.1, already pinned)
A Google account with access to Flow (Google AI Pro recommended)
Setup
npm install
cp config/flow.config.example.json config/flow.config.json
# edit config/flow.config.json → set expectedAccount and chromeUserDataDirStart the dedicated Chrome (idempotent — launches only if needed):
powershell -File scripts/ensure-flow-chrome.ps1First run: in that Chrome window, sign in to your Google account and click "Sign in to Flow" on labs.google (Flow uses a separate sign-in). The session is saved in the dedicated profile and reused.
Register the server with your MCP client (Claude Code, etc.):
{
"mcpServers": {
"google-flow": { "type": "stdio", "command": "node", "args": ["<path>/src/index.js"] }
}
}Restart the client afterwards (the server loads into memory at startup).
Notes that matter
Images are effectively free against the monthly Flow credit pool; video consumes credits (Veo 3.1 Lite ~10, Fast ~20, Quality ~100; Omni Flash ~15-30 of ~1000/month). Video shows a credit-confirmation dialog which the server approves.
Model/duration must be a valid combo or Flow's agent asks for clarification and nothing generates (e.g. Veo 3.1 Lite is 8s-only on the Pro plan; Omni Flash 4-10s).
Flow is agent-first: prompts are wrapped imperatively so the agent generates directly instead of asking questions.
The UI language follows your Google account; navigation selectors cover IT/FR/EN.
Claude Code skill
skill/SKILL.md is a ready-to-use skill: drop it in ~/.claude/skills/google-flow-generate/
and Claude will pick the right tool, handle Chrome startup and fallbacks automatically.
License
MIT — see LICENSE.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- FlowNodeOAuthio.flownode
Generate images, video, audio and 3D with FlowNode; results land in your asset library.
Generate AI images, videos, music, SFX & speech in any AI assistant. Results appear inline in chat.
Generate images, videos, voiceovers, and captions from a chat prompt.
Generate images with your own ChatGPT subscription (Plus, Pro or Team), without spending API credits
Related MCP Servers
- AlicenseAqualityDmaintenanceControls Google Flow for image and video generation from an AI agent. Enables generating images with models like Imagen 4, creating videos, managing characters and scenes via browser automation.177248MIT
- AlicenseAqualityBmaintenanceEnables AI agents to drive Google Flow through a real Chrome profile to generate images, videos, characters, and scenes without sharing credentials.1919MIT
- FlicenseNot gradedqualityCmaintenanceEnables generating images, videos, characters, and scenes through Google Flow. Supports SSE and Vercel deployment for integration with Gemini Spark and other IDEs.-
- AlicenseAqualityAmaintenanceEnables AI agents to programmatically generate images and videos through the authenticated Google Flow web interface via a direct Chrome DevTools Protocol connection, exposing tools for media generation, project management, status checks, and asset downloads without requiring official API keys.272MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/H0wZy/google-flow-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server