vidx
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VIDX_HOME | No | Directory used to store vidx data (SQLite DB and per-video embeddings). Defaults to ~/.vidx. | |
| VIDX_DEVICE | No | Compute device to use: 'cuda', 'mps', or 'cpu'. | |
| VIDX_ENCODER | No | Video encoder to use: 'libx264' or 'h264_videotoolbox'. | |
| VIDX_SILENCE_DB | No | Decibel threshold used by the silence/audio-event analyzer. | |
| VIDX_WHISPER_TASK | No | Whisper task: 'auto', 'transcribe', or 'translate'. | |
| VIDX_WHISPER_MODEL | No | Whisper model used for transcription. Default is 'small'; try 'medium' or 'large-v3' for languages such as Malayalam. | |
| VIDX_SHOT_THRESHOLD | No | Threshold used by the shot-detection analyzer. | |
| VIDX_WHISPER_LANGUAGE | No | Force the Whisper transcription language, e.g. 'ml'. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| index_videoA | Index a video file (shots, transcript, audio/visual events, CLIP embeddings). Re-indexing the same file is a no-op unless force=true. captions=true adds one-line shot captions (slower). Returns video_id, duration, shot count, language and a short summary. |
| overviewA | Table of contents. level="scenes" covers the whole video in <=limit lines (similar shots merged, long shots split at pauses); level="shots" lists shots s1..sN (page with offset). |
| queryB | Find time ranges. kind: speech (exact+fuzzy transcript match), visual (CLIP text->shot), event (e.g. "silence>1.5", "black", "loud", "freeze"), any (event syntax, else speech+visual). |
| get_segmentA | Detail for one range: start/end in seconds or shot ids (start="s3" alone = that shot). fields: any of words,events,shots,wordtimes (wordtimes = per-word timestamps for precise cuts). |
| peekA | SEE frames (costs image tokens; use sparingly). target = video_id or a rendered version id (v3). times = seconds or shot ids, e.g. ["12.5", "s3"]; omit for an even visual summary. Returns one contact sheet (max 4x4 tiles, each labeled with its timestamp); size = longest side of a tile. |
| editA | Create a version from an edit script (see server instructions for the DSL). With parent_version,
the script is appended to the parent's script (incremental fix) unless it has its own |
| renderC | Render a version with ffmpeg. preset: original | reel_9x16 | yt_16x9. Returns path, duration, size. |
| checkA | QA a rendered version: black frames, new freezes, mid-word cuts, audio jumps at joins, loudness vs preset target, duration limits. Each finding has a time and a DSL fix. Returns OK when clean. |
| diffC | What changed between two versions: added/removed/moved source ranges, option changes, output duration delta. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool maps to a distinct stage of the video workflow: ingest (index_video), navigation (overview), search (query), detail (get_segment), visual inspection (peek), editing (edit), output (render), QA (check), and comparison (diff). The retrieval tools (overview/query/get_segment) could superficially overlap, but the descriptions clearly separate navigation, time-range search, and single-range detail.
All names are lowercase snake_case, which is stylistically consistent, and the two multiword names (index_video, get_segment) follow verb_noun. However, the rest are bare nouns or verbs (overview, query, peek, edit, render, check, diff), so the verb_noun pattern isn't uniform across the set.
Nine tools is well-scoped for a video indexing/editing/rendering pipeline, with each tool earning its place across a clear ingest-to-QA lifecycle. Nothing feels redundant or padded.
The surface covers the full lifecycle: indexing, TOC/navigation, search, detail retrieval, visual inspection, scripted editing, rendering with presets, QA checks, and version diffing. No obvious dead ends given the described domain.