VisoMaster MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VISOMASTER_SSH | No | Client SSH program | ssh |
| VISOMASTER_HOST | Yes | SSH alias or host name; letters, digits and ._@:%[]-, no leading - | |
| VISOMASTER_REMOTE | Yes | Absolute workstation deployment directory; letters, digits and _./-, no .. | |
| VISOMASTER_DOWNLOADS | No | Local directory for download_artifact | ~/Downloads/visomaster-mcp |
| VISOMASTER_REMOTE_PYTHON | No | Workstation interpreter for control commands: a command name or an absolute path | python3 |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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 ( |
| submit_swapA | Queue an image/frame preview or CFR video render using explicit identity mappings. Preview processes |
| 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 |
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 14 tools
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.
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.
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.
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.