Skip to main content
Glama

Video Export Gif

video_export_gif
Destructive

Exports a video (or a [start_ms,end_ms] slice of it) to an optimized looping GIF — for README/social. fps (default 12) and width (default 640, height auto) control size. Returns the output path, frame count, and size.

Input Schema

NameRequiredDescriptionDefault
fpsNoFrames per second in the GIF (default 12).
inputYesPath to the source video.
widthNoOutput width in px, 64–1920 (a value outside is clamped to the nearest end); height scales to keep aspect (default 640).
end_msNoSlice end (default: end of video).
outputNoOutput path (default: <input>.gif). Missing parent folders are created.
confirmNoIgnored; kept for older clients.
start_msNoSlice start (default 0).
overwriteNoReplace an existing file at output. Without it an existing output is refused. The input is never overwritten.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / confirm / description
      Previous value: -"Must be true to write the output. Without it the call returns a preview and writes nothing."New value: +"Ignored; kept for older clients."
  2. Changed5 schema fields changed
    • addedInput schema / properties / confirm
      Added value: +{
      +  "description": "Must be true to write the output. Without it the call returns a preview and writes nothing.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / overwrite
      Added value: +{
      +  "description": "Replace an existing file at output. Without it an existing output is refused. The input is never overwritten.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / width / description
      Previous value: -"Output width in px, height scales to keep aspect (default 640)."New value: +"Output width in px, 64–1920 (a value outside is clamped to the nearest end); height scales to keep aspect (default 640)."
    • addedInput schema / properties / width / maximum
      Added value: +1920
    • addedInput schema / properties / width / minimum
      Added value: +64
  3. Changed1 schema field changed
    • changedInput schema / properties / output / description
      Previous value: -"Output path (default: <input>.gif)."New value: +"Output path (default: <input>.gif). Missing parent folders are created."
  4. Added

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false; the description adds what the operation produces ('optimized looping GIF'), the tunables that affect output size (fps, width with auto-scaling height), and the return payload (path, frame count, size). The overwrite/refusal behavior on existing output is left entirely to the schema's parameter text, so the description doesn't fully explain the destructive risk it is flagged for.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action and output format, followed by the size-controlling parameters and return values. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter tool with no output schema, the description covers the output payload (path, frame count, size) and the size-affecting knobs, which is the key information. It omits any mention of existing-file/overwrite behavior even though destructiveHint=true, leaving the agent to discover that only via the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter including overwrite, output, and the slice bounds is already documented. The description only restates defaults for fps and width and mentions the slice range, adding no semantics beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource ('Exports a video ... to an optimized looping GIF') plus the scope option (full video or [start_ms,end_ms] slice). This clearly separates it from the sibling video tools (video_trim, video_concat, video_reframe, video_blur_region), which each do a different transform.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for README/social' gives an explicit use context, making it obvious this is the conversion-to-GIF tool rather than a trimming or playback tool. It stops short of naming alternatives or exclusions (e.g., 'use video_trim first if you need precise cut points'), so it isn't a full when/when-not statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources