Skip to main content
Glama
Aitidi
by Aitidi

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
C4D_MCP_HTTP_HOSTNoHost/interface for the HTTP server when using streamable-http transport (e.g., '127.0.0.1').127.0.0.1
C4D_MCP_HTTP_PATHNoURL path/endpoint for the HTTP MCP server (e.g., '/mcp')./mcp
C4D_MCP_HTTP_PORTNoPort for the HTTP server when using streamable-http transport (e.g., '8790').8790
C4D_MCP_TRANSPORTNoTransport mode for the MCP server. Common values are 'stdio' (default) or 'streamable-http'.stdio

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_scene_infoA

Get information about the current Cinema 4D scene.

add_primitiveB
Add a primitive object to the Cinema 4D scene.

Args:
    primitive_type: Type of primitive (cube, sphere, cone, cylinder, plane, etc.)
    name: Optional name for the new object
    position: Optional [x, y, z] position
    size: Optional [x, y, z] size or dimensions
modify_objectC
Modify properties of an existing object.

Args:
    object_name: Name of the object to modify
    properties: Dictionary of properties to modify (position, rotation, scale, etc.)
list_objectsA

List all objects in the current Cinema 4D scene.

If this tool returns a validation error, use execute_python_script as a fallback
to traverse the object hierarchy manually via the c4d API.
create_materialC
Create a new material in Cinema 4D.

Args:
    name: Name for the new material
    color: Optional [R, G, B] color (values 0-1)
    properties: Optional additional material properties
apply_materialB
Apply a material to an object.

Args:
    material_name: Name of the material to apply
    object_name: Name of the object to apply the material to
inspect_redshift_materialsA
Inspect Redshift materials with best-effort fallbacks.

This tool is read-only and is designed to be useful even when the Redshift
Python runtime is unavailable. It can still report names, assignments,
preview-derived colors, readable description/container fields, and will
attempt graph inspection only when Cinema 4D exposes that data.

Args:
    material_name: Optional material name filter
    include_assignments: Include texture-tag assignments in the scene
    include_preview: Include sampled preview bitmap color data
    include_description: Include readable description entries
    include_container: Include safe BaseContainer values
    include_graph: Attempt node-graph inspection when available
render_frameB
Render the current frame.

Args:
    output_path: Optional path to save the rendered image
    width: Optional render width in pixels
    height: Optional render height in pixels
set_keyframeC
Set a keyframe for an object property.

Args:
    object_name: Name of the object
    property_name: Name of the property to keyframe (e.g., 'position.x')
    value: Value to set at the keyframe
    frame: Frame number to set the keyframe at
save_sceneC
Save the current Cinema 4D scene.

Args:
    file_path: Optional path to save the scene to
load_sceneB
Load a Cinema 4D scene file.

Args:
    file_path: Path to the scene file to load
create_mograph_clonerC
Create a MoGraph Cloner object of specified type.

Args:
    cloner_type: Type of cloner (grid, radial, linear)
    name: Optional name for the cloner
add_effectorB
Add a MoGraph Effector to the scene.

Args:
    effector_type: Type of effector (random, shader, field)
    name: Optional name for the effector
    target: Optional target object (e.g., cloner) to apply the effector to
apply_mograph_fieldsB
Create and apply a MoGraph Field.

Args:
    field_type: Type of field (spherical, box, cylindrical, linear, radial, noise)
    target: Optional target object to apply the field to
    field_name: Optional name for the field
    parameters: Optional parameters for the field (strength, falloff)
create_soft_bodyC
Add soft body dynamics to the specified object.

Args:
    object_name: Name of the object to convert to a soft body
apply_dynamicsC
Add dynamics (rigid or soft) to the specified object.

Args:
    object_name: Name of the object to apply dynamics to
    dynamics_type: Type of dynamics to apply (rigid, soft)
create_abstract_shapeB
Create an organic, abstract shape.

Args:
    shape_type: Type of shape (blob, metaball)
    name: Optional name for the shape
create_cameraB
Create a new camera in the scene.

Args:
    name: Optional name for the new camera.
    position: Optional [x, y, z] position.
    properties: Optional dictionary of camera properties (e.g., {"focal_length": 50}).
create_lightB
Add a light to the scene.

Args:
    light_type: Type of light (area, dome, spot)
    name: Optional name for the light
apply_shaderC
Create and apply a specialized shader material.

Args:
    shader_type: Type of shader (noise, gradient, fresnel, etc)
    material_name: Optional name of material to apply shader to
    object_name: Optional name of object to apply the material to
animate_cameraB
Create a camera animation.

Args:
    animation_type: Type of animation (wiggle, orbit, spline, linear)
    camera_name: Optional name of camera to animate
    positions: Optional list of [x,y,z] camera positions for keyframes
    frames: Optional list of frame numbers for keyframes
execute_python_scriptA
Execute a Python script in Cinema 4D's Python environment.

This is the most reliable tool for non-trivial operations — it gives full access
to the c4d API and avoids wrapper/schema mismatches that can affect other tools.

Args:
    script: Python code to execute in Cinema 4D. Has access to `c4d` and
        `c4d.modules.mograph` modules.

Important usage notes:
    - For animated/MoGraph data, always call doc.ExecutePasses() after SetTime():
        doc.SetTime(c4d.BaseTime(frame, fps))
        doc.ExecutePasses(None, True, True, True, c4d.BUILDFLAGS_NONE)
    - For MoGraph/effector data, iterate frames sequentially (0..N) rather than
      jumping directly to a later frame — sequential stepping produces more
      faithful results.
    - Security restrictions block certain keywords: import os, subprocess, exec(, eval(.
      Keep scripts within the c4d API surface.
    - For heavy operations (dense frame loops, complex MoGraph scenes), split work
      into multiple smaller scripts rather than one large monolith.
    - Use print() to return results — output is captured and returned.
group_objectsC
Group multiple objects under a null object.

Args:
    object_names: List of object names to group
    group_name: Optional name for the group
render_previewA
Render the current view and return a base64-encoded preview image.

Args:
    width: Optional preview width in pixels
    height: Optional preview height in pixels
    frame: Optional frame number to render
snapshot_sceneB
Create a snapshot of the current scene state.

Args:
    file_path: Optional path to save the snapshot
    include_assets: Whether to include external assets in the snapshot
inspect_scene_nodes_graphC

Inspect the document-level Cinema 4D Scene Nodes graph.

search_scene_node_assetsB

Search installed Scene Nodes NodeTemplate assets.

describe_scene_node_assetC

Describe a Scene Nodes asset in an isolated temporary document.

edit_scene_nodes_graphC

Apply ordered Scene Nodes graph operations with per-operation rollback.

layout_scene_nodes_graphD

Run Cinema 4D's native Scene Nodes layout command.

inspect_capsule_instancesC

Discover object, tag, and Capsule instance graphs in the active document.

inspect_capsule_graphC

Inspect the exact Capsule instance graph identified by graph_target.

focus_capsule_graphC

Select a Capsule owner and request that Cinema 4D show its exact graph.

search_capsule_assetsC

Search installed Capsule and NodeTemplate assets without modifying repositories.

describe_capsule_assetC

Describe a Capsule asset using an isolated temporary document.

edit_capsule_graphB

Edit one exact Capsule instance graph with ordered partial-success operations.

layout_capsule_graphC

Request native layout for one exact Capsule instance graph.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
get_primitives_infoGet information about available Cinema 4D primitives.
get_material_typesGet information about available Cinema 4D material types and their properties.
get_connection_statusGet the current connection status to Cinema 4D.

TDQS

C2.4/5.0

Scored across 37 tools

Disambiguation2/5

Several tools occupy fuzzy boundaries: create_soft_body and apply_dynamics can both create soft bodies, render_frame and render_preview are easy to confuse, and add_effector / apply_mograph_fields / apply_shader overlap in material/effector workflows. The scene-nodes and capsule tool groups are structured but numerous, and get_scene_info, list_objects, and inspect_scene_nodes_graph all invite mis-selection for scene inspection.

Naming Consistency3/5

All names are snake_case and mostly verb_noun, but the verb set is inconsistent: add_primitive, create_material, create_camera, add_effector, apply_dynamics, and create_soft_body capture similar actions with different verbs. The scene-nodes and capsule families are highly parallel, but their dense prefix/style can blur into one another.

Tool Count2/5

37 tools is beyond a reasonably scoped MCP surface, especially when many are variants of inspect/edit/layout for Scene Nodes and Capsules. The core manipulation utilities could be much smaller; the additional sub-families push the set into heavier-than-useful territory.

Completeness3/5

The toolset is broad and covers scene creation, rendering, objects, materials, lights, animation, and MoGraph, but it has obvious lifecycle gaps like no direct object/material deletion and no dedicated keyframe-timeline management beyond set_keyfree. The execute_python_script fallback mitigates missing operations, but the structured API still has notable dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues