9xvision
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| watchA | Analyse a local video file or URL (YouTube, Vimeo, TikTok, X, Instagram...). mode: auto | film | screen (screen = app/screen recordings). start/end ("12:30", "1:02:00", or seconds) watch only a window, and a URL downloads only that part: use it for long videos when the question is about one stretch. Times stay in full-video time. cookies_from_browser ("chrome", "safari", ...) is for login-gated URLs, only with the user's OK. Returns INDEX.md plus the first overview contact sheet. First run takes ~1-2 s per minute. |
| lookC | Show an artefact of a watch: sheet:N, timeline:N, view:N (full-res screen), shot:N (keyframe), page:N (stitched long page), colour (colour script). |
| zoomB | Dense timestamped grid of frames between start and end (mm:ss.s or seconds), up to 30 frames. |
| frameC | Full-resolution frame at a time. crop = "x,y,w,h" in pixels or 0-1 fractions, for reading small detail. |
| diffC | Compare two moments: side-by-side plus highlighted changed regions (pixel boxes in source coordinates). |
| searchA | Find moments by on-screen text (OCR), spoken words, AND what is in the picture ("a red car at night", "a pie chart", "someone hugging"). Text hits cover every watch; visual moments cover watch_id (default: the most recent watch) and come with a contact sheet of the best frames; for an album, the best images. Visual scores: strong >= 0.5, possible >= 0.05; all-weak means it is probably not there. No negation ("an empty room"): search for what is there. The first visual search on a watch indexes it (seconds). |
| qaA | Capture QA for a game, XR (VR/AR headset) or app recording: frame pacing (hitches = frames the build failed to deliver while the picture moved, with times and ms; effective fps per second), side-by-side / top-bottom stereo detection, comfort (fast camera turns; pass the headset's horizontal fov_deg for deg/s) and flashes above 3 per second (photosensitivity triage). source = file, URL or watch id. Returns a summary plus a chart. |
| imageA | One image (file or URL). Without region: an overview with a lettered grid (when the image is larger than you can see at full resolution), plus EXIF, palette and OCR text with grid cells. With region ("B2", "B2:C3", or "x,y,w,h" in px or 0-1 fractions): that part at native resolution, enlarged when small. Use it to read small text in big screenshots and photos instead of guessing. |
| imagesB | Index images (folders, files, globs, URLs) into an album: thumbnails, dates, cameras, OCR text, palettes, near-duplicate groups and a visual index. Returns INDEX.md and the first contact sheet. Then search(query, album_id) finds images by content or text, look(album_id, "image:N") gives an original, image(path, region) reads detail. |
| live_startA | Start live perception in the background: source = "camera" (or "camera:N"/name), "screen" ("screen:N"), a stream URL (rtsp/srt/YouTube live) or a file played in real time. It tracks motion, cuts, colour, sound (level, beat, voice pitch, speech), faces (51 blendshapes, head pose: expression, not feelings; no identities), optional hands (gesture, pinch = thumb and index touching) and body, affect (energy, arousal vs this session, expression valence, engagement) and visual triggers (watch_for: ["a dog"]). It also streams to a monitor page and to OSC if given. Only start the camera or microphone when the user asked for it. Then use live_now, live_snapshot, live_stop. |
| live_nowA | What the running live session sees and hears right now: a summary, the latest frame, and recent events. |
| live_snapshotA | Turn the last |
| live_watch_forC | Change the running session's visual triggers (descriptions of things to watch for). |
| live_stopA | Stop the live session (camera, microphone and streams close). |
| list_watchesB | Previously watched videos (cached; re-watching is instant). |
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 15 tools
Most tools target distinct actions/resources: watch analyses video, frame extracts a single frame, zoom builds a dense grid, diff compares moments, search finds moments, and the live_* tools handle real-time perception. There is some overlap among frame, look, zoom, and image for inspecting visual detail, but the descriptions mostly clarify when to use each.
The set mixes noun names (frame, image, images, qa) with verb names (watch, look, zoom, diff, search) and a prefixed live_ group plus list_watches. The live_ tools are consistently prefixed, but overall there is no single predictable verb_noun or noun pattern.
Fifteen tools fit a rich visual/video analysis domain with distinct areas: video analysis, image albums, live sessions, search, comparison, and QA. The count is well within a reasonable scope and each tool appears to serve a specific workflow.
The surface covers core workflows for video/image/live analysis: ingest, inspect, search, compare, QA, and live snapshots. Minor gaps exist around managing cached watches/albums (e.g. no delete or rename operations), but these are not central to the stated analysis purpose.