Ask your coding agent questions about a video file or link.
videoscrub has 4 well-defined tools with explicit schemas, descriptions, and tool annotations. All tools are READ_ONLY and properly registered via server.registerTool(). Naming is clear (video_info, transcript, frames, motion) and action-oriented. Descriptions are present and substantive (avg ~150 chars). However, several parameters lack descriptions (fps, width in frames tool; start_s/end_s in motion lack detail about their interaction), and output schemas are not formally documented, responses are text or image blobs without structured field definitions. Error handling is minimal; no recovery guidance or actionable error messages visible. Parameter constraints exist (e.g., crop validation, width bounds) but are not fully described in parameter annotations.
Inspect a video visually with up to 48 timestamped frames on 3 sheets. Source alone scans the whole video. Narrow the range for detail; crop or increase width for small text.
Return up to 240 frame-to-frame luma-change buckets for a range of at most 600 seconds.
Read or search speech with timestamps and nearby context. Uses captions, or uploads audio to the configured transcription API.
Return title, duration, dimensions, chapters, and transcript availability. Downloads media only if remote duration is missing.
Output schemas not documented. Tools return text blobs or image arrays without formal field definitions. LLMs cannot plan downstream operations or extract structured data reliably.
Parameter descriptions incomplete. 'fps' in frames tool lacks guidance on auto-calculation behavior; 'start_s' and 'end_s' in motion lack detail on range constraints and interaction with MAX_MOTION_SECONDS (600s limit).
No error recovery guidance. Code throws errors (e.g., 'empty range', 'too many frames requested') but does not guide LLM on corrective actions or parameter adjustments.
Pagination not implemented. 'transcript' tool supports offset/continuation but no explicit limit or total_count returned. Large transcripts may exceed context window.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Crop parameter validation is strict but underdocumented. The refine() check ensures crop fits inside frame, but this constraint is not stated in the parameter description, LLMs may pass invalid crops and receive cryptic errors.