Skip to main content
Glama

video_extract_frame

Extract a video frame at a specified timestamp, or use automatic sampling to select a representative thumbnail. Pass timestamp 0 to capture the first frame.

Instructions

Extract a frame using the same sampling as CLI and Python frame extraction.

Omitted timestamps use smart thumbnail selection when available, falling back to 10% of the clip duration. Pass 0 explicitly to extract the first frame.

Args: input_path: Absolute path to the video. timestamp: Explicit time in seconds, or None for automatic sampling. output_path: Where to save the frame. Auto-generated if omitted.

Input Schema

NameRequiredDescriptionDefault
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.
timestampNo
input_pathYes
output_pathNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.16.4
    • addedInput schema / properties / overwrite
      Added value: +{
      +  "default": false,
      +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
      +  "title": "Overwrite",
      +  "type": "boolean"
      +}
  2. Changed4 schema fields changedv1.16.0
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / timestamp / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / timestamp / default
      Previous value: -0New value: +null
    • removedInput schema / properties / timestamp / type
      Removed value: -"number"
  3. Addedv1.5.1

TDQS

A3.5/5.0
Behavior3/5

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 does disclose non-obvious behavior: automatic output path generation and the fallback sampling strategy. It omits, however, whether the call writes a new file into the workspace, how existing files at output_path are treated (the schema's overwrite flag hints at collision protection but is never explained), and what errors occur on invalid timestamps or missing files.

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

Conciseness4/5

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

Front-loaded with the core action, followed by the sampling rules, then a compact Args block – efficient and scannable. The opening clause about matching "CLI and Python frame extraction" adds little for an MCP agent and could be cut.

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

Completeness3/5

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

An output schema exists, so return values needn't be explained, and the sampling logic is covered. But with zero annotations on a tool that produces a file, the agent is left to infer side effects, overwrite protection, and failure modes; that is a meaningful gap for a write-producing operation.

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

Parameters4/5

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

Schema description coverage is only 25%, so the description must compensate, and it largely does: it explains input_path must be absolute, timestamp semantics including the None and 0 cases, and that output_path is auto-generated when omitted. The overwrite parameter is not addressed in the description, but the schema itself documents it well, so the only gap is redundancy rather than omission.

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

Purpose4/5

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

States a specific verb and resource ("Extract a frame") and clarifies the sampling behavior, so the agent knows exactly what it produces. It does not distinguish itself from plausible siblings like video_thumbnail, video_export_frames, or video_seek_frame, and the reference to "CLI and Python frame extraction" points outside the tool catalog rather than at an alternative MCP tool.

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

Usage Guidelines3/5

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

It gives useful parameter-level usage rules (omit timestamp for smart selection with a 10% fallback; pass 0 explicitly for the first frame), which is more than nothing. But it never says when to choose this over video_thumbnail or video_export_frames, nor any preconditions such as path validity or video format support, so usage is only implied.

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

Deploy Server

Other Tools