Skip to main content
Glama

Plan a storyboard, keep characters consistent, render shots, edit them, add music and a voice-over, and cut the film together, all by talking to Claude or any other MCP client.

Not affiliated with Google. This server does not control the Google Flow web app and does not use Flow credits. It rebuilds Flow's way of working on the public Gemini API, so you pay Google directly through your own API key.

See it work

Related MCP server: Gemini Image MCP

What makes it different

In Google Flow

Here

Ingredients / Characters: tag an asset to reuse it

flow_ingredient_save, then write @mira in any prompt. Reference images and a description are attached for you

Frames to Video

A cheap keyframe per shot becomes the first frame of its video; first + last frame also works

Scenebuilder: arrange, trim, preview, download

flow_storyboard_plan → flow_storyboard_render → flow_assemble (local ffmpeg, bundled)

Extend / edit / insert / remove

flow_extend_video, flow_edit_video ("Add light snowfall", "Make this anime")

Camera controls

camera="push-in", "orbit", "drone": 18 presets or your own words

Draft at 360p for a third of the cost

quality="draft", then "standard" only for shots that work

Project view

flow_board writes a self-contained HTML board with players

And three things the web app cannot do:

It looks at its own work

Image tools return a preview and flow_review returns evenly spaced video frames, so the assistant can catch a broken hand or a misspelled title before you do.

Spending is guarded

Every result shows an estimated price. Anything above a threshold returns a quote first and waits for your yes. Daily limits and a daily budget are on by default.

Long jobs do not time out

Shots render in parallel as background jobs. The tool returns after a couple of minutes and flow_project shows progress.

Music (Lyria) and narration (Gemini TTS, 130+ languages) are mixed in at assembly.

How it works

A request, end to end

The server is a local process. Only generation requests leave your machine, and each one passes the spend guard first.

From one sentence to a finished film

Cheap steps come first. You approve the look on stills, then the money on a quote.

Both diagrams follow your light or dark theme. They were made with Archify; the sources are in docs/diagrams.

What you get

Try it without an API key

Set FLOW_DEMO=1 and every tool works with local placeholder media: scene cards for images, slow-zoom clips for video, a soft tone for audio. Nothing is sent to Google and nothing is billed, but projects, storyboards, previews, cost estimates, assembly and the board all behave for real.

pip install -e .
python examples/offline_demo.py demo_output
# then open demo_output/projects/paper-rocket/board.html

In Claude Desktop, add "FLOW_DEMO": "1" to the server's env block. Remove it when you add a key.

A film in one conversation

You: Make a 20-second vertical short about a girl who builds a paper rocket.

Assistant: creates the project → saves @mira with a reference sheet → plans 4 shots → generates 4 keyframes and shows you the contact sheet (about $0.13) → after your OK renders 360p drafts (about $0.46) → reviews frames, re-renders one weak shot → adds a 30-second piano clip and a Korean voice-over → assembles paper-rocket.mp4 and opens the board.

The same flow is available as ready-made prompts: short_film, product_ad, social_image_set.

Tools (21)

Quick jobs

Tool

Does

flow_generate_image

Text → 1–4 images; preset, style, @ingredient tags; up to 4K

flow_edit_image

Edit with plain language (add, remove, extend canvas, swap background)

flow_generate_image_with_references

Up to 14 reference images

flow_generate_video

Text (+ first/last frame, references, camera) → 3–15 s video with audio

flow_extend_video

Continue a clip, up to 30 s total

flow_edit_video

Change a clip or a storyboard shot with one sentence

flow_image_to_video

Anchor image → video in one call

Studio

Tool

Does

flow_project

Create/open a project, or show status and the next step

flow_ingredient_save

Save a character, object, location or style (optionally generate a reference sheet)

flow_storyboard_plan

Set the shot list; returns keyframe, draft and standard cost estimates

flow_shot_update

Rewrite a shot, pick a take, trim it

flow_storyboard_keyframes

One still per shot + a contact sheet to check the look

flow_storyboard_render

Render shots in the background at draft / standard / high

flow_generate_music

Lyria: 30 s clip or full song

flow_generate_narration

Gemini TTS voice-over, 30 voices, style control

flow_assemble

Join takes, apply trims, mix music and narration (no API cost)

flow_review

Return an image or video frames for the assistant to inspect

flow_board

HTML board of the whole project

Housekeeping: flow_list_presets, flow_estimate_cost, flow_usage_today

Models and list prices

Paid tier, Standard, checked 2026-11-13 on the pricing page. Estimates only: Google bills by tokens.

Job

Default model

Price

Image, fast (default)

gemini-nano-banana-2.1

~$0.034 (1K) / $0.050 (2K) / $0.113 (4K)

Image, pro

gemini-3-pro-image

~$0.134 (1K/2K) / $0.24 (4K)

Image, lite

gemini-3.1-flash-lite-image

~$0.034 (1K)

Video

gemini-omni-1.2-flash

~$0.023/s (360p), $0.07/s (720p), $0.104/s (1080p), $0.209/s (4K)

Music

lyria-3-clip-preview / lyria-3.5

$0.04 per 30 s clip / $0.08 per song

Narration

gemini-3.8-flash-tts

~$0.0002/s (free tier available)

Image, video and music models have no free tier: the API key needs billing enabled. A 20-second, 4-shot film costs roughly $0.13 (keyframes) + $0.46 (draft) + $1.40 (720p) + $0.04 (music).

Install

Requires Python 3.11+ and uv. ffmpeg is bundled through imageio-ffmpeg.

git clone https://github.com/Reasonofmoon/google-flow-mcp

Claude Desktop → claude_desktop_config.json:

{
  "mcpServers": {
    "google-flow": {
      "command": "uv",
      "args": ["--directory", "/path/to/google-flow-mcp", "run", "google-flow-mcp"],
      "env": {
        "GOOGLE_API_KEY": "YOUR_PAID_GEMINI_API_KEY",
        "FLOW_OUTPUT_DIR": "/path/to/output"
      }
    }
  }
}

Config file: %APPDATA%\Claude\claude_desktop_config.json (Windows), ~/Library/Application Support/Claude/claude_desktop_config.json (macOS), ~/.config/Claude/claude_desktop_config.json (Linux).

Quit the app completely after editing (tray or menu bar icon → Quit; closing the window is not enough) and open it again. Then ask: "Show me flow_list_presets."

Claude Code:

claude mcp add google-flow -s user \
  -e GOOGLE_API_KEY=YOUR_PAID_GEMINI_API_KEY -e FLOW_OUTPUT_DIR=/path/to/output \
  -- uv --directory /path/to/google-flow-mcp run google-flow-mcp

Which API key

Use a key from a Google AI Studio project that has billing enabled (shown as "Tier 1" or higher on the API keys page). Google's price list offers no free tier for the image, video and music models, so keys marked "Free tier" will not work for them. This free request shows whether the video model is visible to your key, without generating anything:

curl -s -H "x-goog-api-key: $GOOGLE_API_KEY" \
  https://generativelanguage.googleapis.com/v1beta/models/gemini-omni-1.2-flash

A JSON description means the key can see the model; an error means it cannot. It does not check billing: that only shows on the first real generation.

Check your install

python examples/mcp_smoke_test.py

This starts the real stdio server, speaks MCP to it and makes a whole film in demo mode (project, ingredient, storyboard, keyframes, background render, edit, music, narration, assembly, review, board), then checks that a missing key produces a helpful error. No API key, nothing billed. Expect SUMMARY 26/26 checks passed.

Settings

Variable

Default

Meaning

GOOGLE_API_KEY

—

Gemini API key (required unless FLOW_DEMO=1)

FLOW_OUTPUT_DIR

~/google_flow_outputs

Files, log and projects/

FLOW_DEMO

off

1 = placeholder media, no API calls, nothing billed

FLOW_DEFAULT_IMAGE_MODEL

fast

fast, pro, lite or a model id

FLOW_MODEL_IMAGE_FAST / _PRO / _LITE, FLOW_MODEL_VIDEO, FLOW_MODEL_MUSIC_CLIP / _SONG, FLOW_MODEL_TTS

see above

Swap models without code changes

FLOW_DAILY_BUDGET_USD

5

Estimated spend per day, 0 = off

FLOW_DAILY_IMAGE_LIMIT / FLOW_DAILY_VIDEO_LIMIT

100 / 20

Per day, 0 = off

FLOW_VIDEO_CONFIRM_USD

0.5

Video jobs above this return a quote first

FLOW_INLINE_PREVIEW

1

Return previews to the assistant

FLOW_RENDER_WAIT_SECONDS / FLOW_RENDER_CONCURRENCY

150 / 2

Storyboard render behavior

FLOW_PRESETS_FILE, FLOW_PRICES_FILE

—

Your own presets / price table (JSON)

FLOW_PROJECTS_DIR, FLOW_LOG_FILE, FLOW_FFMPEG

—

Path overrides

FLOW_API_VERSION

v1beta

Gemini API version. The video, music and TTS models are not on v1

Limits and spend are counted from the local generation_log.jsonl, not from Google's billing.

What a project looks like on disk

projects/paper-rocket/
  project.json        plan, ingredients, takes, spend (plain JSON)
  board.html          open in a browser
  ingredients/        reference images
  keyframes/  shots/  audio/  renders/

The server never deletes project files; re-rendering adds takes.

Good to know

  • A standard render is a new generation from the same keyframe, so motion can differ from the draft.

  • flow_review shows frames only. The assistant cannot hear audio.

  • Video: 3–15 s per shot (3–10 s with a last frame), up to 6 reference images, 16:9 or 9:16. Edits and extensions work on clips of 15 s or less.

  • English prompts are fully supported for video; other languages work but are not officially evaluated.

  • Images, video and audio carry Google's invisible SynthID watermark.

  • Some uploads are restricted by region or content (recognizable people, minors in the EEA/UK/CH).

Troubleshooting

What you see

Why

What to do

404 ... Model 'gemini-omni-1.2-flash' not found

Versions before 0.3.3 called the v1 API, which does not have the video, music or TTS models

Update to 0.3.3 or later (git pull), then restart the client. flow_list_presets should show Gemini API version: v1beta

404 for veo-3.1-generate-preview

Veo 3.1 Preview was shut down on 2026-10-22. It is not a key problem

Use this server (Gemini Omni Flash) instead of the original 0.1.0

Two sets of flow_* tools, or the wrong one answers

The original google-flow-mcp 0.1.0 is still registered next to this one; both use the same tool names

Remove the old entry, for example claude mcp remove google-flow -s user, or delete it from claude_desktop_config.json

402 / "prepayment credits are depleted"

The key's project is prepaid and has no balance

Top up, or use a key from a project with billing and balance

Image, video or music fails but flow_generate_narration works

Probably a free-tier key: only narration has a free tier

Use a key from a billing-enabled project (see Which API key)

GOOGLE_API_KEY is not set

No key in the server's env block, or the placeholder was left in

Add the key, or set FLOW_DEMO=1 to try without one

Changes to the config or code do not take effect

The client keeps the old server process alive

Quit the client completely and reopen it

NOT GENERATED YET. Estimated cost ...

Not an error: the job is above FLOW_VIDEO_CONFIRM_USD

Say yes, and the assistant repeats the call with confirm_cost=true

Daily budget reached

The local estimate passed FLOW_DAILY_BUDGET_USD (default $5)

Raise the limit in env, or continue tomorrow

Every call, including failures and their error text, is written to <FLOW_OUTPUT_DIR>/generation_log.jsonl. Attach the relevant lines when you open an issue.

Status

Alpha. CI runs on Linux (Python 3.11–3.13, mcp 1.x and 2.x), Windows and macOS: 51 tests that mock Google's API and run ffmpeg and Pillow for real, plus the stdio smoke test above against a live server process.

Live API status as of 2026-11-13: the first real call (video) failed with the API-version bug that 0.3.3 fixes. A successful live generation with 0.3.3 has not been confirmed yet. Request shapes follow the official docs; please open an issue if a real call behaves differently.

pip install -e ".[dev]" && pytest -v

Credits and license

Available Tools

21 tools
flow_assembleA

Join the selected take of each shot into one film (local ffmpeg, no API cost).

Applies per-shot trims, keeps each clip's own audio, and mixes in the project's music (looped, faded out) and narration when present.

Args: shots: Shot numbers in playback order. Default: all shots in storyboard order. with_music: Use the project's music if there is one. with_narration: Use the project's narration if there is one. music_volume: 0-1, default 0.25 so it sits under dialogue. clip_volume: Volume of the clips' own audio (0 mutes it). project_name: Project to use (default: active project).

Inputs: shots, with_music, clip_volume, music_volume, +2 more.

flow_boardB

Write the project's HTML board (ingredients, storyboard with players, audio, latest film).

Args: open_in_browser: Also open it in the default browser on this computer. project_name: Project to use (default: active project).

Inputs: project_name, open_in_browser.

flow_edit_imageA

Edit an existing image with a natural-language instruction (no mask needed).

Args: image_path: Path to the source image. prompt: What to change. edit_mode: 'free' (default, just follow the prompt), 'inpaint_insertion' (add), 'inpaint_removal' (remove), 'outpaint' (extend canvas), 'bgswap' (new background). model: 'fast' (default), 'pro', 'lite', or a full model id. aspect_ratio: Output aspect ratio. Defaults to the input image's shape. image_size: '1K', '2K' or '4K'. output_dir: Override the output folder. mask_mode: Ignored. Kept for compatibility with 0.1.0 (Nano Banana edits need no mask).

Inputs: prompt (required), image_path (required), model, edit_mode, +4 more.

flow_edit_videoA

Edit a video with a short instruction: add or remove an object, restyle, relight.

Keep the prompt short ('Make the jacket red', 'Add light snowfall', 'Make this anime'). Give ONE source: a storyboard shot (the edit becomes a new take), a local video of 15 s or less, or a previous_interaction_id from an earlier video result.

Args: prompt: The change to make. shot: Storyboard shot number to edit (uses its selected take). video_path: Local MP4 to edit. previous_interaction_id: interaction_id from an earlier video tool result. resolution: '360p', '720p', '1080p' or '4k' (default: same as the shot's take, else 720p). keep_rest: Add 'Keep everything else the same.' (recommended). confirm_cost: Set true only after the user accepted the cost estimate. project_name: Project to use when shot is given (default: active project).

Inputs: prompt (required), shot, keep_rest, resolution, +4 more.

flow_estimate_costB

Estimate the cost of a generation before running it (nothing is generated).

Args: kind: 'image' or 'video'. model: Image model alias/id (ignored for video). count: Number of images. image_size: '1K', '2K' or '4K'. duration_seconds: Video length. resolution: '360p', '720p', '1080p' or '4k'.

Inputs: kind, count, model, image_size, +2 more.

flow_extend_videoA

Continue or edit a video with Gemini Omni Flash.

Best: pass previous_interaction_id from an earlier video result (keeps full context, supports new dialogue). Otherwise pass video_path to upload a clip of 15 s or less. Extension adds 3-10 s per turn, up to 30 s total. Prompts like "Make the sky purple" edit the clip instead of extending it.

Args: prompt: How the scene continues, or what to change. video_path: Local MP4 to extend (uploaded through the Files API). previous_interaction_id: interaction_id printed by an earlier video tool. duration_seconds: Length of the new part, 3-10. resolution: '360p', '720p', '1080p' or '4k'. reference_image_paths: Images of new characters/objects to bring in. confirm_cost: Set true only after the user accepted the cost estimate. output_dir: Override the output folder. aspect_ratio: '16:9' or '9:16'. Usually not needed: a local clip's shape is detected. Pass it if a vertical clip comes back landscape.

Inputs: prompt (required), output_dir, resolution, video_path, +5 more.

flow_generate_imageA

Generate 1-4 images from a text prompt with a Nano Banana model.

Args: prompt: Description of the image. Text inside quotes is rendered as on-image text. model: 'fast' (Nano Banana 2.1, default), 'pro' (Nano Banana Pro), 'lite', or a full model id. number_of_images: 1-4 (each image is a separate request and is billed separately). aspect_ratio: e.g. '1:1', '2:3', '3:4', '4:5', '9:16', '16:9', '21:9'. Overrides preset. image_size: '1K', '2K' or '4K'. Overrides preset. Lite supports 1K only. preset: Format preset, e.g. 'youtube-thumbnail', 'shorts', 'pinterest-pin', 'worksheet'. style: Style preset, e.g. 'photo', 'watercolor', 'kids-book', 'infographic'. negative_prompt: Things to avoid. output_dir: Override the output folder.

Inputs: prompt (required), model, style, preset, +5 more.

flow_generate_image_with_referencesA

Generate images guided by up to 14 reference images (characters, objects, style).

Nano Banana 2.1: up to 10 object + 4 character images. Nano Banana Pro: up to 6 object + 5 character + 3 style images.

Args: prompt: What to create and how to use the references. reference_image_paths: 1-14 image paths. model: 'fast' (default), 'pro', 'lite', or a full model id. aspect_ratio / image_size / preset / style: same as flow_generate_image. number_of_images: 1-4. output_dir: Override the output folder.

Inputs: prompt (required), reference_image_paths (required), model, style, +5 more.

flow_generate_musicA

Generate music with Lyria: a 30-second clip (about $0.04) or a full song (about $0.08).

Describe genre, mood, tempo and instruments. In a project the track becomes the film's background music (looped and faded out by flow_assemble).

Args: prompt: e.g. 'warm lo-fi piano with soft vinyl crackle, 80 bpm, hopeful'. kind: 'clip' (30 s) or 'song' (a couple of minutes, can include lyrics). instrumental: Ask for no vocals (default true; best for background music). attach: Store it as the active project's music. project_name: Project to use (default: active project, if any).

Inputs: prompt (required), kind, attach, instrumental, +1 more.

flow_generate_narrationA

Generate a voice-over with Gemini TTS (130+ languages, including Korean; very cheap).

Inline tags such as , or are supported. In a project the narration is laid over the film from the start by flow_assemble.

Args: text: The words to speak. voice: Prebuilt voice, e.g. Kore (firm), Puck (upbeat), Charon (informative), Aoede (breezy), Sulafat (warm), Achird (friendly), Gacrux (mature). style: Delivery, e.g. 'calm documentary narrator' or 'excited, fast'. attach: Store it as the active project's narration. project_name: Project to use (default: active project, if any).

Inputs: text (required), style, voice, attach, +1 more.

flow_generate_videoA

Generate a video with native audio using Gemini Omni Flash.

Args: prompt: Scene, camera movement, lighting, mood, sound. Say "single continuous shot" if you do not want cuts. duration_seconds: 3-15 (3-10 when last_frame_path is given). aspect_ratio: '16:9' or '9:16'. Overrides preset. resolution: '360p', '720p' (default), '1080p' or '4k' (1080p/4k are upscaled). preset: e.g. 'shorts' (9:16) or 'youtube-thumbnail' (16:9). camera: Camera move preset ('push-in', 'orbit', 'drone', 'handheld', ... see flow_list_presets) or your own description. negative_prompt: Things to avoid (e.g. "no dialogue, no text"). anchor_frame_path: Image to start from (image-to-video). last_frame_path: Image to end on (needs anchor_frame_path; interpolation). reference_image_paths: Up to 6 images of characters/objects to keep consistent. confirm_cost: Set true only after the user accepted the cost estimate. output_dir: Override the output folder. enhance_prompt: Ignored. Kept for compatibility with 0.1.0.

Inputs: prompt (required), camera, preset, output_dir, +9 more.

flow_image_to_videoA

Pipeline: make (or reuse) an anchor image, then animate it with Gemini Omni Flash.

Args: video_prompt: How the scene should move. image_prompt: Prompt for a new anchor image (if image_path is not given). image_path: Existing image to animate. image_model: 'pro' (default here, best detail), 'fast' or 'lite'. duration_seconds: 3-15. aspect_ratio: '16:9' or '9:16'. Overrides preset. resolution: '360p', '720p', '1080p' or '4k'. preset: e.g. 'shorts' or 'youtube-thumbnail'. style: Style preset for the anchor image. negative_prompt: Things to avoid in both steps. confirm_cost: Set true only after the user accepted the cost estimate. output_dir: Override the output folder.

Inputs: video_prompt (required), style, preset, image_path, +8 more.

flow_ingredient_saveA

Save a reusable ingredient (character, object, location or style) in the project.

Afterwards write @name in any prompt (image, video, storyboard shot) and its reference images and description are attached automatically, which keeps the look consistent.

Args: name: Short handle, e.g. 'mira'. Used as @mira. description: What must stay the same (face, hair, clothes, colors, materials...). kind: 'character', 'object', 'location' or 'style'. image_paths: 1-3 existing reference images (copied into the project). generate: If true and no images are given, generate a reference sheet from the description. model: Image model for generate ('fast' default, 'pro' for more detail). project_name: Project to use (default: active project).

Inputs: name (required), description (required), kind, model, +3 more.

flow_list_presetsB

List format presets, style presets, current models and limits.

Inputs: no named parameters.

flow_projectA

Create or open a project (it becomes the active one), or show the active project's status.

A project is a folder holding ingredients, a storyboard, takes, audio and finished films.

Args: name: Project name. New name = create; existing name = open. Omit to see the status. title: Display title. logline: One-sentence summary of the piece. aspect_ratio: '16:9' (default) or '9:16' for Shorts/Reels. style: A look applied to every shot, e.g. 'warm watercolor picture book'.

Inputs: name, style, title, logline, +1 more.

flow_reviewA

Look at a generated file: returns the image, or evenly spaced frames of a video.

Use this to check a result with your own eyes before telling the user it is good: faces and hands, text spelling, continuity between frames, whether the prompt was followed.

Args: path: Image or video file. frames: Number of video frames to sample (1-12, default 6).

Inputs: path (required), frames.

flow_shot_updateA

Change one shot: its text, which take is used, or where it is trimmed in the final cut.

Changing prompt or ingredients clears the keyframe so it is regenerated next time.

Args: shot: Shot number. prompt / action / duration / camera / dialogue / sound / ingredients: new values. select_take: Take number (1 = first) to use in flow_assemble. trim_start: Seconds to cut from the start of the take in the final cut (0 = none). trim_end: Second at which the take ends in the final cut (0 = until the end). project_name: Project to use (default: active project).

Inputs: shot (required), sound, action, camera, +8 more.

flow_storyboard_keyframesA

Generate one still image (keyframe) per shot and return a contact sheet to look at.

Keyframes are cheap (about $0.03 each with the fast model) and become the first frame of each video, so fix the look here before paying for video.

Args: shots: Shot numbers. Default: shots without a keyframe (all shots if redo=true). model: 'fast' (default), 'pro' or 'lite'. image_size: '1K' (default) or '2K'. redo: Regenerate keyframes that already exist. project_name: Project to use (default: active project).

Inputs: redo, model, shots, image_size, +1 more.

flow_storyboard_planA

Set the storyboard: an ordered list of shots. Nothing is generated yet.

Each shot is an object with: prompt (required): what we see: subject, place, light. Use @name for ingredients. action: what moves or happens during the shot. duration: seconds, 3-15 (default 5). camera: a camera preset ('push-in', 'orbit', 'drone', ...) or your own words. dialogue: spoken line(s), e.g. 'Mira says: "We made it."' sound: sound design, e.g. 'soft rain, distant thunder, no music'. ingredients: extra ingredient names to attach besides the @tags.

Args: shots: The shot list. mode: 'replace' (default; refuses if existing shots already have keyframes or takes), 'append' (add to the end) or 'reset' (drop the old plan; files stay on disk). project_name: Project to use (default: active project).

Inputs: shots (required), mode, project_name.

flow_storyboard_renderA

Render storyboard shots to video (keyframe = first frame, ingredients = references).

Shots render in parallel as background jobs. The call waits up to wait_seconds and then returns; unfinished shots keep rendering, and flow_project shows their progress. A standard/high render is a new generation from the same keyframe, so motion can differ from the draft while the look stays the same.

Args: shots: Shot numbers. Default: every shot without a take at this quality. quality: 'draft' (360p, cheapest, for checking motion), 'standard' (720p) or 'high' (1080p). confirm_cost: Set true only after the user accepted the cost estimate. wait_seconds: How long to wait before returning (default 150). project_name: Project to use (default: active project).

Inputs: shots, quality, confirm_cost, project_name, +1 more.

flow_usage_todayA

Show today's generation count and estimated spend from the local log.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 21 tools

    Disambiguation4/5

    Most tools target a distinct resource+action: image generate/edit/reference, video generate/extend/edit, storyboard plan/keyframe/render, and assembly. A few pairs share inputs and could be momentarily confused (flow_edit_video vs flow_extend_video both take video_path/previous_interaction_id; flow_generate_video vs flow_image_to_video), but the descriptions draw clear boundaries (edit changes content, extend continues the scene).

    Naming Consistency3/5

    All names are snake_case with a uniform flow_ prefix, which is good, but verb/noun ordering is mixed: verb_noun in flow_generate_image, flow_edit_video, flow_list_presets, yet noun_verb in flow_ingredient_save, flow_storyboard_plan, flow_shot_update, plus bare nouns/verbs like flow_project, flow_board, flow_assemble. Readable, but not a predictable single pattern.

    Tool Count4/5

    21 tools is above the ideal 3-15 band, but the surface maps to a genuine multi-stage studio workflow (project setup, ingredients, storyboard, keyframes, renders, audio, assembly, review), so almost every tool earns its place. Minor redundancy exists between image-to-video and the generate/extend pair.

    Completeness4/5

    Covers the full lifecycle: project creation, reusable ingredients, storyboard authoring, keyframe preview, video rendering, music/narration, final assembly, cost estimation, usage tracking, and visual review. Gaps are minor: no explicit ingredient or take deletion, no project listing/selection beyond the active project, and no subtitle/caption tooling.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers