Kdenlive MCP
by AMMIROSOH
README.md
# Kdenlive MCP
Local-first video editing through the Model Context Protocol. Kdenlive MCP keeps
a versioned JSON project as the source of truth, applies revision-checked timeline
edits, compiles deterministic MLT, queues renders, generates previews, and verifies
outputs using the Kdenlive/MLT and FFmpeg installation already on your computer.
> Public preview: Milestones 0-4, 6, and 7 are implemented. Local AI analysis
> (Milestone 5) remains planned and unavailable.
## What works
- Canonical projects with atomic revisions, checkpoints, undo, and redo.
- Media ingest with allowed-root containment and managed/external modes.
- Clip placement, linked A/V, ripple edits, properties, keyframes, effects,
transitions, text, captions, and markers.
- Durable preview/export jobs, progress, cancellation, restart recovery, and
bounded artifacts.
- Output duration, stream, A/V sync, loudness, clipping, black, and freeze checks.
- MCP over stdio or authenticated loopback Streamable HTTP.
- Automatic Kdenlive/MLT/FFmpeg discovery and an actionable doctor command.
- Editable Kdenlive 26.04.x and OTIO 0.18.1 export, plus reviewed import plans.
- Versioned editing recipes and advisory, durable timeline diagnostics.
## Quick start
Requirements: Node.js 22+, pnpm 9, and Kdenlive or separate MLT/FFmpeg tools.
Powershell:
```powershell
git clone https://github.com/AMMIROSOH/Kdenlive-mcp.git
cd Kdenlive-mcp
Set-ExecutionPolicy -Scope Process Bypass
.\scripts\install.ps1 -AddToPath
kdenlive-mcp --doctor
```
Linux:
```sh
git clone https://github.com/AMMIROSOH/Kdenlive-mcp.git
cd Kdenlive-mcp
./scripts/install.sh
~/.local/share/kdenlive-mcp/kdenlive-mcp-*/kdenlive-mcp --doctor
```
Then add the stdio command to your MCP client with an absolute allowed root:
```text
kdenlive-mcp --root /path/to/video-workspace --client-id my-mcp-client
```
See the complete [installation and client configuration guide](INSTALL.md).
## Safety model
- Files are limited to configured roots; symlink/traversal escapes are rejected.
- Mutations require the exact current revision and remain undoable per client.
- Render processes use argument arrays, no shell, bounded output/time, and a
restricted environment.
- HTTP binds only to loopback and requires a generated bearer token.
- Kdenlive, MLT, and FFmpeg binaries are not redistributed by this repository.
Read the [threat model](docs/threat-model.md) and [security policy](SECURITY.md)
before exposing the server to additional software.
## Documentation
- [Installation](INSTALL.md)
- [Tutorial](docs/tutorial.md)
- [MCP reference](docs/mcp-reference.md)
- [Architecture and data ownership](docs/architecture.md)
- [Runtime support](docs/runtime-support.md)
- [Troubleshooting](docs/troubleshooting.md)
- [Roadmap](docs/roadmap.md)
- [Contributing](CONTRIBUTING.md)
## Development
```shell
pnpm install --frozen-lockfile
pnpm check
pnpm doctor
pnpm render:acceptance
pnpm mcp:acceptance
pnpm docs:check
pnpm sbom
pnpm release:acceptance -- --platform windows
```
## License
Apache-2.0 for this repository. External Kdenlive/MLT/FFmpeg installations retain
their own licenses; see [third-party notices](THIRD_PARTY_NOTICES.md).
This server cannot be deployed
Maintenance
ActivityActive
ResponsivenessNo issues