Enables 3D scene manipulation in Cinema 4D, including creating and modifying objects, managing materials, setting up lighting, working with cameras, utilizing MoGraph tools, applying physics, and rendering scenes.
Cinema4D MCP — Model Context Protocol (MCP) Server
Cinema4D MCP Server connects Cinema 4D to Claude, enabling prompt-assisted 3D manipulation.
Table of Contents
- Components
- Prerequisites
- Installation
- Setup
- Usage
- Development
- Troubleshooting & Debugging
- File Structure
- Tool Commands
Components
- 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.
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
Install the MCP Server Package
Make the Wrapper Script Executable
Setup
Cinema 4D Plugin Setup
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.
Claude Desktop Configuration
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:
- Restart Claude Desktop after updating the configuration file.
Usage
- 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.
Testing
Command Line Testing
To test the Cinema 4D socket server directly from the command line:
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:
- 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: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
- Check the log files:
- Verify Cinema 4D shows connections in its console after you open Claude Desktop.
- Test the wrapper script directly:
- If there are errors finding the mcp module, install it system-wide:
- For advanced debugging, use the MCP Inspector:
Project File Structure
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
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 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 | ⚠️ Possible (TBD) | 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 |
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.
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Connects Cinema 4D to Claude, enabling AI-assisted 3D modeling and scene manipulation through natural language commands.
Related MCP Servers
- -securityAlicense-qualityConnects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender for AI-assisted 3D modeling, scene manipulation, and rendering.Last updated -10,093PythonMIT License
- -securityFlicense-qualityConnects Sketchup to Claude AI through the Model Context Protocol, allowing Claude to directly interact with and control Sketchup for prompt-assisted 3D modeling and scene manipulation.Last updated -20
- -securityFlicense-qualityConnects Houdini to Claude AI through Model Context Protocol, enabling AI-assisted 3D modeling, scene creation, simulation setup, and rendering through natural language commands.Last updated -37
- AsecurityAlicenseAqualityIntegration that connects Sketchup to Claude AI through the Model Context Protocol, allowing Claude to directly interact with and control Sketchup for prompt-assisted 3D modeling, scene creation, and manipulation.Last updated -104MIT License