video_evidence
Retrieve image frames and intersecting source text for a specified video time range, with pagination controls for sheets and text tracks.
Instructions
Read evidence for finite source-second interval [start,end): actual image content blocks plus frame references and intersecting source text. imageLimit 0..12 (default2); afterSheet is the next zero-based saved-sheet offset, nextSheet continues pagination. textLimit 1..500 applies per text track; use transcript_read for remaining text pages. A returned sheet can include other frames; frames lists only those in the requested interval. Time intersections are mechanical, never semantic/cause judgments. Frame times use output sampling-grid estimates, NOT exact original PTS. Visual overview gaps remain gaps even when text covers them. Use image tools to actually inspect pictures. Images default to format=jpeg (FFmpeg q:v4, 4:4:4); request format=png for original PNG detail. Encoding is cancellable with 2 active conversions per MCP process, at most 24 queued, a 30s queue deadline and a 10s execution deadline. Every image response is limited to 8MiB encoded bytes. Saved storyboard PNGs are retained. Acknowledge the pending batch before switching formats; replay preserves its original format and bytes.
The HOST chooses evidence depth from the user request and actual subtitle/ASR quality and coverage: text alone, selected storyboards, all storyboards, or targeted higher-quality follow-up. Subtitles, ASR and images are independently optional; choose any combination. For text-only media use audio_start/audio_url_start (audio-bearing video files/pages are accepted) without a visual job. No mandatory image retrieval, all-images rule, fixed answer format or mandatory ASR. Use video_review action=plan to record visual=none|selected|all; revise as evidence changes. Missing subtitles do NOT block usable images, and a video-only stream does not prove missing source audio. Each image response has a pending batch. Return images AND timestamp metadata to the model, inspect the chosen images, then call video_review action=ack with batchId and explicit viewedIndices (empty [] releases uninspected images without credit). ONLY THEN fetch another batch. Never accumulate many video_read calls inside one code/exec result: return control to the model after each bounded batch. Transport errors leave the batch pending: video_review replay retries it; status/reviewId support resume. Acknowledgement is a caller assertion, not proof of comprehension. Keep any semantic working notes in the Agent workspace, not in MCP evidence. Before finishing, video_review finish checks only the HOST-CHOSEN visual scope and pending image receipts, not text reading completion. The host must still judge if that scope answers the user, and state relevant gaps. Honest incomplete-work disclaimers do not justify abandoning feasible work. session_stop cleanup cancels processing but does not complete reading; user_cancelled is only for an explicit user cancellation. Audio-only workflows remain independent.
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": {
"id": "<id>",
"start": "<start>",
"end": "<end>"
},
"name": "video_evidence"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| end | Yes | ||
| start | Yes | ||
| format | No | ||
| textLimit | No | ||
| afterSheet | No | ||
| imageLimit | No |