Skip to main content
Glama

Cinema4D MCP โ€” Model Context Protocol (MCP) Server

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

Table of Contents

Related MCP server: BlenderMCP

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.

{
  "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 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.

Available Tools

25 tools
add_effectorC
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
ParametersJSON Schema
NameRequiredDescriptionDefault
effector_typeYes
nameNo
targetNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the action ('Add') but doesn't disclose behavioral traits such as whether this creates a permanent change, requires specific scene states, has side effects, or what happens on failure. This is inadequate for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the main purpose, followed by a parameter list. The sentences are efficient, though the parameter explanations could be slightly more informative without adding bulk.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (adding an effector in a 3D tool), lack of annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't explain what an effector does, how it integrates into the scene, what the tool returns, or error conditions, making it insufficient for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate. It lists the three parameters with brief explanations (e.g., 'Type of effector', 'Optional name'), adding some meaning beyond the bare schema. However, it doesn't provide details like valid values for 'effector_type' or how 'target' interacts with the scene, leaving gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Add') and resource ('MoGraph Effector to the scene'), making the purpose explicit. However, it doesn't differentiate from sibling tools like 'apply_mograph_fields' or 'create_mograph_cloner', which might have overlapping functionality in a 3D modeling context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'apply_mograph_fields' and 'create_mograph_cloner', there's no indication of how this tool fits into the workflow or what makes it distinct.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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
ParametersJSON Schema
NameRequiredDescriptionDefault
primitive_typeYes
nameNo
positionNo
sizeNo

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool adds an object to the scene (implying a write/mutation operation) but lacks details on permissions, side effects, error handling, or what happens if parameters are omitted. For a mutation tool with zero annotation coverage, this is inadequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear purpose statement followed by a bullet-point-like parameter explanation. It's appropriately sized with no redundant information, though the parameter section could be slightly more integrated into the flow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description covers the basic purpose and parameters adequately. However, it lacks critical behavioral context (e.g., what the tool returns, error conditions, or scene impact), making it incomplete for safe and effective use by an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It effectively explains all four parameters: 'primitive_type' (with examples like cube, sphere), 'name' (optional name), 'position' (optional [x,y,z]), and 'size' (optional [x,y,z] dimensions). This adds significant meaning beyond the bare schema, though it doesn't specify default values or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Add a primitive object') and resource ('to the Cinema 4D scene'), distinguishing it from sibling tools like 'create_abstract_shape' or 'create_camera' which create different types of objects. The verb 'Add' is precise and the context is well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'create_abstract_shape' or 'create_camera', nor does it mention prerequisites or exclusions. It simply states what the tool does without contextual usage information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

animate_cameraC
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
ParametersJSON Schema
NameRequiredDescriptionDefault
animation_typeYes
camera_nameNo
positionsNo
framesNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates an animation but doesn't explain what that entailsโ€”whether it modifies existing scenes, requires specific permissions, has side effects, or what the expected outcome looks like. This leaves significant gaps for an AI agent to understand the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by a structured list of parameters. It's efficient with minimal waste, though the parameter explanations could be slightly more detailed without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a 4-parameter tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like what the tool returns, error conditions, or how it integrates with sibling tools (e.g., 'create_camera'). This makes it inadequate for an AI agent to use the tool confidently in a 3D animation workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate. It lists all parameters and provides basic semantics (e.g., 'animation_type' options, 'positions' as [x,y,z] lists), adding value beyond the bare schema. However, it doesn't explain how parameters interact (e.g., if 'positions' and 'frames' must match in length) or provide examples, leaving some ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Create') and resource ('camera animation'), making the purpose evident. However, it doesn't differentiate this tool from sibling tools like 'set_keyframe' or 'create_camera', which might have overlapping functionality in a 3D animation context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'set_keyframe' or 'create_camera'. The description lacks context about prerequisites, such as whether a camera must exist first, or when different animation types are appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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)
ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameYes
dynamics_typeYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a write operation ('Add') but doesn't disclose permissions needed, whether changes are reversible, side effects on the object, or error conditions. This is inadequate for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded with the core purpose, followed by parameter explanations. There's no wasted text, though it could be more structured (e.g., bullet points). Every sentence adds value, making it efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations, no output schema, and low schema coverage, the description is insufficient. It doesn't explain what 'dynamics' entail, the result of application, error handling, or integration with sibling tools. More context is needed for safe and effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the schema provides no parameter descriptions. The description adds basic semantics by explaining 'object_name' as 'Name of the object to apply dynamics to' and 'dynamics_type' with examples ('rigid, soft'), but lacks details like format constraints or valid values beyond the two examples. It partially compensates but not fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Add dynamics') and target ('to the specified object'), with specific dynamics types mentioned. It distinguishes from siblings like 'create_soft_body' or 'modify_object' by focusing on dynamics application rather than creation or general modification. However, it doesn't explicitly differentiate from all potential overlapping tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives like 'create_soft_body' or 'modify_object'. The description lacks context about prerequisites (e.g., object must exist), exclusions, or typical scenarios for applying dynamics versus other operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

apply_materialC
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
ParametersJSON Schema
NameRequiredDescriptionDefault
material_nameYes
object_nameYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('apply') but doesn't describe what happens during application (e.g., whether it overwrites existing materials, requires specific permissions, has side effects like scene modification, or what the expected outcome is). This leaves significant gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded with the core purpose in the first sentence, followed by parameter details. There's minimal waste, though the 'Args' formatting could be more integrated. It efficiently conveys essential information without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavior (e.g., success/failure outcomes, error conditions), prerequisites, and how it fits among sibling tools (e.g., 'apply_shader'), leaving the agent with insufficient context for reliable use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description includes an 'Args' section that names both parameters ('material_name' and 'object_name'), adding meaning beyond the input schema, which has 0% description coverage. However, it doesn't explain what constitutes valid names (e.g., format, existence requirements) or provide examples, so it only partially compensates for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('apply a material') and the target ('to an object'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'apply_shader' or 'create_material', which could be related operations in a 3D modeling context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., whether materials or objects must exist), context (e.g., scene editing vs. rendering), or exclusions (e.g., not for shaders or effects).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

apply_mograph_fieldsC
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)
ParametersJSON Schema
NameRequiredDescriptionDefault
field_typeYes
targetNo
field_nameNo
parametersNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a creation and application action but doesn't specify if this is a destructive operation, what permissions are required, how it affects the scene, or any rate limits. The description adds minimal context beyond the basic action, leaving significant gaps in understanding the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose in the first sentence, followed by a parameter list. It's efficient with minimal waste, though the parameter descriptions could be more detailed. The structure is clear, but it lacks additional context that might be necessary for full understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (4 parameters, 0% schema coverage, no annotations, no output schema), the description is incomplete. It covers the basic action and parameters but misses behavioral details, usage context, and output expectations. For a tool that creates and applies fields in a 3D scene, more information on effects and integration with sibling tools is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description lists parameters and their types (e.g., 'field_type' with enum-like values), adding meaning beyond the input schema, which has 0% description coverage. However, it doesn't fully compensate for the coverage gapโ€”for example, 'parameters' is vaguely described as 'Optional parameters for the field (strength, falloff)' without detailing structure or defaults. This provides some value but is incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Create and apply a MoGraph Field.' It specifies the action (create and apply) and the resource (MoGraph Field), which is specific and actionable. However, it doesn't differentiate from sibling tools like 'add_effector' or 'apply_dynamics' that might involve similar operations, keeping it from a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It lists parameters but doesn't mention prerequisites, context (e.g., when MoGraph Fields are needed in a scene), or comparisons to sibling tools like 'add_effector' or 'apply_dynamics'. This leaves the agent without clear usage instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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
ParametersJSON Schema
NameRequiredDescriptionDefault
shader_typeYes
material_nameNo
object_nameNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but offers minimal behavioral information. It mentions 'create and apply' which implies a write operation, but doesn't disclose what happens if materials/objects don't exist, whether changes are reversible, what permissions are needed, or what the tool returns. For a mutation tool with zero annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately brief with a clear purpose statement followed by parameter documentation. The two-sentence structure is efficient, though the parameter documentation could be more integrated with the purpose statement rather than presented as a separate 'Args' section.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after application, error conditions, or return values. Given the complexity of shader operations and lack of structured documentation, the description should provide more operational context to be truly helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description provides basic parameter names and optionality but minimal semantic context. It lists 'shader_type' with examples (noise, gradient, fresnel) and notes optional parameters, but doesn't explain what these shader types do, format requirements, or how material/object names are resolved. The description adds some value but doesn't fully compensate for the schema coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create and apply') and resource ('specialized shader material'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'apply_material' or 'create_material', which could cause confusion about when to use this specific shader-focused tool versus general material tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives like 'apply_material' or 'create_material'. The description only lists parameters without explaining the context or prerequisites for applying shaders, leaving the agent to guess about appropriate usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_abstract_shapeC
Create an organic, abstract shape.

Args:
    shape_type: Type of shape (blob, metaball)
    name: Optional name for the shape
ParametersJSON Schema
NameRequiredDescriptionDefault
shape_typeYes
nameNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states the tool creates something, implying a write operation, but doesn't disclose behavioral traits like permissions needed, whether the shape is editable after creation, or how it integrates into the scene. This leaves significant gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with two sentences: one stating the purpose and another listing parameters. It's front-loaded with the main action, though the parameter section could be more integrated. No wasted words, but structure is basic.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and 0% schema coverage, the description is incomplete. It covers basic purpose and parameters but lacks crucial context for a creation tool, such as what happens after creation, error conditions, or return values, making it inadequate for safe use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining 'shape_type' options (blob, metaball) and noting 'name' is optional, which helps beyond the bare schema. However, it doesn't fully document both parameters (e.g., what blob/metaball entail, name constraints), leaving some ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and resource ('organic, abstract shape'), making the purpose understandable. However, it doesn't differentiate this tool from similar sibling tools like 'add_primitive' or 'create_camera', which also create objects in the scene.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, context (e.g., when abstract shapes are appropriate), or comparisons to sibling tools like 'add_primitive' for different shape types.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_cameraC
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}).
ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
positionNo
propertiesNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits such as whether creation is reversible, requires specific permissions, affects scene state, or has side effects like auto-selection. This is inadequate for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the main purpose, followed by parameter details. Each sentence adds value without redundancy, though the parameter section could be more structured (e.g., bullet points) for better readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a creation tool with no annotations, no output schema, and 3 parameters, the description is incomplete. It lacks information on return values, error conditions, or how the camera integrates into the scene, making it insufficient for reliable agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description lists all three parameters with brief examples (e.g., '{"focal_length": 50}'), adding meaning beyond the schema, which has 0% description coverage. However, it doesn't fully compensate by explaining parameter interactions, defaults, or constraints (e.g., valid property keys), leaving gaps in understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Create' and resource 'new camera in the scene', making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'animate_camera' or 'modify_object', which would require more context about when to create versus animate or modify.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an active scene), exclusions, or comparisons to siblings like 'create_light' or 'create_abstract_shape', leaving the agent without context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_lightC
Add a light to the scene.

Args:
    light_type: Type of light (area, dome, spot)
    name: Optional name for the light
ParametersJSON Schema
NameRequiredDescriptionDefault
light_typeYes
nameNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool adds a light, implying a mutation, but doesn't cover permissions, side effects, error conditions, or response format. This is inadequate for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded with the main purpose, followed by parameter details. It avoids unnecessary words, but the parameter section could be more structured (e.g., using bullet points). Overall, it's efficient but not perfectly optimized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a scene manipulation tool with no annotations, no output schema, and incomplete parameter documentation, the description is insufficient. It doesn't explain what happens after adding the light, potential errors, or integration with sibling tools, leaving significant gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description lists the parameters ('light_type' and 'name') and provides minimal semantics (e.g., 'Type of light' with examples, 'Optional name'). However, with 0% schema description coverage, it doesn't fully compensateโ€”it lacks details like allowed values for 'light_type' beyond examples or naming constraints. Baseline is 3 as it adds some meaning but not enough to cover the gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Add') and resource ('a light to the scene'), making the purpose understandable. However, it doesn't distinguish this tool from sibling tools like 'add_effector' or 'add_primitive', which also add elements to scenes, so it lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or exclusions, leaving the agent with no usage instructions beyond the basic purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_materialB
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
ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
colorNo
propertiesNo

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a creation operation but doesn't mention permissions needed, whether it's destructive to existing materials, what happens on failure, or any rate limits. The description provides minimal behavioral context beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with a clear purpose statement followed by parameter explanations. Every sentence serves a purpose, though the parameter explanations could be slightly more detailed given the lack of schema descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation tool with no annotations, no output schema, and 0% schema description coverage, the description is insufficient. It doesn't explain what the tool returns, error conditions, or important behavioral aspects like whether the material becomes active/selected after creation or how it integrates with the scene.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate, and it does by explaining all three parameters: 'name' (required name), 'color' (optional RGB array with value range), and 'properties' (optional additional properties). This adds significant semantic value beyond the bare schema, though it doesn't detail what 'properties' might contain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create a new material') and the target system ('in Cinema 4D'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'apply_material' or 'apply_shader', which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'apply_material' or 'apply_shader'. There's no mention of prerequisites, context, or exclusions, leaving the agent with insufficient usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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
ParametersJSON Schema
NameRequiredDescriptionDefault
cloner_typeYes
nameNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states it 'creates' an object, implying a write/mutation operation, but doesn't disclose permissions needed, whether it's destructive to existing objects, rate limits, or what happens after creation (e.g., selection state, scene modification). For a creation tool with zero annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with two sentences: a purpose statement and parameter explanations. It's front-loaded with the main action. The parameter section is clear but could be more integrated. No wasted words, though slightly terse for a tool with no annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given complexity (creation tool with 2 parameters), no annotations, no output schema, and 0% schema coverage, the description is incomplete. It doesn't explain what a MoGraph Cloner is, typical use cases, return values, error conditions, or integration with sibling tools. For adequate context, it needs more behavioral and operational details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining 'cloner_type' accepts specific values (grid, radial, linear) and 'name' is optional, which goes beyond the bare schema. However, it doesn't explain what these cloner types do, format constraints, or default behaviors when name is null, leaving gaps for the 2 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Create' and the resource 'MoGraph Cloner object', specifying it creates a cloner of a specified type. It distinguishes from siblings like 'add_primitive' or 'create_camera' by focusing on MoGraph cloning functionality. However, it doesn't explicitly differentiate from all possible creation tools, keeping it at 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, typical workflows, or when other tools like 'apply_mograph_fields' or 'group_objects' might be more appropriate. The only implied usage is creating a cloner, but no context about timing or alternatives is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_soft_bodyC
Add soft body dynamics to the specified object.

Args:
    object_name: Name of the object to convert to a soft body
ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. It states the tool 'converts' an object to a soft body, implying a mutation operation, but doesn't describe what this entails (e.g., whether it's reversible, what parameters are set by default, or if it requires specific object types). This leaves significant gaps for a tool that likely modifies scene state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, with the core purpose stated first. The 'Args' section adds structure but is somewhat redundant since the parameter is simple. Overall, it's efficient with minimal waste, though the formatting could be more integrated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a dynamics tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'soft body dynamics' entails, what the tool returns (e.g., success status or modified object details), or error conditions. For a mutation tool in a 3D context, this lacks necessary operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds minimal semantics by explaining that 'object_name' refers to 'Name of the object to convert to a soft body', which clarifies the parameter's role. However, it doesn't provide format details (e.g., naming conventions) or constraints beyond what's implied, leaving some ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Add soft body dynamics') and target ('to the specified object'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from sibling tools like 'apply_dynamics' or 'modify_object', which might have overlapping functionality in a 3D/graphics context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., whether the object must exist in the scene), exclusions, or comparisons to sibling tools like 'apply_dynamics' or 'modify_object' that might handle similar operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.
ParametersJSON Schema
NameRequiredDescriptionDefault
scriptYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It comprehensively describes critical behavioral traits: security restrictions (blocking certain keywords), performance considerations (splitting heavy operations), output mechanism (using print() to return results), and specific API usage patterns (ExecutePasses after SetTime, sequential frame iteration). This goes well beyond what a basic description would provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, args, important usage notes) and every sentence adds value. While comprehensive, it might be slightly verbose for a single-parameter tool, but the information density is high with no wasted text. The front-loaded purpose statement immediately communicates the tool's core function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of executing arbitrary Python code in a specialized environment with no annotations or output schema, the description provides exceptional completeness. It covers purpose, usage guidelines, behavioral constraints, parameter details, security considerations, performance best practices, and output mechanism. For a tool with this level of complexity and zero structured metadata, the description is remarkably thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage for the single parameter, the description fully compensates by providing detailed semantics for the 'script' parameter. It explains what the script should contain ('Python code to execute'), what modules are available ('access to c4d and c4d.modules.mograph'), and provides multiple examples of proper script structure and content throughout the usage notes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Execute a Python script') and the target environment ('in Cinema 4D's Python environment'), distinguishing it from sibling tools that perform specific operations like 'add_effector' or 'render_frame'. It explicitly mentions this is for 'non-trivial operations' and gives 'full access to the c4d API', which differentiates it from more specialized tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool ('most reliable tool for non-trivial operations') and when to use alternatives ('avoids wrapper/schema mismatches that can affect other tools'). It also includes specific usage notes for different scenarios (animated/MoGraph data, heavy operations), making it clear when this tool is preferred over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_scene_infoB

Get information about the current Cinema 4D scene.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states it 'gets information' but doesn't specify what type of information (e.g., scene properties, object counts, render settings), whether it's read-only (implied but not explicit), or any limitations (e.g., performance impact, scene state requirements). This leaves significant gaps in understanding how the tool behaves beyond its basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that directly states the tool's purpose with zero wasted words. It's front-loaded and efficiently communicates the essential action without unnecessary elaboration, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a scene information tool with no annotations and no output schema, the description is incomplete. It doesn't explain what information is returned (e.g., scene dimensions, object lists, settings), potential errors, or dependencies. For a tool that likely returns structured data about a 3D scene, more context is needed to help the agent understand the output and use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to compensate for any gaps, and it appropriately avoids discussing parameters. A baseline of 4 is applied since no parameter information is required, and the description doesn't mislead about inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('information about the current Cinema 4D scene'), making the purpose immediately understandable. It distinguishes itself from siblings like 'list_objects' or 'inspect_redshift_materials' by focusing on general scene metadata rather than specific object listings or material details. However, it doesn't explicitly contrast with 'snapshot_scene' which might also provide scene information, keeping it from a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a loaded scene), exclusions, or comparisons to siblings like 'snapshot_scene' or 'list_objects' that might overlap in functionality. The agent must infer usage from the tool name alone, which is insufficient for optimal selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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
ParametersJSON Schema
NameRequiredDescriptionDefault
object_namesYes
group_nameNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions grouping objects but doesn't explain what happens after grouping (e.g., does it create a new parent object, modify existing ones, affect scene hierarchy?), whether it's reversible, or any side effects like performance impacts. The phrase 'under a null object' is ambiguous and adds little clarity. More behavioral details are needed for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a clear opening sentence followed by a bullet-point list of args. There's no unnecessary fluff, and information is front-loaded. It could be slightly more informative without losing conciseness, but it's efficient as is.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (a mutation tool with 2 parameters, no annotations, no output schema, and 0% schema coverage), the description is incomplete. It doesn't explain the outcome of grouping, error conditions, or how this fits into the broader context of sibling tools like scene manipulation. For a tool that likely alters scene state, more completeness is needed to guide safe and effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description lists parameters ('object_names' and 'group_name') and provides brief explanations, adding some meaning beyond the input schema, which has 0% description coverage. However, it doesn't elaborate on constraints (e.g., what constitutes valid object names, length limits, or the effect of a null group_name). With 2 parameters and low schema coverage, this offers basic compensation but lacks depth.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the action ('Group multiple objects') and target ('under a null object'), which clarifies the basic purpose. However, it's vague about what 'null object' means in this context and doesn't distinguish this tool from potential alternatives like 'modify_object' or 'create_abstract_shape' among the siblings. The purpose is understandable but lacks specificity about the domain or system.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'modify_object', 'create_abstract_shape', and 'list_objects', there's no indication of prerequisites, typical workflows, or scenarios where grouping objects is preferred over other operations. This leaves the agent without context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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
ParametersJSON Schema
NameRequiredDescriptionDefault
material_nameNo
include_assignmentsNo
include_previewNo
include_descriptionNo
include_containerNo
include_graphNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does well by declaring it's read-only, works with fallbacks when runtime is unavailable, and specifies what data it can report (names, assignments, preview colors, etc.). It also notes graph inspection is only attempted when Cinema 4D exposes that data, adding useful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core purpose, followed by a structured parameter explanation. Every sentence adds value, though the parameter list is somewhat verbose but necessary given the lack of schema descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 parameters, no annotations, no output schema), the description is quite complete: it explains the tool's behavior, fallback mechanisms, and each parameter's semantics. It could improve by hinting at return values or error handling, but covers most essentials well.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate fully. It provides a detailed 'Args' section explaining each parameter's purpose (e.g., 'material_name' as an optional filter, 'include_assignments' for texture-tag assignments), adding significant meaning beyond the bare schema titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool inspects Redshift materials with best-effort fallbacks, specifying it's read-only and works even when Redshift Python runtime is unavailable. It distinguishes from siblings like 'apply_material' or 'create_material' by focusing on inspection rather than creation or application, though it doesn't explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when inspecting materials, especially in environments where Redshift Python runtime might be unavailable, but doesn't provide explicit guidance on when to use this versus alternatives like 'get_scene_info' or 'list_objects'. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes a read-only operation ('List all objects') and adds valuable context about potential validation errors and a fallback mechanism. However, it doesn't cover other behavioral aspects like performance, rate limits, or output format details, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise and well-structured. The first sentence directly states the purpose, and the second sentence provides essential usage guidance without unnecessary details. Every sentence earns its place, making it efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is largely complete. It explains what the tool does and includes a fallback strategy. However, without an output schema, it doesn't describe the return format (e.g., list structure, object types), which could be helpful for an agent to interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and the schema description coverage is 100%. The description doesn't need to explain parameters, so it meets the baseline of 4. It appropriately focuses on the tool's functionality without redundant parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'List all objects in the current Cinema 4D scene.' It specifies the verb ('List') and resource ('objects'), and distinguishes it from siblings that create, modify, or render objects. However, it doesn't explicitly differentiate from 'get_scene_info' or 'snapshot_scene', which might also provide scene-related information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use an alternative: 'If this tool returns a validation error, use execute_python_script as a fallback to traverse the object hierarchy manually via the c4d API.' This clearly defines a fallback scenario and names the specific alternative tool, helping the agent handle edge cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

load_sceneC
Load a Cinema 4D scene file.

Args:
    file_path: Path to the scene file to load
ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Load') but doesn't describe what happens during loading (e.g., whether it replaces the current scene, requires specific file formats, or has side effects like resetting settings). This leaves critical behavioral traits undocumented.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, with a clear purpose statement followed by parameter details. Both sentences earn their place, though the 'Args' section could be more integrated into the flow rather than a separate block.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (loading a scene file, which is a significant operation) and the lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral aspects, error conditions, or what happens post-load, making it inadequate for safe and effective use by an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description includes an 'Args' section that documents the single parameter 'file_path', adding meaning beyond the input schema (which has 0% schema description coverage). However, it only provides a basic label without details on format, constraints, or examples, offering limited compensation for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Load') and resource ('a Cinema 4D scene file'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'save_scene' or 'snapshot_scene', which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether a scene must be closed first), compare it to similar tools like 'snapshot_scene', or specify when not to use it, leaving the agent with minimal context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.)
ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameYes
propertiesYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states this modifies existing objects but doesn't mention what happens if the object doesn't exist, whether changes are reversible, what permissions are needed, or what the response looks like. For a mutation tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately brief with a clear purpose statement followed by parameter explanations. The 'Args:' section is helpful, though the 'etc.' in the properties explanation could be more precise. Overall, it's efficient without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with 2 parameters (including a nested object), 0% schema description coverage, no annotations, and no output schema, the description is insufficient. It doesn't explain what happens after modification, what error conditions exist, or provide enough detail about the properties parameter to use the tool effectively without trial and error.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds some value by explaining both parameters: 'object_name' identifies the target and 'properties' contains the modifications. However, it doesn't specify valid property names or value formats beyond the vague 'position, rotation, scale, etc.', leaving significant ambiguity about what can actually be modified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('modify') and resource ('properties of an existing object'), making the purpose understandable. However, it doesn't distinguish this tool from similar sibling tools like 'set_keyframe' or 'group_objects' that might also modify objects in different ways.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'set_keyframe' (for animation), 'group_objects' (for organization), and 'apply_material' (for appearance), there's no indication of when this general property modification tool is preferred over more specific tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_frameC
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
ParametersJSON Schema
NameRequiredDescriptionDefault
output_pathNo
widthNo
heightNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions rendering but fails to describe key traits: whether it's a read-only or destructive operation, if it requires specific permissions, what happens if parameters are omitted (e.g., default behavior), or the output format (e.g., image type). This leaves significant gaps for an agent to understand the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded with the main action, followed by a parameter list. It avoids unnecessary words, but the parameter section could be more integrated (e.g., explaining defaults). Overall, it's efficient but could be slightly more structured for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (a rendering tool with 3 parameters), no annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects, output details, or usage context, making it insufficient for an agent to reliably invoke the tool without additional assumptions or trial-and-error.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It lists parameters and their basic purposes (e.g., 'output_path' for saving, 'width' and 'height' in pixels), but adds minimal semantic value: it doesn't explain file format expectations for 'output_path', valid ranges for dimensions, or interactions between parameters. This is inadequate given the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the action ('Render') and target ('the current frame'), which provides a basic purpose. However, it's vague about what 'current frame' means in context (e.g., from a 3D scene, animation, or simulation) and doesn't distinguish it from sibling tools like 'render_preview' or 'snapshot_scene', leaving ambiguity about when to use each.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'render_preview' or 'snapshot_scene'. The description lacks context about prerequisites (e.g., needing an active scene or frame) or typical use cases, offering minimal help for an agent to decide between similar tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_previewB
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
ParametersJSON Schema
NameRequiredDescriptionDefault
widthNo
heightNo
frameNo

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the action ('Render') and output format ('base64-encoded preview image'), but lacks details on permissions, rate limits, side effects (e.g., whether rendering affects scene state), or error conditions. For a tool that likely performs computationally intensive rendering, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured: a clear purpose statement followed by a bulleted list of parameters with concise explanations. Every sentence earns its place, with no redundant or verbose language. It's appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is moderately complete. It covers the basic purpose and parameters but misses behavioral details (e.g., performance implications, error handling) and output specifics beyond 'base64-encoded preview image'. For a rendering tool in a 3D context, more context on scene state and rendering behavior would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description lists all three parameters (width, height, frame) with brief explanations (e.g., 'Optional preview width in pixels'), adding meaning beyond the input schema, which has 0% description coverage. However, it doesn't provide details on default values, constraints (e.g., valid ranges), or interactions between parameters (e.g., if width/height affect aspect ratio). This partially compensates for the schema gap but isn't comprehensive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Render the current view and return a base64-encoded preview image.' It specifies the verb ('Render'), resource ('current view'), and output format ('base64-encoded preview image'). However, it doesn't explicitly differentiate from sibling tools like 'render_frame' or 'snapshot_scene', which likely have overlapping functionality in a 3D rendering context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., whether a scene must be loaded), exclusions, or comparisons to sibling tools like 'render_frame' or 'snapshot_scene'. Usage context is implied but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_sceneB
Save the current Cinema 4D scene.

Args:
    file_path: Optional path to save the scene to
ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathNo

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool saves the scene but doesn't mention whether this overwrites existing files, requires specific permissions, has side effects on the current scene, or what happens on success/failure. This is inadequate for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded with the main purpose, followed by parameter details. Both sentences earn their place, though the structure could be slightly improved by integrating the parameter explanation more seamlessly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations, no output schema, and minimal parameter documentation, the description is incomplete. It doesn't cover behavioral aspects like file overwriting, error conditions, or what 'save' entails in this context, leaving significant gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful context for the single parameter by explaining that 'file_path' is optional and specifies its purpose ('path to save the scene to'). Since schema description coverage is 0% and there's only one parameter, this adequately compensates, though it lacks details like format or default behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Save') and resource ('current Cinema 4D scene'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'snapshot_scene' or 'load_scene', but the action is specific enough to be distinguished by context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'snapshot_scene' or 'load_scene'. It mentions an optional file_path parameter but doesn't explain the default behavior or prerequisites for saving scenes, leaving usage context unclear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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
ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameYes
property_nameYes
valueYes
frameYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Set a keyframe') but doesn't clarify if this is a destructive operation (e.g., overwrites existing keyframes), what permissions are needed, or what happens on success/failure. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured: a clear purpose statement followed by a bullet-point list of parameters with concise explanations. Every sentence earns its place, and there's no redundant or verbose text. It's appropriately sized for a 4-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (a mutation tool in an animation/3D context with 4 parameters), no annotations, and no output schema, the description is incomplete. It doesn't explain what a keyframe is in this system, how it interacts with other tools (e.g., rendering), or what the tool returns. For a tool that likely modifies scene state, more behavioral context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the schema provides no parameter descriptions. The description compensates by listing all 4 parameters with brief explanations (e.g., 'Name of the property to keyframe'), which adds meaningful context beyond just the parameter names. However, it doesn't provide examples beyond 'position.x' or detail constraints (e.g., valid property names, value types).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Set a keyframe') and the target ('for an object property'), which is specific and unambiguous. However, it doesn't distinguish this tool from potential siblings like 'animate_camera' or 'modify_object', which might also involve keyframing or property manipulation in this animation/3D context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. Given sibling tools like 'animate_camera' and 'modify_object', it's unclear if this is the primary keyframing method or if there are specific scenarios where it should be preferred or avoided. No prerequisites or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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
ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathNo
include_assetsNo

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states 'Create a snapshot' which implies a write operation, but doesn't disclose whether this is destructive to the scene, requires specific permissions, has side effects, or what the output looks like. The description adds minimal behavioral context beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise: one clear purpose statement followed by brief parameter explanations. Every sentence earns its place, with no redundant information or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter tool with no annotations and no output schema, the description provides adequate basic information about what the tool does and what parameters mean. However, it lacks crucial context about what a 'snapshot' actually produces (file format, whether it's reversible, how it differs from saving), leaving significant gaps for an agent to operate effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by explaining both parameters: 'file_path' as an optional save location and 'include_assets' controlling whether external assets are included. This adds meaningful context beyond the bare schema, though it doesn't specify file format or asset inclusion details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create a snapshot') and target ('current scene state'), which is specific and unambiguous. However, it doesn't differentiate from sibling tools like 'save_scene' or 'render_frame', which might have overlapping functionality in a 3D scene context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'save_scene', 'render_frame', and 'render_preview', there's no indication of when a snapshot differs from saving or rendering operations, leaving the agent to guess based on tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.2/5.0
Disambiguation4/5

Most tools have distinct purposes targeting specific Cinema 4D operations like adding objects, applying materials, or rendering. However, some overlap exists between 'apply_dynamics' and 'create_soft_body' (both handle dynamics), and 'apply_material' vs 'apply_shader' (both apply materials), which could cause minor confusion despite clear descriptions.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun pattern throughout, such as 'add_effector', 'create_camera', 'apply_material', and 'render_frame'. All tools use snake_case with clear, descriptive verbs, making the set predictable and easy to navigate.

Tool Count3/5

With 25 tools, the count is borderline high for a single server, potentially overwhelming for agents. While Cinema 4D is a complex application, the toolset feels heavy and might benefit from consolidation or categorization to improve usability without sacrificing functionality.

Completeness5/5

The toolset provides comprehensive coverage for 3D scene creation and manipulation in Cinema 4D, including object creation, material application, animation, rendering, and scene management. Key workflows like CRUD for objects, materials, and cameras are fully supported, with no apparent gaps that would hinder agent operations.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Connects Houdini to Claude AI through Model Context Protocol, enabling AI-assisted 3D modeling, scene creation, simulation setup, and rendering through natural language commands.
    60
  • A
    license
    B
    quality
    D
    maintenance
    Connects Blender to Claude AI through the Model Context Protocol, enabling AI-assisted 3D modeling, scene creation, and manipulation through natural language commands.
    17
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Connects Blender 3D modeling software with Claude AI, enabling natural language control of 3D modeling and scene manipulation tasks.
    17
    4
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ttiimmaacc/cinema4d-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server