Gemini Omni MCP
MCP server for Google's Gemini Omni Flash video model — generate and edit short MP4 clips with native audio from your AI agent.
Text-to-video: prompt-only MP4 generation with generated music, ambience, and SFX
Image-to-video: animate a single reference image with motion and camera direction
Reference-to-video: up to 6 reference images to lock subjects, style, or props, bound with
<FIRST_FRAME>/<IMAGE_REF_N>tagsFirst/last-frame interpolation: transition between two images
Conversational editing: iterate on a generated clip via
previous_interaction_id, using short prompts like "Keep everything else the same"Upload-and-edit: edit your own MP4 (10s or less) via
input_video_pathVideo extension: continue a generated or uploaded clip by 3-10s per turn, up to 40s total
Creative control: timing cues (
[0-3s],[3-6s]), single-continuous-shot vs. multi-cut direction, audio directionOutput options: 16:9 or 9:16, 360p/720p (default)/1080p/4k (upscaled), 24fps, SynthID-watermarked, saved to
~/gemini_omni_videosBatch generation: run multiple prompts in conservative parallel batches (max 4)
Delivery: Files API URI (default, recommended) or inline; optional LLM prompt enhancement
Limitations: clips are 3-10s; system instructions, temperature, negative prompts, voice edits, YouTube sources, and multi-video reasoning are unsupported; uploaded-video editing is unavailable in some regions.
Provides tools to generate and edit videos using Google's Gemini Omni model, supporting text-to-video, image-to-video, reference images, and video editing with batch generation.
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., "@Gemini Omni MCP Generate a 5-second video of a sunset over mountains"
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.

Gemini Omni MCP
MCP server for Google's Gemini Omni Flash (
gemini-omni-1.1-flash) video model — text-to-video, image-to-video, reference-guided video, and conversational video editing with native audio, straight from your AI agent.
Setup
Get a Gemini API key from Google AI Studio, then add the server to your MCP config.
Claude Desktop / Claude Code / Cursor
Add to your MCP config (mcp.json / .claude.json / claude_desktop_config.json):
{
"mcpServers": {
"gemini-omni": {
"command": "uvx",
"args": ["gemini-omni-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key-here"
}
}
}
}Droid CLI
droid mcp add gemini-omni "uvx gemini-omni-mcp@latest" --env GEMINI_API_KEY=your-api-key-hereGenerated MP4s are saved to ~/gemini_omni_videos by default (set OUTPUT_DIR to change).
Related MCP server: veo-mcp-server
Features
Text-to-video: prompt-only MP4 generation with generated audio (music, ambience, SFX)
Image-to-video: animate a single reference image with motion and camera direction
Reference-to-video: up to 6 reference images to lock subjects, style, or props
Conversational editing: iterate on a generated video via
previous_interaction_id, or upload your own MP4 and edit itVideo extension: continue a generated or uploaded video by 3-10s per turn, up to 40s total
First/last-frame interpolation: transition between two images with
<FIRST_FRAME>and<LAST_FRAME>Prompt role tags:
<FIRST_FRAME>,<LAST_FRAME>, and<IMAGE_REF_N>bind reference images to rolesTiming cues:
[0-3s],[3-6s],[6-10s]direct the action beat by beatResolution control:
360p,720p(default),1080p, or4k(upscaled)Batch generation: run multiple prompts in conservative parallel batches (max 4)
URI or inline delivery: robust Files API polling and download built in
Output is 24fps MP4 (3-10s clips, 360p/720p/1080p/4k) with SynthID watermarking.
Showcase
All videos below were generated by this server with the Gemini Omni Flash model, sound on.
Corgi on a hoverboard
A corgi wearing tiny goggles rides a glowing hoverboard through a neon-lit Tokyo street at night, rain reflections on the pavement, camera tracking alongside, single continuous shot, cinematic lighting, upbeat synthwave music.
https://github.com/user-attachments/assets/4b9a8e87-7db0-469d-a261-3c354f7fe9b8
Astronaut latte art
An astronaut in a white spacesuit pours latte art into a floating cup inside a cozy moon-base cafe, Earth visible through a large window, steam swirling in low gravity, slow dolly-in, warm lighting, gentle ambient cafe sounds.
https://github.com/user-attachments/assets/88072ef8-1ce4-4c80-a05a-bfb5531d1271
Origami ocean
An origami paper whale swims gracefully through a stylized paper-craft ocean, paper waves folding and unfolding, paper seagulls gliding above, soft sunlight, camera slowly orbiting, calm orchestral score.
https://github.com/user-attachments/assets/c1e31341-e53c-4a55-af12-d6bb9432dcf5
Tools
generate_video
Generates or edits one MP4 and returns JSON with video.path, interaction_id, and metadata.
Argument | Type | Description |
| string | Scene, motion, camera, lighting, mood, and audio direction |
| string? |
|
| string? |
|
| string? |
|
| list? | Up to 6 local image paths |
| string? | Local MP4 (10s or less) to upload and edit or extend |
| string? |
|
| string? | Continue editing or extending a generated video |
| bool? | Optional LLM prompt enhancement, default |
batch_generate
Runs multiple prompts in parallel batches, capped at 4.
Argument | Type | Description |
| list | One prompt per video |
| — | Shared across the batch, same semantics as |
| int? | Parallelism, capped at |
Configuration
Everything is configured through environment variables (or a local .env):
Variable | Default | Description |
| — | Required. |
|
| Where generated MP4s are saved |
|
|
|
|
|
|
|
|
|
|
| Generation timeout in seconds |
|
| Seconds between Files API polls |
|
| Max seconds waiting for file activation |
|
| Max parallel generations |
|
| LLM-enhance prompts before generation |
|
| Logging level |
Prompting tips
By default Omni generates a few different shots with cuts; ask for a "single continuous shot, no scene cuts" when you want one unbroken scene.
Always include audio direction, for example "gentle ambient sound, no dialogue".
For edits, keep the prompt short and add "Keep everything else the same".
To lengthen a video, say "Extend this video" with
previous_interaction_idor an uploaded clip of 10s or less; each turn adds 3-10s, up to 40s total. Leavetaskunset — the API rejects an explicit task together withprevious_interaction_id.Use
<FIRST_FRAME>and<IMAGE_REF_N>tags to bind reference-image roles.Timing cues like
[0-3s],[3-6s], and[6-10s], or natural language like "Every 2s cut to a new frame", stage your own scene cuts. When extending, 0s refers to the start of the extension.
Limitations
MP4 clips of 3-10 seconds at 24fps, SynthID-watermarked;
1080pand4kare upscaled.System instructions, temperature, negative prompts, voice edits, YouTube sources, and multi-video reasoning are unsupported.
Uploaded-video editing and extension are unavailable in some regions.
Development
git clone https://github.com/nikships/gemini-omni-mcp
cd gemini-omni-mcp
uv sync --all-extras
uv run ruff format .
uv run ruff check .
uv run mypy gemini_omni_mcp/
uv run pytest
uv buildReleases are automated: every push to main bumps the version and publishes to PyPI (see PUBLISHING.md).
License
Gemini Omni MCP is licensed under the MIT license. See LICENSE for details.
Available Tools
2 toolsbatch_generateA
Generate multiple Gemini Omni Flash videos in conservative parallel batches.
Use for storyboards, aspect-ratio or resolution comparisons, or reference-guided variations. Batch size defaults to configuration and is capped at 4 because video jobs are long. The JSON response includes per-prompt video.path, interaction_id, metadata, and errors.
Inputs: prompts (required), task, delivery, batch_size, +4 more. Returns: result
generate_videoA
Generate or edit MP4 videos with Gemini Omni Flash (gemini-omni-1.1-flash).
Capabilities:
text_to_video: prompt-only video with generated audio.
image_to_video: one reference image plus motion and camera direction.
reference_to_video: multiple reference images for subjects, style, or props.
edit: use previous_interaction_id or input_video_path to edit existing video.
extend: continue a video from previous_interaction_id or an uploaded MP4, appending a 3-10 second seamless continuation (repeat up to 40s total).
Parameters:
prompt: Describe the scene, motion, camera movement, lighting, mood, and audio.
task: text_to_video, image_to_video, reference_to_video, edit, or extend. If omitted, inferred. Prefer omitting it for edit and extend: the API rejects an explicit task together with previous_interaction_id, so multi-turn edit/extend are prompt-based (e.g. "Extend this video").
aspect_ratio: 16:9 landscape or 9:16 portrait.
resolution: 360p, 720p (default), 1080p, or 4k. Values above 720p are upscaled.
reference_image_paths: Up to 6 local images. Use <FIRST_FRAME>, <LAST_FRAME>, or <IMAGE_REF_N> tags in the prompt for control.
input_video_path: Local MP4 (10s or less) to upload and edit or extend through the Files API.
delivery: uri is recommended for generated MP4 files; inline is supported for smaller payloads.
previous_interaction_id: Continue editing or extending a prior generated video.
enhance_prompt: Optional, default false. For edits, simple prompts usually work better.
Prompt tips:
By default Omni generates a few different shots with cuts, crafting a narrative from the prompt. Ask for "single continuous shot, no scene cuts" when you want one unbroken scene.
Stage your own cuts with timing language: "Every 2s cut to a new frame", rapid-fire sequences, or timecode lines like [0-3s], [3-6s], [6-10s].
Include explicit audio direction such as "gentle ambient room tone, no dialogue".
For edits, keep prompts simple and say "Keep everything else the same".
When extending, 0s in timecodes refers to the start of the extended part, and you can cut to a new scene with the same characters ("Show the same characters in the next scene").
For first/last-frame interpolation, pass two images and use <FIRST_FRAME> <LAST_FRAME> tags.
Limitations:
Output is MP4, 3-10s clips at 24fps (360p/720p/1080p/4k), SynthID-watermarked.
System instructions, temperature, top_p, stop sequences, negative_prompt, voice edits, YouTube sources, and multi-video reasoning are unsupported.
Uploaded-video editing and extension are unavailable in some regions.
Returns JSON including video.path, interaction_id, task, aspect_ratio, resolution, delivery, size, and URI metadata. After success, open video.path with the native OS video viewer.
Inputs: prompt (required), task, delivery, resolution, +5 more. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 2 tools
generate_video and batch_generate have clearly separable purposes (single vs. parallel-batch generation), so an agent can pick between them. The main ambiguity is internal to generate_video, which bundles five task modes behind one tool name, but that is parameter-level rather than a collision between two tools.
Both names use snake_case and are immediately readable. The only minor deviation is the ordering convention: generate_video is verb_noun while batch_generate is qualifier_verb, but this is a trivial and understandable variation.
Two tools is thin for a video generation server; the entire surface collapses into one overloaded mega-tool plus a batch wrapper. It is defensible because the mega-tool is explicitly scoped, but the count sits in the borderline range flagged by the rubric.
The core lifecycle is covered: text/image/reference-to-video generation, editing, extension, and batching, with interaction_id chaining for multi-turn work. There is no dedicated job-status or retrieval/download tool, which is a minor gap for long-running batch jobs.
Maintenance
Related MCP Connectors
MCP server for MiniMax H3 multimodal video generation
MCP server for Google Veo AI video generation
AI video generation MCP server for Kling, MiniMax, Luma & Hunyuan with prompt blueprints.
Stivio MCP server - AI image-to-video generator via MCP.
Related MCP Servers
- AlicenseBqualityCmaintenanceMCP server that exposes Google's Veo2 video generation capabilities, allowing clients to generate videos from text prompts or images.735MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for 4K video generation using Google VEO 3.1 — text-to-video, image-to-video, video extension, and frame interpolation.3MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for generating images and videos using Google Gemini and VEO models, with support for multiple AI models and credential modes.108 PyPI1Apache 2.0
- AlicenseAqualityFmaintenanceProduction-grade MCP server for image and video understanding and generation across Gemini, OpenAI, and Grok.5104 PyPI4Apache 2.0