Cinema4D MCP Server connects Cinema 4D to Claude, enabling prompt-assisted 3D manipulation.
- Components
- Prerequisites
- Installation
- Setup
- Usage
- Development
- Troubleshooting & Debugging
- File Structure
- Tool Commands
- C4D Plugin: A socket server that listens for commands from the MCP server and executes them in the Cinema 4D environment.
- MCP Server: A Python server that implements the MCP protocol and provides tools for Cinema 4D integration.
- Cinema 4D
- Python 3.10 or higher
To install the project, follow these steps:
git clone https://github.com/ttiimmaacc/cinema4d-mcp.git
cd cinema4d-mcp
pip install -e .
chmod +x bin/cinema4d-mcp-wrapper
To set up the Cinema 4D plugin, follow these steps:
-
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\
- macOS:
-
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.
To configure Claude Desktop, you need to modify its configuration file:
-
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).
- macOS:
-
Add MCP Server Configuration: For development/unpublished server, add the following configuration:
"mcpServers": { "cinema4d": { "command": "python3", "args": ["/Users/username/cinema4d-mcp/main.py"] } }
-
Restart Claude Desktop after updating the configuration file.
[TODO] For published server
{
"mcpServers": {
"cinema4d": {
"command": "cinema4d-mcp-wrapper",
"args": []
}
}
}
- Ensure the Cinema 4D Socket Server is running.
- Open Claude Desktop and look for the hammer icon π¨ in the input box, indicating MCP tools are available.
- Use the available Tool Commands to interact with Cinema 4D through Claude.
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.
The repository includes a simple test harness for running predefined command sequences:
-
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. -
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
-
Check the log files:
tail -f ~/Library/Logs/Claude/mcp*.log
-
Verify Cinema 4D shows connections in its console after you open Claude Desktop.
-
Test the wrapper script directly:
cinema4d-mcp-wrapper
-
If there are errors finding the mcp module, install it system-wide:
pip install mcp
-
For advanced debugging, use the MCP Inspector:
npx @modelcontextprotocol/inspector uv --directory /Users/username/cinema4d-mcp run cinema4d-mcp
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
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.).
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.
create_camera
: Add a new camera to the scene.animate_camera
: Animate a camera along a path (linear or spline-based).
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.
validate_redshift_materials
: Check Redshift material setup and connections.
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.
create_soft_body
: Add a Soft Body tag to an object.apply_dynamics
: Apply Rigid or Soft Body physics.
render_frame
: Render a frame and save it to disk (file-based output only).render_preview
: Render a quick preview and return base64 image (for AI).snapshot_scene
: Capture a snapshot of the scene (objects + preview image).
Cinema 4D Version | Python Version | Compatibility Status | Notes |
---|---|---|---|
R21 / S22 | Python 2.7 | β Not supported | Legacy API and Python version too old |
R23 | Python 3.7 | π Not planned | Not currently tested |
S24 / R25 / S26 | Python 3.9 | Requires testing and fallbacks for missing APIs | |
2023.0 / 2023.1 | Python 3.9 | π§ͺ In progress | Targeting fallback support for core functionality |
2023.2 | Python 3.10 | π§ͺ In progress | Aligns with planned testing base |
2024.0 | Python 3.11 | β Supported | Verified |
2025.0+ | Python 3.11 | β Fully Supported | Primary development target |
- 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
- Fixed "Applied to: None" issue with MoGraph fields
- Fixed field hierarchy by inserting directly under target object
- Implemented proper Field Driver tag connection for Cinema 4D 2025.1
- Added multiple field linkage approaches for maximum compatibility
- Enabled 'Use Fields' checkbox using multiple parameter IDs
- Fixed field visibility and parent-child relationship issues
- Fixed Grid Cloner creation issue by providing correct parameter IDs
- Fixed MoGraph Fields application by defining proper field type constants
- Improved hierarchical display in list_objects command
- Enhanced cloner visibility and creation reliability