Skip to main content
Glama

Index a video for questions

video_ingest

Download, transcribe, sample, and embed video from a URL or local file so it can be searched and questioned; interrupted jobs resume from completed stages.

Instructions

Download (for a URL), transcribe, sample frames and embed, so the video can be searched and questioned. Speech and frame work run in parallel. Re-ingesting reuses finished stages, so a failed or interrupted job resumes. Returns a Job; its result holds the video_id, counts and timings.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "source": "<source>"
    },
    "name": "video_ingest"
  }
}

Input Schema

NameRequiredDescriptionDefault
forceNoRedo stages that already completed.
framesNoSample and embed frames.
sourceYesA video URL or the absolute path of a local media file.
qualityNoDownload height for URLs; higher reads small text better.
languageNoSpoken language code such as 'en'. Omit to detect.
max_framesNoFrames kept after de-duplication.
transcribeNoTranscribe the speech.
wait_secondsNoSeconds to wait for completion before returning the job.
frame_intervalNoSeconds between frames; cuts are added.

Output Schema

NameRequiredDescriptionDefault
kindYesWhat the job does.
nextNoThe call to make to keep waiting, while the job is unfinished.
errorNo'code: message — hint' when the job failed.
stageYesCurrent step: queued, download, transcribe, frames, embed or done.
job_idYesPass to video_job to poll, or video_cancel to stop.
resultNoWhen succeeded: the ingest report (video_id, counts, stages, embedding tokens, elapsed seconds) or the download report (path, codecs, size, whether audio was merged).
sourceYesThe URL or path being processed.
statusYes`interrupted` means the server restarted mid-job; ingest again to resume.
messageYesLatest human-readable progress line.
progressYesOverall completion from 0 to 1, weighted by how long each stage usually takes.
video_idNoKnown once the source has been resolved; use it with every other tool.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true and destructiveHint=false, so the agent knows this is a networked, non-destructive mutation. The description adds genuinely non-obvious behavior beyond that: stages run in parallel, re-ingestion is incremental and resumable, and the call returns a Job rather than the finished video. It stops short of disclosing cost, runtime expectations, or disk/network footprint for long videos.

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?

Three tight sentences: the pipeline is front-loaded, then concurrency/resume semantics, then the return shape. The final sentence about the Job result overlaps with the existing output schema, which is the only real waste.

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 a 9-parameter asynchronous ingestion tool, the description covers the async contract (returns a Job), incremental re-run safety, and the processing stages, and the output schema handles return values. Missing is any note on expected duration or external dependencies, which matters for a long-running open-world download.

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 (force, frames, transcribe, quality, language, max_frames, frame_interval, wait_seconds) is already documented in the schema with defaults and constraints. The description mentions the download/transcribe/frame stages in prose but adds no parameter-level meaning such as how force relates to the resume behavior. Baseline 3 applies.

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?

The description states a concrete pipeline (download, transcribe, sample frames, embed) with the goal of enabling search and questioning, so the agent knows exactly what the tool produces. It does not explicitly distinguish itself from the closest sibling, video_ingest_batch, or contrast with read-only siblings like video_status, leaving a small gap.

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?

Usage context is implied rather than stated: 'Re-ingesting reuses finished stages, so a failed or interrupted job resumes' tells the agent re-runs are safe, which is a real selection hint. However, there is no explicit when-to-use versus video_ingest_batch, no mention of prerequisites (network access, local file paths, model availability), and no guidance on choosing wait_seconds versus polling video_job/video_status.

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