Moviola Protocol MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MOVIOLA_DB | No | Path to the SQLite index file (overrides the default ./moviola.db in the working directory). | |
| MOVIOLA_VERBOSE | No | Enables verbose output (set to 1, equivalent to the --verbose flag). | |
| MOVIOLA_FFMPEG_DIR | No | Directory holding the ffmpeg trio (ffmpeg, ffprobe, ffplay). Used by the ffmpeg discovery chain, printed by `moviola doctor`. |
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
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| convert_mediaB | Convert any video/image file to the output path's format. The preset shapes the pixels (standard = NTSC-J 8-bit grey 8 colours, intersect = 1-bit overcalc grey, torch = intersect at 5 fps and 360p/480p, canine = Canine Logic Moviola Tessersect 90 fps 120p-cell 4x4 collage, passthrough = no Moviola filter, which for gif to mp4 reproduces the OpenCode plugin transcode). The output extension chooses the container: gif, mp4, webm, webp, png, jpg and anything else ffmpeg muxes. Resolution may be chosen in lines (height, the p metric) or in DPI at a named reference width (pixels = dpi * inches), never both. Every conversion is recorded in moviola.db; the result carries before/after bytes and the ratio. |
| slideshow_from_imagesC | Build a slideshow (gif/mp4/webp) from PNG/JPG images, in order. With preset torch and seconds_per_image 0.2 the output is the pre-training form: five 1-bit grey frames per second, legible for text- and code-rich images at a few hundred bytes a frame. |
| probe_mediaB | Probe one media file: bytes, dimensions, fps, duration, codec. |
| list_presetsA | List the Moviola presets with their exact ffmpeg filter chains. |
| doctorB | Report where the ffmpeg/ffprobe/ffplay trio was found + version. |
| index_historyC | Recent conversions from moviola.db, newest first, sizes included. |
| index_statsB | Per-preset totals from moviola.db: counts, bytes in/out, mean ratio. |
| index_chainsD | Files intertwined by the protocol: an output that became a source. |
| install_opencode_pluginB | Install the bundled gif-as-mp4 OpenCode plugin (.mjs or .ts). Copies the plugin into /plugins and, unless disabled, the portable read tool into /tools/read.ts, so GIFs ride to models labeled video/mp4 and motion survives. |
| training_backendsA | Which training stacks exist here: torch/ROCm, AITER, JAX, Primus, TorchTitan, Megatron-LM, MaxText, Unsloth - installed or not, with install lines, and what this host honestly cannot run (ROCm on Windows/RDNA2). Detection only; nothing is downloaded. |
| export_training_dataA | Export Moviola frames as a training dataset in one of five layouts. image-folder (TorchTitan/torchvision), webdataset (single tar), datacenter-shards (AMD Primus / Megatron-Energon style shards + manifest), arrayrecord (JAX MaxText/Grain), unsloth (vision SFT train.jsonl + images). Sources are any media files or folders; height chooses a ladder stage in lines, dpi in pixels-per-inch at the reference width. |
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 11 tools
Most tools have a clearly distinct purpose: media processing (probe_media, convert_media, slideshow_from_images), index queries (index_history, index_stats, index_chains), and training export (training_backends, export_training_data). The three index_* tools overlap somewhat but their descriptions distinguish them (recent conversions vs. per-preset aggregates vs. chained files). Only minor confusion between convert_media and export_training_data from the description wording, since export also converts media.
Mostly snake_case with a verb_noun pattern (probe_media, convert_media, list_presets, install_opencode_plugin, export_training_data), but there are noun-first and bare-noun deviations: slideshow_from_images, doctor, and training_backends. The three index_ tools form a visible family but use index_ as a noun-ish prefix rather than a verb. Readable overall, but not a clean consistent convention.
Eleven tools is well-scoped for a media-processing-plus-training-export server. Each tool has a clear responsibility, with no filler or trivially redundant entries.
The surface covers the core lifecycle: probing, conversion, slideshow assembly, preset discovery, environment diagnosis, history/stats/chains, plugin installation, and training export. Minor gaps exist: no batch conversion of many files at once (probe is single-file), and no way to delete/clear database records or fetch a single conversion's details.