Google Flow MCP
Enables browser automation of Google Flow (Veo 3.1 & Imagen) via MCP tools for checking status, launching a headless browser, opening tabs, inspecting the canvas, executing prompts, clicking elements, capturing screenshots, and evaluating custom JavaScript in the Google Flow web app.
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 a video of a cat surfing a wave 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 Template
Universal, High-Performance Background MCP Server & Browser Bridge
Seamless, silent browser automation for Google Flow (flow.google.com) (Veo 3.1 & Imagen) and modern web applications.
Runs 100% headlessly in the background without popups or manual port wrangling. Ready to use as a GitHub Template.
π Privacy, Security & 100% Local Isolation
This template is designed from the ground up for complete individual privacy and security:
π€ Your Own Google Account: You authenticate exclusively with your own Google account into your own personal Google Flow creative workspace. No accounts, projects, or generations are ever shared.
π» Your Own Local Browser: The MCP server launches the Chromium browser installed directly on your machine (Google Chrome, Brave, Arc, Edge, or Chromium).
π 100% Local Execution (Stdio): The server runs strictly as a local subprocess on your machine using standard input/output (
stdio). It does NOT expose any external network ports or web servers to the internet.π‘οΈ Isolated Session Storage: Your login cookies and auth tokens are saved only on your local filesystem (
~/.google-flow-mcp/profile). Session directories are strictly ignored by.gitignoreand can never be committed or uploaded.π« Zero Telemetry: No analytics, no third-party APIs, and no telemetry. All web communication occurs directly between your local browser and Google's official servers (
flow.google.com).
Related MCP server: Cloudflare Playwright MCP
β‘ Why This Template Exists
Google Flow and other AI creative studios provide cutting-edge video and image models, but lack official REST APIs. Standard automation tools usually:
Pop up disruptive browser windows across your screen.
Require tedious manual Chrome terminal flags (
--remote-debugging-port=9222) before every launch.Are hardcoded to one operating system or one browser.
Google Flow MCP Template is a universal, ready-to-fork solution:
π₯· Silent Background Execution: Runs modern Chromium in headless mode (
--headless=new). Zero windows popping up on your screen.π Cross-Platform & Multi-Browser: Automatically detects Google Chrome, Chromium, Arc, Brave, and Edge on macOS, Linux, and Windows, with optional
BROWSER_PATHoverride.π Seamless Auto-Connection: Automatically discovers running debugging sessions or self-heals by spawning a quiet headless instance. No manual port setup needed.
π Persistent Authentication: Saves your Google login cookies & tokens to your local home directory. Authenticate once, and subsequent generations run automatically in the background.
π§ͺ Built-in Universal Test Suite: Verify browser discovery, headless lifecycle, DOM inspection, and screenshot capture in 5 seconds with
npm test.π― Custom Target URL: Defaults to Google Flow, but can bridge any web application simply by setting
FLOW_URLorTARGET_URL.
π οΈ MCP Tools
Tool | Description |
| Checks local background browser connection, current page, and login status. |
| Switches execution modes ( |
| Navigates or focuses |
| Returns structured, lightweight JSON of prompt inputs, action buttons, and canvas nodes. |
| Injects prompts into Google Flow's generation bar and submits them seamlessly. |
| Precision click handler using CSS selectors, text matches, or aria-labels. |
| Captures background high-res screenshots and saves to your local disk. |
| Runs custom JavaScript in the active page context on your local browser. |
π Quickstart for Anyone
1. Create Your Own Repo from this Template
Click the green Use this template button on GitHub, then clone your repository:
git clone https://github.com/<your-username>/<your-repo-name>.git
cd <your-repo-name>
npm install2. Log in to YOUR Google Flow Account (One-Time Setup)
Run the guided local authentication wizard:
npm run setupThis opens a browser window on your computer.
Sign in to your personal Google Account on
flow.google.com.The wizard automatically detects when you are logged in, saves your session locally to
~/.google-flow-mcp/profile, and closes the window.
3. Test Your Local Browser Connection
Run the universal test suite to verify your local browser discovery and background connectivity:
npm testOutputs:
π§ͺ Starting Google Flow MCP Universal Connection Test
[1] Testing: Browser Executable Discovery... β PASSED
[2] Testing: Headless Background Lifecycle... β PASSED
[3] Testing: Target Page Navigation & Auth State... β PASSED
[4] Testing: Workspace Inspection & Node Parsing... β PASSED
[5] Testing: Page Context JavaScript Evaluation... β PASSED
[6] Testing: Silent Background Screenshot Capture... β PASSED
[7] Testing: Graceful Teardown & Resource Cleanup... β PASSED
π ALL TESTS PASSED (7/7)4. Verify Background Status Anytime
npm run statusβοΈ MCP Host Configuration
Add this server to your local Antigravity, Claude Desktop, Cursor, or Windsurf MCP configuration:
{
"mcpServers": {
"google-flow": {
"command": "node",
"args": [
"/absolute/path/to/your/cloned/google-flow-mcp/index.js"
]
}
}
}π§ Environment Variables
Copy .env.example to configure custom behavior:
Variable | Description | Default |
| Explicit path to a browser binary | Auto-detected |
| Remote debugging port |
|
| Target web application URL |
|
| Session and cookie persistence directory |
|
π Project Architecture
google-flow-mcp/
βββ index.js # Root executable entry point
βββ package.json # Scripts ("start", "setup", "status", "test"), deps
βββ README.md # Universal template documentation
βββ LICENSE # MIT License
βββ .gitignore # Ignores profiles, screenshots, logs, node_modules
βββ .env.example # Example configuration options
βββ test/
β βββ test-connection.js # Automated 7-step connection test suite
βββ src/
βββ browser.js # Cross-platform browser discovery & headless lifecycle
βββ flow.js # Google Flow semantic DOM actions & prompt injection
βββ index.js # Model Context Protocol stdio server & tool dispatchersπ License
MIT Β© csmc387-cloud
Available Tools
8 toolsflow_clickB
Clicks an element in the page by CSS selector, text, or aria-label.
Inputs: text, selector, ariaLabel.
flow_eval_jsC
Runs custom JavaScript in the active page context on your local browser.
Inputs: script (required).
flow_execute_promptC
Injects a creative prompt into Google Flow and triggers generation in your personal workspace.
Inputs: prompt (required), submit, selector.
flow_inspect_canvasB
Inspects active Google Flow workspace: returns prompt inputs, action buttons, and canvas nodes.
Inputs: no named parameters.
flow_launch_browserC
Controls local browser execution mode (headless background vs headed window for 1-time login).
Inputs: port, headed, targetUrl.
flow_open_tabB
Navigates to or focuses Google Flow in your local browser.
Inputs: url.
flow_screenshotA
Captures a screenshot of the active Google Flow workspace in your local background browser.
Inputs: filename.
flow_statusB
Checks local browser connection, background status, and local Google Flow login state.
Inputs: port.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 8 tools
Most tools have clearly distinct purposes: status, browser launch mode, tab navigation, canvas inspection, prompt execution, clicking, screenshot, and JS eval. The only mild overlap is flow_launch_browser vs flow_open_tab and the low-level flow_click vs flow_eval_js, but the descriptions distinguish them adequately.
All tools use a consistent flow_ prefix with snake_case, and most follow a verb_noun shape (launch_browser, open_tab, inspect_canvas, execute_prompt). flow_status is a minor noun-only deviation, but overall the convention is predictable.
Eight tools is well-scoped for a browser-automation server, covering setup, navigation, inspection, action, and debugging without redundancy. Each tool earns its place.
The surface covers the full browser-automation lifecycle: connection/status, launch mode, navigation, inspection, prompt execution, clicking, screenshots, and arbitrary JS. Minor gaps exist (no explicit text/typing, scroll, or wait tools), but flow_eval_js and flow_click let agents work around them.
Maintenance
Related MCP Connectors
Control a real browser from AI agents: navigate, click, type, screenshot, read the page.
Give AI agents a real cloud Chrome: open sessions, navigate, read pages, click, type and screenshot.
Let AI agents use your real, signed-in Chrome: tabs, clicks, forms, screenshots and video.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to control a browser through a set of tools, allowing them to perform web automation tasks like navigation, typing, clicking, and taking screenshots.Apache 2.0
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to control a browser for web automation tasks like navigation, typing, clicking, and taking screenshots.Apache 2.0
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to control a browser through a set of tools, allowing them to perform web automation tasks like navigation, typing, clicking, and taking screenshots.Apache 2.0
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to control a browser for web automation tasks such as navigation, typing, clicking, and taking screenshots.Apache 2.0