gemini-omni-mcp
Controls Google Gemini Omni for video generation and editing through a browser bridge, enabling structured video creation and editing from MCP clients.
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-mcpGenerate a video of a dog running on a beach 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.
gemini-omni-mcp
An MCP server that lets Claude (or any MCP client) control Google Gemini Omni — Google's new "any-to-any" video-generation model (announced at Google I/O 2026).
Why a browser bridge? As of June 2026, Gemini Omni has no public developer API. Google said the Vertex AI rollout is "coming in the coming weeks." Until then, Omni only exists inside the Gemini app, Google Flow, and YouTube. This server bridges that gap by driving a logged-in Chrome session — and is built so it can swap to the official API in one place the moment it ships.
How it works
Claude ──MCP──► gemini-omni-mcp ──Playwright──► Chrome (your Google login) ──► Gemini OmniYour Google login lives in a persistent Chrome profile (
.auth-profile/). You sign in once, yourself — the code never sees, types, or stores your password.Tools are exposed over MCP so Claude can call them directly.
Related MCP server: Gemini Image & Video Generation MCP
Status
🚧 Phase 1 — scaffold (this commit). MCP server, browser session manager, and tool definitions are in place. The UI automation selectors are placeholders, to be mapped against the live Gemini Omni interface in Phase 2.
Phase | What | State |
1 | Repo scaffold, MCP skeleton, auth flow | ✅ done |
2 | Map the real Gemini/Flow DOM, wire generation + download | ⏳ next |
3 | Register in Claude Desktop, end-to-end test | ⏳ |
4 | Swap to official Vertex AI Omni API when released | 🔭 future |
Setup
npm install
npx playwright install chromium
npm run build
npm run auth # opens Chrome — log in to Google onceUse as an MCP server in Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"gemini-omni": {
"command": "node",
"args": ["C:/Users/tamir/Desktop/gemini-omni-mcp/dist/index.js"]
}
}
}Creating the perfect video
Don't fire a one-line prompt. The project ships a creation interview —
subject, action, setting, style, lighting, camera, aspect ratio, consistency,
mood — plus support for editing an existing video. The tools accept a
structured brief, not just a string, to nudge the caller into gathering those
details first. See GUIDE.md for the full flow and prompt template.
Tools
Tool | Description |
| Is the session signed in? Is a generation running? |
| Generate a video from a structured brief (or full prompt); returns the saved file path. |
| Edit an existing video — describe one change; Omni keeps characters/physics/continuity. |
Configuration
See .env.example. Copy it to .env to override defaults (profile dir, output dir, surface, headless, timeout).
License
MIT
Available Tools
3 toolsomni_edit_videoA
Edit an existing video with Gemini Omni (it keeps characters, physics and scene continuity). Describe ONE change in plain language. Restate what stays the same, then the change. See GUIDE.md §1.
| Name | Required | Description | Default |
|---|---|---|---|
| change | Yes | The single change to make, in plain language. | |
| source | No | Which source to edit (e.g. 'last result' or a file path). | |
| timeoutSeconds | No | Max seconds to wait. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool keeps characters, physics, and scene continuity, which is a key behavioral trait. However, it does not mention side effects (e.g., overwriting original), required permissions, rate limits, or performance characteristics. The description is somewhat transparent but incomplete for a mutation tool.
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 three sentences long, front-loaded with the key purpose, and every sentence contributes value. It includes a reference to external documentation without fluff. Efficient and clear.
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 the complexity of editing a video with AI and no output schema, the description covers the core action and change format but lacks details about output (e.g., format, file location), input video requirements (e.g., must exist), and potential limitations. It references GUIDE.md, but the description itself is somewhat incomplete.
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 coverage is 100%, baseline is 3. The description adds value to the 'change' parameter by specifying the required phrasing format (one change, restate what stays the same, then the change). This clarifies how to use the parameter beyond the schema's description. The other parameters ('source', 'timeoutSeconds') are not further elaborated.
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 clearly states the tool edits an existing video using Gemini Omni, preserving characters, physics, and scene continuity. This distinguishes it from siblings: omni_generate_video (generates new videos) and omni_status (checks status). The verb 'edit' and resource 'video' are specific.
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 a clear format for describing the change: 'ONE change in plain language. Restate what stays the same, then the change.' It also references GUIDE.md for more details. However, it does not explicitly state when to use this tool versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
omni_generate_videoA
Generate a video with Gemini Omni. IMPORTANT: do NOT pass a raw one-liner — first run the creation interview in GUIDE.md (subject, action, setting, style, lighting, camera, aspect ratio, consistency, mood) and pass either a fully-formed prompt or a filled brief. Returns the local file path when done.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | No | A complete, vivid prompt. Omit if you pass `brief` instead. | |
| brief | No | Structured brief; composed into a prompt if `prompt` is omitted. | |
| aspectRatio | No | 9:16 Reels/TikTok, 16:9 YouTube, 1:1 post. | |
| timeoutSeconds | No | Max seconds to wait. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses that the tool returns a local file path and requires an interview process. Does not mention error handling or permission needs, but overall transparent for a generation tool.
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?
Compact single paragraph with no redundant sentences. Purpose, warning, usage instructions, and output are all present and front-loaded.
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?
Covers main use case ('generate a video') and input options. Does not specify behavior when both `prompt` and `brief` are provided or error handling. Nested object schema is well-explained in description. Output is stated. Lacks edge case details but sufficient for typical use.
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 coverage is 100%, but description adds context: explains the relationship between `prompt` and `brief`, the interview process, and the importance of not passing a raw one-liner. Enhances schema understanding.
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?
Starts with 'Generate a video with Gemini Omni'—specific verb+resource. Distinguishes from sibling tools (omni_edit_video, omni_status) by focusing on generation. Also mentions returning a local file path, clarifying the outcome.
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?
Explicitly instructs to run the creation interview in GUIDE.md first, then pass either a fully-formed `prompt` or a filled `brief`. Advises against passing a raw one-liner. Implicitly differentiates from edit/status tools via sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
omni_statusA
Check whether the Gemini session is signed in and whether a generation is in progress.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as safety (read-only), authentication requirements, or side effects. It only states the checks performed.
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 sentence with no unnecessary words. It efficiently communicates the two checks the tool performs.
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?
The description covers the main purpose but is incomplete without an output schema or mention of return values, which would help an agent understand what to expect.
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?
There are zero parameters, so schema coverage is trivially 100%. The description does not need to add parameter meaning, and the baseline for 0 parameters is 4.
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?
Description uses a specific verb 'Check' and explicitly names two resources: 'Gemini session signed in' and 'generation in progress'. It clearly distinguishes from sibling tools omni_edit_video and omni_generate_video which perform actions.
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 implies using this tool to check status before performing generation or editing, but it does not explicitly state when to use it vs. alternatives or when not to use it.
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.
3 tool updates
v0.1.0- First observed
omni_edit_video - First observed
omni_generate_video - First observed
omni_status
TDQS
Scored across 3 tools
Each tool has a distinct and clearly defined purpose: editing videos, generating videos, and checking session status. No overlap in functionality.
All tool names follow a consistent pattern with the 'omni_' prefix and verb_noun construction (edit_video, generate_video, status).
Three tools is appropriate for a focused video generation and editing server, covering the essential operations without unnecessary extras.
The tool surface covers generation, editing, and status checking. Missing operations like listing or deleting videos, but these are not core to the stated purpose.
Maintenance
Related MCP Connectors
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
MCP server for Google Veo AI video generation
MCP server for Kling AI video generation
MCP server for Hailuo (MiniMax) AI video generation
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP server for programmatic video generation. Send a prompt, get an MP4.-
- FlicenseBqualityDmaintenanceA production-ready MCP server that enables Claude and other LLMs to generate images and videos using Google's Gemini AI models (Gemini 2.0 Flash and Veo 2.0).32-
- FlicenseNot gradedqualityCmaintenanceMCP server exposing claude-video functionality for claude.ai web UI via HTTP+SSE, enabling video watching and analysis from claude.ai.-
- FlicenseNot gradedqualityBmaintenanceMCP server for managing video pipelines, integrating media processing (TTS, STT, image generation) and video editing, with a structured plugin system and tunnel to Claude AI Web.-