Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 seconds of the live session (up to the buffer, 120 s by default) into a normal watch: shots, text, speech, sound, plus a 'Live signals' section (affect, smiles, nods, gestures, triggers). All watch tools (zoom, frame, diff, search) then work on it.

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 15 tools

Disambiguation4/5

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.

Naming Consistency3/5

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.

Tool Count5/5

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.

Completeness4/5

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.