Skip to main content
Glama

Cinema4D MCP — 模型上下文协议 (MCP) 服务器

Cinema4D MCP 服务器将 Cinema 4D 连接到 Claude,实现快速辅助的 3D 操作。

目录

Related MCP server: BlenderMCP

成分

  1. C4D 插件:一个套接字服务器,用于监听来自 MCP 服务器的命令并在 Cinema 4D 环境中执行这些命令。

  2. MCP 服务器:一个实现 MCP 协议并提供 Cinema 4D 集成工具的 Python 服务器。

先决条件

  • Cinema 4D(推荐 R2024+)

  • Python 3.10 或更高版本(用于 MCP 服务器组件)

安装

要安装该项目,请按照以下步骤操作:

克隆存储库

git clone https://github.com/ttiimmaacc/cinema4d-mcp.git
cd cinema4d-mcp

安装 MCP 服务器包

pip install -e .

使包装脚本可执行

chmod +x bin/cinema4d-mcp-wrapper

设置

Cinema 4D插件设置

要设置 Cinema 4D 插件,请按照以下步骤操作:

  1. 复制插件文件:将c4d_plugin/mcp_server_plugin.pyp文件复制到 Cinema 4D 的插件文件夹。具体路径取决于您的操作系统:

    • macOS: /Users/USERNAME/Library/Preferences/Maxon/Maxon Cinema 4D/plugins/

    • Windows: C:\Users\USERNAME\AppData\Roaming\Maxon\Maxon Cinema 4D\plugins\

  2. 启动套接字服务器:

    • 打开 Cinema 4D。

    • 转到扩展>套接字服务器插件

    • 您应该会看到一个 Socket Server Control 对话框窗口。点击 Start Server。

Claude桌面配置

要配置Claude Desktop,需要修改其配置文件:

  1. 打开配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • 或者,使用 Claude Desktop 中的设置菜单(设置 > 开发人员 > 编辑配置)。

  2. 添加 MCP 服务器配置:对于开发/未发布的服务器,添加以下配置:

    "mcpServers": {
      "cinema4d": {
        "command": "python3",
        "args": ["/Users/username/cinema4d-mcp/main.py"]
      }
    }
  3. 更新配置文件后重新启动Claude Desktop 。

{
  "mcpServers": {
    "cinema4d": {
      "command": "cinema4d-mcp-wrapper",
      "args": []
    }
  }
}

用法

  1. 确保 Cinema 4D Socket Server 正在运行。

  2. 打开 Claude Desktop 并在输入框中查找锤子图标🔨,表示 MCP 工具可用。

  3. 使用可用的工具命令通过 Claude 与 Cinema 4D 进行交互。

测试

命令行测试

要直接从命令行测试 Cinema 4D 套接字服务器:

python main.py

您应该会看到确认服务器成功启动并连接到 Cinema 4D 的输出。

使用 MCP 测试工具进行测试

该存储库包含一个用于运行预定义命令序列的简单测试工具:

  1. 测试命令文件( tests/mcp_test_harness.jsonl ):包含 JSONL 格式的一系列可按顺序执行的命令。每行代表一个 MCP 命令及其参数。

  2. GUI 测试运行器( tests/mcp_test_harness_gui.py ):用于运行测试命令的简单 Tkinter GUI:

    python tests/mcp_test_harness_gui.py

    GUI 允许您:

    • 选择一个 JSONL 测试文件

    • 按顺序运行命令

    • 查看 Cinema 4D 的回复

该测试工具特别适用于:

  • 快速测试新命令

  • 更新后验证插件功能

  • 重新创建复杂场景以进行调试

  • 测试不同 Cinema 4D 版本之间的兼容性

故障排除和调试

  1. 检查日志文件:

    tail -f ~/Library/Logs/Claude/mcp*.log
  2. 打开 Claude Desktop 后,验证 Cinema 4D 是否在其控制台中显示连接。

  3. 直接测试包装脚本:

    cinema4d-mcp-wrapper
  4. 如果在查找 mcp 模块时出现错误,请在整个系统范围内安装它:

    pip install mcp
  5. 对于高级调试,请使用MCP Inspector :

    npx @modelcontextprotocol/inspector uv --directory /Users/username/cinema4d-mcp run cinema4d-mcp

项目文件结构

cinema4d-mcp/
├── .gitignore
├── LICENSE
├── README.md
├── main.py
├── pyproject.toml
├── setup.py
├── bin/
│   └── cinema4d-mcp-wrapper
├── c4d_plugin/
│   └── mcp_server_plugin.pyp
├── src/
│   └── cinema4d_mcp/
│       ├── __init__.py
│       ├── server.py
│       ├── config.py
│       └── utils.py
└── tests/
    ├── test_server.py
    ├── mcp_test_harness.jsonl
    └── mcp_test_harness_gui.py

工具命令

总体场景与执行

  • get_scene_info :获取有关活动 Cinema 4D 场景的摘要信息。✅

  • list_objects :列出所有场景对象(带层次结构)。✅

  • group_objects :将选定的对象分组到新的 null 下。✅

  • execute_python Python 代码

  • save_scene :将当前 Cinema 4D 项目保存到磁盘。✅

  • load_scene :将.c4d文件加载到场景中。✅

  • set_keyframe :为对象属性(位置、旋转等)设置关键帧。✅

对象创建和修改

  • add_primitive :向场景添加一个基本体(立方体、球体、圆锥体等)。✅

  • modify_object :修改现有对象的变换或属性。✅

  • create_abstract_shape :创建一个有机的、非标准的抽象形式。✅

相机和动画

  • create_camera :向场景添加新相机。✅

  • animate_camera :沿路径(线性或基于样条曲线)为相机设置动画。✅

照明与材料

  • create_light :向场景添加灯光(全光、聚光灯等)。✅

  • create_material :创建标准 Cinema 4D 材质。✅

  • apply_material :将材质应用于目标对象。✅

  • apply_shader :生成并应用风格化或程序化的着色器。✅

Redshift 支持

  • validate_redshift_materials Redshift 材质设置和连接。✅⚠️(Redshift 材质尚未完全实现)

MoGraph 和场

  • create_mograph_cloner :添加 MoGraph 克隆器(线性、径向、网格等)。✅

  • add_effector :添加 MoGraph 效果器(随机、普通等)。✅

  • apply_mograph_fields :添加并链接 MoGraph 字段到对象。✅

动力学与物理学

  • create_soft_body :向对象添加 Soft Body 标签。✅

  • apply_dynamics :应用刚体或软体物理。✅

渲染和预览

  • render_frame :渲染一帧并将其保存到磁盘(仅限基于文件的输出)。⚠️(可以正常工作,但在高分辨率下会失败,原因是 MemoryError: Bitmap Init failed。这是资源限制。)

  • render_preview :渲染快速预览并返回 base64 图像(用于 AI)。✅

  • snapshot_scene :捕获场景快照(对象 + 预览图像)。✅

兼容性计划和路线图

Cinema 4D版本

Python 版本

兼容性状态

笔记

R21/S22

Python 2.7

❌ 不支持

遗留 API 和 Python 版本太旧

R23

Python 3.7

🔍 没有计划

目前尚未测试

S24/R25/S26

Python 3.9

⚠️ 可能(待定)

需要对缺失的 API 进行测试和回退

2023.0 / 2023.1

Python 3.9

🧪 进行中

针对核心功能的后备支持

2023.2

Python 3.10

🧪 进行中

与计划中的测试基地保持一致

2024.0

Python 3.11

✅ 支持

已验证

2025.0+

Python 3.11

✅ 全面支持

主要发展目标

兼容性目标

  • 短期:确保与 C4D 2023.1+(Python 3.9 和 3.10)兼容

  • 期中:为缺失的 MoGraph 和 Field API 添加条件处理

  • 长期:如有需求,请考虑提供可选的旧版插件模块,以支持 R23–S26

最近的修复

  • 上下文感知:使用 GUID 实现了强大的对象跟踪。创建对象的命令会返回上下文(例如 GUID、实际名称等)。后续命令能够正确使用测试工具/服务器传递的 GUID 来可靠地查找对象。

  • 对象查找:重新设计 find_object_by_name 以正确处理 GUID(数字字符串格式),修复递归错误,并提高 doc.SearchObject 失败时的可靠性。

  • GUID 检测:命令处理程序(apply_material、create_mograph_cloner、add_effector、apply_mograph_fields、set_keyframe、group_objects)现在可以正确检测在各种参数(object_name、target、target_name、列表项)中传递的标识符是否为 GUID,并进行相应的搜索。

  • create_mograph_cloner:修复了使用 getattr fallbacks 时因缺少 MoGraph 参数(例如 MG_LINEAR_PERSTEP)而导致的 AttributeError 错误。修复了找到的对象无法正确传递进行克隆的逻辑错误。

  • 渲染:修复了 render_frame 中与 doc.ExecutePasses 相关的 TypeError。snapshot_scene 现已正确使用有效的 base64 渲染逻辑。较大的 render_frame 仍然面临内存限制。

  • 注册:修复了 c4d.NilGuid 的 AttributeError。

Available Tools

25 tools
add_effectorC
Add a MoGraph Effector to the scene.

Args:
    effector_type: Type of effector (random, shader, field)
    name: Optional name for the effector
    target: Optional target object (e.g., cloner) to apply the effector to
ParametersJSON Schema
NameRequiredDescriptionDefault
effector_typeYes
nameNo
targetNo

TDQS

C2.9/5.0
Behavior2/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

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

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

Parameters3/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

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

Args:
    primitive_type: Type of primitive (cube, sphere, cone, cylinder, plane, etc.)
    name: Optional name for the new object
    position: Optional [x, y, z] position
    size: Optional [x, y, z] size or dimensions
ParametersJSON Schema
NameRequiredDescriptionDefault
primitive_typeYes
nameNo
positionNo
sizeNo

TDQS

B3.4/5.0
Behavior2/5

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

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

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

Conciseness4/5

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

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

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

Completeness3/5

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

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

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

Parameters4/5

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

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

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

Purpose5/5

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

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

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

Usage Guidelines2/5

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

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

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

animate_cameraC
Create a camera animation.

Args:
    animation_type: Type of animation (wiggle, orbit, spline, linear)
    camera_name: Optional name of camera to animate
    positions: Optional list of [x,y,z] camera positions for keyframes
    frames: Optional list of frame numbers for keyframes
ParametersJSON Schema
NameRequiredDescriptionDefault
animation_typeYes
camera_nameNo
positionsNo
framesNo

TDQS

C2.9/5.0
Behavior2/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

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

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

Parameters3/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

apply_dynamicsC
Add dynamics (rigid or soft) to the specified object.

Args:
    object_name: Name of the object to apply dynamics to
    dynamics_type: Type of dynamics to apply (rigid, soft)
ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameYes
dynamics_typeYes

TDQS

C2.9/5.0
Behavior2/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

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

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

Parameters3/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

apply_materialC
Apply a material to an object.

Args:
    material_name: Name of the material to apply
    object_name: Name of the object to apply the material to
ParametersJSON Schema
NameRequiredDescriptionDefault
material_nameYes
object_nameYes

TDQS

C2.9/5.0
Behavior2/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

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

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

Parameters3/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

apply_mograph_fieldsC
Create and apply a MoGraph Field.

Args:
    field_type: Type of field (spherical, box, cylindrical, linear, radial, noise)
    target: Optional target object to apply the field to
    field_name: Optional name for the field
    parameters: Optional parameters for the field (strength, falloff)
ParametersJSON Schema
NameRequiredDescriptionDefault
field_typeYes
targetNo
field_nameNo
parametersNo

TDQS

C2.9/5.0
Behavior2/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

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

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

Parameters3/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

apply_shaderC
Create and apply a specialized shader material.

Args:
    shader_type: Type of shader (noise, gradient, fresnel, etc)
    material_name: Optional name of material to apply shader to
    object_name: Optional name of object to apply the material to
ParametersJSON Schema
NameRequiredDescriptionDefault
shader_typeYes
material_nameNo
object_nameNo

TDQS

C2.9/5.0
Behavior2/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

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

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

Parameters3/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

create_abstract_shapeC
Create an organic, abstract shape.

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

TDQS

C2.9/5.0
Behavior2/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

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

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

Parameters3/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

create_cameraC
Create a new camera in the scene.

Args:
    name: Optional name for the new camera.
    position: Optional [x, y, z] position.
    properties: Optional dictionary of camera properties (e.g., {"focal_length": 50}).
ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
positionNo
propertiesNo

TDQS

C2.9/5.0
Behavior2/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

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

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

Parameters3/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

create_lightC
Add a light to the scene.

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

TDQS

C2.9/5.0
Behavior2/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

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

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

Parameters3/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

create_materialB
Create a new material in Cinema 4D.

Args:
    name: Name for the new material
    color: Optional [R, G, B] color (values 0-1)
    properties: Optional additional material properties
ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
colorNo
propertiesNo

TDQS

B3/5.0
Behavior2/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

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

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

Parameters4/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

create_mograph_clonerC
Create a MoGraph Cloner object of specified type.

Args:
    cloner_type: Type of cloner (grid, radial, linear)
    name: Optional name for the cloner
ParametersJSON Schema
NameRequiredDescriptionDefault
cloner_typeYes
nameNo

TDQS

C2.9/5.0
Behavior2/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

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

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

Parameters3/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

create_soft_bodyC
Add soft body dynamics to the specified object.

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

TDQS

C2.9/5.0
Behavior2/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

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

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

Parameters3/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

execute_python_scriptA
Execute a Python script in Cinema 4D's Python environment.

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

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

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

TDQS

A4.9/5.0
Behavior5/5

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

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

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

Conciseness4/5

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

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

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

Completeness5/5

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

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

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

Parameters5/5

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

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

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

Purpose5/5

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

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

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

Usage Guidelines5/5

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

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

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

get_scene_infoB

Get information about the current Cinema 4D scene.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

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

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

Conciseness5/5

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

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

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

Completeness2/5

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

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

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

Parameters4/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

group_objectsC
Group multiple objects under a null object.

Args:
    object_names: List of object names to group
    group_name: Optional name for the group
ParametersJSON Schema
NameRequiredDescriptionDefault
object_namesYes
group_nameNo

TDQS

C2.6/5.0
Behavior2/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

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

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

Parameters3/5

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

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

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

Purpose3/5

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

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

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

Usage Guidelines2/5

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

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

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

inspect_redshift_materialsA
Inspect Redshift materials with best-effort fallbacks.

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

Args:
    material_name: Optional material name filter
    include_assignments: Include texture-tag assignments in the scene
    include_preview: Include sampled preview bitmap color data
    include_description: Include readable description entries
    include_container: Include safe BaseContainer values
    include_graph: Attempt node-graph inspection when available
ParametersJSON Schema
NameRequiredDescriptionDefault
material_nameNo
include_assignmentsNo
include_previewNo
include_descriptionNo
include_containerNo
include_graphNo

TDQS

A4/5.0
Behavior4/5

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

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

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

Conciseness4/5

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

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

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

Completeness4/5

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

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

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

Parameters5/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines3/5

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

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

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

list_objectsA

List all objects in the current Cinema 4D scene.

If this tool returns a validation error, use execute_python_script as a fallback
to traverse the object hierarchy manually via the c4d API.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

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

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

Conciseness5/5

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

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

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

Completeness4/5

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

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

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

Parameters4/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines5/5

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

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

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

load_sceneC
Load a Cinema 4D scene file.

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

TDQS

C2.9/5.0
Behavior2/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

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

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

Parameters3/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

modify_objectC
Modify properties of an existing object.

Args:
    object_name: Name of the object to modify
    properties: Dictionary of properties to modify (position, rotation, scale, etc.)
ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameYes
propertiesYes

TDQS

C2.9/5.0
Behavior2/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

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

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

Parameters3/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

render_frameC
Render the current frame.

Args:
    output_path: Optional path to save the rendered image
    width: Optional render width in pixels
    height: Optional render height in pixels
ParametersJSON Schema
NameRequiredDescriptionDefault
output_pathNo
widthNo
heightNo

TDQS

C2.4/5.0
Behavior2/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

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

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

Parameters2/5

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

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

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

Purpose3/5

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

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

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

Usage Guidelines2/5

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

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

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

render_previewB
Render the current view and return a base64-encoded preview image.

Args:
    width: Optional preview width in pixels
    height: Optional preview height in pixels
    frame: Optional frame number to render
ParametersJSON Schema
NameRequiredDescriptionDefault
widthNo
heightNo
frameNo

TDQS

B3.1/5.0
Behavior2/5

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

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

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

Conciseness5/5

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

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

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

Completeness3/5

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

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

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

Parameters3/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

save_sceneB
Save the current Cinema 4D scene.

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

TDQS

B3/5.0
Behavior2/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

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

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

Parameters4/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

set_keyframeC
Set a keyframe for an object property.

Args:
    object_name: Name of the object
    property_name: Name of the property to keyframe (e.g., 'position.x')
    value: Value to set at the keyframe
    frame: Frame number to set the keyframe at
ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameYes
property_nameYes
valueYes
frameYes

TDQS

C2.9/5.0
Behavior2/5

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

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

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

Conciseness5/5

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

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

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

Completeness2/5

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

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

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

Parameters3/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

snapshot_sceneB
Create a snapshot of the current scene state.

Args:
    file_path: Optional path to save the snapshot
    include_assets: Whether to include external assets in the snapshot
ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathNo
include_assetsNo

TDQS

B3.2/5.0
Behavior2/5

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

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

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

Conciseness5/5

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

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

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

Completeness3/5

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

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

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

Parameters4/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 25 tool updatesv0.1.2
    • First observedadd_effector
    • First observedadd_primitive
    • First observedanimate_camera
    • First observedapply_dynamics
    • First observedapply_material
    • First observedapply_mograph_fields
    • First observedapply_shader
    • First observedcreate_abstract_shape
    • First observedcreate_camera
    • First observedcreate_light
    • First observedcreate_material
    • First observedcreate_mograph_cloner
    • First observedcreate_soft_body
    • First observedexecute_python_script
    • First observedget_scene_info
    • First observedgroup_objects
    • First observedinspect_redshift_materials
    • First observedlist_objects
    • First observedload_scene
    • First observedmodify_object
    • First observedrender_frame
    • First observedrender_preview
    • First observedsave_scene
    • First observedset_keyframe
    • First observedsnapshot_scene

TDQS

B3.2/5.0

Scored across 25 tools

Disambiguation4/5

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

Naming Consistency5/5

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

Tool Count3/5

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

Completeness5/5

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

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

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