Skip to main content
Glama

Google Flow MCP Server

A session-backed, direct-CDP UI-to-MCP wrapper for Google Flow (labs.google/fx/tools/flow), implementing the Browser as an API paradigm to provide programmatic access to Nano Banana 2/Pro image generation and Veo 3 video generation models.

IMPORTANT

Disclaimer: This project is an unofficial, independent open-source tool and is not affiliated with, endorsed by, or associated with Google or Google Labs. Use this software at your own risk. The authors and contributors assume no liability or responsibility for any account suspension, service restriction, credit consumption, or terms-of-service enforcement resulting from the use of this software. Users are solely responsible for complying with Google's Terms of Service and applicable policies.

Overview

This server acts as a UI-to-API bridge, enabling AI agents (Claude Desktop, Cursor, Windsurf, Cline, Antigravity, etc.) to control Google Flow using structured JSON-RPC over standard I/O. By attaching directly to an existing Chrome debugging session over WebSocket, it bypasses the need for official API keys, handles bot detection transparently via real user session context, and achieves sub-25ms execution latency with in-page binary streaming and live credit telemetry.

Related MCP server: Google Flow Browser MCP

Features

  • Browser as an API: Treats the authenticated Google Flow web interface as a programmable, queryable tool for AI agents.

  • Session-Backed CDP Engine: Connects directly over raw WebSocket to a persistent Chrome debugging profile, preserving Google OAuth session state and avoiding bot-detection challenges.

  • Multi-Reference Injection: Attaches canonical character and background reference images directly into the prompt bar as input chips.

  • In-Page Binary Streaming: Retrieves generated high-resolution assets via authenticated in-page fetch() without page reloads.

  • Standardized MCP Interface: Exposes Tools, Resources (flow://credits, flow://session, flow://projects), and Prompt Templates.

  • Cross-Platform Binary Discovery: Automatically locates Chrome, Brave, Chromium, or Edge installations across macOS, Windows, and Linux.

  • Multi-Language UI Support: Employs semantic SVG icon matching and multilingual fallback dictionaries (KO, EN, JA, FR, ES).

Prerequisites

  • Node.js >= 18.0.0

  • Google Chrome, Brave, Chromium, or Microsoft Edge

  • An active Google account with access to Google Flow (https://labs.google/fx/tools/flow)

Installation Options

Copy and paste the following prompt directly into your AI coding assistant (Cursor, Claude Code, Windsurf, Antigravity, Cline, etc.):

Please install and configure the google-flow-mcp server for my current environment:
1. Clone https://github.com/vynnlee/google-flow-mcp to an appropriate local directory and run `npm install`.
2. Locate the MCP configuration file for my current client (e.g., Claude Desktop, Cursor `.cursor/mcp.json`, Windsurf, Cline) and add the "google-flow" server entry pointing to the cloned `src/index.js`.
3. Run `npm run launch` to open the dedicated Chrome profile so I can log in to Google Flow.
4. Verify the setup by running `npm run test:e2e` and confirm that all tests pass.

Option 2: MCPB Bundle (.mcpb) Drag & Drop

Download the pre-packaged google-flow-mcp-1.2.0.mcpb bundle from the Releases page and drag it directly into your MCP-compatible client interface.

Option 3: Manual Installation (3 Steps)

1. Clone and Install Dependencies

git clone https://github.com/vynnlee/google-flow-mcp.git
cd google-flow-mcp
npm install

2. Launch Dedicated Browser Profile

Run the cross-platform launcher to start your persistent automation browser:

npm run launch

Log in to your Google account once in the opened window. Your authentication is preserved across restarts in a dedicated user data directory.

(Manual alternative: launch Chrome with --remote-debugging-port=9333 and --user-data-dir="<path>")

3. Add to Your AI Client

Add the following standard MCP configuration to your AI client's settings:

{
  "mcpServers": {
    "google-flow": {
      "command": "node",
      "args": [
        "/absolute/path/to/google-flow-mcp/src/index.js"
      ]
    }
  }
}

Settings File Locations

Client

Configuration File Path

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS)%APPDATA%\Claude\claude_desktop_config.json (Windows)

Cursor

.cursor/mcp.json or Settings > Features > MCP

Windsurf

~/.codeium/windsurf/mcp_config.json

Cline / Roo Code

cline_mcp_settings.json

Zed

~/.config/zed/settings.json (under context_servers)

Optional Configuration

Create config/flow.config.json to override default parameters:

{
  "cdpPort": 9333,
  "expectedAccount": "your-email@gmail.com",
  "defaultImageModel": "Nano Banana 2",
  "defaultRatio": "16:9",
  "autoConfirm": false
}

Components

Tools

flow_generate_image

Generates images using Nano Banana 2, Nano Banana Pro, or Imagen 4 with optional reference image attachment.

Parameters:

  • prompt (string, required): Detailed prompt describing the scene, subject, camera angle, and style.

  • reference_images (string[], optional): Absolute file paths to reference images to inject as prompt chips.

  • model (string, optional): "Nano Banana 2" (default), "Nano Banana Pro", or "Imagen 4".

  • ratio (string, optional): "16:9" (default), "9:16", "1:1", "4:3", or "3:4".

  • auto_confirm (boolean, optional): Set to true to execute generation and consume credits. If false, prepares the prompt in the UI without generating. Default: false.

  • output_folder (string, optional): Directory path where downloaded files are saved.

  • response_format (string, optional): "detailed" (default) or "concise".

flow_generate_video

Generates video clips using Veo 3.1 or Omni Flash.

Parameters:

  • prompt (string, required): Prompt describing camera movement and motion.

  • model (string, optional): "Veo 3.1 Lite" (default), "Veo 3.1 Quality", or "Omni Flash".

  • duration (string, optional): "4s", "6s" (default), or "8s".

  • ratio (string, optional): "16:9" (default), "9:16", or "1:1".

  • auto_confirm (boolean, optional): Default: false.

  • output_folder (string, optional): Destination directory path.

  • response_format (string, optional): "detailed" (default) or "concise".

flow_status

Returns browser connection health, current account state, session validity, and real-time credit balance.

Parameters:

  • full (boolean, optional): Include complete telemetry payload. Default: true.

flow_manage_project

Lists or creates projects on the Flow canvas.

Parameters:

  • action (string, required): "list" or "create".

  • name (string, optional): Required when action is "create".

flow_download_latest

Downloads the most recently rendered asset without triggering new generation.

Parameters:

  • output_folder (string, optional): Destination directory.

flow_connect / flow_disconnect

Manages the connection state to the dedicated Chrome browser instance.

Resources

  • flow://credits: Returns real-time JSON payload containing remaining credit balance, subscription tier, and SKU.

  • flow://session: Returns authenticated user profile, email address, and OAuth expiration timestamp.

  • flow://projects: Returns array of active projects on the user's canvas.

Prompts

  • consistent-storyboard-cut: Parameterized template for generating camera-consistent scene cuts with character and environment references.

Architecture

flowchart TD
    Client["AI Clients and IDEs\n(Claude Desktop, Cursor, Windsurf, Cline)"]
    
    subgraph MCPServer["google-flow-mcp (Node.js Server)"]
        Router["Tool & Resource Router\n(Tools, Resources, Prompts)"]
        Engine["Direct CDP WebSocket Engine\n(~21ms Low-Latency Control)"]
        MultiRef["Multi-Reference Chip Injector\n(Characters & Backgrounds)"]
        StreamFetch["In-Page Binary Stream Fetcher\n(Direct Asset Retrieval)"]
    end
    
    subgraph Browser["Dedicated Chrome Instance (:9333)"]
        Session["Persistent Google OAuth Session\n(FlowAutomationChrome Profile)"]
        Flow["Google Flow WebApp\n(Nano Banana 2/Pro & Veo 3)"]
    end

    Client -->|Stdio JSON-RPC| Router
    Router --> MultiRef --> Engine
    Engine -->|Raw WebSocket CDP| Session
    Session --> Flow
    Flow -.->|Authenticated Media Stream| StreamFetch
    StreamFetch -.->|JPG / MP4 Assets + Credits JSON| Client

Performance Benchmark

Measured on macOS against Google Chrome remote debugging port 9333 (5-run mean):

Metric

Standard Automation (Playwright CDP)

Direct CDP WebSocket Engine

Delta

Initial Handshake

354.25 ms

21.80 ms

16.2x faster

DOM Traversal / Query

21.29 ms

1.65 ms

12.9x faster

Screenshot Capture

383.92 ms

359.95 ms

6.2% faster

Single Transaction Runtime

761.31 ms

384.17 ms

1.98x faster

Process Memory (RSS)

166.81 MB

52.31 MB

68.6% reduction

Troubleshooting & FAQ

Browser Connection Failed

  • Ensure the browser is running with --remote-debugging-port=9333. You can verify by opening http://localhost:9333/json in your browser.

  • If port 9333 is occupied by another process, change cdpPort in config/flow.config.json.

Re-Authentication Required

  • If Google Flow displays a login prompt, open the dedicated Chrome window, log in with your Google account, and refresh the page. The session will remain active.

Using Custom Browser Paths

  • Set the CHROME_PATH environment variable to point to your specific browser binary (e.g., Brave or Edge):

    export CHROME_PATH="/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"

Development & Testing

Run unit and connection tests:

npm test

Run full MCP specification compliance audit:

npm run test:e2e

Debug using MCP Inspector:

npx @modelcontextprotocol/inspector node src/index.js

License

MIT License. Copyright (c) 2026 Vynn Lee.

Available Tools

7 tools
flow_connectB

Establishes connection to Google Flow Chrome instance on CDP port (default: 9333).

ParametersJSON Schema
NameRequiredDescriptionDefault
headlessNoLaunch headless (default: false for anti-bot safety).

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral disclosure burden. It reveals the connection target and default port, but does not say whether this launches a browser, mutates state, is idempotent, or is required before other operations. This is a meaningful gap for a stateful connect tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that conveys the action, target, and default port with no filler. Every piece of information serves the agent's selection and invocation decision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 covers the core action and default. However, it lacks behavioral side effects, prerequisites, and any indication of what a successful connection yields, so an agent has only partial context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter 'headless' is fully described with its default and anti-bot rationale. The description itself does not add parameter information, but the baseline of 3 applies because the schema already documents the parameter well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Establishes connection') and a specific resource ('Google Flow Chrome instance on CDP port'), which clearly distinguishes it from sibling tools like flow_disconnect and flow_status. The default port value adds precision.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when this tool should be used, whether it must precede the other flow_* tools, or when a sibling like flow_status might be more appropriate. The purpose is implied by the name and description, but explicit usage context is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

flow_disconnectA

Closes the browser connection and cleans up MCP state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and it clearly states the two effects: closing the browser connection and cleaning up MCP state. It does not discuss idempotency or consequences for ongoing operations, but for a simple disconnect tool this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, ten words, with the primary action front-loaded. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema and no annotations, the description fully captures the tool's behavior and lifecycle role. An agent can correctly invoke it without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the schema already exhaustively covers them. The baseline for 0 parameters is 4, and the description adds no parameter-specific information, which is acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('closes'), a concrete resource ('browser connection'), and the additional cleanup of 'MCP state'. This clearly distinguishes it from siblings like flow_connect and the generation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies its role as the shutdown counterpart to flow_connect but never explicitly names alternatives or states when to call it. 'Closes the browser connection and cleans up MCP state' gives context but no when-to-use or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

flow_download_latestB

Downloads the most recently rendered image or video asset from the active Flow project without re-generating.

ParametersJSON Schema
NameRequiredDescriptionDefault
output_folderNoDestination directory path.

TDQS

B3.4/5.0
Behavior2/5

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 does reveal the key trait that it downloads rather than re-generates, but it omits important behaviors such as what happens if no render exists, whether files are overwritten, or how the active project is determined. This leaves significant behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core action and key qualifier. It earns a high score for being concise and readable, though it lacks additional structured guidance that could improve utility without bloating the text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one optional parameter and no output schema, the description is reasonably complete at a basic level. However, it leaves gaps around the meaning of 'active Flow project' and behavior in edge cases like no rendered asset being available. These omissions make it only minimally viable rather than fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents output_folder as a destination directory path. The description adds no new parameter-level meaning, and the tool description does not clarify whether output_folder is optional or what happens when it is omitted. Baseline 3 is appropriate given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Downloads'), resource ('most recently rendered image or video asset'), and context ('from the active Flow project'). It also explicitly distinguishes itself from generation tools by adding 'without re-generating,' which sets it apart from siblings like flow_generate_image and 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'without re-generating' implies this tool is for retrieving an already-rendered asset, so usage is somewhat clear. However, it does not explicitly state when to prefer this tool over alternatives, nor does it define prerequisites like needing an active project or a prior render.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

flow_generate_imageA

Generates high-fidelity images on Google Flow using Nano Banana 2, Nano Banana Pro, or Imagen 4. Supports attaching multiple reference images (e.g. character sheet + background environment) as prompt attachment chips. When auto_confirm=true, submits the prompt and downloads high-res images to output_folder. When auto_confirm=false (default), prepares the prompt and references in the UI for safety review without consuming credits.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoModel to use. Default is "Nano Banana 2".Nano Banana 2
ratioNoAspect ratio of the generated image. Default is "16:9".16:9
promptYesDetailed image prompt describing subject, emotion, lighting, camera angle, shot size (ECU/MCU/MS/WS), and style.
auto_confirmNoSet to true to execute generation and consume Google Flow credits. If false, prepares without generating.
output_folderNoDirectory path where generated images should be saved.
response_formatNoControl verbosity of returned output (Anthropic Tool Standard). Default is "detailed".detailed
reference_imagesNoArray of absolute or relative file paths to reference images (e.g. character canonical PNG and location background JPG).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does disclose non-obvious behaviors: credit consumption only when auto_confirm=true, default no-credit safety mode, reference images attached as chips, and downloaded output location. It does not cover auth, rate limits, or failure behavior, but the key side effects are well stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, with each sentence earning its place: purpose and models, reference-image capability, and the auto_confirm behavior split. It is front-loaded with the core purpose and contains no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with no output schema and no annotations, the description covers the central behavioral choices and consequences—safety review, credit consumption, and output destination. It lacks return-value details and does not state whether output_folder is required when auto_confirm=true, but the response_format parameter and schema mitigate these gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine narrative meaning beyond the schema: auto_confirm determines credit use and download, reference_images are described as attachment chips with an example, and output_folder is tied to high-res download. These enrich the structured parameter definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action ('Generates high-fidelity images on Google Flow') and lists three concrete model choices, making the resource and output type unambiguous. The word 'images' distinguishes it from the video-generation sibling without needing to inspect the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly explains when to use auto_confirm=true versus false, including credit consumption and UI safety review, giving clear invocation context. It does not explicitly name alternative sibling tools or exclusion conditions, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

flow_generate_videoA

Generates cinematic video clips on Google Flow using Veo 3.1 or Omni Flash. When auto_confirm=true, submits generation, monitors rendering progress, and downloads the MP4 file. When auto_confirm=false, prepares prompt without consuming credits.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoVideo generation model.Veo 3.1 Lite
ratioNoAspect ratio of the video.16:9
promptYesVideo prompt describing camera movement (dolly, pan, tilt), subject motion, lighting, and pacing.
durationNoDuration of the generated video.6s
auto_confirmNoSet to true to execute video generation and consume credits.
output_folderNoDirectory path to save the generated MP4 file.
response_formatNoControl verbosity of returned output.detailed

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does so well: it discloses that execution consumes credits, monitors rendering, downloads the MP4, and that the false path avoids credit use. It stops short of stating error behavior or what happens to intermediate state, but the key side effects are visible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The core purpose and model names are front-loaded, and the conditional behavior is packed into a compact, scannable pair of clauses.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the execution flow well and the schema fully documents parameters, but there is no output schema and the description does not state what the tool actually returns (e.g. status, file path, rendering meta). For a 7-parameter generation tool with return-format options, that is a notable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the description goes beyond it by explaining the functional effect of auto_confirm (submission, monitoring, download, credit consumption) rather than repeating the schema's one-line definition. Other parameters remain schema-documented, which is acceptable given full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and direct object: 'Generates cinematic video clips on Google Flow,' using named models. This immediately distinguishes it from image-generation and connection-management siblings without requiring schema inspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly delineates the two modes based on auto_confirm: true executes generation, monitoring, and download, while false only prepares a prompt and avoids credit consumption. It does not explicitly name alternative tools for when a still image or a different operation is needed, but the video-specific scope makes that inference straightforward.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

flow_manage_projectB

Lists existing Flow projects or creates a new project on the user canvas.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the project (required when action is "create").
actionYesAction to perform on projects.list

TDQS

B3.4/5.0
Behavior2/5

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 states the two surface behaviors but does not disclose side effects of creating a project, whether creation is permanent or reversible, permission requirements, or potential failure modes. For a tool with a mutating action, this is a meaningful gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence that names both capabilities with no filler or redundancy. Every word contributes to understanding the tool's scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a dual-action tool with no annotations and no output schema, the description is too lean. It does not explain what a 'list' call returns, how naming conflicts are handled on create, or what side effects creation has on the user canvas. The schema covers parameters well, but the surrounding behavior is not fully specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with 'action' having an enum and default, and 'name' explicitly documented as required when action is 'create.' The description adds no additional parameter semantics, but the schema already carries the necessary meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names both distinct actions, 'Lists existing Flow projects' and 'creates a new project,' and identifies the resource and scope ('on the user canvas'). This clearly differentiates it from sibling tools like flow_generate_image, flow_generate_video, flow_connect, and flow_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through the 'list' and 'create' actions but provides no explicit guidance on when to prefer this tool over siblings or when listing versus creating is appropriate. There are no exclusion criteria or alternative routing, so the guidance is only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

flow_statusA

Checks the health and telemetry of Google Flow: Chrome CDP connection state, active user account, session expiration, and real-time remaining credit balance.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNoInclude detailed session metadata and telemetry.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavior disclosure. It clearly conveys a non-destructive read operation and lists the data points returned. It does not, however, mention whether a connection is required, what the output format is, or any failure/error behavior, so it is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the verb and resource and packs meaningful detail into a comma-separated list. No words are wasted, and the structure makes the tool's scope immediately readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple status-check tool with one optional parameter and no output schema, the description covers the essential context an agent needs to decide to invoke it. The main gap is not describing the response structure, but the enumerated data points mitigate that for a low-complexity read-only tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema documents the single 'full' parameter with 100% coverage, including its type, default, and meaning, so the baseline is 3. The description does not add detail about how 'full' changes the result, but it is not required since the schema already covers the parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear verb ('Checks') and specific resource ('health and telemetry of Google Flow'), then enumerates exactly what is inspected: CDP connection state, active user account, session expiration, and credit balance. This distinguishes it sharply from the sibling generation, connection, and management tools without needing their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The nature of a status/health tool implies when it should be used, e.g., before generating media or after connection issues. However, the description does not explicitly state when to use it versus alternatives or mention any exclusions, leaving usage timing to inference.

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. Dates show when Glama detected each change.

  1. 7 tool updatesv1.2.0
    • First observedflow_connect
    • First observedflow_disconnect
    • First observedflow_download_latest
    • First observedflow_generate_image
    • First observedflow_generate_video
    • First observedflow_manage_project
    • First observedflow_status

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct concern: connection lifecycle, status, project management, image generation, video generation, and asset download. There is no meaningful overlap or ambiguity between them.

Naming Consistency5/5

All tools follow the same flow_verb_noun pattern with snake_case, making the set predictable and easy to navigate. Even the less specific flow_manage_project fits the established convention.

Tool Count5/5

Seven tools is well-scoped for a Google Flow MCP server, covering connection, status, project management, generation, and download without unnecessary duplication. Each tool earns its place.

Completeness4/5

The core workflow is covered: connect, manage projects, generate images/videos, and download results. Minor gaps exist such as no way to fetch a specific historical asset or cancel an in-progress generation, but these are not fatal to the primary use case.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vynnlee/google-flow-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server