Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Kdenlive MCP Server

by Va1bhav512version 0.1.3i★ –iRuns on your computer
Registry nameio.github.Va1bhav512/kdenlive-mcp-server

Install

Overview

Description from the maker (original English)

Kdenlive video editing MCP - 36 tools for project, timeline, filters and melt rendering

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Design, images & audio

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • The registry lists no key to fill in.

You need

  • PyPIPython’s uv installed (for the uvx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "kdenlive": {
      "command": "uvx",
      "args": [
        "kdenlive-mcp-server"
      ]
    }
  }
}

Run this in your terminal

claude mcp add kdenlive -- uvx kdenlive-mcp-server

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "kdenlive": {
      "command": "uvx",
      "args": [
        "kdenlive-mcp-server"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "kdenlive": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "kdenlive-mcp-server"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 9, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account Va1bhav512, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Design, images & audioi

  • More stars than 0% of the other 2801 servers in this category
  • Published to the registry more recently than 28% of the other 2801 servers in this category
  • Basic checks equal to or better than 100% of the other 2801 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Kdenlive MCP Server safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.1.3) reached the registry 2 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.

What can I use instead?

In the same category: Figma Context MCP, Claude Real Video, Figma MCP Server

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Figma Context MCP

Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.

by GLipsWidely used↓ 161.2K/wk★ 16.2KUpdated 5 months ago

Runs on your computer

Claude Real Video

Let any LLM watch a video locally — and search everything it has ever watched.

by HUANGCHIHHUNGLeoWidely used↓ 1.1K/wk★ 2.3KUpdated 2 months ago

Runs on your computer

Figma MCP Server

Figma’s official server gives AI your design data so it can turn designs into code or describe them accurately. Connects to Figma’s cloud.

by figmaWidely used★ 2.2KUpdated 13 months ago

Runs in the cloud✓ mcp.figma.com

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

Kdenlive MCP Server

A Model Context Protocol (MCP) server wrapping cli-anything-kdenlive for LLM-driven video editing workflows via Kdenlive.

Overview

This FastMCP server enables AI models to perform complex video editing tasks on Kdenlive projects through a set of 75 tools. 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.

Key Features
  • Persistent Session State: Uses CLI's in-memory session API, auto-saves after every mutation
  • Gen 5 XML Export: Kdenlive-compatible XML output with proper bin references and version metadata
  • Robust Error Handling: All exceptions caught and returned as structured JSON payloads
  • Auto-Project Tracking: Globally tracks project path; all tools automatically target the active project
  • 75 MCP Tools: Comprehensive coverage of Kdenlive operations

Installation

Prerequisites
# Python 3.10+

Ensure uv is installed for dependency management

pip install uv

Install Dependencies
cd kdenlive-mcp-server

uv sync

Usage

As an MCP Server

The server runs as a FastMCP server compatible with any LLM platform that supports MCP (e.g., Claude Code, Pi, OpenCode).

Command Line
# Run the MCP server

uv run kdenlive-mcp

Or directly via Python

uv run python3 -m kdenlive_mcp_server.server

Python Integration
from kdenlive_mcp_server.server import (

project_new, bin_import_clip, timeline_add_clip, export_xml )

Create project

result = project_new(output_path="my_project.kdenlive-cli.json", profile="hd1080p30")

Import media

result = bin_import_clip(clip_path="video.mp4", name="Interview", duration=120.0)

Add to timeline

result = timeline_add_clip(clip_id="clip0", track=0, position=0.0)

Export XML

result = export_xml(output_path="output.kdenlive")

Project Structure

kdenlive-mcp-server/

├── kdenlive_mcp_server/ │ ├── init.py # Empty package init │ └── server.py # FastMCP server with 75 tools ├── main.py # Entry point delegating to server module ├── pyproject.toml # Project configuration and dependencies ├── uv.lock # Dependency lock file └── README.md # This file

Tools

Project (5 tools)
ToolDescription
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.)
Bin (4 tools)
ToolDescription
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)
Timeline (8 tools)
ToolDescription
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
Filters (5 tools)
ToolDescription
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
Transitions (4 tools)
ToolDescription
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
Guides (3 tools)
ToolDescription
guide_add()Add timeline markers/chapters
guide_remove()Remove a guide by ID
guide_list()List all guide markers
Export (3 tools)
ToolDescription
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
Session (4 tools)
ToolDescription
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
Batch Editing & Vertical Video (new in 0.2.0)
ToolDescription
timeline_build_from_segments()Place many keep-segments of one bin clip back to back in a single, single-undo call
clip_reframe_vertical()Center-crop a 16:9 clip to fill a 9:16 frame, with a horizontal pan
timeline_build_from_segments(clip_id, segments, track=0, start=0.0, gap=0.0, include_audio=True, audio_track=None)

Cutting a long take with timeline_split_clip / timeline_remove_clip is fragile because every removal shifts the clip_index of the clips after it. Instead, compute the ranges you want to keep and place them all at once:

timeline_add_track()  # video track 0

timeline_build_from_segments( clip_id="clip0", segments=[{"start": 0.5, "end": 1.5}, {"start": 3.0, "end": 4.5}, {"start": 6.0, "end": 8.0}], )

-> {"placed": 3, "timeline_duration": 4.5, "kept_seconds": 4.5, "track": 0, "audio_track": 1, ...}

  • segments is a list of {start, end} in source seconds, or a path to a JSON file containing {"segments": [...]}.
  • Segments are sorted, clamped to the clip's duration, merged where they overlap or touch, and dropped if shorter than 0.05 s. An empty result is an error.
  • Segments are laid out from start, separated by gap seconds.
  • Clips on a video track render without sound, so when the source has an audio stream the same segments are mirrored onto an audio track (the first existing one, or a new A1). Pass include_audio=False to skip this, or audio_track= to choose the track.
  • The whole build, including any auto-created audio track, is one undo step: a single session_undo() reverts it.
clip_reframe_vertical(track_id, clip_index, x_offset=0.0)

For Shorts/Reels/TikTok, start the project with a vertical profile (vertical1080p30 or vertical1080p60, both 1080x1920), then reframe each landscape clip:

project_new("short.kdenlive-cli.json", profile="vertical1080p30")

... import + timeline_build_from_segments ...

clip_reframe_vertical(track_id=0, clip_index=0) # center clip_reframe_vertical(track_id=0, clip_index=1, x_offset=-0.5) # pan left

The source is scaled so its height fills the frame, then shifted horizontally: x_offset -1 shows the left edge, 0 the center, 1 the right edge. It adds an affine filter (Kdenlive's Transform effect) with a transition.rect; calling it again on the same clip updates that filter instead of stacking another. Center crop only, no face tracking.

Example Workflows

Create a Simple Video Project
from kdenlive_mcp_server.server import (

project_new, bin_import_clip, timeline_add_track, timeline_add_clip, export_xml, project_save )

1. Create project

result = project_new( output_path="intro_video.kdenlive-cli.json", profile="hd1080p30", name="Introduction" )

2. Import media

result = bin_import_clip( clip_path="interview.mp4", name="Interview", duration=120.0 )

3. Add track and place clip

result = timeline_add_track(track_type="video", track_name="V1") result = timeline_add_clip( clip_id="clip0", # From bin_import_clip response track=0, position=0.0 )

4. Export

result = export_xml(output_path="intro.kdenlive")

Apply Effects to Clips
from kdenlive_mcp_server.server import (

project_new, bin_import_clip, timeline_add_track, timeline_add_clip, filter_add, filter_set_param, filter_list )

Setup

result = project_new(output_path="effects_demo.kdenlive-cli.json", profile="hd720p60") result = bin_import_clip(clip_path="movie.mp4", name="Movie", duration=300.0) result = timeline_add_track(track_type="video") result = timeline_add_clip(clip_id="clip0", track=0, position=0.0)

Add brightness filter

result = filter_add( track_id=0, clip_index=0, filter_type="brightness", params=["level=0.8"] )

Update brightness

result = filter_set_param( track_id=0, clip_index=0, filter_index=0, parameter="level", value="1.2" )

List filters

result = filter_list(track_id=0, clip_index=0)

Add Chapter Markers
from kdenlive_mcp_server.server import (

project_new, bin_import_clip, timeline_add_track, timeline_add_clip, guide_add, guide_list, project_save )

Setup

result = project_new(output_path="documentary.kdenlive-cli.json", profile="4k30") result = bin_import_clip(clip_path="documentary.mp4", name="Doc", duration=900.0) result = timeline_add_track(track_type="video") result = timeline_add_clip(clip_id="clip0", track=0, position=0.0)

Add chapter markers

result = guide_add(position=60.0, label="Chapter 1: Introduction", guide_type="chapter") result = guide_add(position=180.0, label="Chapter 2: Main Content", guide_type="chapter") result = guide_add(position=300.0, label="Chapter 3: Conclusion", guide_type="chapter")

List guides

result = guide_list()

Save

result = project_save()

Error Handling

All tools return consistent response formats:

# Success

{ "success": True, "data": {...} }

Error

{ "success": False, "error": "Error message describing the failure" }

Configuration

pyproject.toml
[project]

name = "kdenlive-mcp-server" version = "0.1.0" description = "MCP server for Kdenlive video editing via cli-anything-kdenlive" requires-python = ">=3.10" dependencies = [ "mcp>=1.28.0", "cli-anything-kdenlive>=1.0.0", ]

[project.scripts] kdenlive-mcp = "kdenlive_mcp_server.server:main"

[tool.uv.sources] cli-anything-kdenlive = { git = "https://github.com/HKUDS/CLI-Anything.git", subdirectory = "kdenlive/agent-harness" }

uv.lock

Auto-generated by uv sync. Contains locked dependency versions.

Dependencies

  • mcp>=1.28.0: FastMCP server framework for MCP protocol
  • cli-anything-kdenlive @ git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=kdenlive/agent-harness:
  • CLI harness for Kdenlive video editing via melt
  • Includes Gen 5 MLT XML format rewrite (PR #216)
  • Provides Python API for project management

Troubleshooting

Kdenlive XML Compatibility Issues

If Kdenlive reports "Version of the project file cannot be read" or "Timeline clip without bin reference found":

  1. Cause: Using PyPI v1.0.0 (Gen 4 format) which lacks proper Kdenlive metadata
  2. Fix: The package now installs from GitHub HEAD with Gen 5 format that includes:

Only the beginning is shown; read the rest in the repo

Ask PopNx