Kdenlive video editing MCP - 36 tools for project, timeline, filters and melt rendering
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
A Model Context Protocol (MCP) server wrapping cli-anything-kdenlive for LLM-driven video editing workflows via Kdenlive.
This FastMCP server enables AI models to perform complex video editing tasks on Kdenlive projects through a unified set of 36 tools organized into 8 functional categories. The server uses the Python API of cli-anything-kdenlive directly (not subprocess) to maintain a persistent session state, ensuring modifications are immediately available to subsequent tool calls.
The server runs as a FastMCP server compatible with any LLM platform that supports MCP (e.g., Claude Code, Pi, OpenCode).
| Tool | Description |
|---|---|
project_new() | Create a new Kdenlive project with optional profile override |
project_open() | Load an existing .kdenlive-cli.json project |
project_save() | Persist the current project state to disk |
project_get_info() | Get project metadata (resolution, FPS, track layout, clip counts) |
project_list_profiles() | List all available video output profiles (hd1080p30, 4k60, sd_pal, etc.) |
| Tool | Description |
|---|---|
bin_import_clip() | Ingest media files (video, audio, image) into the project bin |
bin_remove_clip() | Delete a clip from the bin by ID |
bin_list_clips() | List all assets in the project bin |
bin_get_clip_details() | Fetch detailed properties of a clip (duration, type, source) |
| Tool | Description |
|---|---|
timeline_add_track() | Append a video or audio track to the timeline |
timeline_remove_track() | Delete a track and all its clips |
timeline_add_clip() | Place a bin clip on a track at a specific position |
timeline_remove_clip() | Remove a clip from a track |
timeline_move_clip() | Reposition a clip on the same track |
timeline_trim_clip() | Adjust clip in/out crop handles |
timeline_split_clip() | Cut a clip into two pieces at a precise offset |
timeline_list() | List all tracks with clip counts and status |
| Tool | Description |
|---|---|
filter_add() | Attach a video/audio effect (blur, brightness, frei0r.opacity, volume) |
filter_remove() | Remove an effect from a clip |
filter_set_param() | Update a single filter parameter (radius, opacity, level) |
filter_list() | List all active filters on a clip |
filter_list_available() | Discover all available filters by category |
| Tool | Description |
|---|---|
transition_add() | Create blend transitions (dissolve, wipe, slide, composite, affine) |
transition_remove() | Delete a transition by ID |
transition_set() | Update a transition parameter |
transition_list() | List all transitions on the timeline |
| Tool | Description |
|---|---|
guide_add() | Add timeline markers/chapters |
guide_remove() | Remove a guide by ID |
guide_list() | List all guide markers |
| Tool | Description |
|---|---|
export_xml() | Generate Kdenlive/MLT XML for the project |
export_list_presets() | List available render presets |
export_render() | Render project to video via melt CLI |
| Tool | Description |
|---|---|
session_undo() | Revert the most recent operation (up to 50 history entries) |
session_redo() | Redo the last undone operation |
session_status() | Inspect session state (project loaded, modified flag, history depth) |
session_history() | List all undo/redo history entries |
All tools return consistent response formats:
Auto-generated by uv sync. Contains locked dependency versions.
If Kdenlive reports "Version of the project file cannot be read" or "Timeline clip without bin reference found":
kdenlive:docproperties.version="1.1"kdenlive:id linking to main_binThe server auto-saves to disk after every mutation. If changes aren't persisting:
project_new() or project_open()session_status() shows has_project: trueNo reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/kdenlive-mcp-server)<a href="https://allmcps.com/mcp/kdenlive-mcp-server"><img src="https://allmcps.com/api/badge/kdenlive-mcp-server?style=directory" alt="Kdenlive MCP Server on AllMCPs" /></a>