Skip to main content
Glama

Understand video

understand_video
Read-only

Analyze videos from page URLs, direct media links, or local files to answer questions about visible content, speech, and on-screen text, returning structured timelines, transcripts, and summaries.

Instructions

Watch a video and answer a question about it, using a video-capable model behind the configured OpenAI-compatible endpoint. source accepts a page URL (TikTok, YouTube, X, Instagram, ... resolved with yt-dlp), a direct media URL with optional headers such as Referer from a scraper, or an absolute local path inside an allowed directory. Returns answer, summary, speech (transcript in the original language), on_screen_text, a timeline in source-video seconds, and analysis metadata with warnings. Videos longer than the duration limit need start_seconds/end_seconds; a short range also gives more detail for fast motion such as workouts. fps is a hint applied only when the request format supports it. Errors carry a code (e.g. ENDPOINT_UNREACHABLE, LIMIT_EXCEEDED, SOURCE_NOT_ALLOWED, MEDIA_NOT_PROCESSED) as a [CODE] text prefix and in _meta.

Input Schema

NameRequiredDescriptionDefault
fpsNoFrame sampling rate hint. Applied only when the endpoint's request format supports it; a short range gives more detail for fast motion
sourceYesVideo to analyze: a page URL (TikTok, YouTube, X, ...), a direct media URL, or an absolute local path inside an allowed directory
headersNoRequest headers for a direct media URL, such as Referer or Cookie returned by a scraper. Sent only to that URL's host
questionNoWhat to find out about the video. Omit for a general description
end_secondsNoAnalyze up to this second of the source video
start_secondsNoAnalyze from this second of the source video

Output Schema

NameRequiredDescriptionDefault
answerYes
speechYes
summaryYes
analysisYes
timelineYes
on_screen_textYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.1

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly, openWorld, non-destructive, non-idempotent; the description goes further by disclosing that page URLs are resolved with yt-dlp, that headers are sent only to the target host's host, that fps is applied only when the endpoint's request format supports it, and that failures surface as coded [CODE] prefixes plus _meta. That is substantive behavioral context an agent could not derive from the annotations alone.

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?

Content is front-loaded with purpose first, then input forms, then return fields, then constraints. It is a single dense block with some run-on clauses (the source-sentence and the error-sentence pack several ideas each), so skimming costs a little, but almost no sentence is filler.

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

Completeness5/5

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

For a six-parameter, open-world media tool with nested headers, the description covers input forms, duration limits, sampling hints, return fields, and an error-code taxonomy. An output schema exists, so the enumerated return values are a bonus rather than a necessity, and nothing an agent needs to invoke it correctly appears to be missing.

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 coverage is 100%, so the baseline is 3; the description still adds operational nuance beyond the schema by explaining the scraper-header use case for `headers`, the allowed-directory constraint on local paths, and the conditional application of `fps`. It stops short of adding format/syntax detail for the second-range parameters, which the schema already covers.

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?

Opens with a concrete verb+resource: "Watch a video and answer a question about it," and immediately scopes it to a video-capable model behind an OpenAI-compatible endpoint. The accepted `source` forms (page URL, direct media URL, local path) are named, so an agent knows exactly what class of input this tool consumes.

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?

Gives real conditional guidance: long videos require start_seconds/end_seconds, a short range yields more detail for fast motion like workouts, and question may be omitted for a general description. No explicit when-not-to-use or alternative tool routing, but the only sibling is get_server_info, which is not a plausible substitute for this task.

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