Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
VISOMASTER_SSHNoClient SSH programssh
VISOMASTER_HOSTYesSSH alias or host name; letters, digits and ._@:%[]-, no leading -
VISOMASTER_REMOTEYesAbsolute workstation deployment directory; letters, digits and _./-, no ..
VISOMASTER_DOWNLOADSNoLocal directory for download_artifact~/Downloads/visomaster-mcp
VISOMASTER_REMOTE_PYTHONNoWorkstation interpreter for control commands: a command name or an absolute pathpython3

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Run health_check and get_settings first. Paths are absolute workstation paths. Detect faces and inspect their crops before assigning identities; view_artifact contact.jpg shows every labelled crop of a detection job at once. Use explicit target/source references, preview before long renders, and follow jobs with job_status(wait_seconds=50), which returns early on any state change, instead of polling rapidly. Use a stable job_id to make retries idempotent. Jobs survive client disconnection.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

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

Tools

Functions exposed to the LLM to take actions

NameDescription
health_checkA

Check installed revision, deployed release, GPU, memory use and media/state paths.

code_matches compares deployed worker hashes with this checkout, or is null if unknown.

get_settingsA

Return supported Fusion parameter names, defaults, choices and numeric limits.

inspect_mediaA

Read video/audio codec, frame rate, dimensions and duration from a workstation file.

detect_facesA

Queue face detection. Poll job_status, then inspect crops with view_artifact.

Single-frame detection (frame, zero based) returns faces with crop reference paths usable as FaceMapping.target_face. To find who appears across a video, pass sample_frames (N evenly spaced frames) or explicit frames (at most 64) instead: faces are grouped into identities by recognition-embedding similarity at Fusion's default similarity threshold. Each identity lists its appearances, frames, sample boxes and a representative crop (reference_path, verified to re-detect as one face) usable as target_face. Both modes write contact.jpg, one grid of every crop labelled "face N" or "id N: x" (* marks an unverified reference); view it first.

submit_swapA

Queue an image/frame preview or CFR video render using explicit identity mappings.

Preview processes frame. Render processes start_frame and at most max_frames (None means through the end). Outputs are new job artifacts. Video output is H.264, with the selected interval's first audio stream encoded to AAC. Preview defaults to Inswapper128. Consult get_settings before changing parameters. GPU jobs run one at a time. Renders reject VFR, nonzero start times, odd dimensions and rotation; use normalize_media.

normalize_mediaA

Queue conversion of a video into a render-ready copy. Runs on CPU without the GPU lock.

Output is CFR H.264 (CRF 18, yuv420p) starting at zero, with rotation applied, metadata removed and odd dimensions padded by one pixel. The first audio stream becomes AAC aligned to the first video frame. Without fps, the source average rate is used, snapped to a standard rate within 2%. The completed result's media_path is usable in submit_swap.

job_statusA

Read durable queued/running/completed/failed/cancelled state, progress and results.

With wait_seconds > 0 the call blocks on the workstation until the job's status or progress stage differs from its value at call time, the job is terminal, or the wait elapses, then returns the current state. Frame counts advancing within a stage do not end the wait. The worker log tail is returned when include_log is true or the job failed.

list_jobsA

List the most recently updated jobs, including jobs submitted by another client.

Each summary has kind, status, media_path, frame (start_frame/max_frames for renders, fps for normalization), created/started/finished timestamps, elapsed_seconds since submission (until finish), error and progress. Use job_status for results and logs.

cancel_jobA

Request cancellation of a queued/running job. Poll until its state is terminal.

delete_jobA

Permanently delete a completed, failed or cancelled job with its logs and artifacts.

Queued and running jobs are refused; cancel them and wait for a terminal state first.

prune_storageA

Report or delete old terminal jobs, unused uploads and files left by crashed transfers.

Removes terminal jobs finished more than older_than_days ago and uploads untouched for that long that no queued/running job references. Dry run by default; returns the paths, jobs and byte totals that were (or would be) deleted.

view_artifactA

Show a completed job's PNG/JPEG crop or preview inline in Claude or Codex.

download_artifactA

Download a completed artifact into the configured local downloads directory.

Returns its absolute Mac path. Large videos stream directly to disk.

upload_mediaA

Stream a Mac image/video to private workstation storage and return its remote path.

Accepts PNG, JPEG, WebP, MP4, MKV and MOV up to 20 GiB. Use this path in other tools. Uploads are content-addressed: re-uploading identical media returns the existing path.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 14 tools

Disambiguation4/5

Each tool targets a distinct stage of the media pipeline (upload → detect → swap → artifact) or a distinct job-lifecycle action, and the descriptions actively disambiguate near-neighbours like list_jobs vs job_status and view_artifact vs download_artifact. The only real friction is the three-way cleanup surface (cancel_job / delete_job / prune_storage), where an agent must reason about job state and age to pick correctly.

Naming Consistency4/5

Nearly all names are snake_case verb_noun (upload_media, detect_faces, submit_swap, normalize_media, cancel_job, delete_job, prune_storage). Two exceptions — health_check and job_status — invert into noun_verb/noun_noun, but they remain readable and unambiguous.

Tool Count5/5

14 tools is well inside the healthy range and each one earns its place: one entry point per pipeline stage plus a small, coherent job-control and storage-maintenance set. Nothing feels padded or missing at the count level.

Completeness4/5

Coverage is strong for the stated domain: media ingestion and inspection, face detection with identity grouping, preview and full render submission, normalization, full job lifecycle (submit/list/status/cancel/delete), and artifact viewing/downloading. Minor gaps remain — there is no per-file upload listing or deletion (only age-based prune_storage), no way to manage or persist face mappings across sessions, and no standalone job-log or artifact-listing operation outside job_status.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues