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 서버 구성 요소의 경우)
설치
프로젝트를 설치하려면 다음 단계를 따르세요.
저장소 복제
지엑스피1
MCP 서버 패키지 설치
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: 선택한 객체를 새 null로 그룹화합니다. ✅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 머티리얼이 완전히 구현되지 않았습니다)
모그래프 & 필드
create_mograph_cloner: MoGraph 클로너(선형, 방사형, 격자형 등)를 추가합니다. ✅add_effector: MoGraph 이펙터(랜덤, 일반 등)를 추가합니다. ✅apply_mograph_fields: MoGraph 필드를 객체에 추가하고 연결합니다. ✅
역학 및 물리학
create_soft_body: 객체에 소프트 바디 태그를 추가합니다. ✅apply_dynamics: 강체 또는 연체 물리를 적용합니다. ✅
렌더링 및 미리보기
render_frame: 프레임을 렌더링하여 디스크에 저장합니다(파일 기반 출력만 해당). ⚠️ (작동하지만 MemoryError: Bitmap Init 실패로 인해 고해상도에서는 실패합니다. 이는 리소스 제한입니다.)render_preview: 빠른 미리보기를 렌더링하고 base64 이미지를 반환합니다(AI용). ✅snapshot_scene: 장면(객체 + 미리보기 이미지)의 스냅샷을 캡처합니다. ✅
호환성 계획 및 로드맵
시네마 4D 버전 | 파이썬 버전 | 호환성 상태 | 노트 |
R21 / S22 | 파이썬 2.7 | ❌ 지원되지 않음 | 레거시 API와 Python 버전이 너무 오래되었습니다. |
R23 | 파이썬 3.7 | 🔍 계획되지 않음 | 현재 테스트되지 않음 |
S24 / R25 / S26 | 파이썬 3.9 | ⚠️ 가능 (미정) | 누락된 API에 대한 테스트 및 대체가 필요합니다. |
2023.0 / 2023.1 | 파이썬 3.9 | 🧪 진행 중 | 핵심 기능에 대한 폴백 지원 타겟팅 |
2023.2 | 파이썬 3.10 | 🧪 진행 중 | 계획된 테스트 기반과 일치합니다. |
2024.0 | 파이썬 3.11 | ✅ 지원됨 | 확인됨 |
2025.0+ | 파이썬 3.11 | ✅ 완벽히 지원됨 | 주요 개발 목표 |
호환성 목표
단기 : C4D 2023.1+(Python 3.9 및 3.10)와의 호환성 보장
중간 기한 : 누락된 MoGraph 및 Field API에 대한 조건 처리 추가
장기 : 수요가 발생할 경우 R23–S26 지원을 위한 선택적 레거시 플러그인 모듈을 고려하세요.
최근 수정 사항
컨텍스트 인식: GUID를 사용하여 강력한 객체 추적을 구현했습니다. 객체를 생성하는 명령은 컨텍스트(GUID, actual_name 등)를 반환합니다. 이후 명령은 테스트 하네스/서버에서 전달된 GUID를 올바르게 사용하여 객체를 안정적으로 찾습니다.
객체 찾기: GUID(숫자 문자열 형식)를 올바르게 처리하기 위해 find_object_by_name을 다시 작업하고, 재귀 오류를 수정했으며, doc.SearchObject가 실패할 때 안정성을 개선했습니다.
GUID 감지: 명령 처리기(apply_material, create_mograph_cloner, add_effector, apply_mograph_fields, set_keyframe, group_objects)는 이제 다양한 매개변수(object_name, target, target_name, 목록 항목)에 전달된 식별자가 GUID인지 여부를 올바르게 감지하고 그에 따라 검색합니다.
create_mograph_cloner: getattr 폴백을 사용하여 MoGraph 매개변수(예: MG_LINEAR_PERSTEP)가 누락되어 발생하는 AttributeError를 수정했습니다. 발견된 객체가 복제를 위해 올바르게 전달되지 않는 로직 버그를 수정했습니다.
렌더링: doc.ExecutePasses 관련 render_frame의 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