Sandbox
@ttiimmaacc/cinema4d-mcp

MCP server for Cinema 4D scene control

Cinema4D MCP links a running Cinema 4D app to an MCP client so you can ask for scene changes, object creation, material work, camera animation, and renders. The Cinema 4D plugin listens on a socket, while the Python MCP server exposes tools like `add_primitive`, `create_material`, `inspect_redshift_materials`, and `render_preview`.

121 stars27 forksPythonUpdated 6mo ago
Who it's for

Builders who want Claude or another MCP client to drive Cinema 4D scenes.

What it delivers

You can make scene edits, inspect objects, and render previews through agent commands instead of switching between tools.

What it does

Scene inspection and control

Gets scene info, lists object hierarchies, groups objects, saves scenes, and loads `.c4d` files.

Object and camera creation

Adds primitives, abstract shapes, cameras, lights, and animated camera paths.

Material and shader tools

Creates materials, applies them to objects, and generates or applies stylized shaders.

Redshift inspection

Reads Redshift material setup with fallback paths for different Cinema 4D builds.

MoGraph and dynamics tools

Creates cloners and effectors, applies fields, and adds soft body or rigid body behavior.

Render and snapshot tools

Renders frames, makes quick preview images, and captures scene snapshots with preview output.

Test harnesses

Provides a JSONL command harness and a small GUI runner for replaying MCP commands.

How to get it

  1. 1Run
    git clone https://github.com/ttiimmaacc/cinema4d-mcp.git
    cd cinema4d-mcp
  2. 2Run
    pip install -e .
  3. 3Run
    chmod +x bin/cinema4d-mcp-wrapper

README

Cinema4D MCP — Model Context Protocol (MCP) Server

Cinema4D MCP Server connects Cinema 4D to Claude, enabling prompt-assisted 3D manipulation.

Table of Contents

Components

  1. C4D Plugin: A socket server that listens for commands from the MCP server and executes them in the Cinema 4D environment.
  2. MCP Server: A Python server that implements the MCP protocol and provides tools for Cinema 4D integration.

Prerequisites

  • Cinema 4D (R2024+ recommended)
  • Python 3.10 or higher (for the MCP Server component)

Installation

To install the project, follow these steps:

Clone the Repository

git clone https://github.com/ttiimmaacc/cinema4d-mcp.git
cd cinema4d-mcp

Install the MCP Server Package

pip install -e .

Make the Wrapper Script Executable

chmod +x bin/cinema4d-mcp-wrapper

Setup

Cinema 4D Plugin Setup

To set up the Cinema 4D plugin, follow these steps:

  1. Copy the Plugin File: Copy the c4d_plugin/mcp_server_plugin.pyp file to Cinema 4D's plugin folder. The path varies depending on your operating system:

    • macOS: /Users/USERNAME/Library/Preferences/Maxon/Maxon Cinema 4D/plugins/
    • Windows: C:\Users\USERNAME\AppData\Roaming\Maxon\Maxon Cinema 4D\plugins\
  2. Start the Socket Server:

    • Open Cinema 4D.
    • Go to Extensions > Socket Server Plugin
    • You should see a Socket Server Control dialog window. Click Start Server.

Claude Desktop Configuration

To configure Claude Desktop, you need to modify its configuration file:

  1. Open the Configuration File:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • Alternatively, use the Settings menu in Claude Desktop (Settings > Developer > Edit Config).
  2. Add MCP Server Configuration: For development/unpublished server, add the following configuration:

    "mcpServers": {
      "cinema4d": {
        "command": "python3",
        "args": ["/Users/username/cinema4d-mcp/main.py"]
      }
    }
    
  3. Restart Claude Desktop after updating the configuration file.

[TODO] For published server
{
  "mcpServers": {
    "cinema4d": {
      "command": "cinema4d-mcp-wrapper",
      "args": []
    }
  }
}

Usage

  1. Ensure the Cinema 4D Socket Server is running.
  2. Open Claude Desktop and look for the hammer icon 🔨 in the input box, indicating MCP tools are available.
  3. Use the available Tool Commands to interact with Cinema 4D through Claude.

Agent Skill

If you use agent skills, the maintained companion skill for this MCP lives in vladmdgolam/agent-skills.

The skill captures production-oriented guidance that sits on top of the raw MCP tools, including:

  • when to prefer inspect_redshift_materials over ad-hoc Python for Redshift inspection
  • when to fall back to execute_python_script for full C4D API access
  • current Redshift limits when the runtime or node space is unavailable
  • practical MoGraph extraction and debugging workflows

Testing

Command Line Testing

To test the Cinema 4D socket server directly from the command line:

python main.py

You should see output confirming the server's successful start and connection to Cinema 4D.

Testing with MCP Test Harness

The repository includes a simple test harness for running predefined command sequences:

  1. Test Command File (tests/mcp_test_harness.jsonl): Contains a sequence of commands in JSONL format that can be executed in order. Each line represents a single MCP command with its parameters.

  2. GUI Test Runner (tests/mcp_test_harness_gui.py): A simple Tkinter GUI for running the test commands:

    python tests/mcp_test_harness_gui.py
    

    The GUI allows you to:

    • Select a JSONL test file
    • Run the commands in sequence
    • View the responses from Cinema 4D

This test harness is particularly useful for:

  • Rapidly testing new commands
  • Verifying plugin functionality after updates
  • Recreating complex scenes for debugging
  • Testing compatibility across different Cinema 4D versions

Troubleshooting & Debugging

  1. Check the log files:

    tail -f ~/Library/Logs/Claude/mcp*.log
    
  2. Verify Cinema 4D shows connections in its console after you open Claude Desktop.

  3. Test the wrapper script directly:

    cinema4d-mcp-wrapper
    
  4. If there are errors finding the mcp module, install it system-wide:

    pip install mcp
    
  5. For advanced debugging, use the MCP Inspector:

    npx @modelcontextprotocol/inspector uv --directory /Users/username/cinema4d-mcp run cinema4d-mcp
    

Project File Structure

cinema4d-mcp/
├── .gitignore
├── LICENSE
├── README.md
├── main.py
├── pyproject.toml
├── setup.py
├── bin/
│   └── cinema4d-mcp-wrapper
├── c4d_plugin/
│   └── mcp_server_plugin.pyp
├── src/
│   └── cinema4d_mcp/
│       ├── __init__.py
│       ├── server.py
│       ├── config.py
│       └── utils.py
└── tests/
    ├── test_server.py
    ├── mcp_test_harness.jsonl
    └── mcp_test_harness_gui.py

Tool Commands

General Scene & Execution

  • get_scene_info: Get summary info about the active Cinema 4D scene. ✅
  • list_objects: List all scene objects (with hierarchy). ✅
  • group_objects: Group selected objects under a new null. ✅
  • execute_python: Execute custom Python code inside Cinema 4D. ✅
  • save_scene: Save the current Cinema 4D project to disk. ✅
  • load_scene: Load a .c4d file into the scene. ✅
  • set_keyframe: Set a keyframe on an objects property (position, rotation, etc.). ✅

Object Creation & Modification

  • add_primitive: Add a primitive (cube, sphere, cone, etc.) to the scene. ✅
  • modify_object: Modify transform or attributes of an existing object. ✅
  • create_abstract_shape: Create an organic, non-standard abstract form. ✅

Cameras & Animation

  • create_camera: Add a new camera to the scene. ✅
  • animate_camera: Animate a camera along a path (linear or spline-based). ✅

Lighting & Materials

  • create_light: Add a light (omni, spot, etc.) to the scene. ✅
  • create_material: Create a standard Cinema 4D material. ✅
  • apply_material: Apply a material to a target object. ✅
  • apply_shader: Generate and apply a stylized or procedural shader. ✅

Redshift Support

  • inspect_redshift_materials: Read-only Redshift inspector with fallbacks for assignments, preview colors, readable params, a renderEngine-style node-material probe, and a Redshift GraphView fallback via redshift.GetRSMaterialNodeMaster(...). ✅ Known quirk: the top-level capabilities.redshift_module_available flag can still be false on some builds even when the per-material GraphView fallback succeeds. Treat each material's graph.backend and graph.graphview.redshift_module_imported as the authoritative signal.
  • validate_redshift_materials: Check Redshift material setup and connections. ✅ ⚠️ (Redshift materials not fully implemented)

MoGraph & Fields

  • create_mograph_cloner: Add a MoGraph Cloner (linear, radial, grid, etc.). ✅
  • add_effector: Add a MoGraph Effector (Random, Plain, etc.). ✅
  • apply_mograph_fields: Add and link a MoGraph Field to objects. ✅

Dynamics & Physics

  • create_soft_body: Add a Soft Body tag to an object. ✅
  • apply_dynamics: Apply Rigid or Soft Body physics. ✅

Rendering & Preview

  • render_frame: Render a frame and save it to disk (file-based output only). ⚠️ (Works, but fails on large resolutions due to MemoryError: Bitmap Init failed. This is a resource limitation.)
  • render_preview: Render a quick preview and return base64 image (for AI). ✅
  • snapshot_scene: Capture a snapshot of the scene (objects + preview image). ✅

Compatibility Plan & Roadmap

Cinema 4D VersionPython VersionCompatibility StatusNotes
R21 / S22Python 2.7❌ Not supportedLegacy API and Python version too old
R23Python 3.7🔍 Not plannedNot currently tested
S24 / R25 / S26Python 3.9⚠️ Possible (TBD)Requires testing and fallbacks for missing APIs
2023.0 / 2023.1Python 3.9🧪 In progressTargeting fallback support for core functionality
2023.2Python 3.10🧪 In progressAligns with planned testing base
2024.0Python 3.11✅ SupportedVerified
2025.0+Python 3.11✅ Fully SupportedPrimary development target

Compatibility Goals

  • Short Term: Ensure compatibility with C4D 2023.1+ (Python 3.9 and 3.10)
  • Mid Term: Add conditional handling for missing MoGraph and Field APIs
  • Long Term: Consider optional legacy plugin module for R23–S26 support if demand arises

Recent Fixes

  • Context Awareness: Implemented robust object tracking using GUIDs. Commands creating objects return context (guid, actual_name, etc.). Subsequent commands correctly use GUIDs passed by the test harness/server to find objects reliably.
  • Object Finding: Reworked find_object_by_name to correctly handle GUIDs (numeric string format), fixed recursion errors, and improved reliability when doc.SearchObject fails.
  • GUID Detection: Command handlers (apply_material, create_mograph_cloner, add_effector, apply_mograph_fields, set_keyframe, group_objects) now correctly detect if identifiers passed in various parameters (object_name, target, target_name, list items) are GUIDs and search accordingly.
  • create_mograph_cloner: Fixed AttributeError for missing MoGraph parameters (like MG_LINEAR_PERSTEP) by using getattr fallbacks. Fixed logic bug where the found object wasn't correctly passed for cloning.
  • Rendering: Fixed TypeError in render_frame related to doc.ExecutePasses. snapshot_scene now correctly uses the working base64 render logic. Large render_frame still faces memory limits.
  • Registration: Fixed AttributeError for c4d.NilGuid.

Files in the repo

Repository payload13 top-level entries
  • bin
  • c4d_plugin
  • docs
  • src
  • tests
  • .gitignore
  • .python-version
  • LICENSE
  • main.py
  • pyproject.toml
  • README.md
  • setup.py
  • uv.lock

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More connectors

Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface

86k

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

43k

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code

14k
okf-memory/
okf-agent-memory

Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.

547
tirth8205/
code-review-graph

Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.

31k
2akouwu/
reverify

Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.

1.1k