flow-mcp
The flow-mcp server lets you generate images via Google Flow's batchGenerateImages API directly, bypassing the ~10 images/day chat quota.
Text-to-Image: Generate images from a text prompt.
Image-to-Image: Use a local reference image as a base, transformed with a text prompt.
Model selection: Choose from
nano-pro(default),nano2(fast),narwhal, orgem_pix_2.Aspect ratios:
9:16,16:9,1:1,4:3, or3:4.Batch generation: Up to 4 images per request via the
countparameter.Resolution upscaling: Output at
1k(default),2k, or4k(4K requires Ultra).No daily quota limits: Bypasses the Flow Agent chat restriction by calling the API directly.
Persistent browser pool: Reuses Chrome sessions for faster generation with auto-retry on expired auth tokens.
Progress reporting: Reports generation progress in MCP clients like Claude Code.
Provides tools for generating images using Google Flow's image generation API, supporting text-to-image and image-to-image capabilities with no daily quota limits.
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., "@flow-mcpgenerate an image of a futuristic cityscape at sunset"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Flow MCP šØ
MCP server for generating images via Google Flow ā no daily quota limits.
Claude Code (or any MCP client) can generate images using Google Flow's
batchGenerateImages API directly through a Playwright browser context
with your saved authentication, bypassing the Flow Agent chat quota (~10
images/day).
Features
Text-to-Image ā generate images from text prompts
Image-to-Image ā use a reference image (pass
reference_image)No quota limits ā calls the API directly, not through the chat
Persistent browser pool ā reuses Chrome across generations (faster)
Auto-retry ā refreshes auth token if it expires
Progress reporting ā shows generation progress in Claude Code
No external CLI dependencies ā includes its own auth/login
Cross-platform ā Windows, macOS, Linux (incl. headless)
Related MCP server: Nano Banana MCP
Requirements
Dependency | Notes |
Python 3.11+ (or uv) | |
Google Chrome or Playwright's Chromium | For authentication & generation |
Xvfb (Linux headless only) | For |
Installation
Prerequisites
Python 3.11+
Google Chrome (for authentication)
Playwright browsers (for generation)
Install from PyPI (recommended)
pip install flow-mcp
# Or with uv:
# uv pip install flow-mcp
# Install Playwright browsers
playwright install chromium
# Authenticate with Google Flow
flow-mcp auth loginOr install from GitHub
git clone https://github.com/alarconcesar/flow-mcp.git
cd flow-mcp
uv pip install -e .
playwright install chromium
flow-mcp auth loginUsage with Claude Code
Add to your .claude/settings.json:
{
"mcpServers": {
"flow-image-server": {
"command": "uv",
"args": ["run", "flow-mcp"]
}
}
}Restart Claude Code. The generate_image tool will be available.
Parameters
Parameter | Type | Default | Description |
| string | required | Text description of the image |
| enum |
|
|
| integer |
| Number of images (1ā4) |
| enum |
|
|
| string | optional | Path to a local image for I2I |
Examples
Text-to-Image:
Generate an image of a cyberpunk city at night, neon lights, 16:9Image-to-Image:
Take this photo and make it cyberpunk style,
reference_image: /Users/me/photo.jpgCLI commands
flow-mcp # Start MCP server (stdio mode)
flow-mcp auth login # Authenticate with Google Flow
flow-mcp auth list # List saved profiles
flow-mcp help # Show helpEnvironment variables
Variable | Default | Description |
| auto-detected | Profile name |
| platform default | gflow-cli data directory |
| temp directory | Where to save generated images |
Troubleshooting
Auth expired
flow-mcp auth loginContent filter
Google Flow silently blocks certain prompts (returns None).
Try rephrasing ā avoid violence, NSFW, or trademarked content.
Linux headless
# Only needed for authentication (the MCP server itself runs headless)
Xvfb :99 -screen 0 1280x720x24 &
DISPLAY=:99 flow-mcp auth login --browser internalThe MCP server (flow-mcp) now runs completely headless ā no Xvfb needed for generation.
Profile not found
flow-mcp auth list # list profiles
flow-mcp auth login # create a new profileProject structure
flow-mcp/
āāā src/
ā āāā flow_mcp/
ā āāā __init__.py # Package metadata & logging config
ā āāā __main__.py # CLI entry point (auth, server)
ā āāā server.py # FastMCP tool definition
ā āāā generator.py # Core generation logic
ā āāā browser.py # Playwright context & token capture
ā āāā browser_pool.py # Persistent browser context pool
ā āāā auth.py # Login, profile list commands
ā āāā profile.py # Profile resolution
ā āāā recaptcha.py # reCAPTCHA token minting
ā āāā chrome_helpers.py # Chrome detection
ā āāā constants.py # Shared constants
āāā pyproject.toml
āāā LICENSE (MIT)
āāā README.mdLicense
MIT ā see LICENSE.
Available Tools
1 toolgenerate_imageA
Generate images via Google Flow's batchGenerateImages API. Bypasses the Flow Agent chat quota (~10/day) by calling the API directly from a browser context with your saved authentication. Supports text-to-image and image-to-image (pass a reference_image path). Supports upscale to 2K/4K (pass resolution parameter). Models: nano-pro (default), nano2 (fast), narwhal, gem_pix_2. Aspects: 9:16 (default portrait), 16:9 (landscape), 1:1 (square), 4:3, 3:4. Resolutions: 1k (default, original), 2k, 4k (requires Ultra).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| model | No | nano-pro | |
| aspect | No | 9:16 | |
| prompt | Yes | ||
| resolution | No | 1k | |
| reference_image | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that it uses saved authentication, bypasses chat quotas, and supports upscale. It notes the 'Ultra' requirement for 4K. However, it omits rate limits, costs, and error behavior, preventing a higher 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 a single dense paragraph, but it is well-structured and front-loaded with the core purpose. It packs significant detail without extraneous words. Could be slightly improved by using bullet points for readability, but it remains concise and informative.
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 6 parameters (1 required), 2 enums, and an output schema (true), the description covers the essential functionality, parameter options, and quirks like the Ultra requirement. It lacks details on return values, but the output schema likely covers that. Minor gaps in error handling or batch limitations prevent 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?
Schema description coverage is 0%, so the description must compensate. It adds substantial meaning: explains `count` as number of images, lists model options with defaults, interprets `aspect` ratios, clarifies `resolution` defaults and options (1k, 2k, 4k), and describes `reference_image` for image-to-image. This fully compensates for the lack of schema descriptions.
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 explicitly states it generates images via Google Flow's batchGenerateImages API, lists supported modes (text-to-image and image-to-image), and details models, aspects, and resolutions. It clearly distinguishes itself from the Flow Agent chat quota by noting it bypasses that limitation, making the purpose unmistakable.
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 usage guidance, such as bypassing the chat quota and requiring 'Ultra' for 4K. It details options without ambiguity. However, it does not explicitly state when not to use this tool or mention alternatives, though no sibling tools exist. Slight room for improvement.
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.
1 tool update
v0.2.0- First observed
generate_image
TDQS
Scored across 1 tool
With only one tool, there is no possibility for confusion or overlap between tools. The single tool has a clear, distinct purpose.
The sole tool uses a consistent verb_noun pattern (generate_image). With only one tool, naming consistency is inherently maintained.
The server has only one tool, which is on the low end of reasonable scope. While the tool itself is feature-rich, a single tool may feel insufficient for a full image generation service.
The tool covers a wide range of image generation capabilities (text-to-image, image-to-image, upscaling, multiple models and resolutions). Minor gaps like model listing or configuration retrieval are absent but not critical for core functionality.
Maintenance
Related MCP Connectors
MCP server for Flux AI image generation
MCP server for Qwen Image 3 AI image generation
MCP server for NanoBanana AI image generation and editing
MCP server for Midjourney AI image generation and editing
Related MCP Servers
- AlicenseBqualityCmaintenanceMCP server for generating images and audio using Google's Gemini AI models.22MIT
- AlicenseAqualityCmaintenanceMCP server for AI image generation and editing using Google Gemini image models.7473 npmMIT
- AlicenseAqualityCmaintenanceMCP server for generating and editing images using Google Gemini API. Supports text-to-image generation, image editing, and image description.35 npmMIT
- FlicenseBqualityCmaintenanceSelf-hosted MCP server for Google Flow that enables image and video generation, upscaling, and character consistency through your own Google account.22-