Cinema4D MCP Server
Enables 3D scene manipulation in Cinema 4D, including creating and modifying objects, managing materials, setting up lighting, working with cameras, utilizing MoGraph tools, applying physics, and rendering scenes.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Cinema4D MCP Servercreate a cube with dimensions 2x2x2 at the origin"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Cinema4D MCP โ Model Context Protocol (MCP) Server
Cinema4D MCP Server connects Cinema 4D to Claude, enabling prompt-assisted 3D manipulation.
Table of Contents
Usage Guide โ practical tips, extraction patterns, and known issues
Related MCP server: BlenderMCP
Components
C4D Plugin: A socket server that listens for commands from the MCP server and executes them in the Cinema 4D environment.
MCP Server: A Python server that implements the MCP protocol and provides tools for Cinema 4D integration.
Prerequisites
Cinema 4D (R2024+ recommended)
Python 3.10 or higher (for the MCP Server component)
Installation
To install the project, follow these steps:
Clone the Repository
git clone https://github.com/ttiimmaacc/cinema4d-mcp.git
cd cinema4d-mcpInstall the MCP Server Package
pip install -e .Make the Wrapper Script Executable
chmod +x bin/cinema4d-mcp-wrapperSetup
Cinema 4D Plugin Setup
To set up the Cinema 4D plugin, follow these steps:
Copy the Plugin File: Copy the
c4d_plugin/mcp_server_plugin.pypfile 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\
Start the Socket Server:
Open Cinema 4D.
Go to Extensions > Socket Server Plugin
You should see a Socket Server Control dialog window. Click Start Server.
Claude Desktop Configuration
To configure Claude Desktop, you need to modify its configuration file:
Open the Configuration File:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonAlternatively, use the Settings menu in Claude Desktop (Settings > Developer > Edit Config).
Add MCP Server Configuration: For development/unpublished server, add the following configuration:
"mcpServers": { "cinema4d": { "command": "python3", "args": ["/Users/username/cinema4d-mcp/main.py"] } }Restart Claude Desktop after updating the configuration file.
{
"mcpServers": {
"cinema4d": {
"command": "cinema4d-mcp-wrapper",
"args": []
}
}
}Usage
Ensure the Cinema 4D Socket Server is running.
Open Claude Desktop and look for the hammer icon ๐จ in the input box, indicating MCP tools are available.
Use the available Tool Commands to interact with Cinema 4D through Claude.
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_materialsover ad-hoc Python for Redshift inspectionwhen to fall back to
execute_python_scriptfor full C4D API accesscurrent 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.pyYou should see output confirming the server's successful start and connection to Cinema 4D.
Testing with MCP Test Harness
The repository includes a simple test harness for running predefined command sequences:
Test Command File (
tests/mcp_test_harness.jsonl): Contains a sequence of commands in JSONL format that can be executed in order. Each line represents a single MCP command with its parameters.GUI Test Runner (
tests/mcp_test_harness_gui.py): A simple Tkinter GUI for running the test commands:python tests/mcp_test_harness_gui.pyThe GUI allows you to:
Select a JSONL test file
Run the commands in sequence
View the responses from Cinema 4D
This test harness is particularly useful for:
Rapidly testing new commands
Verifying plugin functionality after updates
Recreating complex scenes for debugging
Testing compatibility across different Cinema 4D versions
Troubleshooting & Debugging
Check the log files:
tail -f ~/Library/Logs/Claude/mcp*.logVerify Cinema 4D shows connections in its console after you open Claude Desktop.
Test the wrapper script directly:
cinema4d-mcp-wrapperIf there are errors finding the mcp module, install it system-wide:
pip install mcpFor 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.pyTool 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.c4dfile 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 viaredshift.GetRSMaterialNodeMaster(...). โ Known quirk: the top-levelcapabilities.redshift_module_availableflag can still befalseon some builds even when the per-material GraphView fallback succeeds. Treat each material'sgraph.backendandgraph.graphview.redshift_module_importedas 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 toolsadd_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
| Name | Required | Description | Default |
|---|---|---|---|
| effector_type | Yes | ||
| name | No | ||
| target | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| primitive_type | Yes | ||
| name | No | ||
| position | No | ||
| size | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| animation_type | Yes | ||
| camera_name | No | ||
| positions | No | ||
| frames | No |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| dynamics_type | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| material_name | Yes | ||
| object_name | Yes |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| field_type | Yes | ||
| target | No | ||
| field_name | No | ||
| parameters | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| shader_type | Yes | ||
| material_name | No | ||
| object_name | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| shape_type | Yes | ||
| name | No |
TDQS
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.
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.
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.
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.
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.
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}).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| position | No | ||
| properties | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| light_type | Yes | ||
| name | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| color | No | ||
| properties | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| cloner_type | Yes | ||
| name | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| object_names | Yes | ||
| group_name | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| material_name | No | ||
| include_assignments | No | ||
| include_preview | No | ||
| include_description | No | ||
| include_container | No | ||
| include_graph | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
TDQS
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.
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.
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.
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.
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.
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| properties | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| output_path | No | ||
| width | No | ||
| height | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | ||
| height | No | ||
| frame | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| property_name | Yes | ||
| value | Yes | ||
| frame | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | No | ||
| include_assets | No |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Connect Claude to your Platform7n workspaces โ chat, links, and tasks. One-click OAuth.
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Connect Claude AI to UluP Spaces via MCP โ create projects, nodes, and tasks with OAuth 2.0.
One workspace of tools for Claude and ChatGPT: connect 600+ apps, generate media, build tools.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceConnects Houdini to Claude AI through Model Context Protocol, enabling AI-assisted 3D modeling, scene creation, simulation setup, and rendering through natural language commands.60
- AlicenseBqualityDmaintenanceConnects Blender to Claude AI through the Model Context Protocol, enabling AI-assisted 3D modeling, scene creation, and manipulation through natural language commands.172MIT
- AlicenseAqualityDmaintenanceConnects Blender to Claude AI, enabling AI-assisted 3D modeling, scene creation, object manipulation, material control, and code execution directly in Blender through natural language prompts.17MIT
- AlicenseAqualityCmaintenanceConnects Blender 3D modeling software with Claude AI, enabling natural language control of 3D modeling and scene manipulation tasks.174MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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