Open editor
For developers

EffectCraft MCP: a compositor your agent can drive

Every menu item, timeline drag and property edit in EffectCraft runs a command with a stable id and JSON parameters. The command-line tool serves those commands over the Model Context Protocol, so an AI agent can create a comp, add text, keyframe it, apply effects and render, the same way you would with the mouse.

MCP runs from the desktop app’s command-line tool. The browser editor on this site has its own JavaScript API instead (below), which an agent can use through a browser. For prompt-based image generation inside the editor, use the AI panel.

Two ways to run it

ModeWhat the agent drivesUse it for
Headless (mcp)An in-process session, no window; renders on the CPU unless you add --gpuBatch jobs, pipelines, templated renders
Bridge (mcp --bridge 9877)The running desktop app, started with --control 9877Watching each change live; adds screenshots and UI tools

Set up with Claude Code

The release packages ship effectcraft-cli next to the app:

InstallWhere the CLI is
Windows (MSI)C:\Program Files\EffectCraft\effectcraft-cli.exe by default, not on PATH
Linux (deb, rpm)/usr/bin/effectcraft-cli
macOSThe separate effectcraft-cli-0.8.0-macos-universal.zip download

Make a working folder, then register the server, confined to that folder:

mkdir -p "$PWD/effectcraft-work"
claude mcp add effectcraft -- effectcraft-cli mcp --autosave \
  --automation-read-root "$PWD/effectcraft-work" \
  --automation-write-root "$PWD/effectcraft-work"

Or add it to .mcp.json in your project:

{
  "mcpServers": {
    "effectcraft": {
      "command": "/path/to/effectcraft-cli",
      "args": ["mcp", "--demo",
        "--automation-read-root", "/absolute/path/to/workspace",
        "--automation-write-root", "/absolute/path/to/workspace"]
    }
  }
}

--demo starts with the demo project and --project file.ecproj with yours. To watch the agent work in the desktop app, start effectcraft --control 9877 and use ["mcp", "--bridge", "9877"]. The control port has no authentication, so only enable it while you use it.

What the agent gets

A typical session

  1. execute_command comp.new with a name, 1920 × 1080, 30 fps and a duration.
  2. execute_command layer.newText with the text, size and fill; the reply names the new layer.
  3. add_keyframe on transform/position with two keys and easyEase.
  4. add_effect to apply Gaussian Blur or Glow with its values.
  5. render_frame to check a frame, then save_project, or renderQueue.add and renderQueue.render for the video.

Drive the browser build with window.effectcraft

The web build on this site exposes the desktop control channel as promises on its app page. Open effectcraft.run/app/ in a browser your agent controls (or reach the editor’s iframe with document.querySelector('iframe').contentWindow.effectcraft), then:

await effectcraft.execute("layer.newSolid", {color: "#ff8800"});
const frame = await effectcraft.renderFrame({max_side: 640});  // {width, height, png: base64}
await effectcraft.addFile(blob, "logo.png");                   // store and import into the Project panel
await effectcraft.request("ui.menu.invoke", {id: "renderQueue.add", params: {format: "gif", resolution: 0.25}});
await effectcraft.execute("renderQueue.render", {wait: false}); // renders in a worker; the GIF downloads
await effectcraft.saveToBrowser("/my-project.ecproj");          // File › Open Recent lists it after a reload

Engine commands take the same ids and parameters as MCP and the CLI. effectcraft.commands() lists them, effectcraft.info() reports the graphics backend, storage and workers in use.

Without MCP: the CLI on its own

# Set a property and save, in one call
effectcraft-cli set Main '#1' transform/position '[100,360]' --time 0 main.ecproj --save

# Render a comp headless
effectcraft-cli render --comp Main --out main.mp4

# Export Lottie
effectcraft-cli exec file.exportLottie '{"comp":"Main","path":"main.json"}' main.ecproj

FAQ

Can an AI agent control the browser version on this site?

Yes, through a browser. The web build has a JavaScript API, window.effectcraft, on its app page (effectcraft.run/app/). An agent that drives a browser, for example with Playwright or the Chrome DevTools protocol, can call it to run commands, render frames and import files. There is no MCP server inside the browser; for MCP, use effectcraft-cli on your computer.

Which agents work with the MCP server?

Any MCP client that can launch a local stdio server: Claude Code, Claude Desktop, Cursor and others. The project documents a Claude Code setup; other clients take the same command and arguments.

Can the agent read or write files anywhere on my disk?

Not if you confine it. With --automation-read-root and --automation-write-root, every command’s file paths must sit inside those folders, and scripts and UI-driving tools are refused. Without the flags there is no such limit, so point them at a dedicated working folder.

Does headless work survive a restart?

Start the server with mcp --autosave and each tool call that changes the project writes a checkpoint first. Without it, headless work stays in memory until the agent calls save_project.

Source: EffectCraft’s agents guide, MCP conventions and web build notes. Flags can change between releases; check effectcraft-cli mcp --help.