Skip to main content
ClaudeWave

A real video editor for AI agents, served over MCP

MCP ServersRegistry oficial0 estrellas0 forksPythonMITActualizado today
Install in Claude Code / Claude Desktop
Method: pip / Python · -e
Claude Code CLI
claude mcp add mcpcut -- python -m -e
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "mcpcut": {
      "command": "python",
      "args": ["-m", "app.mcp.server"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Install first: pip install -e
Casos de uso

Resumen de MCP Servers

# mcpCut

**A real video editor for AI agents, served over MCP.**

mcpCut gives any MCP-capable agent (Claude Code, Claude Desktop, or anything
else that speaks the protocol) an actual editing model — not a wrapper around
one ffmpeg command. Projects are immutable snapshots with a journaled history
of named operations; rendering goes through FFmpeg or the MLT framework; a
deterministic CLI twin drives the same logic without a server.

## Two ways to use it

**☁️ Hosted (fastest — no install).** [mcpcut.com](https://mcpcut.com) runs
this editor as a service, with a browser editor on top: sign up, create an
API token, and point your agent at the cloud MCP endpoint:

```bash
claude mcp add --transport http mcpcut https://mcpcut.com/mcp \
  --header "Authorization: Bearer <your token>"
```

You and your agent then work on the **same** projects — the agent edits over
MCP, you review and tweak in the browser editor.

**🖥 Self-hosted (this repository).** The open, single-user core: run it on
your own machine, point your agent at it, keep everything local. No accounts,
no browser editor — just the MCP server, the editing engine and the CLI. The
rest of this README is about this option.

## What the agent gets

44 tools over one consistent model:

- **Projects & history** — create/list projects, journaled operations
  (`editor_get_history` shows every edit ever made), named versions with
  restore, annotations.
- **Timeline** — multiple video/audio tracks, clips with trim/split/move/
  resize, transforms with keyframes, transitions, canvas fit, color
  adjustments.
- **Text & graphics** — text overlays rasterized server-side, image/video
  overlays, covers.
- **Audio** — music beds, per-clip audio, volume envelopes.
- **Media in** — local paths or URLs (URL import goes through an SSRF egress
  guard; media is sanity-checked with ffprobe before it touches a timeline).
- **Understanding** — media analysis (scenes, audio peaks, keyframes),
  auto-captions via faster-whisper (`.[asr]` extra), local voiceover via
  piper (`.[tts]` extra, GPL — see THIRD_PARTY_NOTICES.md).
- **Out** — validation, preview renders, full exports with presets. Each
  export writes an `.mlt` sidecar you can open in Shotcut or Kdenlive.

Every mutation validates its arguments against the tool's real signature
(strings can't leak into numeric filter fields), returns a fresh snapshot
with a bumped version, and lands in the journal. Nothing edits in place.

## Prerequisites

- Python **3.12+**
- **FFmpeg** (`ffmpeg` + `ffprobe` on PATH)
- **MLT** (`melt` on PATH) — the default render engine. Alternatively set
  `RENDER_ENGINE=ffmpeg` and skip melt.
- A font for text rendering, e.g. Debian/Ubuntu:
  `apt install fonts-dejavu-core fonts-noto-color-emoji`
  (elsewhere, point `FONT_PATH` at any `.ttf`).

```bash
# Debian/Ubuntu, everything at once:
apt install ffmpeg melt fonts-dejavu-core fonts-noto-color-emoji
```

## Quickstart

```bash
git clone https://github.com/musyta-labs/mcpCut && cd mcpCut
python3 -m venv .venv && .venv/bin/pip install -e .

cp .env.example .env       # MCP_AUTH_ENABLED=false is already set there
.venv/bin/python -m app.mcp.server
```

The server starts on `http://127.0.0.1:8100` — the MCP endpoint is
`http://127.0.0.1:8100/mcp`. The database (SQLite) and media workspace are
created on first run.

Or with Docker (ffmpeg, melt and fonts included in the image):

```bash
docker build -t mcpcut .
docker run -p 127.0.0.1:8100:8100 -e MCP_TRANSPORT=streamable-http \
  -v mcpcut-data:/data mcpcut
```

> **Single-user by design.** This build has no accounts: whoever can reach
> the port is the operator, with full tool access including local file paths.
> Keep it bound to localhost, or put an authenticating reverse proxy in front.
> `MCP_AUTH_ENABLED=false` must be set explicitly — the server refuses to
> start otherwise, so an open port is always a decision you made.

### Connect an agent

Claude Code:

```bash
claude mcp add --transport http mcpcut http://127.0.0.1:8100/mcp
```

Any other MCP client, in its JSON config:

```json
{
  "mcpServers": {
    "mcpcut": { "type": "http", "url": "http://127.0.0.1:8100/mcp" }
  }
}
```

Then ask the agent for something real: *“make a 30-second cut of
~/videos/talk.mp4 with auto-captions and export it.”* The `skills/` directory
contains ready-made instructions you can hand to any agent — see
[skills/README.md](skills/README.md).

### Or drive it without a server

The CLI twin runs the same operations deterministically:

```bash
echo '{"op": "create_project", "args": {"metadata": {}}}' > /tmp/ops.json
.venv/bin/python -m app.mcp.cli /tmp/ops.json
```

## Configuration

Everything lives in environment variables (or `.env`); see
[.env.example](.env.example) for the full annotated list. The ones that
matter most:

| Variable | Default | What it does |
|---|---|---|
| `MCP_AUTH_ENABLED` | `true` | must be set to `false` in this build (see above) |
| `DATABASE_URL` | `sqlite:///./data/editor.db` | SQLite by default; Postgres via `.[postgres]` |
| `MEDIA_DIR` | `./media` | originals, exports, previews, caches |
| `MCP_HOST` / `MCP_PORT` | `0.0.0.0` / `8100` | bind address of the server |
| `RENDER_ENGINE` | `mlt` | `mlt` or `ffmpeg` |
| `FONT_PATH` | DejaVu Bold (Debian path) | font for text overlays and captions |
| `EXPORT_TTL_HOURS` / `CLIP_CACHE_TTL_HOURS` | `24` / `48` | retention sweep; `RETENTION_ENABLED=false` disables it |

**Retention is real:** a background daemon deletes exports after 24 h and
cached clips after 48 h by default. On a personal machine either download
your exports promptly or set `RETENTION_ENABLED=false`.

## How it's built

| Layer | Where | What |
|---|---|---|
| Timeline model | `app/editor/model.py` | frozen dataclasses; every edit returns a **new** project, `version + 1` |
| Mutations | `app/editor/mutations.py` | pure functions, one named journaled operation per gesture |
| Validation | `app/editor/validation.py` | structural checks + opt-in shorts profile |
| Render | `app/editor/render.py` | one contract, two engines: `mlt_graph.py` (default) and `ffmpeg_graph.py` |
| Analysis | `app/analysis/` | scenes, peaks, keyframes — feeds the agent's decisions |
| Storage | `app/db/` | SQLite/Postgres via SQLAlchemy + Alembic; append-only operation journal |
| MCP server | `app/mcp/server.py` | streamable-http or stdio; tool schemas derived from real signatures |
| CLI twin | `app/mcp/cli.py` | same operations, no server, deterministic |

Safety properties the codebase holds everywhere: no `shell=True` (argv lists
only), timeouts on every subprocess, atomic export writes, SSRF egress guard
on URL imports, argument validation derived from tool signatures.

## License

[MIT](LICENSE). Third-party obligations (FFmpeg/MLT installed by you, the
GPL `piper-tts` extra, fonts) are documented in
[THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).

Lo que la gente pregunta sobre mcpCut

¿Qué es musyta-labs/mcpCut?

+

musyta-labs/mcpCut es mcp servers para el ecosistema de Claude AI. A real video editor for AI agents, served over MCP Tiene 0 estrellas en GitHub y se actualizó por última vez today.

¿Cómo se instala mcpCut?

+

Puedes instalar mcpCut clonando el repositorio (https://github.com/musyta-labs/mcpCut) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar musyta-labs/mcpCut?

+

musyta-labs/mcpCut aún no ha sido auditado por nuestro agente de seguridad. Revisa el repositorio original en GitHub antes de usarlo en producción.

¿Quién mantiene musyta-labs/mcpCut?

+

musyta-labs/mcpCut es mantenido por musyta-labs. La última actividad registrada en GitHub es de today, con 0 issues abiertos.

¿Hay alternativas a mcpCut?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega mcpCut en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: musyta-labs/mcpCut
[![Featured on ClaudeWave](https://claudewave.com/api/badge/musyta-labs-mcpcut)](https://claudewave.com/repo/musyta-labs-mcpcut)
<a href="https://claudewave.com/repo/musyta-labs-mcpcut"><img src="https://claudewave.com/api/badge/musyta-labs-mcpcut" alt="Featured on ClaudeWave: musyta-labs/mcpCut" width="320" height="64" /></a>

Más MCP Servers

Alternativas a mcpCut