Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FLOW_DEMONoSet to 1 for placeholder media, no API calls, nothing billed. Default is off.
FLOW_FFMPEGNoOverride the ffmpeg path.
FLOW_LOG_FILENoOverride the log file path.
FLOW_MODEL_TTSNoOverride the TTS model.
GOOGLE_API_KEYNoGemini API key (required unless FLOW_DEMO=1). Must come from a project with billing enabled.
FLOW_OUTPUT_DIRNoDirectory for files, log and projects/.~/google_flow_outputs
FLOW_API_VERSIONNoGemini API version. The video, music and TTS models are not on v1.v1beta
FLOW_MODEL_VIDEONoOverride the video model.
FLOW_PRICES_FILENoPath to your own price table (JSON).
FLOW_PRESETS_FILENoPath to your own presets file (JSON).
FLOW_PROJECTS_DIRNoOverride the projects directory.
FLOW_INLINE_PREVIEWNoReturn previews to the assistant.1
FLOW_MODEL_IMAGE_PRONoOverride the pro image model.
FLOW_DAILY_BUDGET_USDNoEstimated spend per day, 0 = off.5
FLOW_MODEL_IMAGE_FASTNoOverride the fast image model.
FLOW_MODEL_IMAGE_LITENoOverride the lite image model.
FLOW_MODEL_MUSIC_CLIPNoOverride the music clip model.
FLOW_MODEL_MUSIC_SONGNoOverride the music song model.
FLOW_DAILY_IMAGE_LIMITNoImage generations per day, 0 = off.100
FLOW_DAILY_VIDEO_LIMITNoVideo generations per day, 0 = off.20
FLOW_VIDEO_CONFIRM_USDNoVideo jobs above this estimated cost return a quote first.0.5
FLOW_RENDER_CONCURRENCYNoStoryboard render concurrency.2
FLOW_DEFAULT_IMAGE_MODELNoDefault image model: fast, pro, lite or a model id.fast
FLOW_RENDER_WAIT_SECONDSNoStoryboard render wait behavior in seconds.150

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

google-flow-mcp 0.3.3: Flow-style creative studio on the Gemini API (not the Flow web app; billing is the user's Gemini API key). QUICK JOBS: flow_generate_image / flow_edit_image / flow_generate_video. Image models: 'fast' (Nano Banana 2.1, default), 'pro' (best text and layouts), 'lite'. Video: Gemini Omni Flash, 3-15 s with native audio, 16:9 or 9:16. Use preset=, style=, camera= (see flow_list_presets). FILMS (several shots, consistent characters): 1) flow_project 2) flow_ingredient_save for each character/object/location, then write @name in prompts 3) flow_storyboard_plan 4) flow_storyboard_keyframes and LOOK at the returned sheet; fix weak shots with flow_shot_update before paying for video 5) flow_storyboard_render quality='draft' (360p, about a third of the price), review, then 'standard' for the shots that work 6) optional flow_generate_music / flow_generate_narration 7) flow_assemble 8) flow_board. LOOK BEFORE YOU SPEND: tools return small previews; use flow_review on any image or video to see frames and judge it honestly before going on. COST: image, video and music models need a paid key. Calls above the cost threshold return an estimate first: show it to the user and only repeat with confirm_cost=true after they agree. Daily limits and a daily budget apply (flow_usage_today). Never claim a file was made unless the tool returned its path.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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.

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).

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.

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.

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.

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.

flow_list_presetsB

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

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'.

flow_usage_todayA

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

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'.

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

Prompts

Interactive templates invoked by user choice

NameDescription
short_filmPlan and produce a short multi-shot film with consistent characters.
product_adA 10-15 second product ad with a consistent product look.
social_image_setOne idea as a YouTube thumbnail, a Pinterest pin and a Shorts cover.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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