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
| Mode | What the agent drives | Use it for |
|---|---|---|
Headless (mcp) | An in-process session, no window; renders on the CPU unless you add --gpu | Batch jobs, pipelines, templated renders |
Bridge (mcp --bridge 9877) | The running desktop app, started with --control 9877 | Watching each change live; adds screenshots and UI tools |
Set up with Claude Code
The release packages ship effectcraft-cli next to the app:
| Install | Where the CLI is |
|---|---|
| Windows (MSI) | C:\Program Files\EffectCraft\effectcraft-cli.exe by default, not on PATH |
| Linux (deb, rpm) | /usr/bin/effectcraft-cli |
| macOS | The 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
- Commands:
list_commandsanddescribe_commandto discover ids and their parameters,execute_commandto run one,batchfor several in one undo step. - Project and properties:
get_state,get_project,get_comp,get_layer,get_property,set_property(values and expressions) andadd_keyframewith easing. - Effects and fonts:
list_effects,add_effectwith its settings in one call,list_fonts. - Seeing the result:
render_framereturns a PNG the model can look at, with alpha if you ask; in bridge modescreenshotand theui_*tools see the window. - Scripts and history:
run_scriptruns JavaScript with an After Effects-style object model;undo,redoandhistorywalk the undo tree.
A typical session
execute_command comp.newwith a name, 1920 × 1080, 30 fps and a duration.execute_command layer.newTextwith the text, size and fill; the reply names the new layer.add_keyframeontransform/positionwith two keys andeasyEase.add_effectto apply Gaussian Blur or Glow with its values.render_frameto check a frame, thensave_project, orrenderQueue.addandrenderQueue.renderfor 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 reloadEngine 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.ecprojFAQ
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.