--- name: effectcraft-mcp description: "Motion-Graphics und Compositings (.ecproj) mit dem EffectCraft-MCP-Server aufbauen, keyframen und rendern. Verwenden, wenn EffectCraft-Werkzeuge verbunden sind oder der Nutzer EffectCraft nennt; typisch für Titel, Bauchbinden, einfache Animationen, Standbilder und Filmexporte. Nicht für den Schnitt einer Timeline aus Clips (FilmCraft)." --- # Compositing mit EffectCraft (MCP) EffectCraft ist ein Compositor im Stil von After Effects (Rust). CLI 0.17.0. Zeiten sind Sekunden. Projektdatei `.ecproj`. ## Voraussetzung Die Werkzeuge `list_commands`, `execute_command`, `get_project`, `set_property`, `render_preview` … müssen verbunden sein. Fehlen sie, dem Nutzer sagen, dass der Server nicht verbunden ist (Einrichtung siehe README). Start, wie die CLI es verlangt: - Kopflos: `effectcraft-cli mcp`, dazu `--empty`, `--demo` oder `--project F.ecproj`. `--empty` zusammen mit beiden Ordner-Flags ist geprüft (Server kommt hoch). - `--autosave` oder `--bridge PORT`, nicht beides. `--bridge PORT` hängt an der App. Die globale Option heißt ebenfalls `--bridge PORT`. - `--automation-read-root` und `--automation-write-root` (je mehrfach). Lesen im Lese- oder Schreib-Ordner, Schreiben nur im Schreib-Ordner. Die Hilfe sagt an dieser Stelle, Skripte werden abgelehnt. `run_script` mit gesetzten Ordnern ist nicht extra probiert. ## Werkzeuge | Tool | Zweck | |---|---| | `list_commands {filter}` / `describe_command` | Befehls-IDs. Nie raten. `command_list` ist derselbe Katalog | | `execute_command {command, params}` | ein Befehl. `command_run` nimmt stattdessen `{id, params}` | | `batch {steps}` | mehrere Befehle, ein Undo. `"$1.layer"` meint das Feld `layer` aus Schritt 1 | | `command_batch` | mehrere Befehle, je ein eigenes Undo | | `get_project` / `get_comp` / `get_layer` / `get_property` | nachlesen. Pfade wie `transform/position`, `effects/#1/blurriness` | | `set_property` / `add_keyframe` / `add_effect` | Wert, Keys, Effekt (`Gaussian Blur` oder eine ID aus `list_effects`) | | `render_frame` / `render_preview` | PNG der Komposition | | `open_project` / `save_project` | `.ecproj`, `demo` oder `new` | | `undo` / `redo` / `history` | Verlauf, `history.goto` springt auch auf einen Zweig | | `run_script {code}` | JavaScript im After-Effects-Objektmodell | | `list_effects` / `list_fonts` / `get_state` | Kataloge und wo der Abspielkopf steht | | `doc_inspect` | Projekt plus aktive Komposition | | `script_ui` | Fenster, die ein Skript geöffnet hat | ## Arbeitsweise 1. **Leer starten oder die genannte `.ecproj` öffnen.** Nicht raten, welches Projekt offen ist: `get_project`. 2. **Komposition, dann Ebenen, dann Keys.** Beispiel aus der Werkzeugbeschreibung: `comp.new`, `layer.newText` oder `layer.newSolid`, `set_property` / `add_keyframe`, `effect.apply`. 3. **`render_preview` nach jedem größeren Schritt.** 4. **Speichern** als `.ecproj` unter neuem Namen. Eine Filmdatei ist ein eigener Schritt. CLI-Export (`render`), Formate: h264, hevc, av1, prores, webm, png, jpeg, tiff, exr, gif, wav, aiff. Ein Standbild: `render-frame`. Ob jedes Format auf diesem Rechner einen Encoder hat, ist nicht geprüft. ## Fallen - **Zwei Lauf-Werkzeuge.** `execute_command` will `command`. `command_run` will `id`. Dieselbe ID, anderes Feld. - **`batch` rollt zurück, `command_batch` nicht als eine Gruppe.** Für einen Titel, der ganz oder gar nicht entstehen soll, `batch`. - **Zeiten sind Sekunden**, nicht Frames, solange der Befehl nicht `frame` sagt. - **Schrift:** `list_fonts`, dann `layer.setText`. Eine fehlende Familie nicht raten. - **Ordner und Skripte.** Die Hilfe lehnt Skripte ab, sobald die Ordner-Flags gesetzt sind. Dann `execute_command` statt `run_script`. ## Rezept **Titel, 1920×1080, 5 s, 30 fps:** `comp.new`, `layer.newText`, Deckkraft bei 0 s und 1 s per `add_keyframe` auf `transform/opacity`, `render_preview` bei 0 und bei 1, `save_project` unter neuem Namen. Eine MP4 nur, wenn der Nutzer eine Filmdatei will, und nur in den Schreib-Ordner. ## Abschlussprüfung - `render_preview` zur genannten Zeit angesehen. - `get_project`: Name, Größe, Dauer passen. - Pfad der `.ecproj` genannt. Eine exportierte Filmdatei nur, wenn sie wirklich geschrieben wurde. ## Datenschutz Ampel: - Grün: allgemeine und technische Inhalte ohne Kundenbezug. - Gelb: Projekt- und Geschäftsinfos, nur nach Abwägung oder anonymisiert. - Rot: personenbezogene Daten und NDA-Inhalte gehören nicht in die Cloud-KI. In Titeln Beispieltext statt echter Kundennamen. ## Grenzen - Kein Schnittplatz. Clips aneinanderhängen ist FilmCraft. - Encoder für h264, hevc, av1 und prores sind in der Hilfe genannt, auf dieser Maschine nicht durch einen Export geprüft.