Server data from the Official MCP Registry
Edit video through Shotcut's MLT engine: timelines, cuts, filters, titles, crossfades and renders.
About
Edit video through Shotcut's MLT engine: timelines, cuts, filters, titles, crossfades and renders.
Security Report
Valid MCP server (2 strong, 1 medium validity signals). 6 known CVEs in dependencies (0 critical, 5 high severity) Package registry verified. Imported from the Official MCP Registry.
6 files analyzed · 7 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
What You'll Need
Set these up before or after installing:
Environment variable: SHOTCUT_MCP_WORKDIR
Environment variable: MELT_BIN
Environment variable: FFPROBE_BIN
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-nobanks-shotcut-mcp": {
"env": {
"MELT_BIN": "your-melt-bin-here",
"FFPROBE_BIN": "your-ffprobe-bin-here",
"SHOTCUT_MCP_WORKDIR": "your-shotcut-mcp-workdir-here"
},
"args": [
"shotcut-mcp"
],
"command": "uvx"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
shotcut-mcp
MCP server that edits video through Shotcut's engine, MLT, with no GUI. An agent can create a project, add and trim clips, split, move and remove them, apply filters, add titles and crossfades, read the timeline back and render it with melt.
The output is a native Shotcut .mlt project, not a locked video file. Open the agent's cut in Shotcut and keep editing it by hand.
Requirements
- Python 3.11+
- MLT
meltonPATH, or setMELT_BINto its full path. Installing Shotcut includesmelt.- Linux:
sudo apt install melt - macOS: install Shotcut, then set
MELT_BIN=/Applications/Shotcut.app/Contents/MacOS/melt - Windows: install Shotcut, then set
MELT_BINtomelt.exeinside the Shotcut folder. Windows rendering is not yet covered by CI.
- Linux:
ffprobe(from FFmpeg) onPATHfor reading clip durations and checking renders. Override withFFPROBE_BIN.
Install
Run it with no install step using uv:
uvx shotcut-mcp
Or install it with pip:
pip install shotcut-mcp
shotcut-mcp
The server talks MCP over stdio.
Use it with goose
goose Desktop or CLI
- Run
goose configure, choose Add Extension, then Command-line Extension. - Name:
shotcut - Command:
uvx shotcut-mcp - Timeout:
600seconds or more. Renders take longer than goose's default. - Add the environment variables
SHOTCUT_MCP_WORKDIRand, ifmeltis not on yourPATH,MELT_BIN.
config.yaml
Add this to ~/.config/goose/config.yaml:
extensions:
shotcut:
enabled: true
type: stdio
name: shotcut
cmd: uvx
args:
- shotcut-mcp
envs:
SHOTCUT_MCP_WORKDIR: /path/to/your/projects
timeout: 600
Then ask goose something like: "Make a project called promo from clip1.mp4 and clip2.mp4, keep the first 5 seconds of each, crossfade them, add the title 'Launch day' and render it."
Use it with other MCP clients
Any MCP client that runs stdio servers works. For example, Claude Desktop's claude_desktop_config.json:
{
"mcpServers": {
"shotcut": {
"command": "uvx",
"args": ["shotcut-mcp"],
"env": { "SHOTCUT_MCP_WORKDIR": "/path/to/your/projects" }
}
}
}
Configuration
| Variable | Default | What it does |
|---|---|---|
SHOTCUT_MCP_WORKDIR | ~/shotcut-mcp-projects | Where .mlt projects and their state files are saved |
MELT_BIN | melt | Path to the melt binary used for rendering |
FFPROBE_BIN | ffprobe | Path to ffprobe, used to read source durations |
Tools
| Tool | What it does |
|---|---|
create_project | Create a new project with a frame size and frame rate |
add_clip | Append a span of a source video to the end of the timeline. Returns the clip's id |
trim_clip | Change a clip's source in and out points |
remove_clip | Ripple-delete one clip |
move_clip | Move a clip to a new position on the timeline |
split_clip | Split a clip into two at a point inside it |
remove_segment | Ripple-delete a span of the timeline |
append_text_overlay | Burn a text title onto the timeline between two times |
apply_filter | Apply brightness, volume, crop, fadeInBrightness, fadeOutBrightness, fadeInAudio or fadeOutAudio to a clip |
set_transition | Crossfade video and audio between two adjacent clips |
get_timeline | Return the whole edit: clips, source in and out, timeline positions, filters, transitions and titles |
project_info | Return summary metadata for a project |
render | Render a project to a video file with melt |
list_projects | List the projects in the work directory |
Clip ids stay stable across calls. The edit state is kept in a .state.json file next to each .mlt, and the .mlt is regenerated from it after every change.
Current limits
- One video track. Multitrack video and audio is planned.
- Edits made by hand in the Shotcut GUI are overwritten by the next tool call. Safe round trips are planned.
- The
styleoption onset_transitionis accepted but only a dissolve is rendered today.
Development
pip install -e ".[dev]"
pytest
The render tests are skipped when melt is not installed.
License
MIT
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Rea
Freeby Morluto · Developer Tools
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Paperclip
Freeby Paperclipai · Developer Tools
Trending hip-hop artist momentum scores across four cultural dimensions.
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
