Cinema 4D MCP Server for Claude Desktop with MoGraph support
Cinema 4D MCP has basic tool structure but significant quality gaps. All 6 tools have descriptions and input schemas are partially visible, but parameter descriptions are minimal or missing entirely. Tool names follow verb_noun convention (get_, add_, list_, modify_, create_, apply_) which is good. However, schemas lack proper type constraints (enums, ranges), output schemas are undocumented, and error handling is generic. The server returns unstructured text responses (e.g., get_scene_info returns formatted markdown string) rather than structured JSON, forcing LLMs to parse text. No tool annotations (readOnlyHint/destructiveHint) despite clear read/write distinctions. Parameter descriptions are often single words ('Type of primitive', 'Name of the object') without format guidance, constraints, or examples of valid values.
Add a primitive object to the Cinema 4D scene.
Apply a material to an object.
Create a new material in Cinema 4D.
Get information about the current Cinema 4D scene.
List all objects in the current Cinema 4D scene.
Modify properties of an existing object.
Output schemas undocumented. Tools return unstructured text (markdown strings) instead of structured JSON. LLMs cannot reliably extract data for downstream tool calls.
Parameter descriptions are minimal (1-3 words). Missing format constraints, valid value ranges, and usage guidance. E.g., 'primitive_type' lacks enum of valid types (cube, sphere, cone, cylinder, plane, etc.); 'position' and 'size' lack coordinate system explanation or range bounds.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Risk metadata is provided in the evaluation but not exposed in tool definitions, preventing LLMs from understanding side effects.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | <=2025-11-25 | v2 |
Error handling is generic. send_to_c4d() returns dict with 'error' key, but error messages lack recovery guidance. E.g., 'Not connected to Cinema 4D' does not suggest checking C4D is running or network connectivity.
modify_object 'properties' parameter is a free-form object with no schema. LLMs cannot know what properties are valid (position, rotation, scale, etc.) or their expected types/ranges.