video-atelier-mcp
Server 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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| media_importA | Copy a local file or an HTTP(S) URL into the local media store. |
| media_listC | List imported media. |
| media_probeC | Probe a media file with ffprobe. |
| media_extract_framesC | Extract frames at a fixed interval (300 max). |
| media_thumbnailC | Extract a single JPEG thumbnail. |
| comp_createC | Create a sequential composition, stored locally as JSON. No API, no database. |
| comp_add_clipC | Append a video clip to the composition. |
| comp_add_overlayB | Add an image or video overlay (overlay video is muted, last frame held). |
| comp_add_transitionB | Fade to black then back, with no overlap and no change in duration. Not a crossfade. |
| comp_set_audio_mixC | Replace the audio mix of a composition. |
| comp_get_timelineB | Read the composition JSON and its total duration. |
| comp_validateB | Validate references, time ranges, transitions and media before rendering. |
| comp_add_textC | Add a text overlay with percentage positions. |
| comp_update_textB | Update only supplied fields of a text overlay. |
| comp_remove_textC | Remove a text overlay by its identifier. |
| clip_trimC | Trim with frame-accurate re-encoding (seconds). |
| clip_concatB | Concatenate videos (video only), normalised to a common size and frame rate. |
| clip_speedB | Change video and audio speed, from 0.0625x to 16x. |
| clip_cropC | Crop to the given rectangle, without scaling. |
| clip_loopC | Loop a clip a finite number of times (video and audio). |
| clip_format_convertC | Convert to MP4, MOV, MKV or WebM, with optional scale and pad. |
| captions_write_srtB | Write UTF-8 SRT subtitles. No external service, no key. |
| captions_burnB | Burn SRT/ASS subtitles into the picture. Needs an ffmpeg built with libass, plus fonts (both ship in the Docker image). |
| captions_transcribeB | Transcribe locally with the Whisper CLI, if installed. No key; the model is downloaded on first use. Not in the base image. |
| audio_add_trackC | Add an audio track to the composition. |
| audio_mixB | Mix audio or video files into a WAV, with linear gains and offsets in seconds. |
| audio_extractA | Extract the first audio track as WAV, MP3 or AAC/M4A. |
| render_startA | Start an asynchronous local render. The job is a durable JSON snapshot; an interrupted render restarts from the beginning. |
| render_statusC | Persisted render state (no estimated percentage). |
| render_get_outputA | Return the path of the finished MP4. |
| render_cancelA | Cancel a queued job, or kill its running ffmpeg. |
| render_historyB | Durable render history, most recent first. |
| export_formatsC | List the aspect ratios; with an input, export it with a centred cover crop. |
| export_gifC | Export a GIF excerpt with an optimised palette (30 seconds max). |
| export_thumbnail_setC | Extract a set of thumbnails, one at the centre of each interval. |
| export_metaC | Write the ffprobe metadata to a local JSON file. |
| generate_shotD | Prepare an existing local rush (the default, no key), or explicitly call Azure Sora. |
| generate_statusC | State of a generation job; the backend is recovered from the local metadata. |
| generate_fetchC | Copy or download the finished result into a new local file. |
| sam2_segment_imageC | SAM2: PNG mask for a single image, via the video predictor. |
| sam2_segment_videoD | SAM2: a series of PNG masks, one per video frame. |
| sam2_object_trackC | SAM2: masks plus a JSONL track (boxes and centroids) for one object. |
| sam2_video_inpaintB | SAM2 + OpenCV Telea: spatial erasure. No generative model, and no guaranteed temporal consistency. Silent video. |
| sam2_propagate_maskC | SAM2: approximate propagation, from inside/outside points sampled in the initial mask. |
| sam2_refine_maskC | Refine a PNG mask by erosion and Gaussian blur. Needs only OpenCV and NumPy. |
| sam2_screen_replaceC | SAM2: screen replacement, by mask plus a homography onto the oriented rectangle. Output is muted; perspective is approximate. |
| ui_startA | Start the local editor on 127.0.0.1. If web-dist is missing, build it or use the Docker image, which ships it. |
| ui_stopA | Stop the local editor's HTTP server. |
| health_checkA | Check binaries, codecs, filters and local write access; report which backends are configured. |
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 49 tools
Tools are grouped by domain and mostly have clear purposes, but several clusters overlap: media_thumbnail/media_extract_frames/export_thumbnail_set all extract images, multiple sam2_* tools perform mask-related operations, and export_formats/clip_format_convert/export_meta have fuzzy boundaries. The descriptions help, but an agent could still misselect among them.
The dominant pattern is a domain prefix plus an action (media_, captions_, audio_, render_, comp_, clip_ mostly use verb_noun forms), which is readable and predictable. Minor deviations like media_thumbnail (noun), health_check (no prefix), and export_meta (not a clear verb) break the pattern slightly but do not cause major confusion.
49 tools is a very large surface for an MCP server. Even though the domain is broad, the count exceeds the 25+ threshold and creates significant selection overhead; many tools could be consolidated (e.g., media_thumbnail versus export_thumbnail_set). The scope feels heavy rather than well-scoped.
The server covers a wide arc: import, probe, composition, audio, captions, rendering, export, generation, and sam2 segmentation. However, editing workflows are asymmetrical: comp_add_clip/add_overlay/add_transition have no corresponding remove/update tools, media_import has no delete/cleanup, and audio_add_track lacks a removal counterpart. These gaps are noticeable but can sometimes be worked around.