shotcut-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MELT_BIN | No | Path to the melt binary used for rendering | melt |
| FFPROBE_BIN | No | Path to ffprobe, used to read source durations | ffprobe |
| SHOTCUT_MCP_WORKDIR | No | Where .mlt projects and their state files are saved | ~/shotcut-mcp-projects |
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
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_projectB | Create a new empty MLT/Shotcut project. Choose width/height to match the delivery (e.g. 1080x1920 for vertical). |
| add_clipA | Append a span of a source video to the end of the timeline. in_s/out_s are seconds in the SOURCE file. Returns the clip's producer_id. |
| trim_clipC | Change the source in/out points of a clip already on the timeline. |
| remove_clipC | Ripple-delete one clip from the timeline. |
| move_clipC | Move a clip to a new 1-based position on the timeline. |
| split_clipC | Split a clip at_s seconds after its own in point. |
| remove_segmentC | Ripple-delete the timeline span between start_s and end_s. |
| append_text_overlayC | Burn a text title onto the timeline between start_s and end_s (timeline seconds). |
| apply_filterB | Apply a filter to a clip. Allowed: ['brightness', 'crop', 'fadeInAudio', 'fadeInBrightness', 'fadeOutAudio', 'fadeOutBrightness', 'volume']. Fades take params {"duration_s": n}; brightness takes {"level": 0-2}; volume takes {"level": dB}; crop takes {"left","right","top","bottom"} in pixels. |
| set_transitionB | Crossfade (video dissolve + audio mix) between two ADJACENT clips. Shortens the timeline by duration_s. |
| get_timelineC | Return the whole edit: every clip with producer_id, source in/out, timeline start/end, filters, transitions and titles. |
| project_infoC | Return summary metadata about an existing project. |
| renderB | Render a project to a video file with melt. 'mp4-project' keeps the project's own frame size. |
| list_projectsB | List all .mlt project files in the work directory. |
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
Most tools target clearly different actions on the timeline (add, trim, move, split, filter, transition, render). A few pairs could still be confused: remove_clip vs remove_segment, and project_info vs get_timeline both return overlapping project/timeline data.
Almost all tools follow a verb_noun pattern (create_project, add_clip, trim_clip, apply_filter, get_timeline). The exceptions are project_info (noun phrase) and render (bare verb), which are minor deviations but readable.
14 tools is well within the ideal 3-15 range for a focused video-editing server. Each tool represents a meaningful editing operation, and there are no redundant or trivial tools.
Core clip editing, filters, transitions, timeline inspection, and rendering are covered. However, there is no explicit open_project/load_project tool to continue editing an existing .mlt file, no delete_project, and no way to update project-level settings, creating a notable lifecycle gap.