Google Flow Browser MCP
Allows control of Google Flow (labs.google/fx/tools/flow) to generate images, videos, characters, and scenes using a logged-in Chrome profile.
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 Browser MCPgenerate an image of a cat flying a kite"
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 Browser MCP
An MCP (Model Context Protocol) server that lets an AI agent drive
Google Flow (labs.google/fx/tools/flow)
through your own logged-in Chrome profile — generating images, videos,
characters, and scenes — without ever sharing your Google credentials with
the agent.
This server supports Windows, macOS, and Linux out of the box using unified npm commands that automatically dispatch platform-specific execution.
How it works
Chrome is launched with
--remote-debugging-port(Chrome DevTools Protocol / CDP) using a real Chrome profile that's already signed in to your Google account.The MCP server (
src/index.js) connects to that Chrome instance via Playwright'sconnectOverCDPand drives the Google Flow web app — filling prompts, clicking buttons, reading results.Your AI agent (Claude / OpenCode / any MCP client) talks to the MCP server over stdio and calls tools like
flow_generate_image,flow_generate_video,flow_create_character, etc.
Because the agent never touches your Google password — it only sends commands to a browser that's already logged in — there's no credential sharing involved.
Related MCP server: google-flow-mcp
Prerequisites
Node.js 18 or later (LTS recommended)
Google Chrome installed normally (Playwright connects to your real Chrome via CDP — it does not need its own bundled browser for this)
A Google account already signed in to a Chrome profile (e.g. "Default" or "Profile 1" — any profile works, you just need to tell the config which one)
(Optional) OpenCode if you want to register this MCP server with it
Setup
1. Clone and install dependencies
git clone https://github.com/shaig-mahmudov/google-flow-mcp.git
cd google-flow-mcp
npm installnpm install will also download Playwright's browser binaries. This project
doesn't use Playwright's bundled Chromium though — it connects to your real
installed Chrome.
2. Find your Chrome profile
You need a Chrome profile that's already signed in to the Google account you want Flow to use.
Open Chrome and go to
chrome://versionLook at Profile Path — note the User Data directory and Profile folder name (e.g.
Default,Profile 1,Profile 2).
Default locations by platform:
Windows:
Executable:
C:\Program Files\Google\Chrome\Application\chrome.exe(Auto-detected)User Data:
C:\Users\<username>\AppData\Local\Google\Chrome\User Data
macOS:
Executable:
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome(Auto-detected)User Data:
/Users/<username>/Library/Application Support/Google/Chrome
Linux:
Executable:
/opt/google/chrome/chromeor/usr/bin/google-chrome(Auto-detected)User Data:
/home/<username>/.config/google-chrome
If you don't have a profile signed in yet, sign in to your Google account in
any Chrome profile first (Settings → You and Google → Sign in).
⚠️ Close all running Chrome windows for that profile before using this tool — Chrome locks its profile directory while running. To avoid conflicts and profile locking issues, we strongly recommend creating a dedicated Chrome profile specifically for this MCP server (e.g. named "GoogleFlowBot"), signing into your Google account there once, and configuring the server to use it. If you attempt to run the server while actively browsing with the same profile, the connection may fail.
3. Create your config file
Copy the example config and edit it:
Windows (PowerShell):
copy config\flow.config.example.json config\flow.config.jsonmacOS / Linux:
cp config/flow.config.example.json config/flow.config.jsonOpen config/flow.config.json and set at minimum:
{
"expectedAccount": "your-email@gmail.com",
"chromeProfile": "Profile 1"
}(Replace "Profile 1" with the actual folder name of your dedicated GoogleFlowBot profile, which you can find in chrome://version)
Note: You only need to set chromeUserDataDir and chromeExecutable if Chrome is installed in a custom location, as the server will otherwise auto-detect them for your current platform.
Unified Commands
This project uses a Node.js dispatcher script under the hood, allowing you to run the same npm commands on Windows, macOS, or Linux. The runner will automatically execute the correct scripts (.ps1 for Windows, .sh for Unix).
1. Start Chrome with CDP debugging
npm run start-browserThis launches Chrome with your configured profile and --remote-debugging-port=9222. A Chrome window will open — leave it running.
2. Start the MCP server (optional manual test)
In a separate terminal:
npm run start-mcpThis checks Node is installed, checks Chrome's CDP port is responding, and runs the MCP server. Press Ctrl+C to stop it.
3. Connect to AI Agents
You can automatically configure OpenCode and Gemini CLI in one step:
npm run registerThis will automatically find their configuration files and add the Google-Flow MCP server.
(You can also target specific clients: npm run register -- --opencode or --gemini)
Claude Desktop
Currently, Claude Desktop requires manual configuration:
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"Google-Flow": {
"command": "node",
"args": ["/absolute/path/to/google-flow-mcp/src/index.js"]
}
}
}Antigravity Currently, Antigravity requires manual configuration: Add the following to your Antigravity MCP config:
{
"mcpServers": {
"google-flow": {
"command": "node",
"args": [
"C:/{path}/src/index.js"
]
}
}
}(Replace C:/{path}/ with the actual path to the project directory)
Cursor (Codex) Currently, Cursor requires manual UI configuration:
Open Cursor Settings > Features > MCP.
Click + Add New MCP Server.
Name:
Google-FlowType:
commandCommand:
node /absolute/path/to/google-flow-mcp/src/index.js
4. Verify everything end-to-end
With Chrome running (step 1), run:
npm run testThis sends a flow_connect tool call to the MCP server over stdio and prints the raw response.
You can also run the Node-based end-to-end test suite:
node scripts/test-e2e.mjsTypical workflow
npm run start-browser— once per session, leave the Chrome window openYour AI agent (with this MCP registered) calls:
flow_connect— attach to the running Chromeflow_account_check— confirm the right Google account is signed inflow_generate_image— create images in a Flow projectflow_create_character— create reusable charactersflow_generate_video— create videos, optionally referencing previously generated images/characters viaingredients(@namereferences)flow_list_mention_options— see what images/characters are available to reference by nameflow_create_scene— create a new scene, optionally referencing characters
The MCP server automatically creates a Google Flow project on first use and reuses it for the rest of the session (tracked by project ID), so everything ends up in one place instead of a new project per request.
Available tools
Tool | Purpose |
| Connect to / launch Chrome via CDP, optionally open Flow |
| Close the browser connection |
| Report current connection/page status |
| Verify the signed-in Google account matches |
| Navigate to a Flow page and dump interactive elements (debugging) |
| Generate image(s) from a prompt in the current project |
| Generate video(s), optionally with |
| Download the most recently generated asset |
| Create a new character (name + description + reference images) |
| Import a character from a saved JSON file |
| Open the Characters page for a project |
| List images/characters available for |
| Create a new scene, optionally referencing characters |
| Open Flow's Tools gallery |
| Open the Grid Architect tool |
| Use an arbitrary tool from the Tools gallery |
| Take a debug screenshot of the current page |
| Check the status of queued generation jobs |
Configuration reference
All settings live in config/flow.config.json (copy from flow.config.example.json). Key fields:
Field | Description | Default |
| Google account email | (required) |
| Full path to | auto-detected |
| Path to Chrome's "User Data" folder | auto-detected |
| Profile folder name (e.g. |
|
| Chrome DevTools Protocol port |
|
| Base Google Flow URL |
|
| Run Chrome headless |
|
| Max time to wait for a generation job |
|
| Display name → internal model ID maps | see example config |
| Allowed generation parameters | see example config |
Troubleshooting
"Chrome not found"
Make sure Chrome is installed normally. If it is in a custom path, set chromeExecutable in config/flow.config.json.
"Chrome profile not found"
Double-check chromeUserDataDir + chromeProfile against chrome://version in your browser.
"CDP port 9222 not responding"
Run npm run start-browser first and leave that Chrome window open.
Google sign-in gets blocked ("This browser may not be secure")
This is why the server connects to your existing signed-in Chrome profile. Ensure chromeUserDataDir / chromeProfile points to the profile you logged in with.
The agent creates a new Flow project every time
The server tracks one project per session by ID and reuses it. If this happens, check the logs for Session project no longer reachable and start a fresh session.
Project layout
config/
flow.config.example.json # template — copy to flow.config.json
selectors.map.json # auto-updated cache from flow_discover_ui
scripts/
run.js # OS-independent command dispatcher
start-browser.ps1 / .sh # launch Chrome with CDP debugging
start-mcp.ps1 / .sh # run the MCP server (manual check)
register-opencode.ps1 / .sh# register this server with OpenCode
test-flow-image.ps1 / .sh # quick flow_connect smoke test
test-e2e.mjs # multi-tool Node end-to-end test
src/
index.js # MCP server entry point
browser/ # Chrome/CDP connection logic
navigation/ # project navigation, @ mention references
tools/ # one file per MCP tool
utils/ # config, logging, screenshots, file outputSafety notes
This server only automates a browser you already control and are signed into — it does not store, transmit, or need your Google credentials.
Image and video generation consume Google Flow credits. Generation tools default to safe "prepare only" behavior (
auto_confirm: false).config/flow.config.jsonis gitignored — do not commit it.
License
This project is licensed under the MIT License.
Available Tools
19 toolsflow_account_checkA
Verify the logged-in Google account matches the configured expected email (Default).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only says 'Verify' but does not disclose what happens on success/failure, whether it returns a boolean, throws an error, or has side effects. For a check tool, this lack of behavioral detail is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with leading verb and no fluff. It conveys the core purpose efficiently without wasting words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is simple with no parameters and no output schema, the description is partially complete. It explains what it does but not what the agent should expect as a result (e.g., does it return a Boolean, throw an exception, or print a message?). The mention of 'Default' also lacks context about how the expected email is configured, leaving some ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description does not need to explain any. The baseline for 0 params is 4, and the description correctly avoids adding unnecessary parameter details since the schema is empty.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action (verify) and the exact subject (logged-in Google account) against an expected configured email. This distinguishes it from sibling tools like flow_status or flow_connect, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to ensure the correct Google account is active, but it does not explicitly state when to use it versus alternatives. For example, it doesn't mention using it after flow_connect or before other operations. Usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_connectA
Launch Chrome with the configured Google profile, connect CDP, navigate to Google Flow, and verify account.
| Name | Required | Description | Default |
|---|---|---|---|
| headless | No | Launch in headless mode (not recommended, Google Flow needs visible browser). | |
| open_flow | No | Auto-navigate to Google Flow after connection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the main side effect (launching Chrome) and the steps performed, but lacks detail on whether the connection is persistent, what happens on verification failure, or whether the browser closes after the operation. This is moderate transparency but not complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that packs four specific actions without fluff. It is front-loaded with the primary action ('Launch Chrome') and efficiently communicates the full flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description does not mention return values (no output schema exists) or the fact that this tool likely establishes a required connection for other flow_* tools. Without annotations, it could benefit from noting that it is a prerequisite and what 'verify account' entails. This is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both 'headless' and 'open_flow' have clear descriptions in the schema, including a warning about headless mode. The tool description does not add additional parameter semantics, but since the schema already covers them, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's specific actions: launching Chrome, connecting CDP, navigating to Google Flow, and verifying the account. It distinguishes itself from sibling tools like flow_disconnect or flow_status by focusing on the connection setup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool relative to alternatives. It implies it is a connection step but does not mention prerequisites, exclusions, or alternative tools. For example, it does not clarify whether this should be run before flow_status or flow_discover_ui.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_create_characterA
Create a new character in Google Flow Characters with name and description. By default (auto_confirm not false), fills the description and clicks the submit arrow to actually create the character, then renames "Untitled Character" to the given name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Character name. | |
| campaign | No | Campaign identifier for project matching (e.g., "summer-2026", "new-collection"). | |
| description | Yes | Character description/prompt. | |
| auto_confirm | No | If false, only fills the description and returns "ready_for_confirmation" without submitting (uses credits). Default true. | |
| project_name | No | Name for the project (will reuse existing project with same campaign, or create new). | |
| reference_images | No | Paths to reference images for character design. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosure. It transparently explains the default auto_confirm behavior (filling description, clicking submit, renaming 'Untitled Character') and hints at a non-submitting mode (via the 'By default' clause), adding useful context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, and every clause adds value. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 6 parameters and no output schema, yet the description does not mention expected return values or outcomes (beyond an implicit rename). It covers the main creation flow but omits details about reference images, project matching, or what the agent should do with the result. This leaves some gaps for agents needing full context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaningful context for the auto_confirm parameter by explaining the default flow (clicks submit, renames), complementing the schema's terse description. This justifies a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new character in Google Flow Characters, with specific verb (create) and resource (character), and distinguishes it from siblings like flow_import_character and flow_generate_image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you want to create a character) but does not explicitly state when not to use it or provide alternatives. It lacks direct comparison with related tools like flow_import_character.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_create_sceneB
Create a new scene in Google Flow Scenes with characters and prompt.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Scene description/prompt. | |
| campaign | No | Campaign identifier for project matching (e.g., "summer-2026", "new-collection"). | |
| characters | No | Character names to include in the scene. | |
| project_name | No | Name for the project (will reuse existing project with same campaign, or create new). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose side effects and requirements. It only says 'create a new scene' without mentioning that it may reuse or create a project, require existing characters, or any other behavioral details. The schema description for project_name suggests reuse logic, but the description itself does not convey this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no waste. It immediately states the action and resource, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, no annotations, and no output schema, the description is too minimal. It fails to explain the campaign/project matching logic, character requirements, or the meaning of a 'scene'. The schema provides some parameter-level detail but not the overall tool behavior or expected outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all parameters with descriptions, so the baseline is 3. The description's mention of 'characters and prompt' merely echoes the schema and adds no additional semantic meaning beyond what is already documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('a new scene in Google Flow Scenes'), and mentions key inputs ('characters and prompt'). It is specific enough to distinguish from sibling tools like flow_create_character or flow_generate_image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no mention of prerequisites (e.g., characters must exist), and no exclusions. It lacks any usage context beyond the basic action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_disconnectA
Close the browser and clean up the MCP connection to Google Flow.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description declares the primary actions (closing browser, cleaning up connection) but does not disclose side effects such as terminating active sessions or preventing further operations. This is adequate for a simple cleanup tool but lacks deeper behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that directly states the tool's function without unnecessary words. It is perfectly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with no output schema or annotations, the description provides the essential information about its role as a disconnect/cleanup operation. It lacks explicit usage context but is otherwise complete for its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty schema, so the description adds nothing about parameters. Since there are no parameters to explain, the baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs 'Close' and 'clean up' to describe the resource (browser and MCP connection), clearly indicating this is the teardown counterpart to flow_connect. It distinguishes itself from sibling tools by its focus on disconnection and cleanup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use the tool or contrast it with alternatives like flow_connect. Usage must be inferred from the name and context, so the agent receives no direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_discover_uiA
Navigate to a Google Flow page and discover all interactive elements (buttons, inputs, links, headings). Updates the internal selectors map for robust automation.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Exact URL to navigate to, overriding the page-based URL resolution. | |
| page | Yes | Page to discover. Options: main, image-generation, video-generation, characters, scenes, images, all-media, tools-gallery, grid-architect. "characters" is project-scoped (/project/{id}/characters). "scenes"/"images"/"all-media" are sidebar tabs within the project (same URL). project_name/campaign target a specific project, or the current/active project is used. | main |
| campaign | No | Campaign identifier for project matching, used when page is "characters", "scenes", "images", or "all-media". | |
| project_name | No | Project name, used when page is "characters", "scenes", "images", or "all-media" (will reuse existing project with same campaign, or create new). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a behavioral trait: it updates the internal selectors map as a side effect, which is useful context beyond the tool's primary action. However, with no annotations provided, the description carries the full burden but does not mention authentication requirements, failure modes, or rate limits. This partial transparency warrants a mid-range score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences with no unnecessary words. The first sentence states the action and scope, while the second explains the side effect. This is concise, front-loaded, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema that explains pages and overrides, the description is largely complete. It states the purpose and side effect, which is sufficient for an agent to understand the tool's typical use. However, it lacks explicit prerequisites (e.g., needing a connection via flow_connect) and error behavior, leaving some contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% according to the context signals, meaning all four parameters are thoroughly documented in the schema, including the detailed page options and url override. The tool description itself adds no parameter-level detail, but the baseline of 3 is appropriate when the schema already covers parameters comprehensively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool navigates to a Google Flow page and discovers all interactive elements (buttons, inputs, links, headings), and updates the internal selectors map. This is a specific verb+resource combination that clearly distinguishes it from sibling tools like flow_screenshot or flow_open_characters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It implies a setup step for automation ('Updates the internal selectors map for robust automation') but does not mention exclusions, prerequisites, or alternative tools. Sibling tools such as flow_connect and flow_screenshot exist, but no direct comparison is offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_download_latestB
Download the most recently generated file from Google Flow.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states select 'most recently generated' but does not explain whether the file is returned as content, a URL, or saved locally, nor any side effects or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no filler. It is front-loaded with the main action and resource, making it highly concise and easy to process.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description is incomplete. It does not specify what the agent should expect as a result (file path, binary content, URL) or how this tool fits into the flow with sibling generation tools (e.g., used after flow_generate_image).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description need not elaborate on parameter meaning. The description implicitly communicates that no user input is required, aligning with the baseline for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Download' and a clear resource 'the most recently generated file from Google Flow.' It distinguishes itself from sibling tools (e.g., flow_generate_image, flow_connect) by being the only download-focused tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, prerequisites, or typical usage contexts. The description simply states the action without explaining when it is appropriate or what conditions must exist (e.g., a file must have been generated first).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_generate_imageA
⚠️ THESE IMAGES CONSUME CREDITS. By default (auto_confirm=false): fills the prompt, selects model/ratio, takes a screenshot and returns "ready_for_confirmation". Does NOT click Generate. When auto_confirm=true: first verifies the UI is in IMAGE mode (not Video), that the model is an image model, takes a verification screenshot, THEN clicks Generate and waits for the images. NANO/BANANA image models only.
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | Brand context for automatic model selection: premium, standard. | |
| model | No | Model to use: Nano Banana Pro, Nano Banana 2, or Imagen 4. | Nano Banana 2 |
| ratio | No | Aspect ratio: 1:1, 16:9, 9:16, 4:3, 3:4. | 1:1 |
| prompt | Yes | The text prompt for image generation. | |
| campaign | No | Campaign identifier for project matching (e.g., "summer-2026", "new-collection"). | |
| ingredients | No | Names of existing project images/characters to reference via "@name" (e.g., ["Bob the Astronaut", "Image 3"]). Use flow_list_mention_options to discover available names. | |
| skip_config | No | Skip configuration of aspect ratio, model type, and quantity in the UI. Respect manual settings. | |
| auto_confirm | No | ⚠️ CREDITS. If false (default): only prepares, consumes nothing. If true: verifies that Image mode is active, THEN clicks Generate (consumes credits). | |
| project_name | No | Name for the project (will reuse existing project with same campaign, or create new). | |
| reference_images | No | Paths to local reference images to upload (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: it explains credit consumption, the default non-destructive preparation flow, and the verification steps before clicking Generate. It also notes the model restriction and screenshot behavior. This is highly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized for the complexity, front-loaded with a credit warning. It uses structured phrasing to explain both modes, with no wasted words. Each sentence contributes to understanding the tool's behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with no annotations or output schema, the description covers the essential behavior, constraints, and credit implications. It could be more specific about return values or error handling, but the core operation is well explained. The schema covers parameter details, so the description complements it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds critical semantics for auto_confirm (no credits by default, verification before generating) and clarifies the overall process. It doesn't explain every parameter, but the schema already does, so the description adds value beyond the schema for the most important behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates images via Flow, distinguishing between default preparation mode and auto-confirm generation mode. It mentions 'NANO/BANANA image models only,' scoping its purpose. The name and description together clearly identify it as an image generation tool, distinct from flow_generate_video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for image generation, with clear context that it works only with NANO/BANANA image models. It contrasts with video mode ('not Video'), indirectly guiding to use flow_generate_video for video. However, it doesn't explicitly name alternatives or provide when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_generate_videoA
Set up a video generation in Google Flow. Fills prompt, selects Omni Flash or Veo model, configures settings. NOTE: Does NOT click final Generate (paid feature — stops at ready-to-generate).
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model: Omni Flash, Veo 2, Nano Banana 2. | Omni Flash |
| ratio | No | Aspect ratio: 16:9, 9:16, 1:1. | 16:9 |
| prompt | Yes | The text prompt for video generation. | |
| campaign | No | Campaign identifier for project matching (e.g., "summer-2026", "new-collection"). | |
| duration | No | Target duration in seconds. | |
| use_scene | No | Name of a single project scene to reference via "@name" (added in addition to ingredients). | |
| ingredients | No | Names of existing project images/characters to reference via "@name" (e.g., ["Bob the Astronaut", "Image 3"]). Use flow_list_mention_options to discover available names. | |
| project_name | No | Name for the project (will reuse existing project with same campaign, or create new). | |
| use_character | No | Name of a single project character to reference via "@name" (added in addition to ingredients). | |
| reference_images | No | Paths to local reference images to upload (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It transparently discloses that the tool stops at 'ready-to-generate' and does not trigger the paid feature, which is the most important behavioral trait. It lacks details on side effects like project creation, but the note about the final click is highly valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the purpose and followed by a critical NOTE. Every word earns its place, with no redundancy or irrelevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and no output schema, the description plus schema provides sufficient context for an agent to invoke the tool. It covers the main purpose and limitation, and the schema handles parameter details. Minor gap: no mention of project reuse or return behavior, but these are secondary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds little beyond the schema: it mentions 'Omni Flash or Veo model' but omits 'Nano Banana 2' listed in the schema, and 'configures settings' is vague. The schema descriptions are more detailed and include cross-tool references like flow_list_mention_options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Set up a video generation in Google Flow' with specific actions like filling prompt and selecting model. It distinguishes from sibling flow_generate_image by focusing on video and explicitly noting it does not click final Generate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for video generation setup and includes a critical caveat about the paid Generate feature. However, it does not explicitly mention alternatives (e.g., use flow_generate_image for images) or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_import_characterA
Import a character from a saved JSON file into Google Flow.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign | No | Campaign identifier for project matching (e.g., "summer-2026", "new-collection"). | |
| file_path | Yes | Path to character JSON file. | |
| project_name | No | Name for the project (will reuse existing project with same campaign, or create new). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states the high-level action, without detailing side effects (e.g., overwriting existing characters), validation of the JSON, error handling, or any prerequisites. This is a significant gap for an import tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundant information. Every word earns its place, making it highly concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The core purpose is clear and the schema covers parameters, but the description lacks usage guidance relative to sibling tools and does not disclose behavioral traits (e.g., whether it overwrites or merges). For a tool with no annotations and no output schema, this is adequate but leaves gaps for an agent deciding between import and create.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for all three parameters (campaign, file_path, project_name), giving 100% schema coverage. The description itself adds no parameter-specific detail, so the baseline of 3 is appropriate since the schema handles parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Import') with a clear resource ('character') and source/destination ('saved JSON file' into 'Google Flow'). This clearly distinguishes it from siblings like flow_create_character (which creates from scratch) and flow_open_characters (which opens existing characters).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a saved JSON character file exists, but it offers no explicit when-to-use or when-not-to-use guidance, and does not mention alternative tools such as flow_create_character. The context is inferred from the phrase 'saved JSON file' rather than stated directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_list_mention_optionsA
List the images and characters in the current project that can be referenced via "@name" in an image/video prompt (opens Flow's "@" reference popup and reads its options).
| Name | Required | Description | Default |
|---|---|---|---|
| campaign | No | Campaign identifier for project matching (e.g., "summer-2026", "new-collection"). | |
| project_name | No | Name for the project (will reuse existing project with same campaign, or create new). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosure. It transparently states the side effect of opening Flow's '@' reference popup and reading its options, which goes beyond a generic 'list' description. It does not detail safety permissions, but the read-only nature is inferred and no harmful behavior is hidden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that is both concise and information-dense. It includes the action, target, mechanism, and context without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description sufficiently explains the tool's purpose and behavior for a listing tool. It lacks an explicit return format, but that is partially mitigated by the absence of an output schema and the simplicity of the feature. It is complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for both 'campaign' and 'project_name' (100% coverage). The tool description adds no additional parameter meaning, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List'), the resource ('images and characters'), and the context ('current project' and 'via @name in an image/video prompt'). It distinguishes this from sibling tools like flow_open_characters by specifying the popup-reading mechanism.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool (when needing @name references for image/video prompts) and implies the popup interaction. It does not explicitly name alternatives or exclusions, so it stops short of a 5 but is clear enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_open_charactersB
Open the Characters page for the current/target project and list existing characters.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign | No | Campaign identifier for project matching (e.g., "summer-2026", "new-collection"). | |
| project_name | No | Name for the project (will reuse existing project with same campaign, or create new). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool opens a page and lists characters but does not disclose potential side effects, such as creating a new project if none matches (as implied by the schema's project_name description). Lacks details on permissions or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with action and purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple navigation/listing tool but lacks context on project selection mechanism and output nature. With no output schema or annotations, it could benefit from explaining the relationship between campaign and project_name and whether the list is returned as data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage, so baseline is 3. The description adds no parameter-specific information; it relies entirely on schema descriptions for campaign and project_name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'open' and resource 'Characters page', and further clarifies it lists existing characters. This clearly distinguishes it from sibling tools like flow_create_character and flow_import_character, which perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as flow_create_character or flow_import_character. The description implies usage for viewing existing characters but doesn't state exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_open_tools_galleryA
Open the Google Flow Tools Gallery and list available tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states what the tool does (opens a gallery and lists tools) but does not disclose any side effects, permissions required, or whether it returns data in the response. For a simple tool this might be acceptable, but the lack of explicit behavioral context is a gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with no wasted words. It front-loads the action and resource clearly, making it immediately understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema, minimal annotations), the description covers the essential purpose. However, it leaves slight ambiguity about whether 'list available tools' means returning a list in the response or opening a UI gallery. This prevents a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool accepts zero parameters, so the schema coverage is trivially 100%. The baseline for 0 parameters is 4, and the description adds no confusion about parameters. Since there are no parameters to clarify, the description does not need to provide additional semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool opens the Google Flow Tools Gallery and lists available tools. This is a specific verb+resource combination that distinguishes it from sibling tools like flow_download_latest or flow_create_scene.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for discovering available tools, but does not explicitly state when to use this tool versus alternatives or mention any prerequisites. There are no exclusions or comparisons with siblings, so it relies on the name and context to convey intent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_queue_resetA
Forcefully reset the job queue. Use this if a job is permanently stuck in "running" state and blocking other generations.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It states the action is 'forceful' and targets stuck jobs, implying a destructive/resetting behavior. However, it does not disclose potential side effects (e.g., loss of queued jobs, irreversibility, or required permissions), which are important for a reset operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, with the primary action front-loaded in the first sentence. The second sentence adds valuable usage context without any fluff or redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, zero-parameter tool, this description covers the purpose and the specific situation. There is no output schema, and the tool's return behavior is not described, but for a queue reset, the main point is the action itself. A small note about consequences (e.g., pending jobs may be cleared) would make it more complete, but it's adequate as is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema is an empty object. Per the rubric, 0 params is a baseline of 4. The description correctly implies no configuration is needed, so no additional parameter explanation is necessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Forcefully reset the job queue') and the specific resource (the job queue). It also provides a concrete scenario (job stuck in 'running' state blocking others), which distinguishes it from sibling tools like flow_queue_status that likely just query status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'if a job is permanently stuck in "running" state and blocking other generations.' This gives clear context, though it does not mention when not to use it or explicitly name alternatives. Still, the use case is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_queue_statusA
Check the job queue: active job, pending queue, completed and failed job history.
| Name | Required | Description | Default |
|---|---|---|---|
| history_limit | No | Number of recent history entries to return. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden. It clearly indicates a read-only operation ('Check') and lists the information returned, but it does not disclose any potential side effects, authentication requirements, or details about how history_limit affects results. It is minimally transparent but not deeply descriptive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the primary action and enumerates the specific aspects of the queue. There is no wasted information; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description adequately captures the main functionality. It names all categories of queue status without needing to explain return values extensively. The only minor gap is not explicitly stating that history_limit controls the number of history entries, but that is already in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for the only parameter (history_limit) with a clear description. The tool description does not add additional meaning beyond the schema, but since schema coverage is high, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Check') and resource ('job queue'), and enumerates the exact information covered (active job, pending queue, completed and failed job history). This clearly distinguishes it from sibling tools like flow_status, which likely covers broader status, and other flow_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives such as flow_status. The description implies that it is for checking queue information, but it does not state exclusions or mention alternative tools, leaving the agent without clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_screenshotB
Take a screenshot of the current Google Flow page.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Custom name for the screenshot file. | manual |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavioral details. It only states the action without mentioning where the screenshot is saved, whether it returns a file path, authentication requirements, or any side effects, leaving significant ambiguity for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, immediately conveying the tool's action. It is appropriately concise and front-loaded, making it easy for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional param, no output schema, no annotations), the description is minimally adequate but incomplete. It fails to explain what happens after the screenshot is taken (e.g., file location, return value), leaving the agent without enough context to predict the tool's full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single optional parameter 'name' is fully described in the input schema (100% coverage), so the baseline is 3. The description adds no additional semantic detail about the parameter, but the schema already provides sufficient information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Take a screenshot') on a specific resource ('the current Google Flow page'), making its purpose unambiguous. This distinguishes it from sibling tools like flow_download_latest or flow_create_scene, which serve different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. However, the intended use is implied by the action itself — taking a screenshot when a visual capture is needed — but no exclusions or alternative comparisons are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_statusB
Check current connection status: browser connected, Flow page loaded, account verified, job queue state.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Return full status with screenshot. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It transparently lists the exact status dimensions checked (browser, page, account, queue), which is useful. However, it doesn't disclose whether this is a read-only operation, how the response is structured, or whether it performs live checks or returns cached state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 12 words, front-loaded with the primary action and resource. Every word adds value, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simplistic status-check tool with one fully described parameter, the description covers core purpose and scope. However, without an output schema or annotations, it omits details about return format, potential latency, and any safety characteristics, leaving the agent uncertain about how to interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description fully documents the 'full' parameter ('Return full status with screenshot'), achieving 100% coverage. The tool description adds no parameter-specific context, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Check' and clearly enumerates the status components (browser connected, Flow page loaded, account verified, job queue state). It implies a broader scope than individual siblings like flow_account_check or flow_queue_status but does not explicitly name them for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention that flow_queue_status should be used for queue-only details or flow_connect for establishing a connection. The agent is left without explicit selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_use_grid_architectA
Open Grid Architect in Google Flow, fill theme prompt, shot prompts, engine, ratio, and visual logic settings. Supports batch shot generation for brand campaigns.
| Name | Required | Description | Default |
|---|---|---|---|
| ratio | No | Aspect ratio for all shots. | 16:9 |
| engine | No | Engine/model for the grid. | Nano Banana 2 |
| campaign | No | Campaign identifier for project matching (e.g., "summer-2026", "new-collection"). | |
| references | No | Paths to reference images. | |
| project_name | No | Name for the project (will reuse existing project with same campaign, or create new). | |
| shot_prompts | No | Array of individual shot prompts for the grid. | |
| theme_prompt | Yes | Overall theme prompt for the grid. | |
| visual_logic | No | Visual logic type: None, Colour Pop, Side by Side, etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It says the tool 'open[s]' and 'fill[s]' settings but does not mention side effects, prerequisites, whether it creates or reuses projects, or what the agent should expect after invocation. This leaves significant ambiguity for a UI-automation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loads the primary action. Every phrase earns its place: the resource, the key settings, and the batch campaign use case. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description captures the main purpose and the batch use case, and the schema fully documents parameters. However, there is no output schema, no annotation, and the description does not state prerequisites, expected outcomes, or side effects. It is minimally sufficient but has clear gaps for a complex UI automation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description repeats several parameter names (theme prompt, shot prompts, engine, ratio, visual logic) but does not add meaning beyond the schema's own field descriptions, such as campaign reuse behavior or reference image handling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and resource ('Open Grid Architect in Google Flow') and lists the exact settings it fills (theme prompt, shot prompts, engine, ratio, visual logic). It clearly differentiates from siblings like flow_generate_image by emphasizing batch shot generation for brand campaigns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: batch shot generation for brand campaigns. It does not explicitly name alternatives or state when not to use it, but the context strongly implies this tool is for multi-shot Grid Architect workflows rather than single-image generation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_use_toolB
Open any tool by name in Google Flow and optionally fill its configuration parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | Optional configuration parameters for the tool. | |
| campaign | No | Campaign identifier for project matching (e.g., "summer-2026", "new-collection"). | |
| tool_name | Yes | Name of the tool to open (e.g. Grid Architect, Image Generation). | |
| project_name | No | Name for the project (will reuse existing project with same campaign, or create new). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only mentions 'open' and 'fill configuration parameters' but does not explain whether this executes the tool, requires a connection, or affects project state. The presence of campaign and project_name parameters suggests side effects, but they are not explained, making the behavior unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately states the core function and optional parameter filling. It is front-loaded and contains no redundant information, earning the highest score for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has four parameters and no output schema, so the description should explain the tool-opening flow, how project matching works, and what the user can expect as a result. None of this is present, leaving significant gaps for the agent. The description is too minimal for the complexity of the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema documents all four parameters with a high coverage, so the baseline is 3. The description adds minimal meaning by clarifying that 'params' are configuration parameters and 'tool_name' is the tool's name, but it does not elaborate on campaign or project_name behavior. The schema already covers the basics, so the description does not significantly enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that this tool opens any tool by name in Google Flow and optionally fills configuration parameters. This distinguishes it from siblings like flow_generate_image or flow_use_grid_architect, which are specific tool actions. The verb 'open' is slightly ambiguous (whether it executes or navigates), but the overall purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'any tool by name' implies a generic fallback, but it does not explicitly state when to use this tool versus dedicated siblings. No exclusions or alternative recommendations are provided, leaving the usage context only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
19 tool updates
v1.0.1- First observed
flow_account_check - First observed
flow_connect - First observed
flow_create_character - First observed
flow_create_scene - First observed
flow_disconnect - First observed
flow_discover_ui - First observed
flow_download_latest - First observed
flow_generate_image - First observed
flow_generate_video - First observed
flow_import_character - First observed
flow_list_mention_options - First observed
flow_open_characters - First observed
flow_open_tools_gallery - First observed
flow_queue_reset - First observed
flow_queue_status - First observed
flow_screenshot - First observed
flow_status - First observed
flow_use_grid_architect - First observed
flow_use_tool
TDQS
Scored across 19 tools
Tools are mostly distinct, covering connection, generation, characters, scenes, queue, and UI automation. Minor overlap exists between flow_status and flow_queue_status (both report queue state), and flow_use_tool vs flow_use_grid_architect (specialized case), but descriptions and parameters generally disambiguate clearly.
All tools share the 'flow_' prefix and use snake_case, with a predominantly verb-noun pattern (e.g., flow_generate_image, flow_create_character). A few object-led names like flow_account_check, flow_queue_status, and flow_queue_reset deviate from the verb-first convention, but the overall pattern remains readable and predictable.
With 19 tools, this is on the heavier side but justified by the broad scope of Google Flow automation: connection, media generation, character/scene management, queue control, and UI discovery. The count feels appropriate for the range of capabilities, though it approaches the threshold where complexity can become unwieldy.
Core workflows are covered, but there are notable gaps: no update/delete for characters or scenes, no list-scenes tool (while list-characters exists), and video generation stops short of triggering the final generation, leaving a dead end. Generic flow_use_tool and flow_discover_ui offer workarounds, but the surface is not fully self-sufficient for entity lifecycle management.
Maintenance
Related MCP Connectors
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Build and run visual creative-production workflows from your AI agent.
Web search, browser automation, scraping, crawling and CAPTCHA solving for AI agents.
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.1765 npm68MIT
- 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.27MIT
- AlicenseAqualityAmaintenanceEnables AI agents to generate Google Flow videos and images and automate Scene Builder clip extensions through a user's own Chrome session.11497 npmMIT
- 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.65 npm1MIT