Google Flow Browser MCP
Google Flow Browser MCP
A local Model Context Protocol server that lets MCP clients such as Claude Code and Codex operate Google Flow through a visible Chrome or Edge window.
The server supports project tracking, assisted login, page inspection, reference uploads, generation preparation, explicit submission, progress recovery, media download, and FFprobe validation. It exposes 22 MCP tools and stores durable state in SQLite.
This is an unofficial browser automation project. Google Flow does not expose a stable public API for this workflow. Website changes may require adapter updates.
Safety model
Every user runs the MCP server and browser locally.
Users sign in to their own Google account in the visible browser window.
The server never asks for, reads, types, stores, or repeats passwords, verification codes, recovery answers, or 2FA tokens.
Credit-consuming generation requires an explicit confirmation before submission.
Browser profiles, cookies, databases, generated media, and environment files are excluded from Git.
Users are responsible for their Google Flow access, credits, regional availability, and compliance with applicable terms.
Requirements
Node.js 22.13 or newer
pnpm
Google Chrome or Microsoft Edge
FFmpeg/FFprobe for local media validation
A Google account with access to Google Flow
One-command Claude Code install
macOS, Linux, or WSL:
claude mcp add --scope user google-flow -- npx -y google-flow-browser-mcpNative Windows:
claude mcp add --scope user google-flow -- cmd /c npx -y google-flow-browser-mcpConfirm the registration, restart Claude Code, and open /mcp:
claude mcp get google-flowInstall from source
git clone https://github.com/hitjcl/google-flow-mcp.git
cd google-flow-mcp
pnpm install --frozen-lockfile
pnpm testClaude Code
Register the built stdio server using the absolute path on your machine:
claude mcp add --scope user google-flow -- node "/absolute/path/google-flow-mcp/dist/src/index.js"
claude mcp get google-flowOn Windows PowerShell, for example:
claude mcp add --scope user google-flow -- node "C:\path\to\google-flow-mcp\dist\src\index.js"Restart Claude Code after registration. You can then ask:
Use Google Flow to create a 10-second 9:16 video. Ask me to sign in and confirm credits before submitting, then download and validate the result locally.
Other MCP clients
Use this stdio configuration and replace the path with an absolute local path:
{
"mcpServers": {
"google-flow": {
"command": "node",
"args": ["/absolute/path/google-flow-mcp/dist/src/index.js"]
}
}
}Recommended workflow
project_createflow_start_loginThe user signs in and confirms membership and credits in the visible browser
flow_confirm_loginflow_open_projectandflow_inspect_pageOptionally
flow_upload_referenceandflow_bind_assetflow_prepare_generationAfter explicit user approval,
flow_submit_generationflow_wait_for_generationflow_download_mediamedia_validate_local
Generation polling is resumable. A timeout does not mark the job as failed, and successful media IDs are written to SQLite immediately.
Data and configuration
Runtime data defaults to ~/.google-flow-creator/:
browser-profile/— local Chrome profile and login sessionstate.sqlite— projects, jobs, attempts, assets, and media IDsstate.json— optional legacy state imported on first usedownloads/— downloaded media
Override locations with environment variables:
FLOW_BROWSER_EXECUTABLEFLOW_DATA_DIRFLOW_PROFILE_DIRFLOW_STATE_FILEFLOW_DATABASE_FILEFLOW_DOWNLOAD_DIR
Never commit or share the runtime data directory because the browser profile can contain active login sessions.
Development
pnpm run check
pnpm test
pnpm run healthProduction maintenance commands:
pnpm run healthchecks the runtime, database, browser, and FFprobe.pnpm run backupcreates a consistent SQLite backup.pnpm run smokeperforms a read/download smoke test using an existing completed video.
License
MIT