Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Gemini Media

MCPB · GEMINI-MEDIA-MCP-1.1.0.MCPB · 2 COMPONENTS

Generate images (Nano Banana), video (Veo, Gemini Omni), speech and music (Lyria) with Google models

+29 this week 48 Trust /100

Last scanned (11 hours ago)

Scores higher than 84% of MCPB servers

Category Design and Media

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security0
  • No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
  • Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to mordor-forge/gemini-media-mcp). View diagnostics → Pass
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 5 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability58
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 4333 tokens (~309/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 98% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 14 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass

Unverified: 2 categories

Categories scored 0 because we could not verify them: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 14 Oct 26 +29
    • Injection markers: unverified → pass ▲ security
    • First check of Judged manipulation: pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Tool coverage: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • First check of Schema quality: fail functional
    • First check of Destructive annotations: pass functional
    • First check of Schema quality: fail functional
    • First check of Tool coverage: 98 functional
    • First check of Schema quality: good functional
    • First check of Tool coverage: 100 functional
  • 12 Oct 26 0
    • Package version: 1.0.0 → 1.1.0 functional
  • 10 Oct 26 19

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 18 Oct 2026 · Analysed mcpb/https://github.com/mordor-forge/gemini-media-mcp/releases/download/v1.1.0/gemini-media-mcp-1.1.0.mcpb@1.1.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem mcpb
Reason Verified
Discovered via GitHub artifact attestations
Source repo mordor-forge/gemini-media-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/mordor-forge/gemini-media-mcp/.github/workflows/release.yml@refs/tags/v1.1.0
Rekor log index 3231456756
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha256:a23aac14b81d76f8bc3dd1b18867a7c8d206908143716a4e1073928f2eea8c0f

Background: How many MCP packages publish verified provenance →

MCP tools · 14 exposed · ~4,078 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
edit_image ~305

Change an existing image with an instruction (add/remove/replace elements, restyle, relight, change aspect ratio, fix text) while keeping everything else. Accepts extra reference images to insert or match. Say what must stay unchanged. Saves a new file; the original is kept.

NameTypeReqDescription
approvedCostUsdnumber–Only needed above the confirmation threshold: the cost in USD the user approved.
aspectRatiostring–Change the aspect ratio (outpainting). Omit to keep the source ratio.
imagestringyesThe image to edit: file path, gemini-media:// URI from an earlier result, or data: URI.
imageSizestring–Output size: 1K, 2K or 4K (512 only on the deprecated gemini-3.1-flash-image).
modelstring–Model ID or alias. Defaults to the model that created the source image, else nb2.
outputNamestring–Optional base file name for the saved file. Defaults to the source name plus -edit.
promptstringyesThe change to make, stated specifically, plus what must stay the same (e.g. 'Replace the sky with a sunset; keep the people, framing and lighting on faces unchanged').
referenceImagesnull|array–Optional extra images to pull elements or style from (e.g. 'put the logo from image 2 on the mug').
NameTypeReqDescription
costobjectyes–
filesnull|arrayyes–
groundingnull|object–Google Search queries the model ran and the pages it used (googleSearch only)
modelstringyes–
textstring–Commentary the model returned alongside the image(s)
warningsnull|array––

No examples provided.

edit_video ~381

Change an existing clip with an instruction (add, remove or replace objects, restyle, relight, change the background) with Gemini Omni Flash, keeping everything else. Pass the jobId of a finished clip (Omni clips are edited in conversation) or a video file of at most 10 s. Asynchronous like generate_video; about $0.10 per second of video at 720p.

NameTypeReqDescription
approvedCostUsdnumber–Only needed above the confirmation threshold: the cost in USD the user approved.
jobIdstring–A completed video job to edit. Omni clips are edited in conversation (Google keeps the context); other clips are sent as their saved file. Pass jobId or video.
modelstring–Model ID or alias; default omni (the only model that edits videos).
outputNamestring–Optional base file name for the saved video. Defaults to the source name plus -edit.
promptstringyesThe change, stated simply, ending with 'Keep everything else the same.' (e.g. 'Make the phone invisible. Keep everything else the same.')
referenceImagesnull|array–Optional images to bring into the clip; refer to them as <IMAGE_REF_0>, <IMAGE_REF_1>... in the prompt.
resolutionstring–360p, 720p (default), 1080p or 4k (1080p and 4k are upscaled).
videostring–Or a video file to edit: file path, gemini-media:// URI or data: URI. At most 10 seconds and 20 MB.
waitSecondsinteger–Block up to this many seconds for the result (default 0 = return a job handle immediately). Keep under your client's tool timeout.
NameTypeReqDescription
costobjectyes–
elapsedSecondsintegeryes–
errorstring––
filesnull|array––
jobIdstringyesOpaque handle; pass it to get_video, extend_video or edit_video
modelstringyes–
nextstring–Suggested next step
remoteExpiresAtnull|string–When Google deletes the server-side copy; extend before this time
statestringyesworking, completed, failed or filtered
warningsnull|array––

No examples provided.

estimate_cost ~232

Estimate the cost of an image, video, speech or music request before running it, optionally comparing all models; also reports remaining budget and whether approval is needed.

NameTypeReqDescription
compareboolean–Also estimate the same request on every other active model of this media type
countinteger–Number of images/clips/songs (default 1)
durationSecondsinteger–Video: clip length (default 8)
generateAudionull|boolean–Video on Vertex AI: false for the cheaper silent rate
imageSizestring–Images: 512, 1K, 2K or 4K
inputImagesinteger–Images: number of reference/source images
mediaTypestringyesimage, video, speech or music
modelstring–Model ID or alias (default model when omitted)
resolutionstring–Video: 720p, 1080p or 4k (Omni also 360p)
textstring–Speech: the text to be spoken (length drives cost)
NameTypeReqDescription
alternativesnull|array––
budgetRemainingobject––
estimateobjectyes–
modelstringyes–
needsApprovalbooleanyesTrue when the call would exceed the confirmation threshold and needs approvedCostUsd
notestringyes–
warningsnull|array–Lifecycle notices (deprecation, shutdown, replacement) and budget problems
wouldExceedBudgetboolean–True when a budget would refuse this call right now (see warnings)

No examples provided.

extend_video ~198

Continue a completed clip from its end: omni adds up to 10 s (40 s total, keeping characters and audio coherent); Veo fast/standard add about 7 s (720p, up to 148 s, within 2 days). Asynchronous like generate_video.

NameTypeReqDescription
approvedCostUsdnumber–Only needed above the confirmation threshold.
jobIdstringyesJob handle of a completed generate_video or extend_video call (operation names from older versions also work).
negativePromptstring––
outputNamestring––
promptstringyesWhat happens next. Veo adds about 7 seconds (720p) from the last second; omni adds up to 10 seconds using the last 10 seconds as context.
seednull|integer–Vertex AI only.
waitSecondsinteger–Block up to this many seconds for the result (default 0).
NameTypeReqDescription
costobjectyes–
elapsedSecondsintegeryes–
errorstring––
filesnull|array––
jobIdstringyesOpaque handle; pass it to get_video, extend_video or edit_video
modelstringyes–
nextstring–Suggested next step
remoteExpiresAtnull|string–When Google deletes the server-side copy; extend before this time
statestringyesworking, completed, failed or filtered
warningsnull|array––

No examples provided.

generate_image ~480

Create images from a text prompt, optionally guided by up to 14 reference images (subjects, products, style). Default model nb2 (Nano Banana 2.1, ~$0.04 per 1K image); pro for the densest scenes and final renders (~$0.15); nb2-lite for bulk drafts. Returns saved files with URIs you can pass to edit_image, generate_video (image) or other tools.

NameTypeReqDescription
approvedCostUsdnumber–Only needed when a call exceeds the configured confirmation threshold: the cost in USD the user approved.
aspectRatiostring–e.g. 1:1, 3:2, 2:3, 4:3, 3:4, 4:5, 16:9, 9:16, 21:9 (nb2 also 1:4, 4:1, 1:8, 8:1). Defaults to 1:1 when there are no reference images; with them the model usually follows the first image's ratio.
countinteger–Number of variations to generate in parallel (1-4, default 1). Each is billed.
googleSearchboolean–Ground the image in Google Search results (current events, real places, data for infographics).
imageSizestring–Output size: 1K (default), 2K or 4K. Larger costs more. 512 only on the deprecated gemini-3.1-flash-image.
modelstring–Model ID or alias. nb2 (default: Nano Banana 2.1, fast and cheap), pro (Nano Banana Pro, highest fidelity for dense scenes), nb2-lite (cheapest inputs). See list_models.
outputNamestring–Optional base file name (without extension) for the saved file(s).
promptstringyesWhat to create. Describe subject, setting, composition, lighting and style in full sentences. Put any exact text to render in quotes.
referenceImagesnull|array–Optional images to guide the result (subjects, products, characters, style): file paths, gemini-media:// URIs from earlier results, or data: URIs. Up to 14 for nb2/pro.
NameTypeReqDescription
costobjectyes–
filesnull|arrayyes–
groundingnull|object–Google Search queries the model ran and the pages it used (googleSearch only)
modelstringyes–
textstring–Commentary the model returned alongside the image(s)
warningsnull|array––

No examples provided.

generate_music ~305

Compose music with Lyria: 30-second clips (clip, $0.04) or full songs of a few minutes with vocals and lyrics (full, $0.08). Control genre, mood, instruments, tempo and structure in the prompt; returns lyrics/structure text when available.

NameTypeReqDescription
approvedCostUsdnumber–Only needed above the confirmation threshold.
bpminteger–Optional tempo hint in beats per minute.
durationSecondsinteger–Optional target length hint for full songs (clip is always 30s).
formatstring–mp3 (default) or wav (full model only).
imagesnull|array–Optional images (up to 10) whose mood or scene should inspire the music.
instrumentalboolean–Ask for no vocals.
lyricsstring–Optional lyrics with section tags; they are sung in the language they are written in.
modelstring–clip (default: 30-second MP3, cheapest) or full (complete song up to about 3 minutes, vocals, WAV option). See list_models.
outputNamestring–Optional base file name.
promptstringyesDescribe the music: genre, mood, instruments, tempo, key, production style and song structure. Use [Intro]/[Verse]/[Chorus]/[Bridge]/[Outro] tags or [0:00-0:15] timestamps to control sections.
NameTypeReqDescription
costobjectyes–
durationSecondsnumber––
fileobjectyes–
lyricsstring–Lyrics or song structure returned by the model
modelstringyes–
warningsnull|array––

No examples provided.

generate_speech ~354

Turn text into natural speech (WAV) with one voice, or a dialogue between two speakers. Control delivery with style. About $0.01-0.02 per minute of audio. For podcasts, voiceovers, narration and dialogue.

NameTypeReqDescription
approvedCostUsdnumber–Only needed above the confirmation threshold.
dialoguenull|array–Alternative to text: a conversation between up to 2 named speakers, one entry per line.
formatstring–wav (default) or pcm (raw 16-bit little-endian).
languageCodestring–Optional BCP-47 code (e.g. en-US, it-IT). Usually auto-detected from the text.
modelstring–Model ID or alias: tts (default, Gemini 3.8 Flash TTS), tts-lite (cheaper). See list_models.
outputNamestring–Optional base file name.
speakersnull|array–Voice per dialogue speaker; unlisted speakers get distinct defaults.
stylestring–How to deliver the lines, e.g. 'warm and enthusiastic', 'whispered urgently', 'slow, calm narrator'.
textstring–The exact words to speak (single speaker). Newer models read it verbatim, so put delivery directions in style, not here. Inline tags like <sigh> or <short pause> are allowed.
voicestring–Voice for single-speaker text, e.g. Kore (firm), Puck (upbeat), Charon (informative), Aoede (breezy, default), Zephyr (bright). list_models shows all 30.
NameTypeReqDescription
costobjectyes–
durationSecondsnumber––
fileobjectyes–
modelstringyes–
voicesobjectyes–
warningsnull|array––

No examples provided.

generate_video ~660

Start a video clip with native audio from a text prompt, optionally from a first frame, first+last frames, or reference images. Default omni (Gemini Omni Flash: 3-10s, cheap 360p drafts up to 4K, up to 10 references). On Vertex AI the default is Veo lite; fast/standard add Veo 4K and ingredients. Veo is leaving the Gemini API (list_models has the date). estimate_cost prices any option. Asynchronous: returns a jobId; then call get_video.

NameTypeReqDescription
approvedCostUsdnumber–Only needed above the confirmation threshold: the cost in USD the user approved.
aspectRatiostring–16:9 (default) or 9:16
durationSecondsinteger–Clip length: Veo 4, 6 or 8 seconds; omni 3-10 seconds (default 8).
generateAudionull|boolean–Vertex AI only: set false for silent video at a lower price. The Gemini API always generates audio.
imagestring–Optional first frame (image-to-video): file path, gemini-media:// URI or data: URI.
lastFramestring–Optional last frame; requires image. Veo interpolates between the two.
modelstring–Model ID or alias: omni (default on the Gemini API: Gemini Omni Flash, best prompt adherence, editable and extendable to 40 s), lite (cheapest Veo; the default on Vertex AI), fast (Veo 4K, ingredient…
negativePromptstring–What to avoid, as plain nouns (e.g. 'text overlays, blur'). For omni it is appended to the prompt.
outputNamestring–Optional base file name for the saved video.
personGenerationstring–allow_all, allow_adult or dont_allow. The Gemini API requires allow_all for text-to-video and allow_adult for image-based modes.
promptstringyesWhat happens in the clip: subject and action, camera movement, setting, lighting, style, and sound (dialogue in quotes, sound effects, ambience, music).
referenceImagesnull|array–Images of characters, objects, products or styles to keep consistent: Veo fast/standard up to 3 (forces 8s, not with image/lastFrame); omni up to 10 including frames (name them <IMAGE_REF_0>... in th…
resolutionstring–720p (default), 1080p or 4k (not lite); omni also 360p for fast drafts. Veo 1080p and 4k require 8-second clips.
seednull|integer–Seed for more repeatable results (Vertex AI only; ignored on the Gemini API).
waitSecondsinteger–Block up to this many seconds for the result (default 0 = return a job handle immediately). Keep under your client's tool timeout.
NameTypeReqDescription
costobjectyes–
elapsedSecondsintegeryes–
errorstring––
filesnull|array––
jobIdstringyesOpaque handle; pass it to get_video, extend_video or edit_video
modelstringyes–
nextstring–Suggested next step
remoteExpiresAtnull|string–When Google deletes the server-side copy; extend before this time
statestringyesworking, completed, failed or filtered
warningsnull|array––

No examples provided.

get_config ~42

Show the active backend and how it was chosen, output directory, default models, budgets, input-file policy and configuration warnings. Use it to troubleshoot credentials or missing files.

Input schema present but exposes no named parameters.

NameTypeReqDescription
authModestringyes–
backendstringyes–
backendReasonstringyes–
budgetobjectyes–
catalogFilestring––
catalogVersionstringyes–
configFilestring––
defaultsobjectyes–
httpAddrstring–Address the HTTP transport listens on
inlinePreviewsbooleanyes–
inputPolicystringyes–
locationstring––
outputDirstringyes–
projectstring––
settingSourcesobject––
stateDirstringyes–
transportstringyes–
versionstringyes–
warningsnull|array––

No examples provided.

get_usage ~83

Report estimated spend for this session, today, this month or all time, broken down by model and tool, with budget remaining, recent calls and running video jobs.

NameTypeReqDescription
periodstring–session (since this server started), today (default), month or all
recentinteger–How many recent entries to include (default 10, max 100)
NameTypeReqDescription
activeJobsnull|array––
budgetobjectyes–
extraobject––
ledgerPathstringyes–
notestringyes–
periodstringyes–
summaryobjectyes–

No examples provided.

get_video ~102

Check a video job and wait for it (default up to 45s). When the job completes, the video is downloaded and returned; calling again is safe and returns the same files.

NameTypeReqDescription
jobIdstringyesJob handle returned by generate_video, extend_video or edit_video.
waitSecondsnull|integer–Block up to this many seconds for completion (default 45, 0 = check once). The video is downloaded automatically when ready.
NameTypeReqDescription
costobjectyes–
elapsedSecondsintegeryes–
errorstring––
filesnull|array––
jobIdstringyesOpaque handle; pass it to get_video, extend_video or edit_video
modelstringyes–
nextstring–Suggested next step
remoteExpiresAtnull|string–When Google deletes the server-side copy; extend before this time
statestringyesworking, completed, failed or filtered
warningsnull|array––

No examples provided.

list_models ~142

List current models per media type with aliases, status (GA/preview/deprecated), prices and a short guide to when to use each. detail: true adds supported aspect ratios, sizes, durations and voices; live: true checks what your API key can actually call.

NameTypeReqDescription
detailboolean–Include full capabilities (aspect ratios, voices, rules).
includeInactiveboolean–Also list retired models and their replacements.
liveboolean–Also query the Gemini API for the models this key can use, flagging unavailable ones and media models missing from the catalog.
mediaTypestring–Filter: image, video, speech or music.
NameTypeReqDescription
backendstringyes–
catalogVersionstringyes–
modelsnull|arrayyes–
uncataloguednull|array–Media models the API offers that the catalog does not know yet (usable by raw ID)
warningsnull|array––

No examples provided.

stitch_tiles ~237

Upscale step 3: align each edited tile from tile_image with the image, match its broad color, blend the overlaps and save one large PNG (default 8192 px long edge). Free and local. Reports tiles it rejected (their area keeps the prior pixels) and returns a preview plus 100% crops of the seams to inspect.

NameTypeReqDescription
colorMatchnull|boolean–Match each tile's broad exposure and color to the image (default true). Fine texture is never transferred.
detailsnull|array–Up to 6 points to return as 100% crops for inspection. Default: where grid tiles meet, or each region's center.
feathernumber–Blend width as a fraction of each tile's shorter side (default 0.2, 0.05-0.4). Between neighboring tiles it is capped at half their overlap.
jobstringyesThe job uri returned by tile_image.
outputNamestring–Optional base name for the stitched PNG.
tilesnull|arrayyesThe edited tiles. Tiles left out keep the underlying image.
NameTypeReqDescription
detailsnull|array–What each detail preview shows, in order
fileobjectyes–
nativeLongEdgeinteger–About how many pixels of model-rendered detail the long edge carries, limited by the least detailed tile and at most the output's long edge; 0 when unknown or when part of the image has none
nextstringyes–
originalstringyes–
passintegeryes–
referencestringyes–
tilesnull|arrayyes–
warningsnull|array––

No examples provided.

tile_image ~557

Upscale step 1: cut an image into crops shaped to the edit model's aspect ratios. longEdge sets the target (1K-16K, default 8K); with grid and imageSize omitted it picks the cheapest plan that covers it (one tile up to about 4K, a 2x2-4x4 grid beyond). regions re-render faces or text in a later pass. Free and local; reports the edit cost. Step 2: edit_image each crop as the result says. Step 3: stitch_tiles. Detail is invented, not recovered.

NameTypeReqDescription
gridinteger–Cut a grid x grid layout covering the whole image (1-4). Omit it on a first pass to let tile_image pick the cheapest grid that covers longEdge (explained in planNote); a later full-grid pass defaults…
imagestringyesThe image to cut: the original photo for the first pass, or the previous stitch_tiles result for a refinement pass. File path, gemini-media:// URI or data: URI.
imageSizestring–Size the tiles will be edited at (1K, 2K or 4K, as the model supports). Omit it on a first pass to pick it with the grid; otherwise it defaults to the model's largest size.
longEdgeinteger–Long edge in pixels of the image stitch_tiles will produce (default 8192, 1024-16384, at most 70 megapixels). First pass only; later passes keep their input's size.
modelstring–Image model the tiles will be edited with (default: the server's default image model; a refinement pass defaults to the model of the pass before). Sets the supported aspect ratios and the cost estima…
originalstring–First pass only: the untouched original, sent with every tile as context (as a copy of at most 2048 px). Defaults to image. Refinement passes edit crops alone and keep the first pass's original, so i…
outputNamestring–Optional base name for the crops and the stitched result. Defaults to the original's name.
paddingnumber–Context added around each cell or region, as a fraction of its size (default 0.2, 0.05-0.5). Tiles then grow to the nearest aspect ratio the model supports.
regionsnull|array–Refinement pass: up to 12 areas to re-render (faces, hands, text, materials), as fractions of the image. Omit for a full grid.
NameTypeReqDescription
costobjectyesEstimated cost of editing every tile once (tile_image itself is free)
gridinteger–Grid size used (grid mode): 1 is the whole image as one tile
imageobjectyesSize of the tiled image
imageSizestringyes–
jobstringyesPass it to stitch_tiles
modestringyesgrid or regions
modelstringyes–
nativeLongEdgeinteger–About how many pixels of model-rendered detail the output's long edge carries if every tile comes back at imageSize, at most the output's long edge; below it the rest is interpolated
nextstringyes–
outputobjectyesSize stitch_tiles will produce
passintegeryes–
planNotestring–Why this grid and imageSize were chosen, when picked automatically
promptstringyesBase edit_image prompt for every tile of this pass: it keeps each crop's framing. The gemini-upscale skill adds clauses for skin, eyes, hair, text and other materials.
referencenull|object–First pass only: a copy of the original (at most 2048 px) to pass as edit_image referenceImages for every tile. Refinement passes edit each crop alone.
tilesnull|arrayyes–
warningsnull|array––

No examples provided.

Install

How do I install the Gemini Media MCP server?

Gemini Media ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, a23aac14b81d76f8bc3dd1b18867a7c8d206908143716a4e1073928f2eea8c0f; the commands to do that are on this page. If it does not match, do not open it.

mcpb · gemini-media-mcp-1.1.0.mcpb

Download bundle

Check the download matches the SHA-256 the MCP registry declares before you open it. If it does not match, do not open the file.

SHA-256

a23aac14b81d76f8bc3dd1b18867a7c8d206908143716a4e1073928f2eea8c0f

macOS / Linux

echo "a23aac14b81d76f8bc3dd1b18867a7c8d206908143716a4e1073928f2eea8c0f  gemini-media-mcp-1.1.0.mcpb" | shasum -a 256 -c

Windows (PowerShell)

(Get-FileHash -Algorithm SHA256 .\gemini-media-mcp-1.1.0.mcpb).Hash -eq "a23aac14b81d76f8bc3dd1b18867a7c8d206908143716a4e1073928f2eea8c0f"

Run it in the folder you saved the bundle to, then open the file with an MCPB-capable host such as Claude Desktop.

Common questions

What is the Gemini Media MCP server?

Gemini Media is an MCP server listed in the public MCP registry as io.github.mordor-forge/gemini-media-mcp. Generate images (Nano Banana), video (Veo, Gemini Omni), speech and music (Lyria) with Google models. This page covers its MCPB bundle (https://github.com/mordor-forge/gemini-media-mcp/releases/download/v1.1.0/gemini-media-mcp-1.1.0.mcpb).

Is the Gemini Media MCP server safe to use?

Gemini Media scores 48 out of 100 on VerifyMCP. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Gemini Media MCP server expose?

Gemini Media exposes 14 tools: edit_image, edit_video, estimate_cost, extend_video, generate_image, and 9 more. Their descriptions and schemas cost roughly 4,078 tokens of context every time the server is loaded.

What licence is the Gemini Media MCP server under?

Gemini Media declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.