flow-mcp
Health Warn
- No license — Repository has no license file
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 34 GitHub stars
Code Fail
- process.env — Environment variable access in scripts/e2e.mjs
- process.env — Environment variable access in src/assemble.ts
- process.env — Environment variable access in src/chain.ts
- process.env — Environment variable access in src/chrome.ts
- network request — Outbound network request in src/chrome.ts
- process.env — Environment variable access in src/core.ts
- eval() — Dynamic code execution via eval() in src/flow.ts
- process.env — Environment variable access in src/flow.ts
- process.env — Environment variable access in src/gemini.ts
- network request — Outbound network request in src/gemini.ts
- process.env — Environment variable access in src/index.ts
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Drive Google Flow from Claude, Codex or a local control panel, on Mac or Windows — using your Google AI subscription credits instead of the pay-per-use video API. No browser extension.
flow-mcp
Drive Google Flow (flow.google.com) from Claude, Codex or any other MCP app, or from a local control
panel, using Flow's own credits (free with any Google account: 50 a day), not the pay-per-use video API.
It is a small program that runs on your own machine. It opens its own Chrome window, signs in
as you, and clicks Flow's real buttons. There is no browser extension, no hosted service and no
account to create.
Claude / Codex ──stdio──> flow-mcp ──Chrome DevTools Protocol──> Chrome (its own profile) ──> Flow
MCP = Model Context Protocol, the standard that lets Claude use outside tools.
New here? GETTING-STARTED.md takes you from nothing to your first video, step by step, and
OVERVIEW.md explains what it does in plain English, with no code names.
What you need
| macOS or Windows 10/11 | Developed and tested on macOS. Windows is supported (Chrome, the computer's own voices, the Recycle Bin and the panel launcher all have Windows versions), but it hasn't been run on a real PC yet, so please report anything that breaks |
| Node.js 22 or newer | node --version |
| Google Chrome | Any recent version |
| A Google account | Free. Flow gives every account 50 credits a day; a paid Google AI plan adds more and unlocks 1080p downloads. Developed on a Pro plan |
| FFmpeg (optional) | Mac: brew install ffmpeg · Windows: winget install Gyan.FFmpeg. Needed only to join clips, mix music or record narration |
| A Google AI Studio key (optional, free) | Only for the Google narration voices. See below |
A display must stay awake: the Chrome window is really being driven, so the machine cannot be
headless or asleep mid-run.
Install
git clone https://github.com/GTAI-1/flow-mcp.git
cd flow-mcp
npm install
npm run build
Mac: do not put this folder in
~/Desktop,~/Documentsor~/Downloads. macOS protects those
folders, and apps that launch the server from there can be refused permission to read its own
files (EPERM: operation not permitted).~/flow-mcpor anywhere in your home folder is fine.Windows: keep it out of folders OneDrive syncs (often Desktop and Documents), where files can be held
online-only.C:\Users\<you>\flow-mcpis fine.
Then sign in, once:
npm run login
That opens the dedicated Chrome window. Sign into Google by hand, open (or create) a Flow project,
and leave the window open. The program never types your password; it only uses the session you
created. That Chrome profile lives in ~/.flow-mcp/chrome-profile and is separate from your
everyday browser.
Connect it to Claude, Codex or Antigravity
Claude Code
claude mcp add --scope user flow -- node /absolute/path/to/flow-mcp/dist/index.js
--scope user makes it available in every folder; the default (local) only works in the folder you ran it from.
Claude Desktop: add to claude_desktop_config.json (Mac: ~/Library/Application Support/Claude/, Windows:%APPDATA%\Claude\). On Windows, write the path with doubled backslashes, like"C:\\Users\\you\\flow-mcp\\dist\\index.js":
{ "mcpServers": { "flow": { "command": "node", "args": ["/absolute/path/to/flow-mcp/dist/index.js"] } } }
Codex: add to ~/.codex/config.toml (on Windows, %USERPROFILE%\.codex\config.toml):
[mcp_servers.flow]
command = "node"
args = ["/absolute/path/to/flow-mcp/dist/index.js"]
Or run codex mcp add flow -- node /absolute/path/to/flow-mcp/dist/index.js. No timeout setting is needed:
Codex, like most MCP apps, gives up on a tool call after 60 seconds, so any call that runs longer than about
45 seconds (creating a character, a 1080p download) answers with a task id instead and keeps working, andflow_wait collects the result.
Antigravity (Google's coding app): add a flow entry to mcp_config.json. On a Mac it lives in~/.gemini/antigravity/; you can also open it from the agent panel's … menu → Manage MCP Servers →
View raw config. Keep any servers already listed and add this one beside them:
{ "mcpServers": { "flow": { "command": "node", "args": ["/absolute/path/to/flow-mcp/dist/index.js"] } } }
Other MCP apps (Cursor, VS Code and others) take the same command and arguments in their own MCP
settings. ChatGPT in the browser or the ChatGPT app can't use it: its connectors only reach servers on
the internet, and this tool has to run on your own computer to drive your Chrome window.
Developed and tested with Claude. Codex and Antigravity speak the same protocol, so they should work the
same way, but neither has been tried yet, so please report how it goes. Running two of them at once is safe:
the first one started drives Flow, and the others pass their requests to it.
Restart the app, then ask it: "check my Flow session". You should get your plan and credit balance
back. Everything after that is plain English; you never type tool names.
Your first film
Nothing below costs a credit until step 4, and the assistant asks before spending.
- Check the session. "Check my Flow session." This confirms sign-in, plan and credits.
- Make a character. "Create a character called Pip, a small lamplighter in a flat cartoon style."
Flow draws the portrait. Free. - Draw the key frames. "Draw three stills with Pip: a dark rooftop, him lighting a lamp, the
whole hillside glowing. Match each one to the last." Free: stills cost nothing, so get the look
right here before spending. - Shoot it. "Turn those into three 10-second shots, each starting where the last one ended,
720p, no more than 15 credits each." This spends credits. The price is read from Flow's own
quote first and the scene is skipped if it is over your cap. - Narrate it. "Record this line with a warm documentary voice." Free, any length.
- Cut it. "Join the three shots under the narration, don't freeze the last frame."
The finished file lands in~/flow-mcp-out/<project>/.
The control panel
The same features, without an AI assistant in the loop:
npm run studio # then open http://127.0.0.1:8787
or double-click Flow Studio.command (Mac) or Flow Studio.cmd (Windows).
Seven tabs, in the order you would use them:
- Cast: reusable characters. Create them, edit them in place, or build one from a picture.
- Frames: free stills, with match previous frame to keep a set on-model.
- Shots: paid clips, with first/last frames, chaining, a live credit estimate, and a card that
continues a finished clip from its own last frame. - Voice: free narration in Google's voices or your computer's own. Your saved narrations are listed
here to play or delete, and there's a field for your Google AI Studio key (checked with Google, stored
only on your computer; never paste it into a chat). - Restyle: change a clip you already have.
- Cut: join any videos into one film, in the order you pick. Upload one, or choose from films you've
already made. Add a narration (from your saved ones or an upload) and music, and turn the clips' own
sound down so the narration sits on top. - Library: everything in your Flow project. Download it again for free (a scene comes down as one
finished film, not loose clips), or move it to Flow's Trash.
A progress monitor and a gallery of your saved work sit alongside. The gallery shows stills or clips
on the tabs that use them. On a wide screen, each side scrolls on its own. Two kinds of delete, clearly
labelled: Move to the Mac's Trash / Recycle Bin removes a file from your computer; Move to
Flow's Trash removes it from your Flow project only. Both can be undone.
The panel ships with the repo but is not started for you: run npm run studio when you want it.
Opening studio/index.html as a plain file does nothing; the page needs the server behind it, and
says so in red if you try.
Claude's own process serves the same panel while it runs. Whichever process starts first owns the
Chrome tab and the job queue; the other talks to it over a local API, so Claude and the panel always
agree on what is running. That API listens on 127.0.0.1 only and needs a per-run token
(~/.flow-mcp/token).
Tools
| Tool | Purpose |
|---|---|
flow_status |
Session state (signed in, project open, plan, credits left), queue, pacing, prompt playbook |
flow_generate |
Queue scenes: prompt, image or video, model, aspect, duration, resolution, variants, first/last frame, reference images, max_credits cap |
flow_wait |
Wait for jobs, or for the task id of a slow call; returns file paths and results. Answers within about 40 s, so call again until finished is true |
flow_cancel |
Cancel a job that has not started |
flow_retry |
Re-queue failed jobs with the same settings and file names (a failed tile is first retried inside Flow with its own free Retry button: retries, default 1) |
flow_assets |
List images and videos already in the Flow project (usable as asset:<title>) |
flow_download |
Download existing project media without regenerating. Free, including the 1080p / 2K upscale. A scene comes down as one stitched film |
flow_trash |
Move an image, video or scene in the Flow project to Flow's Trash, where it can be restored. Exact title only; refuses if two items share it; never deletes permanently |
flow_agent_images |
Fast image batch: hands up to 50 scenes to Flow's own Agent mode, rendered in parallel (20 images in ~204 s), 0 credits. Each image is matched back to its scene by its stored prompt, so file numbers are right in any finish order. Scenes the agent drops are re-asked of it (up to 2 rounds), then re-run one by one |
flow_edit |
Video-to-video edit of a clip already in the project (relight, weather, remove objects). Flow shows no quote first; about 20 credits for a 4 s clip |
flow_continue |
Start a clip from the last frame of an existing one with a character or your avatar still attached. The composer allows a start frame or attached characters, never both, so this drives Flow's agent mode, which does both. No quote beforehand |
flow_character |
Create a reusable character from a description (Flow draws the portrait) or an image, with a personality and a stock voice; use it as asset:<name> |
flow_character_edit |
Restyle an existing character in place (free) and save the new portrait; name, personality and voice are kept, so every scene referencing it updates. Pass look with the updated description; with only a name it re-saves the current portrait |
flow_characters |
List the project's characters |
flow_techniques |
39 film-technique prompt presets (camera moves, product shots, transitions, image commands); pass an id as a scene's technique |
flow_narrate |
Free narration audio, any length: gemini (Google AI Studio text-to-speech, with the same voices Flow has, plus a style note) or mac (a voice installed on this computer, no key needed) |
flow_voices |
Narrator voices available, and whether a Google key is set up |
flow_assemble |
Join clips into one MP4 (a project's clips, or any you list, in order) with optional music and voiceover, and separate volume for the clips' own sound (local FFmpeg, no credits) |
Continuity between shots: chain_previous (this clip starts on the last frame of the previous
one), first_frame + last_frame (animate between two stills you chose), reference_images (keep a
character or product consistent). Flow's composer takes either frames or references, never both, so
when you need a start frame and a character locked together, use flow_continue, which goes through
Flow's agent mode and does both.
Output lands in ~/flow-mcp-out/<project>/scene-NN.ext.
Narration with Google's voices (optional)
flow_narrate with engine: "mac" uses your computer's own voices and works out of the box: macOS voices on a
Mac, the built-in speech voices on Windows. For Google's voices (the same ones Flow offers), get a free key from
Google AI Studio and paste it into Flow Studio → Voice → Google AI Studio
key → Save key. It's checked with Google before it's saved, and stored only on your computer. Or setGEMINI_API_KEY. Either way, never paste the key into a chat; it would end up in the conversation history.
Behaviour and settings
- One generation at a time, with a random 25–70 second pause between them. The page carries an
invisible reCAPTCHA; this drives the real interface at human pace and does nothing to evade it. - Before each generation the server reads Flow's own credit quote and skips the scene if it exceeds
max_credits(default 25). - Environment variables:
GEMINI_API_KEY,FLOW_MCP_PORT(8787),FLOW_MCP_OUTPUT,FLOW_MCP_HOME,FLOW_MCP_CDP_PORT(9333),FLOW_MCP_CHROME,FLOW_MCP_PAUSE_MIN_S,FLOW_MCP_PAUSE_MAX_S.
If something goes wrong
| Symptom | Cause |
|---|---|
Mac: the server will not start, EPERM: operation not permitted |
The folder is in a macOS-protected location. Move it out of ~/Desktop, ~/Documents or ~/Downloads and update the path in your Claude config |
| "Not signed in" or "no project open" | Run npm run login, sign in, open a Flow project, leave the window open |
| A clip generated but no file arrived | The media is still in Flow. flow_download pulls it back for nothing. Never re-generate and pay twice |
| Everything times out | The Chrome window was closed, or the machine slept. Reopen it with npm run login |
Licence and risk
This automates Flow's web interface. It can break whenever Google changes that interface, and
automated use may be against Google's terms of service. Use it on your own account, at your own
risk.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found