
mcp-cinema4d

Let an LLM drive Cinema 4D. mcp-cinema4d bridges MCP-compatible clients (Claude Desktop, Claude Code, or any other stdio-capable MCP client) to a running Cinema 4D 2026 session so the model can inspect scene hierarchy, author shots, build node materials, and rig animation through a typed, undo-safe tool layer — not arbitrary Python pasted into a Script Manager.
日本語
简体中文
[!IMPORTANT]
Cinema 4D now ships an official MCP server. From Cinema 4D 2026.4, Maxon builds an MCP server into Cinema 4D itself: nothing to install, set up from Preferences → MCP, and supported by Maxon. If you run 2026.4 or later and simply want an AI assistant in Cinema 4D, start there — see Maxon's MCP Server page and documentation.
mcp-cinema4d is an independent community project. It remains an option where the built-in server does not fit:
- Cinema 4D 2026.0–2026.3, which have no built-in server.
- Several Cinema 4D processes from one session (multi-instance mode), which the built-in server's documentation does not cover.
- Open source — read, audit, or extend the tools and the bridge yourself.
Do not register both servers in the same client. Their tool sets overlap (both expose exec_python, for example), so the model is offered two competing sets of Cinema 4D tools. Maxon's FAQ likewise asks you to switch third-party servers off while you use the built-in one.
Good for:
- Scene audits — "List every object on the
hero layer; flag any with non-uniform scale or missing Texture tags."
- Shot setup — "Create a 1920×1080 RenderData, a camera at (0, 150, -400), and a Take that uses both."
- Material work — "Build a Redshift node material with a noise texture driving roughness at 0.4 gain."
- Procedural edits — "On every Subdivision Surface in the scene, reduce editor/render levels by 1."
- Xpresso rigs — "Build a 3-gear meshing rig where the master gear's pitch radius dynamically drives the others' size and counter-rotation via an Xpresso graph."
[!CAUTION]
Do not proceed unless you understand what this does. An LLM with a live connection to Cinema 4D can read your scene, write to it, and (if you opt in) execute arbitrary code on your machine. In concrete terms:
- Your scene data leaves your machine. Object names, hierarchy paths, material/parameter values, imported file paths — whatever the LLM reads via
list_entities / describe / get_container / dump_shader / get_mesh — is forwarded to your chosen LLM provider and may be logged by your MCP client. Under NDA or on unreleased IP? Confirm with your studio/legal team first that the provider's retention policy and your client's logs are acceptable.
- The LLM gets write access. It can create, mutate, and delete objects, tags, materials, takes, render data, and layers; import / merge / open / save files; and render. Ctrl/Cmd-Z covers most edits —
save_document, open_document, render, and some call_command invocations do not.
- Arbitrary Python is off by default.
exec_python runs unrestricted code with the full authority of the Cinema 4D process (file I/O, subprocess, network). Enabled only when C4D_MCP_ENABLE_EXEC_PYTHON=1 is set on both sides; turn it back off when you no longer need it. The same applies to plugin types that store Python source in their container — Python tag, Python generator, MoGraph Python effector, Python field, and the Xpresso Python operator. Creating or editing them is gated behind a separate C4D_MCP_ENABLE_PYTHON_OPS=1 opt-in, since their code parameter is RCE-equivalent to exec_python.
Before first use: back up (or commit) your scene, start on a throwaway project, and leave your MCP client's per-call approval prompts enabled. See Security before exposing the bridge beyond loopback.
Architecture
MCP client
↓ stdio
MCP server (this repo, Node.js)
↓ TCP, JSON Lines (default 127.0.0.1:18710)
cinema4d_mcp_bridge (Python plugin inside C4D)
↓
Cinema 4D
Two pieces to install: the MCP server (this npm package, runs as an MCP stdio process) and the bridge plugin (Python, lives inside Cinema 4D). C4D must be running for the bridge to respond.
Quickstart
Assuming you already have Cinema 4D 2026.0.0+ and Node.js 24+.
-
Install the bridge plugin into Cinema 4D (one-off). Download the latest
cinema4d_mcp_bridge-<version>.zip from the
Releases page
and extract the cinema4d_mcp_bridge/ folder into your Cinema 4D plugins
directory (see Installing the bridge plugin
for platform-specific paths).
-
Launch (or restart) Cinema 4D. The C4D console should print
[cinema4d_mcp_bridge] listening on 127.0.0.1:18710.
-
Smoke-test the MCP server from the CLI:
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"ping","arguments":{}}}' \
| npx -y @kumoproductions/mcp-cinema4d
# → {"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"{\"pong\": true, ...}"}]}}
Then wire it into your MCP client (see Client configuration) and try:
"List every object in the scene, then add a cube named hero 200 units above the origin."
The LLM will call list_entities → create_entity in sequence; you should see a new cube appear in the viewport.
Prefer running from a local checkout? See CONTRIBUTING.md for the source-install flow.
Client configuration
Generate a random token and set it on both the MCP server process (via the client's env map, below) and the Cinema 4D launch environment. The bridge rejects mismatched requests (constant-time compare); the Node client forwards the value automatically. Strongly recommended — localhost is not a trust boundary on a shared workstation.
Register the MCP server in your client with the token in the env map:
{
"mcpServers": {
"cinema4d": {
"command": "npx",
"args": ["-y", "@kumoproductions/mcp-cinema4d"],
"env": {
"C4D_MCP_TOKEN": "paste-your-random-hex-here"
}
}
}
}
| Client | Config file |
|---|
| Claude Desktop / Claude Code | %APPDATA%\Claude\claude_desktop_config.json (Windows) · ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) |
| Other MCP clients | see the client's docs for registering a stdio server |
The same C4D_MCP_* variables must also be set in the Cinema 4D launch environment — the bridge plugin reads them at C4D startup. macOS: open -a "Cinema 4D" --env C4D_MCP_TOKEN=... (or export in your shell profile before launch). Windows: set as User environment variables and restart C4D.
To change the bridge socket, set C4D_MCP_PORT (and optionally C4D_MCP_HOST — see Security) alongside C4D_MCP_TOKEN in the same env map, plus the C4D launch env.
Tools
72 tools across 17 groups. The LLM picks tools itself based on the prompt — you rarely invoke them directly. See docs/TOOLS.md for the full table with per-tool descriptions.