Kdenlive MCP Server
PYPI · KDENLIVE-MCP-SERVER · SCANNED SEP 20
Kdenlive video editing MCP - 36 tools for project, timeline, filters and melt rendering
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
- 0 of 31 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 16 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability75
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 3535 tokens (~48/item across 73 items; 73 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management57
- Stability observed for 17 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 0% of tool parameters carry a description.Fail
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 7 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "bin_remove_clip" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 73 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the Kdenlive MCP Server server?
Kdenlive MCP Server runs locally as a PyPI package, launched with uvx kdenlive-mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · kdenlive-mcp-server
claude mcp add va1bhav512-kdenlive-mcp-server -- uvx kdenlive-mcp-server
{
"mcpServers": {
"va1bhav512-kdenlive-mcp-server": {
"command": "uvx",
"args": [
"kdenlive-mcp-server"
]
}
}
} {
"servers": {
"va1bhav512-kdenlive-mcp-server": {
"command": "uvx",
"args": [
"kdenlive-mcp-server"
]
}
}
} codex mcp add va1bhav512-kdenlive-mcp-server -- uvx kdenlive-mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"va1bhav512-kdenlive-mcp-server": {
"type": "local",
"command": [
"uvx",
"kdenlive-mcp-server"
],
"enabled": true
}
}
} openclaw mcp add va1bhav512-kdenlive-mcp-server --command uvx --arg kdenlive-mcp-server
mcp_servers:
va1bhav512-kdenlive-mcp-server:
command: "uvx"
args: ["kdenlive-mcp-server"] {
"McpServers": {
"va1bhav512-kdenlive-mcp-server": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"kdenlive-mcp-server"
]
}
}
} assistant mcp add va1bhav512-kdenlive-mcp-server -t stdio -c uvx -a kdenlive-mcp-server
{
"mcpServers": {
"va1bhav512-kdenlive-mcp-server": {
"command": "uvx",
"args": [
"kdenlive-mcp-server"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.
- 16 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Sept 26 +15
- Malware scan: unverified → pass ▲ security
- 14 Sept 26 −14
- Malware scan: pass → unverified ▼ security
- 12 Sept 26 +16
- Malware scan: unverified → pass ▲ security
- 11 Sept 26 −15
- Malware scan: pass → unverified ▼ security
- 10 Sept 26 +3
- Stability: unverified → 0.23 ▲ functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed pypi/kdenlive-mcp-server@0.1.3
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | pypi |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Dependencies 31 packages
| Packages resolved | 31 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
bin_create_folder ~27
Create folder in project bin.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| parent | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
bin_get_clip_details ~47
Get detailed properties of a bin clip (length, aspect ratio, media info). Args: clip_id: The clip identifier from the bin.
| Name | Type | Req | Description |
|---|---|---|---|
| clip_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
bin_import_clip ~122
Ingest a media file into the project bin for later timeline use. Args: clip_path: Path to the media file (video, audio, or image). name: Optional display name. Defaults to the filename. duration: Optional duration override in seconds (useful for images). If None, auto-probed via ffprobe. clip_type: Media type hint: video, audio, image, color, title.
| Name | Type | Req | Description |
|---|---|---|---|
| clip_path | string | yes | – |
| clip_type | string | – | – |
| duration | – | – | – |
| name | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
bin_list_clips ~27
List every asset in the project bin with ID, name, type, and duration.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
bin_move_clip ~33
Move clip to folder (or root if folder None).
| Name | Type | Req | Description |
|---|---|---|---|
| clip_id | string | yes | – |
| folder | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
bin_remove_clip ~47
Delete a clip from the media bin by its ID. Args: clip_id: The clip identifier from bin_list_clips or bin_import_clip.
| Name | Type | Req | Description |
|---|---|---|---|
| clip_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
bin_rename ~29
Rename bin clip.
| Name | Type | Req | Description |
|---|---|---|---|
| clip_id | string | yes | – |
| new_name | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
clip_add_note ~32
Add / update note for bin clip.
| Name | Type | Req | Description |
|---|---|---|---|
| clip_id | string | yes | – |
| note | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
clip_get_properties ~41
Get timeline clip properties: in/out, duration, speed, opacity, reverse.
| Name | Type | Req | Description |
|---|---|---|---|
| clip_index | integer | yes | – |
| track_id | integer | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
clip_reverse ~35
Reverse playback direction of a timeline clip (toggles).
| Name | Type | Req | Description |
|---|---|---|---|
| clip_index | integer | yes | – |
| track_id | integer | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
clip_set_color ~35
Set color label for bin clip (hex or named).
| Name | Type | Req | Description |
|---|---|---|---|
| clip_id | string | yes | – |
| color | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
clip_set_opacity ~51
Set opacity of a timeline clip (0.0 transparent .. 1.0 opaque).
| Name | Type | Req | Description |
|---|---|---|---|
| clip_index | integer | yes | – |
| opacity | number | yes | – |
| track_id | integer | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
clip_set_speed ~65
Set playback speed of a timeline clip (1.0=normal, 2.0=2x, 0.5=half, negative=reverse).
| Name | Type | Req | Description |
|---|---|---|---|
| clip_index | integer | yes | – |
| speed | number | yes | – |
| track_id | integer | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
export_list_presets ~20
List all available render presets for final video output.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
export_render ~90
Render the project to a video file via melt. Generates MLT XML from the current project then pipes it through melt. Requires 'melt' on the system (apt install melt). Args: output_path: Destination video file (e.g. output.mp4). preset: Optional render preset name (see export_list_presets).
| Name | Type | Req | Description |
|---|---|---|---|
| output_path | string | yes | – |
| preset | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
export_xml ~72
Generate Kdenlive/MLT XML for the current project. Args: output_path: Optional file path to write the XML to (e.g. ~/Downloads/myproj.kdenlive). If None, no file is written and XML is returned in data.xml for you to copy.
| Name | Type | Req | Description |
|---|---|---|---|
| output_path | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
filter_add ~129
Attach a video/audio effect to a timeline clip. Args: track_id: Track containing the clip. clip_index: 0-based clip index on that track. filter_type: Filter name (e.g. blur, brightness, frei0r.opacity, volume). Run filter_list_available for all options. params: 'key=value' parameter strings (e.g. ['radius=5.0', 'opacity=0.8']).
| Name | Type | Req | Description |
|---|---|---|---|
| clip_index | integer | yes | – |
| filter_type | string | yes | – |
| params | – | – | – |
| track_id | integer | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
filter_list ~55
List all active filters on a specific timeline clip. Args: track_id: Track containing the clip. clip_index: 0-based clip index.
| Name | Type | Req | Description |
|---|---|---|---|
| clip_index | integer | yes | – |
| track_id | integer | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
filter_list_available ~42
Discover all filters the Kdenlive runtime exposes. Args: category: Optional category filter (e.g. blur, color, audio).
| Name | Type | Req | Description |
|---|---|---|---|
| category | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
filter_remove ~75
Detach an effect from a clip. Args: track_id: Track containing the clip. clip_index: 0-based clip index. filter_index: 0-based filter index (see filter_list).
| Name | Type | Req | Description |
|---|---|---|---|
| clip_index | integer | yes | – |
| filter_index | integer | yes | – |
| track_id | integer | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
filter_set_param ~118
Update a single parameter on an active filter. Args: track_id: Track containing the clip. clip_index: 0-based clip index. filter_index: 0-based filter index. parameter: Parameter name (e.g. radius, opacity, level). value: New value (auto-converted to int/float if numeric).
| Name | Type | Req | Description |
|---|---|---|---|
| clip_index | integer | yes | – |
| filter_index | integer | yes | – |
| parameter | string | yes | – |
| track_id | integer | yes | – |
| value | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
guide_add ~86
Place a navigation guide marker along the timeline. Args: position: Time position in seconds. label: Short label for the guide. guide_type: 'default', 'chapter', or 'segment'. comment: Optional longer description.
| Name | Type | Req | Description |
|---|---|---|---|
| comment | string | – | – |
| guide_type | string | – | – |
| label | string | – | – |
| position | number | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
guide_get ~22
Get single guide by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| guide_id | integer | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
guide_list ~16
Return all guide markers on the timeline.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
guide_remove ~34
Delete a guide marker by its ID. Args: guide_id: Numeric guide identifier.
| Name | Type | Req | Description |
|---|---|---|---|
| guide_id | integer | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
guide_update ~41
Update guide properties.
| Name | Type | Req | Description |
|---|---|---|---|
| comment | – | – | – |
| guide_id | integer | yes | – |
| guide_type | – | – | – |
| label | – | – | – |
| position | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
marker_add ~60
Add timeline or clip marker (markers separate from guides).
| Name | Type | Req | Description |
|---|---|---|---|
| clip_index | – | – | – |
| comment | string | – | – |
| label | string | – | – |
| marker_type | string | – | – |
| position | number | yes | – |
| track_id | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
marker_list ~12
List all markers.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
marker_remove ~21
Remove marker by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| marker_id | integer | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
project_get_info ~24
Return project metadata: FPS, resolution, track layout, bin clip count.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
project_get_profile ~23
Get the current project's video profile (resolution, FPS, aspect ratio).
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
project_get_render_profiles ~21
Alias for project_list_profiles - get available render presets.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
project_list_profiles ~33
Enumerate all available video output profiles (hd1080p30, 4k60, sd_pal, etc.).
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
project_new ~220
Create a brand new Kdenlive project session. After this call the project path is stored so subsequent tools automatically target this project. Args: output_path: Path where the project JSON will be saved (.kdenlive-cli.json). profile: Preset profile (hd1080p30, hd1080p25, hd720p60, 4k30, 4k60, sd_pal, sd_ntsc). Overrides width/height/fps if set. name: Human-readable project name. width: Video width in pixels (ignored when profile is set). height: Video height in pixels (ignored when profile is set). fps_num: FPS numerator (ignored when profile is set). fps_den: FPS denominator (ignored when profile is set).
| Name | Type | Req | Description |
|---|---|---|---|
| fps_den | integer | – | – |
| fps_num | integer | – | – |
| height | integer | – | – |
| name | string | – | – |
| output_path | string | yes | – |
| profile | – | – | – |
| width | integer | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
project_open ~43
Load an existing .kdenlive-cli.json project into the session. Args: project_path: Path to an existing project file.
| Name | Type | Req | Description |
|---|---|---|---|
| project_path | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
project_save ~42
Persist the current project state to a file. Args: output_path: Optional path to write to. Defaults to the original project path.
| Name | Type | Req | Description |
|---|---|---|---|
| output_path | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
project_set_profile ~171
Set or update the project's video profile. Args: profile: Preset profile name (hd1080p30, hd1080p25, hd720p60, 4k30, 4k60, sd_pal, sd_ntsc). Overrides width/height/fps if set. width: Video width in pixels. height: Video height in pixels. fps_num: FPS numerator. fps_den: FPS denominator. progressive: Whether video is progressive. dar_num: Display aspect ratio numerator. dar_den: Display aspect ratio denominator.
| Name | Type | Req | Description |
|---|---|---|---|
| dar_den | – | – | – |
| dar_num | – | – | – |
| fps_den | – | – | – |
| fps_num | – | – | – |
| height | – | – | – |
| profile | – | – | – |
| progressive | – | – | – |
| width | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
render_queue_add ~40
Add job to render queue.
| Name | Type | Req | Description |
|---|---|---|---|
| in_point | – | – | – |
| out_point | – | – | – |
| output_path | string | yes | – |
| preset | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
render_queue_list ~14
List render queue jobs.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
render_queue_start ~20
Start processing render queue (renders sequentially via melt).
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
render_queue_status ~14
Get render queue status.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
render_queue_stop ~18
Stop render queue (marks running as stopped).
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
session_history ~18
List all undo/redo history entries with descriptions.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
session_redo ~16
Reapply the last undone operation.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
session_redo_step ~25
Redo N steps (granular).
| Name | Type | Req | Description |
|---|---|---|---|
| steps | integer | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
session_status ~21
Inspect session state: project loaded, modified flag, history depth.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
session_undo ~24
Revert the most recent state change (up to 50 history entries).
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
session_undo_step ~24
Undo N steps (granular).
| Name | Type | Req | Description |
|---|---|---|---|
| steps | integer | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
timeline_add_clip ~146
Place a bin clip onto a specific track at a given time position. Args: clip_id: Bin clip identifier to place (from bin_list_clips). track: Target track number. position: Start time on the timeline in seconds. in_point: Media trim-in (where to start playback inside source) in seconds. out_point: Media trim-out (where to end playback inside source) in seconds. Defaults to full bin duration. Use timeline_trim_clip to adjust after placement.
| Name | Type | Req | Description |
|---|---|---|---|
| clip_id | string | yes | – |
| in_point | number | – | – |
| out_point | – | – | – |
| position | number | yes | – |
| track | integer | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
timeline_add_track ~100
Append a video or audio track to the timeline. Args: track_type: 'video' or 'audio'. track_name: Optional name (auto-generated if omitted). mute: Start muted. hide: Start hidden. locked: Prevent edits on this track.
| Name | Type | Req | Description |
|---|---|---|---|
| hide | boolean | – | – |
| locked | boolean | – | – |
| mute | boolean | – | – |
| track_name | – | – | – |
| track_type | string | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
What is the Kdenlive MCP Server server?
Kdenlive MCP Server is listed in the public MCP registry as io.github.Va1bhav512/kdenlive-mcp-server. Kdenlive video editing MCP - 36 tools for project, timeline, filters and melt rendering. This page covers its PyPI package (kdenlive-mcp-server).
Is the Kdenlive MCP Server server safe to use?
Kdenlive MCP Server scores 75 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Kdenlive MCP Server server expose?
Kdenlive MCP Server exposes 73 tools: project_new, project_open, project_save, project_get_info, project_list_profiles, and 68 more. Their descriptions and schemas cost roughly 3,535 tokens of context every time the server is loaded.
Is the Kdenlive MCP Server server still maintained?
Kdenlive MCP Server is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Kdenlive MCP Server server under?
Kdenlive MCP Server declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.