Cinema4D MCP Server
Cinema4D MCP — モデルコンテキストプロトコル(MCP)サーバー
Cinema4D MCP サーバーは Cinema 4D を Claude に接続し、プロンプトによる 3D 操作を可能にします。
目次
Related MCP server: BlenderMCP
コンポーネント
C4D プラグイン: MCP サーバーからのコマンドをリッスンし、Cinema 4D 環境で実行するソケット サーバー。
MCP サーバー: MCP プロトコルを実装し、Cinema 4D 統合用のツールを提供する Python サーバー。
前提条件
Cinema 4D(R2024+推奨)
Python 3.10 以上 (MCP サーバー コンポーネント用)
インストール
プロジェクトをインストールするには、次の手順に従います。
リポジトリのクローンを作成する
git clone https://github.com/ttiimmaacc/cinema4d-mcp.git
cd cinema4d-mcpMCP サーバー パッケージをインストールする
pip install -e .ラッパースクリプトを実行可能にする
chmod +x bin/cinema4d-mcp-wrapper設定
Cinema 4Dプラグインのセットアップ
Cinema 4D プラグインを設定するには、次の手順に従います。
プラグインファイルのコピー:
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\
ソケットサーバーを起動します:
Cinema 4Dを開きます。
拡張機能 > ソケットサーバープラグインに移動します
ソケットサーバーコントロールのダイアログウィンドウが表示されます。「サーバーを起動」をクリックします。
クロードデスクトップ構成
Claude Desktop を構成するには、構成ファイルを変更する必要があります。
設定ファイルを開きます:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonまたは、Claude Desktop の [設定] メニュー ([設定] > [開発者] > [構成の編集]) を使用します。
MCP サーバー構成の追加: 開発/非公開サーバーの場合は、次の構成を追加します。
"mcpServers": { "cinema4d": { "command": "python3", "args": ["/Users/username/cinema4d-mcp/main.py"] } }設定ファイルを更新した後、 Claude Desktop を再起動します。
{
"mcpServers": {
"cinema4d": {
"command": "cinema4d-mcp-wrapper",
"args": []
}
}
}使用法
Cinema 4D ソケット サーバーが実行されていることを確認します。
Claude Desktop を開き、入力ボックスで MCP ツールが利用可能であることを示すハンマー アイコン 🔨 を探します。
利用可能なツール コマンドを使用して、Claude を通じて Cinema 4D を操作します。
テスト
コマンドラインテスト
コマンドラインから Cinema 4D ソケット サーバーを直接テストするには:
python main.pyサーバーの正常な起動と Cinema 4D への接続を確認する出力が表示されます。
MCPテストハーネスによるテスト
リポジトリには、事前定義されたコマンド シーケンスを実行するためのシンプルなテスト ハーネスが含まれています。
テストコマンドファイル(
tests/mcp_test_harness.jsonl): 順番に実行できるJSONL形式のコマンドシーケンスが含まれています。各行は、パラメータを含む単一のMCPコマンドを表します。GUI テスト ランナー(
tests/mcp_test_harness_gui.py): テスト コマンドを実行するためのシンプルな Tkinter GUI:python tests/mcp_test_harness_gui.pyGUI を使用すると次のことが可能です。
JSONLテストファイルを選択
コマンドを順番に実行する
Cinema 4Dからの回答を見る
このテストハーネスは、特に次の場合に役立ちます。
新しいコマンドを迅速にテストする
アップデート後のプラグインの機能の検証
デバッグのために複雑なシーンを再現する
異なるCinema 4Dバージョン間の互換性テスト
トラブルシューティングとデバッグ
ログファイルを確認します:
tail -f ~/Library/Logs/Claude/mcp*.logClaude Desktop を開いた後、Cinema 4D のコンソールに接続が表示されていることを確認します。
ラッパー スクリプトを直接テストします。
cinema4d-mcp-wrappermcp モジュールを見つける際にエラーが発生する場合は、システム全体にインストールします。
pip install mcp高度なデバッグには、 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: 選択したオブジェクトを新しいヌルの下にグループ化します。✅execute_python: Cinema 4D 内でカスタム 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 Cloner (線形、放射状、グリッドなど) を追加します。✅add_effector: MoGraph エフェクター(ランダム、プレーンなど)を追加します。✅apply_mograph_fields: MoGraph フィールドをオブジェクトに追加してリンクします。✅
力学と物理学
create_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、actual_nameなど)を返します。後続のコマンドは、テストハーネス/サーバーから渡された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、list items) で渡された識別子が GUID であるかどうかを正しく検出し、それに応じて検索するようになりました。
create_mograph_cloner: getattr フォールバックを使用することで、MoGraph パラメータ(MG_LINEAR_PERSTEP など)が不足している場合に発生する AttributeError を修正しました。見つかったオブジェクトがクローン作成時に正しく渡されないロジックのバグを修正しました。
レンダリング: render_frame の doc.ExecutePasses 関連の TypeError を修正しました。snapshot_scene は、base64 レンダリングロジックを正しく使用するようになりました。大きな render_frame は依然としてメモリ制限に直面します。
登録: c4d.NilGuid の AttributeError を修正しました。
Available Tools
25 toolsadd_effectorC
Add a MoGraph Effector to the scene.
Args:
effector_type: Type of effector (random, shader, field)
name: Optional name for the effector
target: Optional target object (e.g., cloner) to apply the effector to
| Name | Required | Description | Default |
|---|---|---|---|
| effector_type | Yes | ||
| name | No | ||
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the action ('Add') but doesn't disclose behavioral traits such as whether this creates a permanent change, requires specific scene states, has side effects, or what happens on failure. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the main purpose, followed by a parameter list. The sentences are efficient, though the parameter explanations could be slightly more informative without adding bulk.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (adding an effector in a 3D tool), lack of annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't explain what an effector does, how it integrates into the scene, what the tool returns, or error conditions, making it insufficient for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It lists the three parameters with brief explanations (e.g., 'Type of effector', 'Optional name'), adding some meaning beyond the bare schema. However, it doesn't provide details like valid values for 'effector_type' or how 'target' interacts with the scene, leaving gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Add') and resource ('MoGraph Effector to the scene'), making the purpose explicit. However, it doesn't differentiate from sibling tools like 'apply_mograph_fields' or 'create_mograph_cloner', which might have overlapping functionality in a 3D modeling context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'apply_mograph_fields' and 'create_mograph_cloner', there's no indication of how this tool fits into the workflow or what makes it distinct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_primitiveB
Add a primitive object to the Cinema 4D scene.
Args:
primitive_type: Type of primitive (cube, sphere, cone, cylinder, plane, etc.)
name: Optional name for the new object
position: Optional [x, y, z] position
size: Optional [x, y, z] size or dimensions
| Name | Required | Description | Default |
|---|---|---|---|
| primitive_type | Yes | ||
| name | No | ||
| position | No | ||
| size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool adds an object to the scene (implying a write/mutation operation) but lacks details on permissions, side effects, error handling, or what happens if parameters are omitted. For a mutation tool with zero annotation coverage, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement followed by a bullet-point-like parameter explanation. It's appropriately sized with no redundant information, though the parameter section could be slightly more integrated into the flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers the basic purpose and parameters adequately. However, it lacks critical behavioral context (e.g., what the tool returns, error conditions, or scene impact), making it incomplete for safe and effective use by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It effectively explains all four parameters: 'primitive_type' (with examples like cube, sphere), 'name' (optional name), 'position' (optional [x,y,z]), and 'size' (optional [x,y,z] dimensions). This adds significant meaning beyond the bare schema, though it doesn't specify default values or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Add a primitive object') and resource ('to the Cinema 4D scene'), distinguishing it from sibling tools like 'create_abstract_shape' or 'create_camera' which create different types of objects. The verb 'Add' is precise and the context is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'create_abstract_shape' or 'create_camera', nor does it mention prerequisites or exclusions. It simply states what the tool does without contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
animate_cameraC
Create a camera animation.
Args:
animation_type: Type of animation (wiggle, orbit, spline, linear)
camera_name: Optional name of camera to animate
positions: Optional list of [x,y,z] camera positions for keyframes
frames: Optional list of frame numbers for keyframes
| Name | Required | Description | Default |
|---|---|---|---|
| animation_type | Yes | ||
| camera_name | No | ||
| positions | No | ||
| frames | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates an animation but doesn't explain what that entails—whether it modifies existing scenes, requires specific permissions, has side effects, or what the expected outcome looks like. This leaves significant gaps for an AI agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by a structured list of parameters. It's efficient with minimal waste, though the parameter explanations could be slightly more detailed without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a 4-parameter tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like what the tool returns, error conditions, or how it integrates with sibling tools (e.g., 'create_camera'). This makes it inadequate for an AI agent to use the tool confidently in a 3D animation workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It lists all parameters and provides basic semantics (e.g., 'animation_type' options, 'positions' as [x,y,z] lists), adding value beyond the bare schema. However, it doesn't explain how parameters interact (e.g., if 'positions' and 'frames' must match in length) or provide examples, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create') and resource ('camera animation'), making the purpose evident. However, it doesn't differentiate this tool from sibling tools like 'set_keyframe' or 'create_camera', which might have overlapping functionality in a 3D animation context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'set_keyframe' or 'create_camera'. The description lacks context about prerequisites, such as whether a camera must exist first, or when different animation types are appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_dynamicsC
Add dynamics (rigid or soft) to the specified object.
Args:
object_name: Name of the object to apply dynamics to
dynamics_type: Type of dynamics to apply (rigid, soft)
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| dynamics_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a write operation ('Add') but doesn't disclose permissions needed, whether changes are reversible, side effects on the object, or error conditions. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the core purpose, followed by parameter explanations. There's no wasted text, though it could be more structured (e.g., bullet points). Every sentence adds value, making it efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and low schema coverage, the description is insufficient. It doesn't explain what 'dynamics' entail, the result of application, error handling, or integration with sibling tools. More context is needed for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter descriptions. The description adds basic semantics by explaining 'object_name' as 'Name of the object to apply dynamics to' and 'dynamics_type' with examples ('rigid, soft'), but lacks details like format constraints or valid values beyond the two examples. It partially compensates but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add dynamics') and target ('to the specified object'), with specific dynamics types mentioned. It distinguishes from siblings like 'create_soft_body' or 'modify_object' by focusing on dynamics application rather than creation or general modification. However, it doesn't explicitly differentiate from all potential overlapping tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like 'create_soft_body' or 'modify_object'. The description lacks context about prerequisites (e.g., object must exist), exclusions, or typical scenarios for applying dynamics versus other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_materialC
Apply a material to an object.
Args:
material_name: Name of the material to apply
object_name: Name of the object to apply the material to
| Name | Required | Description | Default |
|---|---|---|---|
| material_name | Yes | ||
| object_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('apply') but doesn't describe what happens during application (e.g., whether it overwrites existing materials, requires specific permissions, has side effects like scene modification, or what the expected outcome is). This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the core purpose in the first sentence, followed by parameter details. There's minimal waste, though the 'Args' formatting could be more integrated. It efficiently conveys essential information without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavior (e.g., success/failure outcomes, error conditions), prerequisites, and how it fits among sibling tools (e.g., 'apply_shader'), leaving the agent with insufficient context for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description includes an 'Args' section that names both parameters ('material_name' and 'object_name'), adding meaning beyond the input schema, which has 0% description coverage. However, it doesn't explain what constitutes valid names (e.g., format, existence requirements) or provide examples, so it only partially compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('apply a material') and the target ('to an object'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'apply_shader' or 'create_material', which could be related operations in a 3D modeling context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., whether materials or objects must exist), context (e.g., scene editing vs. rendering), or exclusions (e.g., not for shaders or effects).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_mograph_fieldsC
Create and apply a MoGraph Field.
Args:
field_type: Type of field (spherical, box, cylindrical, linear, radial, noise)
target: Optional target object to apply the field to
field_name: Optional name for the field
parameters: Optional parameters for the field (strength, falloff)
| Name | Required | Description | Default |
|---|---|---|---|
| field_type | Yes | ||
| target | No | ||
| field_name | No | ||
| parameters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a creation and application action but doesn't specify if this is a destructive operation, what permissions are required, how it affects the scene, or any rate limits. The description adds minimal context beyond the basic action, leaving significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose in the first sentence, followed by a parameter list. It's efficient with minimal waste, though the parameter descriptions could be more detailed. The structure is clear, but it lacks additional context that might be necessary for full understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, 0% schema coverage, no annotations, no output schema), the description is incomplete. It covers the basic action and parameters but misses behavioral details, usage context, and output expectations. For a tool that creates and applies fields in a 3D scene, more information on effects and integration with sibling tools is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists parameters and their types (e.g., 'field_type' with enum-like values), adding meaning beyond the input schema, which has 0% description coverage. However, it doesn't fully compensate for the coverage gap—for example, 'parameters' is vaguely described as 'Optional parameters for the field (strength, falloff)' without detailing structure or defaults. This provides some value but is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Create and apply a MoGraph Field.' It specifies the action (create and apply) and the resource (MoGraph Field), which is specific and actionable. However, it doesn't differentiate from sibling tools like 'add_effector' or 'apply_dynamics' that might involve similar operations, keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It lists parameters but doesn't mention prerequisites, context (e.g., when MoGraph Fields are needed in a scene), or comparisons to sibling tools like 'add_effector' or 'apply_dynamics'. This leaves the agent without clear usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_shaderC
Create and apply a specialized shader material.
Args:
shader_type: Type of shader (noise, gradient, fresnel, etc)
material_name: Optional name of material to apply shader to
object_name: Optional name of object to apply the material to
| Name | Required | Description | Default |
|---|---|---|---|
| shader_type | Yes | ||
| material_name | No | ||
| object_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral information. It mentions 'create and apply' which implies a write operation, but doesn't disclose what happens if materials/objects don't exist, whether changes are reversible, what permissions are needed, or what the tool returns. For a mutation tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately brief with a clear purpose statement followed by parameter documentation. The two-sentence structure is efficient, though the parameter documentation could be more integrated with the purpose statement rather than presented as a separate 'Args' section.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after application, error conditions, or return values. Given the complexity of shader operations and lack of structured documentation, the description should provide more operational context to be truly helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description provides basic parameter names and optionality but minimal semantic context. It lists 'shader_type' with examples (noise, gradient, fresnel) and notes optional parameters, but doesn't explain what these shader types do, format requirements, or how material/object names are resolved. The description adds some value but doesn't fully compensate for the schema coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create and apply') and resource ('specialized shader material'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'apply_material' or 'create_material', which could cause confusion about when to use this specific shader-focused tool versus general material tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like 'apply_material' or 'create_material'. The description only lists parameters without explaining the context or prerequisites for applying shaders, leaving the agent to guess about appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_abstract_shapeC
Create an organic, abstract shape.
Args:
shape_type: Type of shape (blob, metaball)
name: Optional name for the shape
| Name | Required | Description | Default |
|---|---|---|---|
| shape_type | Yes | ||
| name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool creates something, implying a write operation, but doesn't disclose behavioral traits like permissions needed, whether the shape is editable after creation, or how it integrates into the scene. This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences: one stating the purpose and another listing parameters. It's front-loaded with the main action, though the parameter section could be more integrated. No wasted words, but structure is basic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 0% schema coverage, the description is incomplete. It covers basic purpose and parameters but lacks crucial context for a creation tool, such as what happens after creation, error conditions, or return values, making it inadequate for safe use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining 'shape_type' options (blob, metaball) and noting 'name' is optional, which helps beyond the bare schema. However, it doesn't fully document both parameters (e.g., what blob/metaball entail, name constraints), leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('organic, abstract shape'), making the purpose understandable. However, it doesn't differentiate this tool from similar sibling tools like 'add_primitive' or 'create_camera', which also create objects in the scene.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, context (e.g., when abstract shapes are appropriate), or comparisons to sibling tools like 'add_primitive' for different shape types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cameraC
Create a new camera in the scene.
Args:
name: Optional name for the new camera.
position: Optional [x, y, z] position.
properties: Optional dictionary of camera properties (e.g., {"focal_length": 50}).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| position | No | ||
| properties | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits such as whether creation is reversible, requires specific permissions, affects scene state, or has side effects like auto-selection. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the main purpose, followed by parameter details. Each sentence adds value without redundancy, though the parameter section could be more structured (e.g., bullet points) for better readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a creation tool with no annotations, no output schema, and 3 parameters, the description is incomplete. It lacks information on return values, error conditions, or how the camera integrates into the scene, making it insufficient for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists all three parameters with brief examples (e.g., '{"focal_length": 50}'), adding meaning beyond the schema, which has 0% description coverage. However, it doesn't fully compensate by explaining parameter interactions, defaults, or constraints (e.g., valid property keys), leaving gaps in understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and resource 'new camera in the scene', making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'animate_camera' or 'modify_object', which would require more context about when to create versus animate or modify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an active scene), exclusions, or comparisons to siblings like 'create_light' or 'create_abstract_shape', leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_lightC
Add a light to the scene.
Args:
light_type: Type of light (area, dome, spot)
name: Optional name for the light
| Name | Required | Description | Default |
|---|---|---|---|
| light_type | Yes | ||
| name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool adds a light, implying a mutation, but doesn't cover permissions, side effects, error conditions, or response format. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the main purpose, followed by parameter details. It avoids unnecessary words, but the parameter section could be more structured (e.g., using bullet points). Overall, it's efficient but not perfectly optimized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a scene manipulation tool with no annotations, no output schema, and incomplete parameter documentation, the description is insufficient. It doesn't explain what happens after adding the light, potential errors, or integration with sibling tools, leaving significant gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists the parameters ('light_type' and 'name') and provides minimal semantics (e.g., 'Type of light' with examples, 'Optional name'). However, with 0% schema description coverage, it doesn't fully compensate—it lacks details like allowed values for 'light_type' beyond examples or naming constraints. Baseline is 3 as it adds some meaning but not enough to cover the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add') and resource ('a light to the scene'), making the purpose understandable. However, it doesn't distinguish this tool from sibling tools like 'add_effector' or 'add_primitive', which also add elements to scenes, so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or exclusions, leaving the agent with no usage instructions beyond the basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_materialB
Create a new material in Cinema 4D.
Args:
name: Name for the new material
color: Optional [R, G, B] color (values 0-1)
properties: Optional additional material properties
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| color | No | ||
| properties | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a creation operation but doesn't mention permissions needed, whether it's destructive to existing materials, what happens on failure, or any rate limits. The description provides minimal behavioral context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement followed by parameter explanations. Every sentence serves a purpose, though the parameter explanations could be slightly more detailed given the lack of schema descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with no annotations, no output schema, and 0% schema description coverage, the description is insufficient. It doesn't explain what the tool returns, error conditions, or important behavioral aspects like whether the material becomes active/selected after creation or how it integrates with the scene.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate, and it does by explaining all three parameters: 'name' (required name), 'color' (optional RGB array with value range), and 'properties' (optional additional properties). This adds significant semantic value beyond the bare schema, though it doesn't detail what 'properties' might contain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new material') and the target system ('in Cinema 4D'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'apply_material' or 'apply_shader', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'apply_material' or 'apply_shader'. There's no mention of prerequisites, context, or exclusions, leaving the agent with insufficient usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_mograph_clonerC
Create a MoGraph Cloner object of specified type.
Args:
cloner_type: Type of cloner (grid, radial, linear)
name: Optional name for the cloner
| Name | Required | Description | Default |
|---|---|---|---|
| cloner_type | Yes | ||
| name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states it 'creates' an object, implying a write/mutation operation, but doesn't disclose permissions needed, whether it's destructive to existing objects, rate limits, or what happens after creation (e.g., selection state, scene modification). For a creation tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences: a purpose statement and parameter explanations. It's front-loaded with the main action. The parameter section is clear but could be more integrated. No wasted words, though slightly terse for a tool with no annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity (creation tool with 2 parameters), no annotations, no output schema, and 0% schema coverage, the description is incomplete. It doesn't explain what a MoGraph Cloner is, typical use cases, return values, error conditions, or integration with sibling tools. For adequate context, it needs more behavioral and operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining 'cloner_type' accepts specific values (grid, radial, linear) and 'name' is optional, which goes beyond the bare schema. However, it doesn't explain what these cloner types do, format constraints, or default behaviors when name is null, leaving gaps for the 2 parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'MoGraph Cloner object', specifying it creates a cloner of a specified type. It distinguishes from siblings like 'add_primitive' or 'create_camera' by focusing on MoGraph cloning functionality. However, it doesn't explicitly differentiate from all possible creation tools, keeping it at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, typical workflows, or when other tools like 'apply_mograph_fields' or 'group_objects' might be more appropriate. The only implied usage is creating a cloner, but no context about timing or alternatives is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_soft_bodyC
Add soft body dynamics to the specified object.
Args:
object_name: Name of the object to convert to a soft body
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states the tool 'converts' an object to a soft body, implying a mutation operation, but doesn't describe what this entails (e.g., whether it's reversible, what parameters are set by default, or if it requires specific object types). This leaves significant gaps for a tool that likely modifies scene state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the core purpose stated first. The 'Args' section adds structure but is somewhat redundant since the parameter is simple. Overall, it's efficient with minimal waste, though the formatting could be more integrated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a dynamics tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'soft body dynamics' entails, what the tool returns (e.g., success status or modified object details), or error conditions. For a mutation tool in a 3D context, this lacks necessary operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds minimal semantics by explaining that 'object_name' refers to 'Name of the object to convert to a soft body', which clarifies the parameter's role. However, it doesn't provide format details (e.g., naming conventions) or constraints beyond what's implied, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add soft body dynamics') and target ('to the specified object'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from sibling tools like 'apply_dynamics' or 'modify_object', which might have overlapping functionality in a 3D/graphics context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., whether the object must exist in the scene), exclusions, or comparisons to sibling tools like 'apply_dynamics' or 'modify_object' that might handle similar operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_python_scriptA
Execute a Python script in Cinema 4D's Python environment.
This is the most reliable tool for non-trivial operations — it gives full access
to the c4d API and avoids wrapper/schema mismatches that can affect other tools.
Args:
script: Python code to execute in Cinema 4D. Has access to `c4d` and
`c4d.modules.mograph` modules.
Important usage notes:
- For animated/MoGraph data, always call doc.ExecutePasses() after SetTime():
doc.SetTime(c4d.BaseTime(frame, fps))
doc.ExecutePasses(None, True, True, True, c4d.BUILDFLAGS_NONE)
- For MoGraph/effector data, iterate frames sequentially (0..N) rather than
jumping directly to a later frame — sequential stepping produces more
faithful results.
- Security restrictions block certain keywords: import os, subprocess, exec(, eval(.
Keep scripts within the c4d API surface.
- For heavy operations (dense frame loops, complex MoGraph scenes), split work
into multiple smaller scripts rather than one large monolith.
- Use print() to return results — output is captured and returned.
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It comprehensively describes critical behavioral traits: security restrictions (blocking certain keywords), performance considerations (splitting heavy operations), output mechanism (using print() to return results), and specific API usage patterns (ExecutePasses after SetTime, sequential frame iteration). This goes well beyond what a basic description would provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, args, important usage notes) and every sentence adds value. While comprehensive, it might be slightly verbose for a single-parameter tool, but the information density is high with no wasted text. The front-loaded purpose statement immediately communicates the tool's core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of executing arbitrary Python code in a specialized environment with no annotations or output schema, the description provides exceptional completeness. It covers purpose, usage guidelines, behavioral constraints, parameter details, security considerations, performance best practices, and output mechanism. For a tool with this level of complexity and zero structured metadata, the description is remarkably thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for the single parameter, the description fully compensates by providing detailed semantics for the 'script' parameter. It explains what the script should contain ('Python code to execute'), what modules are available ('access to c4d and c4d.modules.mograph'), and provides multiple examples of proper script structure and content throughout the usage notes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Execute a Python script') and the target environment ('in Cinema 4D's Python environment'), distinguishing it from sibling tools that perform specific operations like 'add_effector' or 'render_frame'. It explicitly mentions this is for 'non-trivial operations' and gives 'full access to the c4d API', which differentiates it from more specialized tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('most reliable tool for non-trivial operations') and when to use alternatives ('avoids wrapper/schema mismatches that can affect other tools'). It also includes specific usage notes for different scenarios (animated/MoGraph data, heavy operations), making it clear when this tool is preferred over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scene_infoB
Get information about the current Cinema 4D scene.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states it 'gets information' but doesn't specify what type of information (e.g., scene properties, object counts, render settings), whether it's read-only (implied but not explicit), or any limitations (e.g., performance impact, scene state requirements). This leaves significant gaps in understanding how the tool behaves beyond its basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the tool's purpose with zero wasted words. It's front-loaded and efficiently communicates the essential action without unnecessary elaboration, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a scene information tool with no annotations and no output schema, the description is incomplete. It doesn't explain what information is returned (e.g., scene dimensions, object lists, settings), potential errors, or dependencies. For a tool that likely returns structured data about a 3D scene, more context is needed to help the agent understand the output and use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to compensate for any gaps, and it appropriately avoids discussing parameters. A baseline of 4 is applied since no parameter information is required, and the description doesn't mislead about inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('information about the current Cinema 4D scene'), making the purpose immediately understandable. It distinguishes itself from siblings like 'list_objects' or 'inspect_redshift_materials' by focusing on general scene metadata rather than specific object listings or material details. However, it doesn't explicitly contrast with 'snapshot_scene' which might also provide scene information, keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a loaded scene), exclusions, or comparisons to siblings like 'snapshot_scene' or 'list_objects' that might overlap in functionality. The agent must infer usage from the tool name alone, which is insufficient for optimal selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
group_objectsC
Group multiple objects under a null object.
Args:
object_names: List of object names to group
group_name: Optional name for the group
| Name | Required | Description | Default |
|---|---|---|---|
| object_names | Yes | ||
| group_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions grouping objects but doesn't explain what happens after grouping (e.g., does it create a new parent object, modify existing ones, affect scene hierarchy?), whether it's reversible, or any side effects like performance impacts. The phrase 'under a null object' is ambiguous and adds little clarity. More behavioral details are needed for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a clear opening sentence followed by a bullet-point list of args. There's no unnecessary fluff, and information is front-loaded. It could be slightly more informative without losing conciseness, but it's efficient as is.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a mutation tool with 2 parameters, no annotations, no output schema, and 0% schema coverage), the description is incomplete. It doesn't explain the outcome of grouping, error conditions, or how this fits into the broader context of sibling tools like scene manipulation. For a tool that likely alters scene state, more completeness is needed to guide safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists parameters ('object_names' and 'group_name') and provides brief explanations, adding some meaning beyond the input schema, which has 0% description coverage. However, it doesn't elaborate on constraints (e.g., what constitutes valid object names, length limits, or the effect of a null group_name). With 2 parameters and low schema coverage, this offers basic compensation but lacks depth.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Group multiple objects') and target ('under a null object'), which clarifies the basic purpose. However, it's vague about what 'null object' means in this context and doesn't distinguish this tool from potential alternatives like 'modify_object' or 'create_abstract_shape' among the siblings. The purpose is understandable but lacks specificity about the domain or system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'modify_object', 'create_abstract_shape', and 'list_objects', there's no indication of prerequisites, typical workflows, or scenarios where grouping objects is preferred over other operations. This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_redshift_materialsA
Inspect Redshift materials with best-effort fallbacks.
This tool is read-only and is designed to be useful even when the Redshift
Python runtime is unavailable. It can still report names, assignments,
preview-derived colors, readable description/container fields, and will
attempt graph inspection only when Cinema 4D exposes that data.
Args:
material_name: Optional material name filter
include_assignments: Include texture-tag assignments in the scene
include_preview: Include sampled preview bitmap color data
include_description: Include readable description entries
include_container: Include safe BaseContainer values
include_graph: Attempt node-graph inspection when available
| Name | Required | Description | Default |
|---|---|---|---|
| material_name | No | ||
| include_assignments | No | ||
| include_preview | No | ||
| include_description | No | ||
| include_container | No | ||
| include_graph | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by declaring it's read-only, works with fallbacks when runtime is unavailable, and specifies what data it can report (names, assignments, preview colors, etc.). It also notes graph inspection is only attempted when Cinema 4D exposes that data, adding useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose, followed by a structured parameter explanation. Every sentence adds value, though the parameter list is somewhat verbose but necessary given the lack of schema descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, no annotations, no output schema), the description is quite complete: it explains the tool's behavior, fallback mechanisms, and each parameter's semantics. It could improve by hinting at return values or error handling, but covers most essentials well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate fully. It provides a detailed 'Args' section explaining each parameter's purpose (e.g., 'material_name' as an optional filter, 'include_assignments' for texture-tag assignments), adding significant meaning beyond the bare schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool inspects Redshift materials with best-effort fallbacks, specifying it's read-only and works even when Redshift Python runtime is unavailable. It distinguishes from siblings like 'apply_material' or 'create_material' by focusing on inspection rather than creation or application, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when inspecting materials, especially in environments where Redshift Python runtime might be unavailable, but doesn't provide explicit guidance on when to use this versus alternatives like 'get_scene_info' or 'list_objects'. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_objectsA
List all objects in the current Cinema 4D scene.
If this tool returns a validation error, use execute_python_script as a fallback
to traverse the object hierarchy manually via the c4d API.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes a read-only operation ('List all objects') and adds valuable context about potential validation errors and a fallback mechanism. However, it doesn't cover other behavioral aspects like performance, rate limits, or output format details, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured. The first sentence directly states the purpose, and the second sentence provides essential usage guidance without unnecessary details. Every sentence earns its place, making it efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is largely complete. It explains what the tool does and includes a fallback strategy. However, without an output schema, it doesn't describe the return format (e.g., list structure, object types), which could be helpful for an agent to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the schema description coverage is 100%. The description doesn't need to explain parameters, so it meets the baseline of 4. It appropriately focuses on the tool's functionality without redundant parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List all objects in the current Cinema 4D scene.' It specifies the verb ('List') and resource ('objects'), and distinguishes it from siblings that create, modify, or render objects. However, it doesn't explicitly differentiate from 'get_scene_info' or 'snapshot_scene', which might also provide scene-related information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use an alternative: 'If this tool returns a validation error, use execute_python_script as a fallback to traverse the object hierarchy manually via the c4d API.' This clearly defines a fallback scenario and names the specific alternative tool, helping the agent handle edge cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_sceneC
Load a Cinema 4D scene file.
Args:
file_path: Path to the scene file to load
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Load') but doesn't describe what happens during loading (e.g., whether it replaces the current scene, requires specific file formats, or has side effects like resetting settings). This leaves critical behavioral traits undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with a clear purpose statement followed by parameter details. Both sentences earn their place, though the 'Args' section could be more integrated into the flow rather than a separate block.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (loading a scene file, which is a significant operation) and the lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral aspects, error conditions, or what happens post-load, making it inadequate for safe and effective use by an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description includes an 'Args' section that documents the single parameter 'file_path', adding meaning beyond the input schema (which has 0% schema description coverage). However, it only provides a basic label without details on format, constraints, or examples, offering limited compensation for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Load') and resource ('a Cinema 4D scene file'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'save_scene' or 'snapshot_scene', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether a scene must be closed first), compare it to similar tools like 'snapshot_scene', or specify when not to use it, leaving the agent with minimal context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modify_objectC
Modify properties of an existing object.
Args:
object_name: Name of the object to modify
properties: Dictionary of properties to modify (position, rotation, scale, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| properties | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this modifies existing objects but doesn't mention what happens if the object doesn't exist, whether changes are reversible, what permissions are needed, or what the response looks like. For a mutation tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately brief with a clear purpose statement followed by parameter explanations. The 'Args:' section is helpful, though the 'etc.' in the properties explanation could be more precise. Overall, it's efficient without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 2 parameters (including a nested object), 0% schema description coverage, no annotations, and no output schema, the description is insufficient. It doesn't explain what happens after modification, what error conditions exist, or provide enough detail about the properties parameter to use the tool effectively without trial and error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds some value by explaining both parameters: 'object_name' identifies the target and 'properties' contains the modifications. However, it doesn't specify valid property names or value formats beyond the vague 'position, rotation, scale, etc.', leaving significant ambiguity about what can actually be modified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('modify') and resource ('properties of an existing object'), making the purpose understandable. However, it doesn't distinguish this tool from similar sibling tools like 'set_keyframe' or 'group_objects' that might also modify objects in different ways.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'set_keyframe' (for animation), 'group_objects' (for organization), and 'apply_material' (for appearance), there's no indication of when this general property modification tool is preferred over more specific tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_frameC
Render the current frame.
Args:
output_path: Optional path to save the rendered image
width: Optional render width in pixels
height: Optional render height in pixels
| Name | Required | Description | Default |
|---|---|---|---|
| output_path | No | ||
| width | No | ||
| height | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions rendering but fails to describe key traits: whether it's a read-only or destructive operation, if it requires specific permissions, what happens if parameters are omitted (e.g., default behavior), or the output format (e.g., image type). This leaves significant gaps for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the main action, followed by a parameter list. It avoids unnecessary words, but the parameter section could be more integrated (e.g., explaining defaults). Overall, it's efficient but could be slightly more structured for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a rendering tool with 3 parameters), no annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects, output details, or usage context, making it insufficient for an agent to reliably invoke the tool without additional assumptions or trial-and-error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists parameters and their basic purposes (e.g., 'output_path' for saving, 'width' and 'height' in pixels), but adds minimal semantic value: it doesn't explain file format expectations for 'output_path', valid ranges for dimensions, or interactions between parameters. This is inadequate given the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Render') and target ('the current frame'), which provides a basic purpose. However, it's vague about what 'current frame' means in context (e.g., from a 3D scene, animation, or simulation) and doesn't distinguish it from sibling tools like 'render_preview' or 'snapshot_scene', leaving ambiguity about when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'render_preview' or 'snapshot_scene'. The description lacks context about prerequisites (e.g., needing an active scene or frame) or typical use cases, offering minimal help for an agent to decide between similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_previewB
Render the current view and return a base64-encoded preview image.
Args:
width: Optional preview width in pixels
height: Optional preview height in pixels
frame: Optional frame number to render
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | ||
| height | No | ||
| frame | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the action ('Render') and output format ('base64-encoded preview image'), but lacks details on permissions, rate limits, side effects (e.g., whether rendering affects scene state), or error conditions. For a tool that likely performs computationally intensive rendering, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured: a clear purpose statement followed by a bulleted list of parameters with concise explanations. Every sentence earns its place, with no redundant or verbose language. It's appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is moderately complete. It covers the basic purpose and parameters but misses behavioral details (e.g., performance implications, error handling) and output specifics beyond 'base64-encoded preview image'. For a rendering tool in a 3D context, more context on scene state and rendering behavior would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists all three parameters (width, height, frame) with brief explanations (e.g., 'Optional preview width in pixels'), adding meaning beyond the input schema, which has 0% description coverage. However, it doesn't provide details on default values, constraints (e.g., valid ranges), or interactions between parameters (e.g., if width/height affect aspect ratio). This partially compensates for the schema gap but isn't comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Render the current view and return a base64-encoded preview image.' It specifies the verb ('Render'), resource ('current view'), and output format ('base64-encoded preview image'). However, it doesn't explicitly differentiate from sibling tools like 'render_frame' or 'snapshot_scene', which likely have overlapping functionality in a 3D rendering context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., whether a scene must be loaded), exclusions, or comparisons to sibling tools like 'render_frame' or 'snapshot_scene'. Usage context is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_sceneB
Save the current Cinema 4D scene.
Args:
file_path: Optional path to save the scene to
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool saves the scene but doesn't mention whether this overwrites existing files, requires specific permissions, has side effects on the current scene, or what happens on success/failure. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the main purpose, followed by parameter details. Both sentences earn their place, though the structure could be slightly improved by integrating the parameter explanation more seamlessly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and minimal parameter documentation, the description is incomplete. It doesn't cover behavioral aspects like file overwriting, error conditions, or what 'save' entails in this context, leaving significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for the single parameter by explaining that 'file_path' is optional and specifies its purpose ('path to save the scene to'). Since schema description coverage is 0% and there's only one parameter, this adequately compensates, though it lacks details like format or default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Save') and resource ('current Cinema 4D scene'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'snapshot_scene' or 'load_scene', but the action is specific enough to be distinguished by context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'snapshot_scene' or 'load_scene'. It mentions an optional file_path parameter but doesn't explain the default behavior or prerequisites for saving scenes, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_keyframeC
Set a keyframe for an object property.
Args:
object_name: Name of the object
property_name: Name of the property to keyframe (e.g., 'position.x')
value: Value to set at the keyframe
frame: Frame number to set the keyframe at
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| property_name | Yes | ||
| value | Yes | ||
| frame | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Set a keyframe') but doesn't clarify if this is a destructive operation (e.g., overwrites existing keyframes), what permissions are needed, or what happens on success/failure. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured: a clear purpose statement followed by a bullet-point list of parameters with concise explanations. Every sentence earns its place, and there's no redundant or verbose text. It's appropriately sized for a 4-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a mutation tool in an animation/3D context with 4 parameters), no annotations, and no output schema, the description is incomplete. It doesn't explain what a keyframe is in this system, how it interacts with other tools (e.g., rendering), or what the tool returns. For a tool that likely modifies scene state, more behavioral context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter descriptions. The description compensates by listing all 4 parameters with brief explanations (e.g., 'Name of the property to keyframe'), which adds meaningful context beyond just the parameter names. However, it doesn't provide examples beyond 'position.x' or detail constraints (e.g., valid property names, value types).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set a keyframe') and the target ('for an object property'), which is specific and unambiguous. However, it doesn't distinguish this tool from potential siblings like 'animate_camera' or 'modify_object', which might also involve keyframing or property manipulation in this animation/3D context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. Given sibling tools like 'animate_camera' and 'modify_object', it's unclear if this is the primary keyframing method or if there are specific scenarios where it should be preferred or avoided. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snapshot_sceneB
Create a snapshot of the current scene state.
Args:
file_path: Optional path to save the snapshot
include_assets: Whether to include external assets in the snapshot
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | No | ||
| include_assets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'Create a snapshot' which implies a write operation, but doesn't disclose whether this is destructive to the scene, requires specific permissions, has side effects, or what the output looks like. The description adds minimal behavioral context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise: one clear purpose statement followed by brief parameter explanations. Every sentence earns its place, with no redundant information or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter tool with no annotations and no output schema, the description provides adequate basic information about what the tool does and what parameters mean. However, it lacks crucial context about what a 'snapshot' actually produces (file format, whether it's reversible, how it differs from saving), leaving significant gaps for an agent to operate effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining both parameters: 'file_path' as an optional save location and 'include_assets' controlling whether external assets are included. This adds meaningful context beyond the bare schema, though it doesn't specify file format or asset inclusion details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a snapshot') and target ('current scene state'), which is specific and unambiguous. However, it doesn't differentiate from sibling tools like 'save_scene' or 'render_frame', which might have overlapping functionality in a 3D scene context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'save_scene', 'render_frame', and 'render_preview', there's no indication of when a snapshot differs from saving or rendering operations, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
25 tool updates
v0.1.2- First observed
add_effector - First observed
add_primitive - First observed
animate_camera - First observed
apply_dynamics - First observed
apply_material - First observed
apply_mograph_fields - First observed
apply_shader - First observed
create_abstract_shape - First observed
create_camera - First observed
create_light - First observed
create_material - First observed
create_mograph_cloner - First observed
create_soft_body - First observed
execute_python_script - First observed
get_scene_info - First observed
group_objects - First observed
inspect_redshift_materials - First observed
list_objects - First observed
load_scene - First observed
modify_object - First observed
render_frame - First observed
render_preview - First observed
save_scene - First observed
set_keyframe - First observed
snapshot_scene
TDQS
Scored across 25 tools
Most tools have distinct purposes targeting specific Cinema 4D operations like adding objects, applying materials, or rendering. However, some overlap exists between 'apply_dynamics' and 'create_soft_body' (both handle dynamics), and 'apply_material' vs 'apply_shader' (both apply materials), which could cause minor confusion despite clear descriptions.
Tool names follow a highly consistent verb_noun pattern throughout, such as 'add_effector', 'create_camera', 'apply_material', and 'render_frame'. All tools use snake_case with clear, descriptive verbs, making the set predictable and easy to navigate.
With 25 tools, the count is borderline high for a single server, potentially overwhelming for agents. While Cinema 4D is a complex application, the toolset feels heavy and might benefit from consolidation or categorization to improve usability without sacrificing functionality.
The toolset provides comprehensive coverage for 3D scene creation and manipulation in Cinema 4D, including object creation, material application, animation, rendering, and scene management. Key workflows like CRUD for objects, materials, and cameras are fully supported, with no apparent gaps that would hinder agent operations.
Maintenance
Related MCP Connectors
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
One workspace of tools for Claude and ChatGPT: connect 600+ apps, generate media, build tools.
Turn Claude into a creative studio: DNA-locked characters, images, video, voiceover — 55 tools.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceConnects Houdini to Claude AI through Model Context Protocol, enabling AI-assisted 3D modeling, scene creation, simulation setup, and rendering through natural language commands.59-
- AlicenseBqualityDmaintenanceConnects Blender to Claude AI through the Model Context Protocol, enabling AI-assisted 3D modeling, scene creation, and manipulation through natural language commands.172MIT
- AlicenseAqualityDmaintenanceConnects Blender to Claude AI, enabling AI-assisted 3D modeling, scene creation, object manipulation, material control, and code execution directly in Blender through natural language prompts.17MIT
- AlicenseAqualityCmaintenanceConnects Blender 3D modeling software with Claude AI, enabling natural language control of 3D modeling and scene manipulation tasks.175MIT