openFlow
by molkex
README.md
# openFlow — MCP server for Google Flow: Veo video and Nano Banana images
**Generate video and images inside Claude Code, Cursor or any MCP client — through Google Flow,
on your own account.**
[](https://modelcontextprotocol.io)
[](https://claude.com/claude-code)
[](https://cursor.com)
[](https://openflowmcp.com)
[](LICENSE)
```bash
claude mcp add --transport http openflow https://openflowmcp.com/mcp
```
That is the install. No API key to buy, no SDK, no card. Ask your agent to *"generate a paper boat
on a puddle"* and you get a 1376×768 image in about eighteen seconds.
Video runs on **Veo**, images on **Nano Banana** — the same models Google Flow uses in the browser,
except your agent drives them. Google has no public API for either; this server is the missing wire.
<p align="center">
<img src="https://openflowmcp.com/v1/showcase/4c37da6f-bbcc-4ad9-9774-f1a1e68b6976.jpg" width="32%" alt="A black hole distorting nearby light, generated through this MCP server">
<img src="https://openflowmcp.com/v1/showcase/f0d3678c-4ef1-4eec-bce1-07323f04fcc6.jpg" width="32%" alt="Cinematic winter scene generated through Google Flow">
<img src="https://openflowmcp.com/v1/showcase/a62f173d-2d2d-477d-8378-c9e39b360854.jpg" width="32%" alt="Supernova casting cosmic dust, generated by an AI agent">
</p>
<p align="center"><sub>Made by agents through this server ·
<a href="https://openflowmcp.com">300+ more in the live gallery</a></sub></p>
---
## Why you would want this
Google Flow makes some of the best images and video available today, and has **no public API**.
This server is the missing piece: MCP on the side your agent speaks, Flow on the other.
- **Images cost you nothing.** Google's image models are free on a normal account. Not "free tier
with 50 credits" — free.
- **It runs on your account, not ours.** Your credits, your quota, your files. We are the wire, not
the meter.
- **Your agent already knows how to use it.** 31 tools with descriptions written for a model to
read, not for a docs page. No prompt engineering to make it pick the right one.
- **Failures tell you what to do.** Every refusal names the cause, the next step and whether waiting
helps. Nothing ever answers just "error".
---
## Three steps
**1 · Connect the server**
```bash
claude mcp add --transport http openflow https://openflowmcp.com/mcp
```
For Cursor, Cline and everything else:
```json
{
"mcpServers": {
"openflow": {
"type": "http",
"url": "https://openflowmcp.com/mcp",
"headers": { "Authorization": "Bearer YOUR_KEY" }
}
}
}
```
**2 · Let the agent get a key**
Say *"check openflow status"*. With no key it registers one itself — no form, no waiting, no
approval queue.
**3 · Connect your Google account**
Say *"connect my Google account to openflow"*. A small script runs **on your machine**, opens
Google's own login page, and prints a one-time token. Your password is typed into Google's page, in
your browser, and never passes through this service.
Then just ask:
```
draw a red fox in the snow, vertical
make a 4-second video of that fox running
upscale it and save both into ./media
```
📖 [Full walkthrough for Claude Code →](examples/claude-code.md)
---
## What your agent gets
| Group | Tools |
|---|---|
| **Images** | `generate_image`, `upscale_image`, `generate_scene` — the last one builds a location from a 3D layout map, so several shots share one geometry instead of drifting |
| **Video** | `generate_video`, `generate_video_from_image`, `generate_video_between_frames`, `generate_video_with_reference`, `extend_video`, `edit_video`, `upscale_video` |
| **Characters** | `create_character_from_photo`, `create_character_from_description`, `generate_with_face`, `generate_character_turnaround`, `generate_character_expression_sheet`, `list_characters`, `update_character` |
| **Music** | `music_generate` — a full track with lyrics and style control; `music_stems` splits it back into vocals and instruments |
| **Status** | `flow_status`, `flow_health`, `flow_dashboard`, `check_credits`, `check_job`, `list_models`, `fetch_media` |
Five ready-made **scenarios** come with it (MCP prompts): UGC video with a character, character
turnaround, expression sheet, generate-then-refine, one location from several camera angles.
**Things people ask an agent for, and get in one sentence:** *"generate a video in Claude Code"*,
*"make a Veo clip from this image"*, *"turn this photo into a character and shoot it from three
angles"*, *"upscale that video"*, *"write a track with these lyrics"*.
**Models.** Images: Nano Banana 2 (default, ~30 s), Nano Banana Pro (best), Nano Banana 2 Lite.
Video: 4/6/8/10-second clips, image-to-video, reference-to-video, interpolation between two frames,
extension of an existing clip. `list_models` returns the current verified list with credit prices —
the server never invents a model id.
---
## Keeping things consistent
Four behaviours worth knowing before you fight them. All measured against this server on
2026-08-23, not guessed.
**Build reference cards, don't describe the whole scene.** One call re-rolls everything at once:
fix the focus and the freckles change, fix the freckles and the bottle changes size. Instead
generate one approved frame per element — the person, the product, the room — and pass their
`media_id`s as `image_inputs`. Three references held together in a single 21-second call: same
face, same room, same object, only the arrangement changed.
**Render label text on its own.** Text inside a busy scene comes back mangled or mirrored. The
same words on a plain grey background, generated as a standalone product shot, come out clean —
and arrive correct when that shot is used as a reference. Note that a label stops being readable
once the object is small in frame, so brand names need their own close-up.
**For video, `i2v` holds detail and `r2v` holds identity.** `generate_video_with_reference` treats
your frame as an example and rebuilds the scene, so faces survive but small things drift — a hair
strand lying across a cheek was present at two seconds and gone by six. `generate_video_from_image`
continues that exact frame instead, and the same strand survived start, middle and end. Use r2v
when you have no frame yet, i2v when you do.
**`generate_scene` fixes geometry, not materials.** The layout map places objects at true positions
and depths reliably. Left alone it will still reinvent the architecture between shots — one camera
gave an ordinary window, another gave floor-to-ceiling glazing and a mountain view. Pass the room's
own reference frame in `image_inputs` alongside the layout and the materials hold.
---
## What it costs
| | |
|---|---|
| **Images** | **free.** A brand-new key gets 25 before linking a GitHub account; linking is one click, free, and removes the limit for good |
| **Video** | your own Google credits — 7 for 4 seconds, 10 for 6, 12 for 8 — plus a subscription here, which is what keeps the service running |
| **Subscription** | **$6 for a month**, $15 for three, $24 for six, $36 for a year — that last one works out to $3/month. It unlocks video and lets you keep your work out of the public gallery |
| **Everything else** | nothing. No per-image fee, no markup on credits, no seat pricing |
Pay by card, or send **USDT directly** — TRON (TRC20), BNB Smart Chain (BEP20), TON or Solana. The
crypto path takes no processor and no fee: you transfer to an address, the subscription turns on by
itself once the network confirms.
---
## Honest limits
Written down because finding them yourself costs an evening:
- **8 simultaneous generations per Google account.** Measured against Google's own ceiling, not
guessed. Going over returns a wait, not an error — the job goes back in the queue and retries by
itself.
- **Nano Banana Pro has its own daily quota** per account, separate from credits.
- **Files stay on the server until the disk runs low**, and even then only files you already
downloaded get removed. Anything you never fetched is never deleted. Every result comes back with
a direct download link — save it into your project and it is yours for good.
- **One Google account is one pool of credits.** Attach several and the work spreads across them,
and your own rate limits rise with the count.
---
## Privacy
- Your Google password never reaches this service. The login happens in your browser, on your
machine; only a token is passed on.
- Tokens are stored encrypted (AES-256-GCM), with the encryption key kept apart from the database.
- Your generations are visible only to your key. The public gallery shows only work whose owner
chose to leave it public.
- The whole story, in plain words: [openflowmcp.com/trust](https://openflowmcp.com/trust)
---
## Questions people actually ask
**Do I need a paid Google Flow subscription?**
No. A normal Google account generates images for free. Video spends that account's credits, which
come with Google AI plans.
**Is my account at risk?**
The server uses the same tokens Google's own apps use, and nothing else. The concurrency cap exists
precisely so your account is never hammered.
**Can my Google account get disconnected?**
The link can drop — if you change your Google password, revoke sessions, or remove the device in
Google security settings. Nothing is lost when it happens: reconnecting takes a minute, and the
service tells you about it directly instead of leaving you to guess from a failed generation.
**How do I pay if cards do not work in my country?**
Send USDT on TRON, BSC, TON or Solana. The cabinet shows an address and an exact amount; the
subscription turns on by itself once the network confirms — usually within a minute.
**Can I attach several accounts?**
Yes, and you should — work spreads across them and your rate limits rise with the count.
**What if something breaks?**
Every refusal says what happened and what to do next. If one ever leaves you guessing, that is a
bug worth reporting: [t.me/mxmtkchk](https://t.me/mxmtkchk).
**Is the server open source?**
No. This repository is the documentation; the service is closed-source and hosted.
---
## Start
```bash
claude mcp add --transport http openflow https://openflowmcp.com/mcp
```
| | |
|---|---|
| 🌐 Service | **[openflowmcp.com](https://openflowmcp.com)** |
| 🔌 MCP endpoint | `https://openflowmcp.com/mcp` |
| 👤 Your cabinet | [openflowmcp.com/account](https://openflowmcp.com/account) |
| 🔒 What is stored | [openflowmcp.com/trust](https://openflowmcp.com/trust) |
| 📄 Terms | [openflowmcp.com/terms](https://openflowmcp.com/terms) |
| 💬 Support | [t.me/mxmtkchk](https://t.me/mxmtkchk) — one channel, and it answers |
<sub>Not affiliated with Google. "Google Flow" and "Veo" are trademarks of Google LLC.</sub>
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessUnresponsive