blendermcp
Provides tools for interacting with a running local Blender instance, enabling scene inspection, modeling, materials, animation, rendering, and file workflows through an authenticated loopback bridge.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@blendermcpSummarize the current Blender scene and list its objects."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Blender MCP(Hardened)
面向 Codex 与其他 MCP 客户端的本地 Blender 自动化插件。它通过经过认证的回环 TCP 桥接连接正在运行的 Blender,并以类型化工具覆盖场景读取、建模、材质、动画、渲染和文件工作流。
English summary: A hardened, local-first Blender MCP integration with typed tools, authenticated loopback transport, constrained file access, and optional pre-mutation snapshots.
当前插件版本:0.1.0-hardened.2。Python 包使用等价的 PEP 440 版本 0.1.0+hardened.2。
为什么是 hardened 版本
本仓库以 kleer001/blender-mcp 固定提交 12feeb50b49cd5e8a3152b5f9ea71fb3b4558b1d 为基础,并保留上游 MIT 许可与归属。与该上游快照相比,本版本重点收紧了执行面:
不注册任意 Python 执行和表达式求值工具,也不注册对应的 Blender 端处理器。
MCP 进程与 Blender 插件必须共享
BLENDER_MCP_BRIDGE_TOKEN,桥接端使用常量时间比较验证请求。导入、导出和保存类工具受
BLENDER_MCP_ALLOWED_ROOTS约束;未配置时文件工具保持关闭。可在高影响修改前创建带时间戳的
.blend快照。默认插件配置仅暴露读取和发现工具;写操作仍由客户端审批并按需开放。
FastMCP 约束升级为
>=3.2,<4,避开 3.2.0 之前已披露的安装命令注入问题,并移除旧锁文件中的易受攻击依赖链。
差异摘要见 HARDENING.md,许可与来源见 NOTICE.md。
Related MCP server: Blender MCP
架构与调用链
Codex / MCP client
└─ stdio MCP:类型化工具、参数校验、审批
└─ blendermcp(本机 Python 进程)
└─ 127.0.0.1:9334 + shared token
└─ Blender add-on(UI/数据线程)
├─ bpy 场景与数据 API
├─ 允许根目录校验
└─ 可选修改前快照组件职责、信任边界和失败模式详见 docs/architecture.md。
仓库结构
.
├── .codex-plugin/plugin.json # Codex 插件元数据
├── .mcp.json # 不含本机路径和密钥的可移植 MCP 配置
├── blender_addon/ # 在 Blender 内运行的认证桥接插件
├── src/blendermcp/ # MCP 服务、连接层和类型化工具
├── skills/blender/SKILL.md # Agent 使用策略与安全约束
├── scripts/ # 安装、启动、发布前检查
├── tests/ # 离线单元测试和可选真实 Blender 集成测试
├── docs/ # 架构、路线图和上游文档
├── .env.example # 仅变量名;不含任何值
└── pyproject.toml # Python 构建与依赖定义系统要求
Python 3.10 或更高版本。
uv;发布配置用锁文件复现依赖。Blender 4.0+;上游快照重点验证 Blender 4.2 LTS。
MCP 客户端和 Blender 在同一台可信设备上运行。桥接只接受回环地址。
安装
1. 获取并安装 Python 环境
git clone https://github.com/ZNaiGaomu/blender.git
Set-Location blender
./scripts/setup.ps1如需同时复制 Blender 插件,请传入当前 Blender 版本的 add-ons 目录:
./scripts/setup.ps1 -BlenderAddonsDirectory "<your-blender-addons-directory>"脚本默认不会覆盖已有插件;确认替换时显式加 -Force。
2. 配置本机私密信息
复制 .env.example 为 .env,只在本机填写:
BLENDER_MCP_BRIDGE_TOKEN:随机生成的共享密钥,并在 Blender 插件首选项中填写相同值。BLENDER_MCP_ALLOWED_ROOTS:允许文件工具访问的一个或多个工作目录。BLENDER_MCP_SNAPSHOT_DIR:可选的修改前快照目录。
.env 已被忽略,禁止提交真实值。建议用密码管理器生成至少 32 字节的随机令牌。
3. 启用 Blender 插件
在 Blender 的 Edit → Preferences → Add-ons 中启用安装后的插件,在 3D Viewport 的 MCP 面板中配置端口、共享令牌和可选快照目录,然后点击 Start Server。
4. 启动 MCP 服务
./scripts/start.ps1无需 Blender 的协议测试可使用:
./scripts/start.ps1 -Mock仓库根目录的 .mcp.json 使用 uv、相对工作目录和环境变量名,不包含作者机器路径。若客户端不以仓库根目录解析 cwd: ".",请在本机客户端配置中将工作目录指向克隆目录;不要把该本机覆盖文件提交到仓库。
工具 profile
发布配置采用最小权限的读取 profile,默认允许:连接探测、场景摘要、对象/材质/集合/相机列表,以及渲染设置读取。完整实现按场景、对象、网格、集合、材质、纹理、节点、灯光、相机、动画、绑定、物理、合成、渲染和 I/O 等域提供类型化工具。
需要写操作时,在本机 MCP 配置中仅增加本次任务所需的工具或域,并保留 default_tools_approval_mode: "writes"。不要通过改回任意代码执行工具来扩大权限。
权限与风险模型
场景修改: 写工具会改变当前
.blend状态;重要任务应先保存原文件并启用快照。文件系统: 允许根目录是边界,不应配置用户主目录或磁盘根目录。
网络: 桥接必须保持
127.0.0.1;不要将端口暴露到局域网或公网。秘密: 共享令牌只放在本机环境和 Blender 首选项,不写入配置、日志、Issue 或截图。
导入内容: 外部 Blender 文件和资产可能执行驱动器或包含不可信数据,应只处理可信来源。
安全报告流程见 SECURITY.md。
测试与验证
离线可运行的基础验证:
uv run --frozen python scripts/publication_check.py
uv run --frozen python -m pytest -q -m "not integration"
uv run --frozen python -m ruff check src blender_addon tests scripts真实 Blender 集成测试需要用户主动启动 Blender 插件并配置临时工作目录。测试不会自动假定现有生产场景可被修改;执行方法见 tests/integration/。
CI 使用只读仓库权限,运行发布前隐私检查、静态检查、单元测试和依赖审计。发布包不包含 .env、浏览器状态、虚拟环境、构建缓存、用户场景或下载资产。
开发与贡献
提交前请阅读 CONTRIBUTING.md。保持类型化工具接口,新增文件工具必须复用允许根目录校验,新增高影响命令必须纳入快照策略,并为认证失败、路径越界和成功路径添加测试。
许可证与免责声明
本项目依据 MIT License 分发;上游版权声明保留在 LICENSE 和 NOTICE.md 中。Blender 是 Blender Foundation 的商标。本项目不是 Blender Foundation 的官方产品。
Available Tools
173 toolsadd_boneC
Add a bone to an armature. Head and tail are 3D positions.
| Name | Required | Description | Default |
|---|---|---|---|
| head | Yes | ||
| name | Yes | ||
| tail | Yes | ||
| object | Yes | ||
| parent | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only states the basic mutation ('add a bone') and gives minimal meaning for head and tail. It does not mention whether the armature must be in a particular mode, whether the operation is reversible, error conditions, or any side effects on the armature's bone hierarchy. This is a significant gap 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 extremely concise: two short sentences with no filler. The core action is front-loaded. It could be slightly more informative without becoming verbose, but as it stands, every word earns its place, and it is not bloated.
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?
Despite having an output schema, the description is incomplete for a tool with 5 parameters and 0% schema coverage. It fails to specify how to identify the target armature (`object`), how the bone name is used, or how the optional parent bone is referenced. It also omits practical constraints like coordinate space or edit-mode requirements. The agent would need to open the schema and likely still be unsure about parameter semantics and operation 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 explains that head and tail are 3D positions, which adds meaning for those two parameters, but it leaves `object`, `name`, and `parent` entirely unexplained. The agent cannot infer from the description what `object` refers to (e.g., the armature object name) or how `parent` should be specified, so the compensation is only partial.
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 a bone') and the target resource ('to an armature'), which distinguishes it from siblings like set_bone_property (modifying an existing bone) or add_bone_constraint (adding a constraint). The sentence is specific and unambiguous.
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 offers no guidance on when to use this tool versus alternatives, prerequisites (e.g., the armature must exist or be in edit mode), or context about the parent relationship. Usage is only implied by the verb 'add,' leaving the agent to infer the appropriate situation from the schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_bone_constraintC
Add a constraint to a pose bone. Types: IK, COPY_ROTATION, COPY_LOCATION, LIMIT_ROTATION.
| Name | Required | Description | Default |
|---|---|---|---|
| bone | Yes | ||
| name | No | ||
| type | Yes | ||
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only says 'Add a constraint', implying mutation, but doesn't disclose side effects, required object/bone existence, default constraint settings, error behavior, or return value. This is insufficient 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 a single, efficient sentence that front-loads the action and lists supported types. It's appropriately concise for the limited information it conveys, though it could afford more detail without becoming verbose.
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 4-parameter mutation tool with no annotations and an output schema (unseen), the description is incomplete. It lacks essential context about prerequisites, parameter semantics, and behavioral outcomes, making it difficult for an agent to invoke correctly without additional knowledge.
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 explain parameters. It only clarifies the 'type' parameter by listing valid values. The 'object' (presumably armature), 'bone' (bone name), and 'name' (constraint name) are left undefined, leaving the agent to guess their meaning.
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 a constraint') and the target ('pose bone'), and lists specific constraint types (IK, COPY_ROTATION, etc.), which distinguishes it from generic add_constraint. However, it doesn't explicitly contrast with sibling tools like add_constraint, so it's not fully unambiguous.
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 on when to use this tool versus alternatives like add_constraint or set_constraint_property. It doesn't mention prerequisites (e.g., the object must be an armature) or conditions that would make this tool preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_constraintC
Add a constraint. Types: COPY_LOCATION, COPY_ROTATION, COPY_SCALE, TRACK_TO, DAMPED_TRACK, LOCKED_TRACK, LIMIT_LOCATION, LIMIT_ROTATION, LIMIT_SCALE, IK, CHILD_OF, FLOOR, FOLLOW_PATH, CLAMP_TO.
| Name | Required | Description | Default |
|---|---|---|---|
| bone | No | ||
| name | No | ||
| type | Yes | ||
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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, but it says nothing about side effects, whether the constraint is added to the specified object or the active object, whether it replaces existing constraints, or what the output/results are. The phrase 'Add a constraint' essentially restates the tool name, and the type list conveys no behavioral traits.
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: a single sentence followed by a compact list of constraint types. There is no redundant or filler content, and the action word 'Add' is front-loaded. The list is necessary and efficiently formatted.
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 tool with 4 parameters, 0% schema description coverage, no annotations, and existing output schema, the description is radically incomplete. It does not explain what 'object' refers to, when 'bone' should be used, what 'name' does, or what the output will be. It also does not differentiate from add_bone_constraint. An agent cannot reliably invoke this tool correctly based on the provided description alone.
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 does provide the allowed values for the 'type' parameter, which is valuable since the schema has no enums. However, the required 'object' parameter and the optional 'bone' and 'name' parameters are left completely unexplained. The description addresses only one of four parameters, leaving significant 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 states the action clearly: 'Add a constraint.' It further specifies the resource by listing all supported constraint types (COPY_LOCATION through CLAMP_TO), which gives an agent concrete grounding. However, it does not explicitly distinguish from the sibling add_bone_constraint, leaving ambiguity about whether this is strictly for object constraints.
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?
There is no guidance on when to use this tool versus alternatives like set_constraint_property, remove_constraint, or add_bone_constraint. The description lists types but does not mention any context, prerequisites, or exclusions. An agent has to infer usage solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_gp_layerC
Add a layer to a grease pencil object.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full burden of behavioral disclosure. It does not mention side effects like whether the new layer becomes active, how duplicate names are handled, or whether the operation is idempotent or fails.
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?
A single clear sentence with no filler or irrelevant detail. The key information is front-loaded and easily parsed.
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?
Despite the tool's low complexity, the absence of any parameter documentation, annotations, or operational notes leaves significant gaps. An agent does not know how to reference the object, whether the layer name must be unique, or what happens under edge cases. The presence of an output schema does not compensate for missing invocation 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%, and the description does not explain the 'object' or 'name' parameters beyond what their names suggest. The parameter names are somewhat self-explanatory, but no meaning is added for how objects are identified or what constraints apply to the layer name.
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 'Add a layer to a grease pencil object' uses a specific verb and resource, making the core action clear. It does not explicitly contrast with sibling tools like set_gp_layer_property, but the action of adding versus setting properties is inherently distinguishable.
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, nor about prerequisites such as the object already being a grease pencil object. The description only states the action without any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_gp_modifierB
Add a GP modifier. Types: GP_THICK, GP_NOISE, GP_SMOOTH, GP_SUBDIV, GP_TINT, GP_OPACITY.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | Yes | ||
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior but only states the action. No mention of side effects, error conditions, or requirements (e.g., object must be a Grease Pencil). Minimal transparency.
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?
Single concise sentence that front-loads the action and then enumerates types. No wasted words.
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?
Incomplete for a tool with three parameters and no schema descriptions. Lacks explanation of parameter roles, expected object type, return value (though output schema exists), and any usage context. The description alone is insufficient for correct usage.
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 has 0% description coverage. The description lists the allowed 'type' values but does not explain the 'object' parameter (target object) or 'name' parameter (optional modifier name). Incomplete parameter documentation.
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?
States a specific verb and resource: 'Add a GP modifier.' Lists the valid types, which adds specificity. Differentiates from the sibling add_modifier by the GP prefix, making its scope clear.
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 on when to use this tool vs add_modifier or other modifier tools. No mention of conditions, prerequisites, or alternatives. The agent must infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_modifierB
Add a modifier to an object. Common types: SUBSURF, BOOLEAN, ARRAY, MIRROR, SOLIDIFY, BEVEL, DECIMATE, SMOOTH, SHRINKWRAP, ARMATURE, CURVE, LATTICE.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | Yes | ||
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 only says 'Add a modifier to an object' and lists types, without mentioning that this mutates the object's modifier stack, whether the operation is reversible, error conditions, or any side effects.
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 concise sentence followed by a useful list of common types. It is front-loaded with the core action and contains no filler, with every element adding value.
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?
This is a 3-parameter tool with 0% schema coverage and no annotations, so the description must compensate. It does not explain parameter semantics, behavior, or prerequisites. While an output schema exists, the missing parameter and behavioral context leaves the definition incomplete for reliable invocation.
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 explain parameters. It lists common values for the 'type' parameter but does not clarify that 'object' is the target object or that 'name' is an optional custom modifier name. Two of three parameters remain semantically unexplained.
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 a specific verb ('Add'), resource ('modifier'), and target ('object'), making the tool's function immediately clear. Listing common modifier types (SUBSURF, BOOLEAN, etc.) further disambiguates it from siblings like remove_modifier, list_modifiers, and set_modifier_property.
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 the use case: adding a modifier to an object. However, it provides no explicit guidance on when to prefer this tool over alternatives such as add_geonodes_modifier, nor does it mention prerequisites like object existence or valid modifier types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_node_group_instanceB
Add an instance of an existing node group to a material.
| Name | Required | Description | Default |
|---|---|---|---|
| location | No | ||
| material | Yes | ||
| group_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It implies a mutating operation but does not state prerequisites, side effects on the material's existing node tree, error behavior, or reversibility. For a mutation tool with zero annotation coverage, this is a meaningful 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?
A single sentence with no filler. The core action is front-loaded, and every word contributes meaning.
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?
Despite having an output schema, the description leaves key operational details unspecified: the meaning of location, required preconditions, and what counts as a valid group_name. An agent has enough to guess the high-level intent but not enough to invoke the tool confidently with correct parameters.
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%, and the description only adds minimal context for material (target) and group_name (identifier of the existing group). The optional location parameter is completely unexplained: its coordinate format, units, or behavior when null are left to the agent to guess.
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 a specific action ('Add an instance of an existing node group') and a target resource ('to a material'). This distinguishes it from related siblings like create_node_group, which creates a group definition, and create_shader_node, which creates a generic shader node.
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 gives no explicit guidance on when to use this tool versus alternatives. It implies that the node group must already exist, but it does not mention when to prefer this over create_node_group or how it relates to node tree manipulation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_particle_systemC
Add a particle system. Types: EMITTER, HAIR.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | No | EMITTER | |
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries full responsibility for disclosing behavioral traits. It only says 'Add a particle system' and lists types, without mentioning that this mutates the target object, requires the object to exist, or how invalid objects/types are handled.
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 very brief and front-loaded, with no filler words. However, it is so terse that it borders on under-specification, providing only a bare type list without connection to the parameters.
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 there are three parameterschild, one required, and no schema descriptions, the description is incomplete. It does not explain what 'object' refers to, what causes the 'type' to matter, or what the output schema will return. The presence of an output schema helps, but the behavioral and parameter semantics are still under-specified.
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, but it only provides type hints (EMITTER, HAIR). It does not explain the required 'object' parameter or the optional 'name' parameter, leaving the agent to infer their meaning from parameter names alone.
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?
Description uses a specific verb 'Add' and resource 'particle system', and distinguishes it from sibling tools like remove_particle_system, set_particle_property, and get_particle_info. It also mentions the allowed types, though it doesn't explicitly state that the system is added to the required object parameter.
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 given on when to use this tool versus alternatives such as setup_hair, set_particle_property, or bake_particles. The description implies creation via the word 'Add' but does not state prerequisites, constraints, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_physicsC
Add a physics simulation. Types: RIGID_BODY, CLOTH, FLUID, SOFT_BODY, COLLISION.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It states that physics will be added and lists types, but it does not describe side effects on the target object, whether existing physics are replaced, prerequisites, or other behavioral consequences.
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 two short sentences with no filler. The core action is front-loaded and the type enum is the only additional content, making it appropriately compact for the information it offers.
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 an add/creation tool with no annotations, the lack of object semantics and the absence of guidance about when to use this tool versus the specialized physics setup siblings leave important context missing. The output schema may cover return values, but prerequisites, consequences, and parameter semantics are insufficiently explained.
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 for the schema's bare string parameters. It does add meaning by enumerating valid type values (RIGID_BODY, CLOTH, FLUID, SOFT_BODY, COLLISION), but it leaves the 'object' parameter completely unexplained—it does not say what the object identifier refers to or how it should be formatted.
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 the resource ('a physics simulation'), and it lists the supported simulation types. However, it does not differentiate add_physics from specialized siblings like setup_rigid_body_world or setup_cloth_sim, leaving the distinction to be inferred from the type parameter.
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 about when to use add_physics versus the specialized setup_* physics tools, nor any exclusions or prerequisites. The listed types imply intended usage but do not explain the selection context or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_modifierADestructive
Apply a modifier, baking it into the mesh. Requires Object Mode. Irreversible.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| modifier | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation destructiveHint already signals destructive behavior, and the description reinforces this with 'Irreversible' and 'baking it into the mesh.' It also adds the Object Mode requirement, which is useful beyond the annotation.
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?
Two short sentences with no filler. The action, prerequisite, and consequence are all stated clearly and efficiently.
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 simple two-parameter action with an output schema and a destructive annotation, the description provides enough context: what happens, the required mode, and irreversibility. It could mention error cases, but they are not essential for correct basic invocation.
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%, and the description provides no extra meaning for 'object' or 'modifier.' It does not clarify whether these are names, IDs, or references, leaving the agent to infer from context.
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?
States a specific verb ('apply') and resource ('modifier'), clarifying that it bakes the modifier into the mesh. This clearly distinguishes it from sibling tools like add_modifier or remove_modifier.
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?
Provides a clear prerequisite: 'Requires Object Mode.' It does not explicitly mention alternative tools or when not to use it, but the context is sufficient for most use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_sculpt_maskC
Convert sculpt mask to a vertex group.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| vertex_group | No | SculptMask |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 conversion but doesn't disclose whether the sculpt mask is deleted, whether the vertex group is created fresh or overwritten, whether the object must be a mesh, or what happens if no sculpt mask exists. The default vertex_group name 'SculptMask' is in the schema, not the description, so the description adds minimal 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 a single, short sentence that is easy to parse. It is appropriately sized for a simple conversion tool. However, it could have included a bit more context without becoming verbose.
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 has an output schema and 2 parameters, the description is too thin. It doesn't explain the object parameter, the vertex_group parameter, or the behavior when the mask is missing. The output schema exists but the description doesn't reference what the tool returns. For a tool that converts a sculpt mask, an agent needs to know prerequisites and side effects.
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 doesn't explain what 'object' means (the target object name?) or what 'vertex_group' means (the name of the resulting group, with default 'SculptMask'). The description only mentions the conversion, not the parameters. With 2 params and 0% coverage, this is a significant 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 'Convert sculpt mask to a vertex group' clearly states the action (convert) and the resource (sculpt mask) and the result (vertex group). It is concise and specific. It doesn't explicitly distinguish from sibling tools like create_vertex_group or set_vertices, but the verb 'convert' and the source 'sculpt mask' make the purpose clear enough.
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 gives no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., object must be in sculpt mode or have a sculpt mask), nor does it say when not to use it. Sibling tools like create_vertex_group or set_vertices exist, but no differentiation is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_transformA
Apply (freeze) the object's transforms to mesh data. Resets the applied transforms to identity.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| scale | No | ||
| location | No | ||
| rotation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden and clearly states the core side effect: transforms are baked into mesh data and the applied transforms are reset to identity. It does not cover edge cases like non-mesh objects or undoability, but the primary mutation is transparent.
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?
Two short sentences, each carrying distinct information: the operation and the postcondition. No filler or redundancy.
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?
The core behavior is present, but with no annotations and no parameter explanations, an agent cannot fully predict which transforms are applied when toggles are false or what happens for non-mesh objects. The output schema may cover return values, so the main gaps are usage guidance and parameter semantics rather than return format.
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%, and the description does not explain that the scale, location, and rotation booleans select which transform components are frozen, nor what the required name parameter refers to beyond the obvious. The property names are self-explanatory from the schema, but the description adds no parameter-level meaning.
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?
States a specific verb ('Apply (freeze)'), the target ('the object's transforms'), and the destination ('to mesh data'), plus the postcondition ('Resets the applied transforms to identity'). This clearly distinguishes it from set_transform, which changes transform values rather than baking them, and from apply_modifier.
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 explicit guidance on when to use this tool versus alternatives like set_transform, set_origin, convert_to_mesh, or apply_modifier. The intended use is implied by the freeze/bake language, but no conditions or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assign_materialA
Assign a material to an object. If slot is specified, replaces that slot; otherwise appends a new slot.
| Name | Required | Description | Default |
|---|---|---|---|
| slot | No | ||
| object | Yes | ||
| material | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the key side effect: replacing an existing slot when slot is specified, otherwise appending a new slot. This is meaningful beyond the name and schema, though it does not mention prerequisites or error 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?
Two concise sentences with the core action front-loaded and the conditional slot behavior immediately following. Every word earns its place.
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?
The tool is simple and has an output schema, so return details are not necessary. However, with no annotations and no usage guidance, the description leaves some gaps around prerequisites and material/object identifier semantics, making it adequate but not complete.
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 explains the optional slot parameter's effect well, but object and material are only glossed as 'an object' and 'a material' without specifying identifier formats or whether the material must already exist.
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 a specific verb and resource: 'Assign a material to an object,' and adds precise slot behavior ('replaces that slot; otherwise appends a new slot'). This clearly distinguishes it from material creation, removal, or property-setting siblings.
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 given about when to use this tool versus alternatives such as set_material_property or create_material. The intended use is implied by the name and description, but no exclusions or alternative conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assign_vertex_weightsC
Assign vertex weights to a bone's vertex group.
| Name | Required | Description | Default |
|---|---|---|---|
| bone | Yes | ||
| object | Yes | ||
| weight | No | ||
| vertices | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 only states the action, not whether it overwrites existing weights, the weight range, or any error conditions. No side effects or reversibility are mentioned.
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, concise sentence with no wasted words, but it is under-specified rather than efficiently structured. It lacks any breakdown of parameters or usage context, so while concise, it fails to provide actionable structure.
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 tool with 4 parameters (3 required) and no schema descriptions, this description is grossly incomplete. It omits how to specify the object and bone, what the vertices array means, and the expected weight range. The presence of an output schema doesn't compensate for the lack of input guidance.
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%, and the description adds no meaning beyond the schema. It does not explain that 'object' refers to the mesh, 'bone' is a bone name, 'vertices' are indices, or that 'weight' has a default of 1. The agent is left without any semantic guidance.
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 (assign vertex weights) and the resource (a bone's vertex group), which distinguishes it from siblings like set_vertices or create_vertex_group. However, it lacks specificity about the context (e.g., which object, how the bone is referenced) and doesn't mention that it modifies an existing group.
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_vertices or create_vertex_group. There is no mention of prerequisites (e.g., the vertex group must exist) or conditions under which this tool should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bake_particlesC
Bake particle simulation.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| system | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 only states that the particle simulation will be baked and gives no information about side effects, whether existing baked data is overwritten, required object state, or what the resulting cache behavior is.
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 extremely short with no fluff, but it is under-specified rather than appropriately concise. A single phrase without parameter or usage context does not earn high marks for structure, as it sacrifices necessary information for brevity.
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 has two parameters, 0% schema description coverage, and no annotations, the description is far from complete. It fails to mention prerequisites, parameter roles, or how this relates to sibling baking tools, leaving critical context missing for correct invocation.
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%, and the description does not explain the two parameters (object and system). The agent gets no help understanding what values to supply, what 'object' refers to, or how 'system' should be specified. The description adds no parameter-level meaning.
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 names a specific verb and resource: 'bake' and 'particle simulation'. It is clear enough for an agent to understand the core operation, but it does not explicitly distinguish itself from the closely related sibling tools like bake_physics or free_physics_bake.
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?
There is no guidance about when to use this tool, what prerequisites are needed (e.g., an existing particle system), or which alternatives to prefer. The description simply states the action without providing decision-making context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bake_physicsC
Bake physics simulation. Long-running operation.
| Name | Required | Description | Default |
|---|---|---|---|
| object | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that the operation is long-running, which is useful, but it does not explain side effects, whether existing bakes are overwritten, whether it blocks, or what happens if no valid physics simulation exists.
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 very concise and front-loads the core action, with the long-running caveat right after. Every sentence is informative, though the brevity leaves out important semantic details.
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?
Despite having an output schema, the description is incomplete for an operation with an ambiguous optional parameter and no annotation context. It lacks usage context, parameter meaning, and behavioral expectations, leaving an agent guessing about correct invocation.
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 has one parameter, 'object', with zero description coverage. The description does not mention this parameter at all, so it adds no meaning beyond the raw schema. Since the schema coverage is 0%, the description needed to compensate and completely failed to do so.
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 a specific verb and resource: 'Bake physics simulation.' This is clear about what the tool does. However, it does not distinguish it from related siblings like bake_particles or free_physics_bake, so it misses the differentiation needed for a 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?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of whether the object parameter is required or how it relates to selection. The only contextual hint is that it is long-running, which is not enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_deleteBDestructive
Delete multiple objects at once. Confirm required.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| objects | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, covering the destructive nature. The description adds 'Confirm required,' indicating that confirmation is needed for deletion, which goes beyond the annotation. However, it is ambiguous—it does not state that the confirm parameter must be true, nor what happens if it is false. It provides minimal extra behavioral context without contradiction.
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 very concise: two short sentences, front-loaded with the primary action. Every sentence earns its place—the purpose sentence and the confirmation note are both relevant. It is not verbose, though it could be more structured (e.g., separate behavior details), but it is 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?
Given it is a destructive batch operation with a confirmation parameter, the description is incomplete. It does not clarify the confirmation behavior (e.g., does confirm need to be explicitly true?), nor does it explain what constitutes 'objects' (IDs vs. names). Output schema exists, so return values are not needed, but the operational context is insufficient for an agent to call this safely and correctly without additional assumptions.
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 coverage is 0% (description does not document parameters), so the description must compensate. It only says 'multiple objects at once' and 'Confirm required,' which vaguely implies the 'objects' array and the 'confirm' flag. It does not explain what the objects array contains (e.g., IDs, names), the format, or the exact role of confirm beyond being required. This is insufficient 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 tool deletes multiple objects at once, which is a specific verb+resource. It distinguishes from sibling tools like delete_object (single deletion) and delete_collection (collection-level deletion), so an agent can understand its unique role without opening the schema.
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 does not mention batch operations as a preferred choice over repeated delete_object calls, nor does it state any conditions or exclusions. The only hint is 'Confirm required,' which is a behavioral note, not a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_set_propertyB
Set the same property on multiple objects at once.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| objects | Yes | ||
| property | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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. 'Set' implies mutation, but the description does not state whether existing property values are overwritten, whether missing properties are created, how errors on individual objects are handled, or whether the operation is atomic.
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 one short sentence with no filler and it leads with the core action. It is concise, though it sacrifices useful contextual detail that could have been added without bloating the description.
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 batch mutation tool with no annotations and 0% parameter coverage, this description is too thin. An agent is not told what kinds of properties are valid, whether the operation creates or overwrites properties, or how object identifiers are resolved; the output schema exists but does not excuse the missing 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, but it only clarifies that the property is applied to multiple objects. It does not explain the allowed domain of the property string, how objects are referenced, or the role/value constraints of the value parameter beyond what the bare parameter names suggest.
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 identifies a specific operation: setting one property across multiple objects. The phrase 'same property' and 'at once' clearly establish the batch scope, which distinguishes it from the many sibling set_*_property tools that target a single element.
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 use case is implied: use this tool when the same property must be applied to multiple objects, rather than calling an individual setter repeatedly. However, it names no alternative tools and gives no exclusions or conditions for when an individual setter would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
camera_look_atB
Point a camera at a target object or world location.
| Name | Required | Description | Default |
|---|---|---|---|
| camera | Yes | ||
| target | No | ||
| location | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It only states the intended effect and does not mention prerequisites, side effects, whether the camera must already exist, or failure 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 a single sentence with no filler words and is front-loaded with the core action. It is appropriately sized for the tool's apparent simplicity.
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?
The output schema exists, so return-value details are not necessary, but 0% schema coverage and no annotations leave important context missing. An agent still lacks enough information about prerequisites, coordinate semantics, and parameter interactions to reliably construct a correct call.
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 hints at two modes ('target object' vs 'world location') but does not name the parameters, explain that camera is likely the camera name, specify coordinate format for location, or clarify what happens if both target and location are provided.
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 uses a specific verb ('point') and resource ('camera') and clearly states the operation: aiming at a target object or world location. This distinguishes it from sibling camera operations like set_active_camera or set_camera_property without needing to name them explicitly.
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?
There is no guidance about when to use this tool versus alternatives. The description implies a camera-orientation use case, but it never states when this tool should be preferred over set_camera_property, setup_camera_dof, or other camera tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_viewportBRead-only
Capture a screenshot of the 3D viewport to a file. Returns the file path.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | No | /tmp/viewport.png |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds that a file is written and a file path is returned, which is useful, but it does not disclose overwrite behavior, path creation, or filesystem side effects. No contradiction with annotations.
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?
A single, front-loaded sentence of 14 words contains all core information with no filler. Every phrase earns its place, and the primary action is stated immediately.
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 simple one-parameter tool with a default value, read-only annotation, and existing output schema, the description plus schema is nearly sufficient for correct invocation. The main missing piece is the distinction from render_viewport, which affects tool selection more than calling mechanics.
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 filepath parameter has no schema description (0% coverage), but the phrase 'to a file' and 'Returns the file path' loosely imply that the parameter controls the output location. It does not explicitly name the parameter or explain defaults/format, so compensation is only partial.
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 uses a specific verb ('Capture') and a specific resource ('3D viewport'), and states the output ('file path'). It is clearly not a tautology. However, it never contrasts with the sibling render_viewport tool, so an agent must infer that a screenshot differs from a render.
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 capture_viewport instead of render_viewport, render_image, or get_viewport_info. There are no conditions, exclusions, or alternative routing signals; the agent is left to infer selection from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_animationADestructive
Remove all animation data (keyframes, actions) from an object. Irreversible.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, and the description adds the important behavioral detail that the operation is irreversible. It also specifies what gets removed (keyframes and actions), which is useful context beyond the annotation. No contradiction with annotations.
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 sentence with no filler. It front-loads the action and scope, then adds the critical irreversibility warning. Every word earns its place.
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 simple one-parameter destructive tool with annotations and an output schema, the description is largely sufficient. It states the operation, target, and irreversibility. The main gap is the lack of parameter clarification and explicit alternative routing, but these are minor given the tool's simplicity.
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 for the undocumented 'object' parameter. The phrase 'from an object' adds minimal meaning beyond the schema property name and does not clarify how the object should be identified (e.g., name, path, or ID).
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 uses a specific verb ('Remove') and resource ('all animation data (keyframes, actions) from an object'), making the tool's scope clear. It also distinguishes itself from sibling tools like delete_keyframe by emphasizing that it removes all animation data, not just a single keyframe.
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 the tool is for clearing all animation data from an object, but it does not explicitly state when to use it versus alternatives like delete_keyframe or list_actions. No exclusions or alternative routing are provided, so the agent must infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_parentB
Clear an object's parent, keeping its world transform.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 does disclose a meaningful behavioral trait: the object's world transform is preserved after clearing the parent. However, it does not mention side effects on children, local transform recalculation, or behavior when the object has no parent.
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, tightly worded sentence that front-loads the core action and immediately states the critical behavioral qualifier. There is no redundant or filler content.
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 simple one-parameter operation with an output schema, the description is mostly adequate: it states the action and the key transform-preservation behavior. However, it lacks usage guidance, parameter clarification, and any mention of edge cases or side effects, leaving some gaps for an agent to infer.
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 for the undocumented 'name' parameter. The phrase 'an object's parent' implies that 'name' identifies the object, but it does not explicitly explain the parameter's meaning, format, or valid values. This is minimal compensation.
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 a specific verb ('Clear') and resource ('an object's parent'), and adds the key behavioral qualifier 'keeping its world transform.' This clearly distinguishes it from sibling tools like set_parent or parent_mesh_to_armature, which establish rather than remove parent relationships.
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 the tool is used when an object's parent should be removed, but it gives no explicit guidance about when to choose this over alternatives, nor does it mention any prerequisites or exclusions. There is no comparison to set_parent or other parenting-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_comp_nodesC
Connect compositor nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| to_node | Yes | ||
| to_input | Yes | ||
| from_node | Yes | ||
| from_output | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'connect', with no details about whether existing input connections are replaced, whether socket types must match, what happens on failure, or whether the operation is reversible. The behavior beyond the bare action is not disclosed.
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 very short and front-loaded, but it is under-specified for a tool with four required parameters and no parameter documentation. It is concise without being wasteful, but the brevity crosses into missing useful context.
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 connection operation with four required parameters, no annotations, and no parameter descriptions, a three-word description is insufficient. An agent would need to know how to identify outputs/inputs, whether nodes must already exist, and the semantics of string versus integer socket references.
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%, and the description does not compensate by explaining the four required parameters. While names like from_node and to_node are self-explanatory, from_output and to_input are ambiguous between socket names and indices, and the description provides no clarification.
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 a specific verb and resource: connecting compositor nodes. It is not a tautology, and 'compositor' clearly distinguishes this from sibling tools like connect_shader_nodes and connect_geonodes, though it does not explicitly name those 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 gives no guidance on when to use this tool versus connecting shader or geometry nodes, nor does it mention prerequisites like existing nodes or compatible socket types. Usage is only implicitly tied to compositor nodes by the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_geonodesC
Connect nodes in a geometry node tree.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| to_node | Yes | ||
| modifier | Yes | ||
| to_input | Yes | ||
| from_node | Yes | ||
| from_output | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations provided, so the description carries the full burden of behavioral disclosure. It only says 'Connect nodes' and does not mention whether connecting an input replaces an existing connection, whether it modifies the object's modifier node tree, or any side effects. This is insufficient for a mutating operation.
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 very short and front-loaded, but it is under-specified rather than genuinely concise. Omitting all parameter and behavior context makes the brevity a deficiency, not a strength.
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?
While an output schema exists, the description still fails to provide enough context for correct invocation of a tool with six required parameters and no parameter documentation. The operation is simple in concept, but socket addressing and replacement behavior are not covered, which leaves 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 schema has 0% description coverage and the description adds no parameter information at all. The six required parameters—object, modifier, from_node, from_output, to_node, to_input—are left entirely to name inference, and the string/integer socket addressing format is not explained.
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 a specific verb, 'connect', and a clear resource, 'nodes in a geometry node tree.' It distinguishes itself from similar sibling tools like connect_shader_nodes and connect_comp_nodes through the 'geometry node tree' qualifier. However, it does not explain the exact operation scope, such as socket-level connection or one-to-one linking.
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 gives no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It does not explicitly direct an agent to use this tool only for geometry node trees or mention that shader/compositor connections belong elsewhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_shader_nodesC
Connect an output socket to an input socket. Sockets can be specified by name or index.
| Name | Required | Description | Default |
|---|---|---|---|
| to_node | Yes | ||
| material | Yes | ||
| to_input | Yes | ||
| from_node | Yes | ||
| from_output | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 usefully reveals that sockets can be addressed by name or index, but it does not disclose what happens to an existing connection on the target input (Blender inputs accept a single connection, so this likely replaces it), nor does it mention validation of socket types or error behavior. For a mutating tool 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?
Two sentences with no filler; the core action is front-loaded and the second sentence adds genuinely useful parameter semantics. Every word earns its place.
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 5-parameter graph-editing mutation with zero annotations and zero schema descriptions, the description is thin. It omits node/material reference semantics, the replacement behavior on existing connections, and any guidance on resolving socket type mismatches. The presence of an output schema mitigates return-value ambiguity, but input-side semantics remain under-specified.
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% for all 5 parameters, so the description must compensate. It explains the string-or-integer socket variants ('by name or index'), which maps to from_output and to_input, but it leaves material, from_node, and to_node semantics to inference from their names, and does not explain how nodes or materials are identified or how directionality is encoded.
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 a specific verb and resource ('Connect an output socket to an input socket') with a clear direction of data flow. The tool name carries the 'shader' scope, distinguishing it from connect_geonodes and connect_comp_nodes, though the description itself does not explicitly name this 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?
There is no guidance on when to use this tool versus its close alternatives (connect_geonodes, connect_comp_nodes, disconnect_shader_node, set_node_input). No context is given about prerequisites such as the material existing or the nodes being present in the tree, and no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_to_meshADestructive
Convert a curve object to a mesh. Loses curve editability.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation destructiveHint=true already discloses mutability, but the description adds specific behavioral context: it explicitly warns that curve editability is lost. This goes beyond the generic annotation, explaining what is destroyed. However, it does not mention other potentially relevant side effects (e.g., whether the curve object is replaced or a new object is created).
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 two sentences, front-loaded with the core purpose followed by a single caveat. Every word earns its place; there is no padding or redundancy.
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 single-parameter conversion tool with an output schema, the description is adequate but not complete. It lacks guidance on how to identify the object, what happens to the original curve, and how errors (e.g., non-curve input) are handled. The output schema may cover return values, but parameter semantics remain a significant gap.
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 exposes one required string parameter 'object' with zero description coverage. The description does not explain what value should be passed (e.g., object name, ID), nor does it mention validation requirements. 'Convert a curve object' only implies the target is a curve, but the parameter format is left entirely to inference.
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 ('Convert a curve object') and result ('to a mesh'). It differentiates from siblings like get_curve_info or create_curve by naming the transformation. The added caveat 'Loses curve editability' further defines the purpose.
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. It does not mention prerequisites (e.g., the object must be a curve), when not to use it, or relationships to sibling tools like apply_modifier or remesh. The description only states what the tool does, not when to select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copy_modifiersA
Copy all modifiers from source object to target object.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| target | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 does not state whether existing modifiers on the target are replaced or appended, whether the source remains unchanged, or what happens if the source has no modifiers. The basic effect is clear, but these behavioral details are material 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?
A single sentence with no filler; the action and direction are front-loaded. Every word earns its place.
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 simple two-parameter schema and presence of an output schema, the description is mostly adequate, but it omits the key side effect on the target object's existing modifiers. The absence of annotations raises the importance of that missing behavioral detail.
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 clarifying that source is the object providing modifiers and target is the object receiving them, using 'from source object to target object'. It does not give identifier format or merge behavior, but for two simple string parameters the roles are meaningfully specified.
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 a specific action ('Copy'), a precise resource ('all modifiers'), and a clear direction ('from source object to target object'). This is distinct from related siblings like move_modifier or add_modifier, so an agent can tell what it does without inspecting the schema.
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 intended use is implied by the verb 'copy' (use when all modifiers should be duplicated from one object to another), but the description gives no explicit guidance about when to prefer this over move_modifier, add_modifier, or remove_modifier, and no exclusions or caveats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_armatureB
Create an armature with an initial bone.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Armature | |
| location | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 only states the core action, but does not mention side effects like selection/activation of the new armature, naming defaults, coordinate handling, or error scenarios. This is minimal disclosure for a creation 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 a single sentence with no filler or repetition. It communicates the essential purpose immediately and every word earns its place.
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 simple two-parameter creation tool with an output schema, the description is minimally sufficient. However, with no annotations and no parameter guidance, an agent is left to infer defaults and behavior from the schema alone, leaving minor but real gaps.
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%, yet the description mentions neither the 'name' nor the 'location' parameter. It adds no semantic meaning beyond what the raw schema fields already expose, failing to compensate for the low coverage.
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 uses a specific verb ('Create') and resource ('armature') and adds 'with an initial bone', which clearly distinguishes it from sibling tools like add_bone. An agent can understand exactly what this tool does without opening the schema.
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 this tool is for creating a new armature rather than modifying an existing one, and the sibling set includes add_bone for later bone additions. However, it does not explicitly state when to prefer this over alternatives or mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cameraB
Create a camera with specified focal length.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| location | No | ||
| focal_length | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 disclosing behavior. It only states the creation action, leaving unclear whether the camera is added to the active scene, whether it becomes the active camera, what naming behavior occurs, or what units focal_length uses.
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?
A single, front-loaded sentence with no filler. Every word contributes meaning, and the key customization, focal length, is stated immediately after the action.
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 low-complexity creation tool with fully optional parameters and an output schema, an agent can likely invoke this successfully. However, the description leaves parameter semantics, side effects, and usage-versus-alternatives unaddressed, so it is only minimally complete.
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 for parameter meaning. It mentions focal_length but adds no detail about units, range, or default behavior, and it entirely omits the name and location parameters. The schema defaults help, but the description does not fill 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 names the specific operation (create), the resource (camera), and the key attribute (focal length). This clearly separates it from sibling tools like list_cameras, set_camera_property, and set_active_camera, which are not creation actions.
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 such as set_camera_property or set_active_camera, and no context about prerequisites like requiring an active scene. Usage is only implied by the word 'create'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_collectionC
Create a new collection, optionally under a parent collection.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent | No | Scene Collection |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 disclosing behavioral traits. It only states 'create', which implies mutation, but does not mention side effects, permissions, error conditions, or what happens if the parent does not exist. The default parent value is not explained either.
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, concise sentence with no filler. It states the core action and the optionality of the parent, which is 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?
For a creation operation with no annotations and no output schema description, the description is minimal. It doesn't explain return values, prerequisites (like whether the parent collection must already exist), or error handling. Given the low parameter count, it could be acceptable, but for a mutating operation more context is expected.
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 has 0% description coverage, so the description must add meaning. It explains that 'parent' is optional ('optionally under a parent collection'), giving some semantic context, but does not elaborate on the 'name' parameter beyond its presence in the schema. This is partial compensation.
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 creates a new collection, optionally under a parent. It distinguishes itself from sibling tools like delete_collection and list_collections by its verb and object, 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?
No guidance is given on when to use this tool versus related tools like move_to_collection or list_collections. The context of creating a new collection is obvious, but there's no mention of prerequisites (e.g., parent must exist) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_comp_nodeC
Add a compositor node. Common types: CompositorNodeRLayers, CompositorNodeComposite, CompositorNodeViewer, CompositorNodeMixRGB, CompositorNodeBlur, CompositorNodeGlare, CompositorNodeColorBalance, CompositorNodeBrightContrast, CompositorNodeHueSat.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | Yes | ||
| location | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 only says 'Add a compositor node' with no mention of side effects, requirements, or what happens if the compositor tree doesn't exist. It doesn't even state that the node will be added to the current scene's compositor tree or how it interacts with other compositor operations. This is a significant lack of transparency for a mutating 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 a single sentence with a list of types. It is concise and front-loaded with the primary action. Every word contributes to the core purpose, though it could be slightly more structured with separate notes on parameters.
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, an output schema, and 0% schema coverage, the description is incomplete. It fails to mention that the tool operates within a compositor node tree, that the tree must be enabled or accessed via get_compositor_tree, or that the node will be placed but not connected. The list of common types helps, but missing parameter semantics and workflow context leave the agent without enough information to call it reliably.
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 has 0% description coverage, so the description must compensate. It provides a list of common types for the 'type' parameter, which gives some semantic guidance, but it does not explain that 'type' is required or describe the 'name' and 'location' parameters at all. The agent is left to guess what values are valid for those fields, and the description offers no syntax or examples beyond the type list.
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 a compositor node.' It identifies the resource type (compositor node) and lists common types, which helps distinguish it from shader or geometry node creation tools. However, it does not explicitly connect it to the compositor node tree or mention the broader workflow, so it's clear but not fully differentiated from all siblings.
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?
There is no guidance on when to use this tool versus alternatives like create_shader_node or create_geonode. It also doesn't mention prerequisites such as needing an active compositor tree or whether the node will be automatically connected. The only hint is the word 'compositor' in the description, which is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_curveC
Create a curve object. Types: BEZIER, NURBS, POLY (path).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | No | BEZIER | |
| location | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It only states 'Create a curve object' and lists types; it does not mention side effects, coordinate space, default naming/location behavior, or whether prior selection matters. For a mutation tool, this is minimal.
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?
A single, front-loaded sentence with no filler. The essential information—action, resource, and type options—is delivered efficiently.
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 creation tool with no annotations, the description is too sparse. It does not explain how location is interpreted, whether name is a unique identifier, or what the output of the operation is (though an output schema exists). The type list helps, but the overall guidance is incomplete.
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 coverage is 0%, so the description must compensate. It does cover the 'type' parameter by listing allowed values, but it says nothing about 'name' or 'location'. Even the type list lacks details like default behavior or format restrictions beyond what the schema enumerates.
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 the resource ('a curve object'), and enumerates the valid types (BEZIER, NURBS, POLY). This adequately distinguishes it from modification tools like set_curve_property or set_curve_points, though it doesn't explicitly contrast with generic create_object.
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_object or set_curve_property. The intended use case is implied by the name and description, but there are no explicit conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_geonodeC
Add a node to a geometry node tree. Common types: GeometryNodeMeshGrid, GeometryNodeMeshCube, GeometryNodeSetPosition, GeometryNodeTransform, GeometryNodeJoinGeometry, GeometryNodeInstanceOnPoints, GeometryNodeDistributePointsOnFaces.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | Yes | ||
| object | Yes | ||
| location | No | ||
| modifier | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 states the action (adds a node) but does not mention side effects (e.g., whether existing nodes are affected), required permissions, potential failures for unsupported types, or the return value. For a mutation tool, this is a significant gap in transparency.
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 (one sentence plus a list of examples) and front-loaded with the core action. The list of types is somewhat long but adds value for the 'type' parameter. There is no fluff or redundancy, though the list could be trimmed or moved to an external reference without losing 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?
For a tool with five parameters (three required) and no schema descriptions, the description is insufficient. It does not explain what 'object' and 'modifier' refer to, whether the node tree must already exist, or what the output is. The presence of an output schema is noted, but the description alone does not give an agent enough context to invoke the tool correctly.
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 provides no parameter descriptions (coverage 0%). The description lists valid values for 'type' (e.g., GeometryNodeMeshGrid), which is helpful, but it does not explain the roles of 'object', 'modifier', 'location', or 'name'. This leaves most parameters ambiguous, and the description only partially compensates for the missing schema documentation.
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: 'Add a node to a geometry node tree.' This is a specific verb-resource combination that distinguishes it from sibling tools like connect_geonodes (which connects nodes) and create_geonodes_modifier (which creates a modifier). The mention of common node types further clarifies the scope.
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 does not mention prerequisites (e.g., an existing geometry node tree or modifier), nor does it contrast with related operations like delete_geonode or connect_geonodes. The common types list hints at usage but does not explicitly state conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_geonodes_modifierC
Add a geometry nodes modifier. Creates a new tree or uses an existing one.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | GeometryNodes | |
| object | Yes | ||
| tree_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does reveal an important behavior—creating a new tree or reusing an existing one—but it omits side effects, prerequisites, or what happens to the target object. For a mutating tool, this is thin.
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 front-loaded with the core action. Both sentences carry meaning and there is no filler. It is slightly under-specified for the parameter set, but as a concise statement it is well structured.
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 tool with three parameters, no annotations, and no parameter documentation in the description, this is incomplete. An agent would not know that object is required, what name defaults to, or how tree_name selects between new and existing trees. The output schema may describe return values, but the input semantics are insufficiently covered.
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, but it only vaguely hints at tree_name behavior ('Creates a new tree or uses an existing one'). It does not explain the required object parameter, the name default, or how tree_name interacts with tree creation.
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 a clear verb and resource: 'Add a geometry nodes modifier.' It also adds scope by noting it creates a new tree or uses an existing one, which differentiates it from generic modifier tools. It could more explicitly contrast with the sibling add_modifier, but the purpose is unambiguous.
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 given about when to use this tool versus alternatives like add_modifier or create_geonode. The description implies its use case but does not state exclusions or provide decision criteria for choosing it over sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_gp_strokeC
Create a stroke from point list. Each point: {co: [x,y,z], pressure: float, strength: float}.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | No | ||
| layer | Yes | ||
| object | Yes | ||
| points | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 indicates a creation side effect, but does not disclose whether the stroke replaces or appends to existing strokes, what happens with the optional frame parameter, or failure behavior for invalid object/layer references.
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 front-loaded with the purpose, followed by a compact definition of the point list format. Every sentence earns its place, but the brevity leaves out essential guidance that the other dimensions require.
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 4-parameter mutation tool with no annotations and no schema descriptions, the description is not complete enough. It covers the point structure but omits identifier semantics, frame behavior, error conditions, and side effects, leaving an agent to guess critical invocation 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?
The description only documents the 'points' parameter structure (co, pressure, strength), which is helpful, but it leaves the required 'object' and 'layer' parameters and the optional 'frame' parameter entirely unexplained. Given 0% schema description coverage, this falls short of compensating for the missing parameter semantics.
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 a specific verb and resource ('Create a stroke from point list') and gives the point data format. The sibling list contains no other stroke-creation tool, so the purpose is reasonably distinguishable, though it does not explicitly mention 'grease pencil' in prose.
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?
There is no guidance about when to use this tool versus siblings like create_grease_pencil or add_gp_layer, nor any mention of prerequisites such as an existing grease pencil object and layer. The intended context is only implied by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_grease_pencilC
Create a grease pencil object.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | GPencil | |
| location | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states the creation action and does not mention scene insertion, data-block creation, active-object changes, or name-collision 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 a single direct sentence with no filler and is easy to parse. However, it is so terse that it leaves behavioral and usage gaps, so it is concise but not fully informative.
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?
An output schema exists, so return values need not be described. For a two-parameter creation tool this is near-minimal viable, but missing context about how and where the object is created and how it relates to existing grease pencil objects leaves clear gaps.
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%, and the description does not mention name or location at all. While the parameter names and defaults are fairly self-explanatory, the description should have compensated for the missing schema descriptions and does not.
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?
States a clear verb ('Create') and resource ('grease pencil object'), which distinguishes it from generic create_object and from create_gp_stroke/add_gp_layer that operate on strokes or layers. It is specific enough, though it stays at the phrase level without elaborating on what 'grease pencil object' includes.
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 given on when to use this tool versus alternatives such as create_object, create_gp_stroke, or add_gp_layer. The description provides no context, prerequisites, or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_hdri_worldC
Set up HDRI environment lighting from an image file.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | Yes | ||
| strength | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 up HDRI environment lighting') but doesn't disclose whether this replaces existing world lighting, whether the filepath must reference an already-loaded image or a path on disk, what happens to the existing world setup, or any side effects. For a setup/mutation tool with zero annotation coverage, 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 a single, concise sentence that front-loads the core action. It's appropriately sized for a simple tool, though it could earn its place better by adding a note about the strength parameter or side effects without becoming verbose.
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?
The tool has an output schema (not shown) and only 2 parameters, so the description doesn't need to explain return values. However, for a mutation tool with no annotations, the description is incomplete: it doesn't clarify the filepath semantics (loaded image vs. disk path), the effect of strength, or whether existing HDRI setup is replaced. An agent would need to open the schema or guess to call this correctly.
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 mentions 'from an image file' which maps to the filepath parameter, but it doesn't explain the 'strength' parameter at all. The description adds minimal meaning beyond the schema's bare property names, leaving the agent to guess what 'strength' controls (likely light intensity, but not stated).
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 a specific verb ('Set up') and resource ('HDRI environment lighting from an image file'), which clearly identifies the tool's function. It distinguishes itself from sibling tools like create_light and set_world_property by focusing on HDRI environment setup, though it doesn't explicitly name those 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 context: setting up HDRI environment lighting from an image file. It doesn't explicitly state when to use this over create_light or set_world_property, nor does it mention prerequisites like the image needing to be loaded first. The context is clear enough for an agent to infer the primary use case, but lacks explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_lightC
Create a light. Types: POINT, SUN, SPOT, AREA.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | No | POINT | |
| color | No | ||
| energy | No | ||
| location | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 only states the action without mentioning side effects, required context, or return behavior. It does not indicate whether creating a light modifies the scene immediately, whether it is reversible, or what the output schema contains.
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 sentence and is front-loaded with the action and key type information. It contains no filler and is appropriately brief. The brevity is a strength, though it comes at the cost of missing critical details.
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?
The description is severely incomplete for a tool with five parameters and no annotations. While an output schema exists, the description does not explain parameter semantics, behavioral effects, or usage context. An agent would be left guessing about how to correctly invoke the tool without additional inference.
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 has 0% description coverage, so the description must compensate. It adds meaning only for the 'type' parameter by listing valid values (POINT, SUN, SPOT, AREA). The other four parameters (name, color, energy, location) are left completely unexplained, with no format, constraints, or default behaviors described. This is insufficient for a tool with five 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 action 'Create a light' and enumerates the valid types (POINT, SUN, SPOT, AREA). This differentiates it from other creation tools like create_camera or create_object, and the type list adds specificity. Although it doesn't explicitly contrast with create_light_rig, the core purpose is unambiguous.
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 such as create_light_rig, set_light_property, or create_hdri_world. There are no conditions, prerequisites, or exclusions mentioned, leaving the agent without routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_light_rigB
Create a three-point lighting setup (key, fill, rim). Optionally aimed at a target object.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| key_energy | No | ||
| rim_energy | No | ||
| fill_energy | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose all behavioral traits. It mentions optional aiming and the creation of three lights, but does not state whether it replaces existing lights, how energies map to light intensities, or any side effects. This is a significant gap for a creation 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 a single, efficient sentence that front-loads the core purpose and adds the optional targeting detail. There is no filler or redundancy.
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 moderate complexity (4 optional parameters with defaults), the description provides a conceptual overview but lacks parameter-level detail and side-effect disclosure. The presence of an output schema (not shown) may clarify return values, but the description alone is incomplete for an agent to call correctly without additional reasoning.
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 should explain the parameters. It references key, fill, rim and target, but does not explain the energy parameters (key_energy, rim_energy, fill_energy) or their roles. The schema only provides names and defaults, leaving the agent to guess the meaning of these numeric values.
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 'three-point lighting setup' with components key, fill, rim. This distinguishes it from sibling create_light, which likely creates a single light, and other lighting tools. It also notes optional targeting of an object, making the purpose unambiguous.
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 it is a convenience tool for a classic three-point setup but does not explicitly contrast it with alternatives like create_light or set_light_property. No guidance on when to prefer this over creating lights individually is given, leaving the agent to infer from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_materialC
Create a new Principled BSDF material. base_color is [R, G, B, A] (0-1 range).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Material | |
| metallic | No | ||
| roughness | No | ||
| base_color | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden, but it only reveals the base_color input format. It does not disclose what happens on creation (e.g., whether the material is auto-assigned, how name conflicts are handled, or the effect of a null base_color).
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?
One sentence with the action front-loaded and zero filler. The base_color format note earns its place, though the brevity comes at the cost of omitted parameter semantics.
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 4 parameters, zero annotations, and 0% schema description coverage, this description is incomplete: three parameters are undocumented and creation side effects are not stated. The output schema covers return values, but that does not compensate for the missing input and behavioral 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 document the parameters, yet it only explains base_color's [R,G,B,A] format and 0-1 range. name, metallic, and roughness rely entirely on their names and defaults, leaving their semantics and valid ranges undocumented.
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?
States the verb (Create), resource (material), and specific type (Principled BSDF) in one clear clause. This distinguishes it from siblings like duplicate_material (copy existing) and create_shader_node (node-graph elements), so an agent can select it correctly without opening the schema.
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 on when to create a new material versus reusing, duplicating, or modifying an existing one. The sibling set includes duplicate_material, assign_material, and set_material_property, but the description offers no selection criteria among them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_node_groupC
Create a node group from selected nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | NodeGroup | |
| nodes | Yes | ||
| material | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits itself. It only states the action 'Create' and does not explain side effects (e.g., whether selected nodes are moved or duplicated), any required context (e.g., active node tree), or what happens to the original nodes. The existence of an output schema is not mentioned, and there is no information about permissions or reversibility. This is a significant gap 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 a single sentence with no filler words, making it efficient and front-loaded with the core action. However, it is overly sparse; while conciseness is good, it sacrifices essential detail. It could be more informative without becoming verbose, so it earns a 4 rather than a 5.
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 tool with 3 parameters, no annotations, and an output schema, this description is severely incomplete. It does not explain the role of the required 'material' parameter, how 'nodes' are referenced, the meaning of the optional 'name', or what the output represents. It also fails to distinguish from the many node-related siblings. An agent cannot reliably invoke this tool based on this description alone.
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 by explaining parameter meanings. It does not mention 'material', 'nodes', or 'name' at all. The description adds zero value beyond the schema, which already lists parameter names and types. This leaves the agent guessing what 'material' represents (e.g., a shader material, a material slot) and what the 'nodes' array expects.
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 a clear action ('Create') on a specific resource ('a node group') and specifies the source ('from selected nodes'), making the core purpose understandable. However, it does not differentiate from sibling node tools like create_shader_node or create_geonode, nor does it clarify whether this is a shader node group, geometry node group, or generic, leaving ambiguity about its scope.
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 given on when to use this tool versus alternatives such as add_node_group_instance or create_shader_node. It does not state prerequisites like having nodes selected or being inside a specific node tree, nor does it mention any exclusions. The only implied usage is 'create a node group', which is too vague to route an agent correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_objectB
Create a new object. Types: CUBE, SPHERE, CYLINDER, CONE, TORUS, PLANE, CIRCLE, GRID, MONKEY, UV_SPHERE, ICO_SPHERE, EMPTY. Returns the actual name assigned (may differ if name already exists).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | No | CUBE | |
| location | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are not provided, so the description carries the burden of behavioral disclosure. The description mentions that the returned name may differ if the name exists, which is a useful behavioral note. However, it does not disclose other behaviors like error handling, whether the object is automatically selected, or any side effects like affecting the active collection. It also doesn't specify if the object is created in the current scene or if any coordinate system is used.
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 two sentences long, with the first sentence front-loading the verb and object types. The second sentence adds a critical behavioral detail about name uniqueness. It is concise with no filler. The only minor issue is that the list of types could be trimmed or moved to schema, but it is useful in the description.
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 that all parameters are optional (0 required), the tool is relatively simple. An output schema exists, so return format is covered. The description covers the supported types and name uniqueness. Missing context includes whether location is optional and what happens if type is invalid. But for a simple creation tool, it is adequate. It could be more complete by noting that location uses world coordinates or that the object is added to the active collection, but these are minor.
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. The description lists the 'type' possible values and explains the return name behavior, but the 'name' and 'location' parameters are left to the schema, which has enums? Actually, there are no enums. The schema shows defaults and types but not semantics beyond that. The description adds minimal value for parameter understanding; the agent still needs to infer that location expects coordinates and name is a string identifier. A baseline of 3 is appropriate because the description adds some context but not much beyond what the schema implies.
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 creates a new object and provides a list of supported types, which aligns with the 'create_object' name. It distinguishes itself from sibling tools like create_light, create_camera, etc., by focusing on generic object creation. However, it does not explicitly name any sibling or explain why this tool is used over others, but the purpose is unambiguous.
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 context: creating objects of various types in the scene. It does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives. For example, it doesn't clarify that this is for basic primitives and that more complex objects like lights, cameras, or curves have dedicated tools, which are listed as siblings. This is a gap but not misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_shader_nodeB
Add a shader node to a material. Common types: ShaderNodeBsdfPrincipled, ShaderNodeTexImage, ShaderNodeTexNoise, ShaderNodeMixRGB, ShaderNodeBump, ShaderNodeNormalMap, ShaderNodeMapping, ShaderNodeTexCoord, ShaderNodeValToRGB, ShaderNodeMath.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | Yes | ||
| location | No | ||
| material | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states the creation action and lists common types; it does not mention failure behavior for invalid material or type, how location defaults work, or what the response contains. This is insufficient 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?
Two compact sentences, front-loaded with the action and resource. The type list is relevant and not padded; there is no redundant or verbose content.
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?
Even though an output schema exists, the description omits key contextual details: prerequisite material existence, distinction between material/shader trees and geometry/compositor trees, and where to find the complete type list. An agent can make a basic call but may fail without those implicit assumptions.
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 a useful list of common `type` values, but it leaves `material`, `name`, and `location` semantics unexplained (e.g., that material is a material name, location is a 2D coordinate). This is partial compensation only.
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 an explicit action ('Add a shader node') with a specific resource ('a material') and enumerates common valid node types. This clearly distinguishes it from sibling tools like delete_shader_node, connect_shader_nodes, and geometry/compositor node creation.
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 gives no guidance on when to use this tool versus alternatives, no prerequisites (e.g., material must exist, node tree must be enabled), and no pointer to list_shader_node_types for the full type catalog. Usage is only implied by the tool name and verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_uv_mapC
Add a UV map to a mesh object.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | UVMap | |
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 ('adds a UV map') but doesn't say what happens if the object isn't a mesh, whether an existing UV map with the same name is overwritten or auto-renamed (relevant given the 'UVMap' default), or whether the operation is reversible. Nothing is misleading, but behavior is essentially undisclosed.
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 single sentence has no fluff and is front-loaded with the core action. But the brevity reads as under-specification rather than efficient compression: for a tool with no annotations and 0% schema coverage, this is too thin to be 'appropriately sized.'
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?
The tool is simple (2 parameters, 1 required, output schema present), which reduces the burden, but the description still omits essential call information: the meaning of `name` is unexplained, collision behavior with existing UV maps is unknown, and no error conditions are noted. With no annotations and an empty parameter schema, these omissions leave an agent guessing.
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 loosely maps the `object` parameter by specifying the target is a mesh, but it never mentions the `name` parameter—its meaning, format, or 'UVMap' default. The added value over the bare schema is marginal (a single noun, 'mesh'), which is insufficient for two otherwise undocumented 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 uses a specific verb ('Add') with a concrete resource ('UV map') and target ('mesh object'), making the core action unambiguous. It doesn't, however, differentiate itself from the sibling `smart_uv_project`, which also produces a UV map on a mesh, so it earns a 4 rather than a 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?
There is no guidance on when to use this tool versus `smart_uv_project` (projection-based UV creation) or `get_uv_maps` (reading existing maps). No prerequisites are stated—e.g., that `object` must reference an existing mesh—and no error cases or alternatives are mentioned. The intended use is only implied by the tool name and one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_vertex_groupC
Create a vertex group, optionally assigning vertices with a weight.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| object | Yes | ||
| weight | No | ||
| vertices | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only states the obvious creation action and optional vertex assignment. It does not explain what happens if the group already exists, whether the object must already exist, or how the weight is applied to the listed vertices.
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 concise sentence with no wasted words. However, conciseness is achieved by omitting important parameter context, so it is efficient but incomplete.
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 4-parameter creation tool with no annotations and zero schema description coverage, this description is under-specified. It fails to mention the required 'object' parameter, gives no usage context, and leaves the weight semantics ambiguous. The presence of an output schema does not compensate for these gaps.
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, but it only lightly covers vertices and weight while omitting the required 'object' parameter entirely. It does not clarify that 'weight' is a single scalar applied to all assigned vertices or how the 'vertices' array relates to the object.
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 uses a specific verb and resource, 'Create a vertex group', and notes the optional assignment of vertices with a weight. It is clear about the basic operation, though it does not explicitly differentiate itself from siblings like assign_vertex_weights or get_vertex_groups.
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?
There is no guidance on when to use this tool versus alternatives such as assign_vertex_weights or get_vertex_groups. No context is provided about prerequisites or whether this should be used before other vertex-group operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_collectionADestructive
Delete a collection. Objects in it become orphaned. Confirm required.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description discloses a specific destructive consequence—objects become orphaned—and states that confirmation is required. This is meaningful behavioral context that helps an agent anticipate the side effects of calling the 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?
Three short, front-loaded sentences: action, consequence, and requirement. Each sentence adds distinct information with no filler or redundancy.
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 two-parameter destructive tool with an output schema and a destructiveHint annotation, this description covers the critical operation, side effect, and safety gate. No essential information is missing for a correct invocation.
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 provides 0% description coverage, so the description carries the burden. It clarifies that confirm is required, overriding the schema's default false, but the required name parameter is only implied by the tool name rather than explained.
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?
States the operation as 'Delete a collection' with a specific resource and meaningful consequence. It differentiates itself from object/material deletion tools by naming collections and describing orphan behavior, so an agent understands exactly what this tool targets.
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?
Gives no guidance about when to choose this over related alternatives like batch_delete, move_to_collection, set_collection_visibility, or list_collections. The only actionable hint is 'Confirm required,' which addresses how to invoke the action rather than when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_comp_nodeC
Remove a compositor node.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It states the action but doesn't disclose side effects, such as whether removing a node also disconnects its links, whether it fails silently if the node doesn't exist, or whether it affects the active node selection. The description is minimal and leaves these behaviors unspecified.
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, short sentence that is easy to parse and front-loads the action. It is appropriately concise for a simple tool, though it could add a bit more context without becoming verbose.
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, the description is minimal but lacks important context. There is no mention of how the node is identified, what happens to connected links, or whether the compositor must be enabled. The output schema exists but doesn't compensate for the missing behavioral and parameter semantics.
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%, and the description only says 'Remove a compositor node' without explaining what the 'node' parameter should contain (e.g., node name, ID, or path). The schema only defines it as a string, so the description adds no semantic value beyond the parameter name. The agent must infer the expected format from context.
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 'Remove a compositor node' clearly states the verb (remove) and resource (compositor node), distinguishing it from sibling tools like create_comp_node, connect_comp_nodes, and set_comp_node_input. It is concise and unambiguous, though it doesn't explicitly mention the node tree context or that it operates on the current compositor node tree.
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. It doesn't mention prerequisites like enabling the compositor, whether the node must exist, or how it relates to other node operations. The sibling list includes many node-related tools, but the description gives no context for choosing this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_geonodeB
Remove a node from a geometry node tree.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| object | Yes | ||
| modifier | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 disclosing behavior. It only states the removal outcome and does not mention destructive side effects, irreversibility, or whether connected geometry node links are also affected.
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 sentence with no filler or repetition. It front-loads the action and target, making it easy 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?
For a destructive tool with no annotations and three required parameters, the description is too sparse. It lacks parameter details, prerequisites, and side-effect disclosure, even though an output schema exists for return values.
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 by explaining the parameters, but it does not. The parameter names 'object,' 'modifier,' and 'node' give partial hints, but the description does not clarify what type of modifier is expected or how the node is identified.
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 uses a specific verb ('Remove') and identifies the exact resource ('a node') within the scoped context of 'a geometry node tree.' This distinguishes it from sibling tools like delete_shader_node and delete_comp_node, which operate on different node systems.
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 instead of alternatives such as delete_shader_node or delete_comp_node. There are also no mentions of prerequisites, such as the node existing in a geometry nodes modifier on the specified object.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_keyframeC
Delete a keyframe at a specific frame.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | Yes | ||
| index | No | ||
| object | Yes | ||
| data_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 only says 'Delete' without mentioning side effects, whether deletion is irreversible, how the index parameter affects which keyframe is removed, or how the tool behaves if no keyframe exists at the given frame. This matches a minimal mutation description that lacks important 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 a single, efficient sentence that front-loads the core action and scope. It avoids filler and redundant phrasing, achieving good conciseness, though it sacrifices detail that other dimensions require.
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?
Despite the presence of an output schema, the tool has four parameters with zero schema-level descriptions and no annotations, and the description explains only the 'frame' aspect. An agent would lack crucial information about how to specify the target object, data path, and keyframe index, making the description incomplete for correct invocation in non-trivial 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?
Schema description coverage is 0%, so the description must compensate for the undocumented parameters. It adds some meaning to 'frame' as the specific frame where deletion occurs, but it does not explain the required 'object' and 'data_path' parameters or the optional 'index' parameter, which likely disambiguates multiple keyframes at the same frame.
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 uses a clear verb ('Delete') and resource ('a keyframe') with a specific scope ('at a specific frame'), making the primary action obvious. It does not explicitly distinguish itself from siblings like clear_animation or set_keyframe, but the phrasing narrows the operation enough that an agent can infer it targets one keyframe rather than all animation.
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?
There is no guidance about when to use this tool versus alternatives such as clear_animation (delete all keyframes), set_keyframe (create/update), or batch_delete. The description only states what the tool does, not when it should be selected, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_materialADestructive
Delete a material. Confirm required. Removes from all object slots.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With destructiveHint already declared true, the description adds meaningful context beyond the annotation: the confirm requirement and the fact that it affects all object slots. This enriches the agent's understanding of the operation's side effects without contradicting the annotations.
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 short and front-loaded, with the core action first and the key requirement (confirm) and side effect (removes from slots) stated efficiently. No wasted words.
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?
The description covers the essential destructive behavior and confirm requirement, but omits details such as error handling (e.g., what happens if the material does not exist) and the exact return value, even though an output schema exists. It is adequate but leaves some edge cases unaddressed.
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 only mentions the confirm parameter implicitly ('Confirm required') and says nothing about the 'name' parameter beyond its obvious purpose. Given zero schema coverage, this is a significant gap; the agent cannot infer parameter formats or constraints from the description.
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 a clear verb-resource pair ('Delete a material') and adds a distinctive behavior ('Removes from all object slots') that separates it from sibling tools like remove_material. This is specific and unambiguous.
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?
It does not explicitly contrast with alternatives such as remove_material, but it does provide an important usage constraint ('Confirm required') that tells the agent a boolean must be set to true to proceed. This is helpful but not a full when-to-use versus when-not-to-use guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_objectADestructive
Delete an object by name. Confirm required.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the destructive nature is known. The description adds the confirmation requirement, which is useful behavioral context, but it does not clarify whether the delete is irreversible, what happens when confirm is false, or whether deletion cascades to children or associated data.
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?
Two short sentences front-load the operation and target, with no filler. Every word contributes meaning.
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 two-parameter destructive tool with destructiveHint and an output schema, the description is nearly complete. The only notable gap is the ambiguous phrasing of 'Confirm required'—it does not explicitly state that confirm must be set to true to proceed.
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. 'By name' explains the name parameter, and 'Confirm required' gives the confirm parameter meaningful semantics beyond its default of false. It is minimal but does clarify both 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?
States a specific verb and resource: delete an object by name. This clearly distinguishes it from siblings like delete_collection and batch_delete by entity type and scope, and leaves no doubt about the operation.
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?
Implies the tool is for deleting a single object by name and requires confirmation, but it does not explicitly mention alternatives such as delete_collection or batch_delete, nor does it exclude cases where those should be used. The basic usage is inferable, but no explicit routing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_shader_nodeB
Remove a node from a material's node tree.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| material | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 only the basic destructive action ('Remove a node') and does not disclose side effects such as breaking incoming/outgoing connections, whether removal is undoable, or whether the node must exist for the call to succeed.
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 focused sentence with no filler. The action and target are front-loaded, and every word earns its place.
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 small two-parameter destructive operation, the description is minimally sufficient: an agent can infer the material and node parameters and what the tool accomplishes. However, it omits behavioral consequences like connection handling, which matters for a delete operation in a node graph, so it is not fully complete.
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 for missing parameter details. It does not explain what format 'material' and 'node' should take (names, IDs, paths, etc.) or how they are resolved. The parameter names are self-explanatory at a high level, but the description adds no semantic depth beyond the schema itself.
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 uses a specific verb ('Remove') and a clear resource ('a node from a material's node tree'), making the tool's function immediately obvious. It also implicitly distinguishes this from sibling tools like delete_geo_node or delete_comp_node by scoping to the material node tree.
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 one-liner implies the use case: call this when a node should be removed from a material's node tree. However, it gives no explicit guidance on when not to use it, nor does it mention related alternatives such as disconnect_shader_node for preserving links or simply unplugging the node.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disconnect_geonodeC
Disconnect an input on a geometry node.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| input | Yes | ||
| object | Yes | ||
| modifier | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. 'Disconnect' implies a mutation, but it does not describe side effects, whether disconnecting resets the input to a default, whether it is idempotent, what happens if the connection does not exist, or whether it affects other node connections.
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 one short sentence with no filler or redundancy. It is front-loaded and easy to parse, though it is arguably too sparse for a tool with four required parameters.
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 four required parameters and no annotations, the description is under-specified. It lacks context about prerequisites (e.g., a geometry nodes modifier must exist), how to identify the node and input, and whether an output schema describes a meaningful result. The agent would need to infer most 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 clarify the meaning of object, modifier, node, and input. It only mentions 'input on a geometry node,' leaving the other three parameters unexplained. It does not even state the expected format for identifying the input (e.g., name vs index).
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 a clear action and resource: 'Disconnect an input on a geometry node.' It is not a tautology and gives enough information to identify the tool's domain (geometry nodes vs shader/compositor nodes). However, it does not explicitly differentiate from the sibling connect_geonodes beyond implying the opposite operation.
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 instead of connect_geonodes, set_geonode_input, or disconnect_shader_node. The intended usage is only implicit from the name and generic description, and no conditions or alternative routing are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disconnect_shader_nodeB
Disconnect an input socket on a node.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| input | Yes | ||
| material | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It adds a minimal detail ('input socket') but does not state whether the operation is destructive, reversible, or if it affects other connections. The behavior is fairly obvious from the name, but the description does not elaborate on side effects or scope.
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, front-loaded sentence with no wasted words. It communicates the core action efficiently, which is appropriate for a simple 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?
Despite the tool's simplicity, the description is incomplete. It does not clarify how to specify the 'input' parameter (by name or index), nor what the tool returns (even though an output schema exists). It also fails to mention that all three parameters are required, leaving the agent without enough information to use the tool reliably.
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 by explaining the parameters. It mentions none of them (material, node, input), leaving the agent to guess their meaning and format. The parameter names are somewhat self-explanatory, but the description adds no semantic value beyond the schema.
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 a clear verb ('Disconnect') and resource ('an input socket on a node'), which directly differentiates it from siblings like 'connect_shader_nodes' and 'set_node_input'. The tool name itself clarifies it operates on shader nodes, and the description adds the specificity of an input socket.
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 such as 'connect_shader_nodes' or 'set_node_input'. There is no mention of prerequisites, scenarios, or exclusions, leaving the agent to infer the appropriate context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate_materialB
Duplicate a material. Returns the new material name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| new_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden, and it does state the core operation and return value. However, it does not disclose what happens when new_name is omitted, whether the new material is automatically assigned anywhere, or whether the original material is affected. For a simple duplication operation, this is minimally adequate but not richly transparent.
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?
Two short sentences deliver the operation and the return value with no filler. The action is front-loaded and every word earns its place.
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 two-parameter tool with no annotations and zero parameter documentation in the schema, the description is too thin. It captures the essential action but omits the meaning of the optional parameter, naming behavior, and any side effects, leaving meaningful gaps for an agent selecting or invoking the tool.
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, but it never explicitly describes the `name` parameter as the source material or `new_name` as the optional target name. 'Returns the new material name' only vaguely hints at `new_name`, leaving both parameters underspecified for an agent relying on the description.
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?
'Duplicate a material' names a specific action and resource, making it clear this creates a copy of an existing material rather than creating or deleting one. It is distinct from nearby siblings like create_material, delete_material, and duplicate_object, though it does not explicitly name those 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 provides no guidance on when to use this tool versus create_material, delete_material, or other material-related tools. There are no stated conditions, exclusions, or alternative suggestions, leaving an agent to infer usage solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate_objectA
Duplicate an object. If linked=True, the copy shares mesh data with the original.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| linked | No | ||
| new_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does disclose one important trait: linked=True makes the copy share mesh data with the original. However, it leaves other copy semantics implicit (e.g., what happens when linked=False, whether modifiers/materials are copied) and gives no safety or side-effect 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?
Two short sentences with no filler. The core action is front-loaded, and the linked modifier is placed where it is most likely to be considered.
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?
The description covers the core duplicate action and the linked option, but for a mutating tool with no annotations it leaves usage guidance and full copy semantics unspecified. An output schema exists, so return values do not need explaining, but the description is still thin on 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 explicitly explains the linked parameter's effect, which is useful, but it does not describe name or new_name beyond what their names imply. The compensation is partial rather than complete.
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 opens with the specific verb-plus-resource phrase 'Duplicate an object,' which immediately identifies the tool's purpose and distinguishes it from sibling tools like duplicate_material and copy_modifiers. The conditional clause about linked duplication adds a precise behavioral scope.
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 when-to-use or when-not-to-use guidance is provided. The description does not mention alternatives such as create_object, duplicate_material, or copy_modifiers, nor does it state criteria for choosing this tool over those siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_compositorA
Enable the compositor (use_nodes=True on scene).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavior, and it does state the exact scene state change (use_nodes=True). However, it does not mention whether the operation is idempotent, whether it clears existing compositor nodes, or any side effect on rendering. For a simple boolean toggle this is adequate but not richly transparent.
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 concise sentence with a useful parenthetical. It is front-loaded with the verb and resource, and every word contributes meaning. No filler or redundant phrasing.
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 that this is a simple no-parameter operation and an output schema exists, the description is mostly complete. It could be improved by noting when to call it (e.g., before creating compositor nodes), but that gap is more about usage guidance than core operational completeness.
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 zero parameters and the schema already covers this fully. The description's parenthetical about use_nodes=True adds a bit of implementation context but is not necessary for parameter understanding. With no parameters, a baseline of 4 is appropriate.
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 ('Enable the compositor') and the underlying implementation ('use_nodes=True on scene'), so an agent knows exactly what operation is performed. It does not explicitly differentiate from sibling tools like get_compositor_tree or setup_basic_composite, but the verb and resource are specific enough to avoid obvious confusion.
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 such as setup_basic_composite or get_compositor_tree. There is no mention of prerequisites, ordering, or whether this should be called before creating compositor nodes. The agent is left to infer usage context from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enter_sculpt_modeC
Switch an object to sculpt mode.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 mode switch but doesn't disclose side effects (e.g., whether the object's current mode is lost, whether the viewport changes, whether the operation is reversible, or whether it requires the object to be a mesh). For a mode-changing operation, 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 a single short sentence with no wasted words. It is front-loaded with the action and resource. However, it is so brief that it sacrifices useful context, but for what it contains, it is concise and clear.
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 (one parameter, no annotations, no output schema details), the description is minimal but not fully complete. It doesn't explain what 'object' refers to, what constitutes a valid object, or what the expected outcome is beyond the mode switch. An agent would likely need to inspect other tools or make assumptions to use it correctly.
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%, and the description does not explain the 'object' parameter beyond its name. The schema only says it's a required string, leaving the agent to guess whether it's an object name, ID, or path. The description adds no meaning beyond the schema, so it fails to compensate for the low coverage.
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 'Switch an object to sculpt mode' clearly states the action (switch) and the resource (an object to sculpt mode). It is specific enough to distinguish from most siblings, though it doesn't explicitly name a sibling alternative like set_sculpt_brush or remesh. The verb and resource are clear, so it earns a 4 rather than a 5 due to lack of explicit 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 gives no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., object must be a mesh), what happens if the object is not sculptable, or when one might prefer set_sculpt_brush or other sculpt-related tools. The context is implied by the name and description, but no explicit usage guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_fileB
Export the scene to a file. Format is auto-detected from extension if not specified.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | ||
| filepath | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It does reveal a useful behavior — format is auto-detected from the file extension — but it omits important side effects like whether existing files are overwritten, what happens on unsupported extensions, or whether any scene state is modified.
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?
Two concise sentences with no filler. The core purpose is front-loaded, and the auto-detection note is placed second as a useful clarification.
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?
The tool is simple with only two parameters and an output schema exists, so a long description is not necessary. However, without annotations, the description should at least mention overwrite risk or unsupported-extension handling to be fully contextual; these gaps prevent a higher score.
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. It adds meaning to the format parameter by explaining it is optional and derived from the filepath extension, but it says nothing about the required filepath parameter beyond its name, nor about acceptable extensions or path requirements.
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 a specific verb and resource: 'Export the scene to a file.' This clearly distinguishes it from sibling tools like import_file (opposite direction) and export_selection (exports only the selection rather than the whole 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?
The description gives no guidance on when to use this tool versus alternatives such as export_selection, save_file, or list_supported_formats. It only mentions format auto-detection, not the conditions that would make this tool the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_selectionB
Export only selected objects to a file.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | ||
| filepath | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 only states the action and destination; it does not disclose file-overwrite behavior, default format handling, errors on empty selection, or whether the operation mutates the scene. For an export tool 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?
A single, front-loaded sentence with zero waste. It is efficient, though it borders on under-specification; but for a simple tool the brevity is acceptable and earns its place.
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?
Despite having an output schema (not shown) and a clear sibling contrast, the description is incomplete. It lacks essential operational details such as file overwrite policy, format handling, and behavior with no selection, which an agent would need to call it correctly 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?
Schema description coverage is 0%, so the description must compensate. It mentions 'to a file' (implying filepath) but gives no explanation of the 'format' parameter, its default, or allowed values. The description adds no meaningful parameter semantics beyond the schema itself.
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 a specific verb (Export), resource (only selected objects), and destination (to a file). It clearly differentiates from the sibling 'export_file' by scoping to selected objects, leaving no ambiguity about what the tool does.
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 phrase 'only selected objects' implicitly guides the agent to use this when there is a selection and to use export_file otherwise. However, it does not explicitly name the alternative or provide a when-not-to-use condition, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_error_objectsARead-only
Find objects with issues: missing textures, broken modifiers, invalid references.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, so the tool is clearly read-only. The description adds specific examples of issues it detects, which enriches the behavioral understanding. But it doesn't describe the output format or whether it returns a list of object IDs or detailed error information, though there is an output schema that may cover this. No contradiction with annotations.
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 sentence that is front-loaded with the main verb 'Find' and the subject 'objects with issues', followed by concise examples. It is efficient and to the point, with no wasted words.
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 zero-parameter read-only tool with an output schema, the description is quite complete. It explains the purpose and the kinds of issues, which is enough for an agent to decide when to call it. The only minor gap is not specifying the return format, but the output schema likely covers that. Given the simplicity, it's highly complete.
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 zero parameters, so the description's job is to explain what the tool operates on. It describes the scope (objects with issues) and gives examples of issue types, which is meaningful. Since there are no parameters to document, the baseline for zero params is 4, and the description meets that with clear context.
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 finds objects with issues, listing specific examples (missing textures, broken modifiers, invalid references). This distinguishes it from generic find_objects, which likely finds objects by name or criteria. However, it could be more explicit that it scans for errors rather than filtering by user-defined criteria, but the examples provide good clarity.
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 when to use this tool: when you need to identify objects with problems. It doesn't explicitly mention alternatives like find_objects, but the sibling name suggests a contrast. Given the context, an agent can infer that find_objects is for general search and this one is for error detection, but it's not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_objectsBRead-only
Search for objects by name pattern (glob), type, material, or collection.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| material | No | ||
| collection | No | ||
| name_pattern | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint=true annotation already establishes this as a safe read operation, and the description's 'Search' wording is consistent with that. The description adds minor behavioral context (glob-based matching) but does not disclose pagination, match semantics (AND vs OR among filters), or behavior when all filters are null, which would be relevant for a search 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?
A single 13-word sentence that front-loads the action and resource, then lists every filter dimension compactly. There is no filler, repetition, or unnecessary detail — every word earns its place.
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?
The output schema covers return values and the annotation covers safety, but the description omits filter-combination semantics, empty-filter behavior, and differentiation from list_objects/find_error_objects. For a four-optional-parameter search tool, an agent has most of what it needs but must guess at several 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?
With 0% schema description coverage, the description carries the full burden of explaining parameters. It does name all four properties and clarifies that name_pattern uses glob syntax, which adds real value beyond the empty schema. However, it leaves gaps: whether filters combine with AND/OR, whether matching is case-sensitive, and what a null value means.
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 a clear action ('Search') with a specific resource ('objects') and enumerates the filter dimensions: name pattern (glob), type, material, and collection. It does not explicitly differentiate itself from siblings like list_objects or find_error_objects, but the filter-based search intent is plainly distinct from listing or error-finding.
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 given on when to use this tool versus list_objects (which may return all objects) or find_error_objects (which searches a narrower category). There are no exclusions, prerequisites, or 'use X instead' hints, so an agent must infer the appropriate selection from the sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
frame_allA
Frame the viewport to show all objects (Home key).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 accurately conveys that the tool changes the viewport view to encompass all objects, and 'Frame' implies a view-only camera adjustment rather than a destructive operation. It does not spell out side effects, but for a zero-parameter viewport command the description is adequately transparent.
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 concise sentence that states the action, target, and scope with no filler. It is front-loaded with the verb and resource, making it immediately scannable. Every word earns its place.
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 simple zero-parameter viewport command, the description is complete: it states the action, the object of the action, and the intended result. The presence of an output schema means return values do not need explanation. Mentioning frame_selected as an alternative would be a minor enhancement, but nothing essential is missing.
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 zero parameters, so the baseline is 4. The description adds no parameter-specific meaning, but none is needed since the input schema is empty. The action and scope are fully described without any parameter 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 uses a specific verb ('Frame') with a clear resource ('viewport') and scope ('all objects'). It clearly distinguishes this tool from the sibling frame_selected, which would frame only selected objects. The parenthetical '(Home key)' adds a useful familiar reference.
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 clearly implies the usage context: use this when you want the viewport to display all objects. It does not explicitly mention alternatives like frame_selected, but the phrase 'all objects' makes the intended condition clear. No exclusions or when-not guidance are provided, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
frame_selectedA
Frame the viewport to show selected objects (Numpad .).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 clearly states the viewport will be re-framed to show selected objects and adds the shortcut, which is sufficient for a non-destructive viewport command. It does not cover edge cases like empty selection, but those are low-risk for this operation.
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 entire description is a single nine-word sentence with a parenthetical shortcut. It is front-loaded with the key action and contains no filler.
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?
With zero parameters, no annotations, and an existing output schema, the description covers the meaningful input state and the effect. The only minor gap is not stating behavior when nothing is selected, but this is a minor edge case for a viewport framing command.
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 zero parameters and the schema is empty, so there is no parameter meaning to explain. The description's 'selected objects' actually communicates the implicit state the command depends on, which adds value beyond the schema baseline.
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 names a specific action ('Frame the viewport') and target ('selected objects'), and includes the Blender shortcut 'Numpad .'. It clearly distinguishes from the sibling frame_all by specifying the selected-object scope.
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 phrase 'selected objects' gives clear contextual guidance for when to use the tool, and the sibling list makes frame_all the obvious alternative for framing everything. It does not explicitly name that alternative, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
free_physics_bakeCDestructive
Free baked physics simulation data. Irreversible.
| Name | Required | Description | Default |
|---|---|---|---|
| object | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the destructive nature is known. The description adds the word 'Irreversible', which reinforces but does not significantly expand beyond the annotation. It does not explain what exactly is freed (per object or scene-wide) or any side effects, but given the annotation, this is a minor 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 extremely short: 'Free baked physics simulation data. Irreversible.' It is concise and front-loaded, but the brevity sacrifices essential details. It is not bloated, but it is under-specified rather than appropriately concise.
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 destructive operation with an output schema (which is not described), the description is incomplete. It does not specify the scope (single object vs all objects), the exact effect on the simulation cache, or the return value. The agent cannot fully anticipate the outcome. Given the tool's simplicity, more 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?
The schema has 0% description coverage and the only parameter 'object' is undocumented. The description does not mention the parameter at all, leaving the agent to guess what 'object' refers to (e.g., which object's baked data). With no schema description and no compensation in the tool description, this is a critical 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 states a specific verb 'Free' and a resource 'baked physics simulation data', clearly indicating the action. It is distinguishable from siblings like 'bake_physics' (the opposite) but does not explicitly differentiate from other deletion-like tools such as 'delete_collection' or 'remove_physics', so it lacks explicit 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 offers no guidance on when to use this tool versus alternatives. It does not mention that this is for freeing memory after baking, nor does it contrast with 'bake_physics' or 'remove_physics'. The only hint is 'Irreversible', which is a warning but not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_action_infoARead-only
Get info about an action: frame range, channels, keyframe count.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already declares the operation safe; the description adds that the tool returns frame range, channels, and keyframe count, which is useful but largely duplicates what an output schema would provide. No mention of side effects, errors, or requirements beyond the annotation.
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?
A single 11-word sentence that front-loads the verb and object and appends the info details. No filler, no repetition of schema.
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 simple one-parameter read-only getter with an output schema, the description covers the purpose and key return content. It lacks explicit relationship to sibling tools (e.g., 'use after list_actions'), but the essential information is present given the low complexity.
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 does so by establishing that 'name' refers to the action being queried, making the parameter's role clear despite the bare schema. It does not specify naming format, but for a single string parameter this is minor.
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?
States the specific verb 'Get' and resource 'action', and enumerates the exact information returned (frame range, channels, keyframe count), clearly distinguishing it from sibling tools like list_actions or get_keyframes.
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?
Offers no guidance on when to use this tool versus alternatives such as list_actions (to enumerate actions) or get_keyframes (to inspect keyframe data). The context is clear only by inference, not explicit instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_armature_infoBRead-only
Get armature info: bone hierarchy, bone count.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the safety profile, and the description is consistent with it by calling the operation 'info'. However, the description adds no further behavioral context such as error conditions, permissions, or scope limits, so it only meets the baseline with annotation support.
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 compact sentence that immediately conveys the tool's purpose and key outputs. It is front-loaded and contains no filler or redundant phrasing.
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?
Despite having an output schema, the description is incomplete for correct invocation because it fails to define the 'object' parameter. With one required parameter and zero schema documentation, an agent lacks essential information about what value to supply.
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% and the single 'object' parameter is undocumented. The description implies the target should be an armature, but it does not explain what format to use (name, path, ID, etc.), so the agent cannot reliably construct the argument.
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 a clear verb and resource ('Get armature info') and specifies concrete fields: bone hierarchy and bone count. This differentiates it from siblings like get_bone_info and get_object_info, so an agent can tell when to use it.
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 given about when to use this tool versus alternatives such as get_bone_info or get_object_info. There are no exclusions, prerequisites, or context clues beyond the basic purpose, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bone_infoBRead-only
Get bone info: head, tail, roll, parent, children, constraints.
| Name | Required | Description | Default |
|---|---|---|---|
| bone | Yes | ||
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that the operation is safe, and the description adds the list of returned fields, which is useful context. No additional behavioral traits such as error behavior, required armature state, or naming conventions are disclosed, but for a simple getter the annotation plus output schema cover the main safety concern.
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 crisp sentence that conveys the tool's purpose and the contents of the returned info without filler. It is front-loaded and easy to scan, making it appropriately concise.
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?
This is a low-complexity getter with readOnlyHint, an output schema, and only two required parameters, so the description is mostly sufficient. The main gaps are missing parameter semantics and usage routing, but these are modest given the tool's simplicity and the presence of structured annotations and output schema.
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 input schema has two required string parameters, but schema description coverage is 0% and the description does not explain what 'object' and 'bone' refer to or how they are formatted. The parameter names are mildly self-explanatory, but the description adds no meaning beyond the schema itself.
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 names a specific operation ('Get') and resource ('bone') and enumerates the returned attributes: head, tail, roll, parent, children, constraints. This makes the tool's purpose clear and distinguishes it from related siblings like get_armature_info or list_bone_constraints, though it does not explicitly call out those 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 is a fragment and gives no guidance on when to use this tool instead of alternatives such as get_armature_info, list_bone_constraints, or set_bone_property. A read-only intent is implied, but no context, prerequisites, or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_compositor_treeARead-only
Get the compositor node tree structure.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description only repeats 'get' without adding behavioral context such as whether the active compositor tree is returned or what happens when no tree exists. It does not contradict the annotation, but it adds little beyond it.
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 with no filler or redundant detail. For a parameterless getter, this is appropriately sized 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?
With zero parameters, a read-only annotation, and an output schema present, the description covers the essential invocation context. The only minor gap is not specifying that it targets the active compositor tree, but this is unlikely to block correct 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 tool has zero parameters and 100% schema coverage, so there is no parameter ambiguity for the description to resolve. The baseline of 4 is appropriate because no parameter information is needed.
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 names a specific verb ('Get') and resource ('compositor node tree structure'), making the operation unambiguous. The 'compositor' qualifier clearly separates it from the sibling get_node_tree and get_geonodes_tree 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 resource is named clearly, so an agent can infer that the tool is for retrieving the compositor tree, but there is no explicit guidance about when to choose it over sibling node-tree getters or any mention of prerequisites like enabling the compositor. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_curve_infoARead-only
Get curve info: spline count, point count, dimensions, bevel settings.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation, and the description is consistent with that. The description adds value by listing what information is returned, but it does not disclose additional behavioral traits such as prerequisites, errors, or how the curve object is identified.
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 concise sentence, front-loaded with the core purpose ('Get curve info') followed by a clear list of returned attributes. There is no redundancy or filler.
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?
The tool is simple and has an output schema plus a readOnlyHint, so the return structure does not need to be explained. However, the description does not clarify the 'object' parameter or provide usage guidance, leaving an important gap for an agent to invoke the tool correctly.
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 has one required parameter, 'object', with no description, and schema description coverage is 0%. The tool description does not explain the parameter format, valid values, or whether it expects a name, path, or ID. An agent is left to infer that 'object' refers to a curve, but without explicit guidance this is a meaningful 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 states a specific verb and resource: 'Get curve info,' and further specifies the exact data categories returned: spline count, point count, dimensions, and bevel settings. This clearly differentiates it from sibling getters like get_mesh_info, get_object_info, and get_world_info by focusing on curve-specific properties.
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 that this tool is used when an agent needs curve-related information, but it does not explicitly state when to use it versus alternatives such as set_curve_property or get_object_info. There is no mention of when not to use it or how it fits into a larger workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_geonode_inputCRead-only
Get a geometry node input's current value.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| input | Yes | ||
| object | Yes | ||
| modifier | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'current value', which implies read-only behavior, and this aligns with the readOnlyHint annotation. However, it adds no behavioral context beyond the annotation itself, such as what happens if the input doesn't exist, whether it returns a default value, or any dependencies like the object needing a geometry nodes modifier.
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 concise sentence with no filler. It packs the essential verb and resource into a clear, front-loaded statement, which is appropriate for a simple getter 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?
While the output schema covers return values and readOnlyHint covers safety, the description missing parameter semantics and usage guidance leaves the agent under-equipped. For a tool with four required parameters and a specialized domain, more context about how to specify the geometry node input is necessary.
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%, and the description does not explain the meaning of the four required parameters: object, modifier, node, and input. The agent is left to infer that object identifies the mesh, modifier references the geometry nodes modifier, and input names the specific input, but no explicit semantics are provided.
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 uses the specific verb 'Get' with the resource 'geometry node input's current value', which clearly identifies the read operation. It differentiates from the sibling set_geonode_input by indicating retrieval, but does not explicitly contrast with get_node_input, so it doesn't fully distinguish from that related sibling.
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 usage guidance is provided. The description does not state when to use this tool versus alternatives like get_node_input or set_geonode_input, nor does it mention any prerequisites such as the modifier needing to exist or the node tree being accessible.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_geonodes_treeBRead-only
Get the geometry node tree structure: nodes, links, inputs.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| modifier | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description agrees with the readOnlyHint annotation and the verb 'Get' conveys a read operation. It adds a little context by naming the returned contents (nodes, links, inputs), but it does not discuss side effects, error conditions, or what the optional modifier parameter changes behaviorally.
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?
One focused sentence with no filler; the key output content is front-loaded. This is appropriately concise for a simple read-only getter.
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?
With an output schema and readOnlyHint annotation present, the description does not need to elaborate on return values or safety. However, it is incomplete about the two input parameters and does not route the agent away from similar tree/getter tools, so there are clear gaps for a 0%-coverage schema.
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%, yet the description does not explain what 'object' or 'modifier' mean. It adds no parameter-level semantics, leaving the agent to guess that 'object' is a Blender object name and 'modifier' selects a particular geometry nodes modifier.
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 identifies the resource as 'geometry node tree structure' and says it exposes nodes, links, and inputs, which is a specific verb+resource. It is clear, but it does not explicitly contrast with similar siblings like get_node_tree or get_geonode_input, so it misses the top tier for 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?
No when-to-use guidance is provided and no alternatives or exclusions are mentioned. The agent is left to infer from the name/description when this tool is appropriate versus get_node_tree, get_geonode_input, or list_geonode_types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gp_infoARead-only
Get grease pencil info: layers, frames, stroke count.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=true, and the description's 'Get' aligns with that, so no contradiction. The description adds useful behavioral context by specifying what data is returned (layers, frames, stroke count), which goes beyond the annotation. However, it does not disclose potential edge cases, errors, or performance considerations, though the read-only nature is already covered.
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 sentence that front-loads the verb and resource, then lists the specific data items. It contains zero fluff and is appropriately sized for a simple getter, making it easy to scan and understand.
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 simple getter with one parameter and an available output schema (as indicated by 'Has output schema: true'), the description covers the core purpose and return items. It could be more explicit about the 'object' parameter, but given the tool's simplicity and the output schema's presence, the description is largely complete.
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 input schema defines a single required parameter 'object' with no description, and schema description coverage is 0%. The description does not clarify what 'object' refers to (e.g., object name, ID, or path), leaving the parameter ambiguous. Since the description adds no meaning beyond the schema, it fails to compensate for the lack of parameter documentation.
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 a specific verb ('Get') and resource ('grease pencil info') and enumerates the exact data returned (layers, frames, stroke count). This clearly distinguishes it from sibling creation/manipulation tools like create_grease_pencil and add_gp_layer, which are obvious 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 its use for retrieving grease pencil data but does not explicitly contrast it with alternative getters or state when not to use it. While the sibling list makes the purpose evident, there is no explicit guidance on selection criteria, which leaves some ambiguity for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keyframesARead-only
Get keyframes on an object, optionally filtered to a specific data_path (e.g., 'location', 'rotation_euler').
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| data_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description consistently describes a read-only operation with no contradiction. It adds that data_path is optional and scopes the keyframes returned, but it does not mention edge cases such as invalid data_path values or empty results. Given the read-only annotation, this is adequate but not rich.
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?
A single sentence front-loads the verb and resource, then provides the optional filter with useful examples. There is no filler and every phrase contributes to correct invocation.
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?
The tool has only two simple parameters, the output schema covers return-value structure, and the annotation covers the read-only safety profile. The description supplies the key filtering semantics, so nothing essential is missing for an agent to call it correctly.
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 has no property descriptions, so the description's concrete data_path examples add real meaning beyond the raw schema. The object parameter is not detailed beyond 'on an object', but its name and required status make the intended value reasonably inferable.
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 uses the specific verb 'Get' with the resource 'keyframes on an object' and clarifies the optional data_path filter with concrete examples like 'location' and 'rotation_euler'. This clearly distinguishes it from sibling mutators such as set_keyframe, set_keyframes, and delete_keyframe.
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 makes the retrieval context clear and explains the optional filtering condition. It does not explicitly name alternatives or state when not to use it, but the get-versus-set/delete distinction among siblings is strongly implied and unlikely to mislead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_material_infoARead-only
Get material settings: base color, metallic, roughness, node tree summary.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes the safety profile, and the description's 'Get' wording is consistent with it. The description adds a useful limitation by saying 'node tree summary' rather than full node tree, but it doesn't disclose any further behavior such as error handling or what happens if the material doesn't exist. No contradiction with annotations.
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 concise sentence with no filler. It immediately states the action and lists the specific properties returned, 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?
For a simple read-only getter with one self-explanatory parameter and an output schema, the description covers the essential purpose and result fields. It doesn't clarify how the material is identified or describe error behavior, but the output schema and the simplicity of the tool reduce the practical impact of those omissions.
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 contains one required 'name' string with no description, and schema description coverage is 0%. The description does not explain that 'name' is the material name or specify the expected format, so it fails to compensate for the missing schema documentation. The meaning is inferable from the tool name, which prevents a score of 1.
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 a specific action ('Get'), a clear resource ('material settings'), and enumerates the exact fields returned: base color, metallic, roughness, and node tree summary. This is enough to distinguish it from material-management siblings like list_materials or set_material_property, even though it doesn't name them explicitly.
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 gives no explicit guidance about when to use this tool versus alternatives. For example, there is no mention that list_materials should be used for enumeration or that get_node_tree should be used for the full node tree rather than the summary. The intended context is only implied by the tool name and the 'get' verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mesh_infoBRead-only
Get mesh info: vertex/edge/face count, UV maps, vertex groups, has_custom_normals.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds value by enumerating the specific data returned, which is useful context. However, it does not disclose any potential limitations (e.g., behavior if the object is missing, or whether it aggregates data from modifiers). Given the annotation covers read-only, a 3 is appropriate.
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 concise sentence that front-loads the action and lists the data points. Every word adds value; there is no waste or unnecessary detail.
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?
The tool has an output schema, so return values are already documented. However, the input parameter ambiguity is a notable gap, and the description does not mention error handling or prerequisites (e.g., object must exist). For a simple read-only tool with a single parameter, this is acceptable but not complete.
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 defines a single required string parameter 'object' with 0% description coverage. The tool description does not explain what 'object' refers to (likely an object name or identifier), leaving the agent to guess. With no schema descriptions, the description must compensate, and it fails to clarify the parameter's meaning or format.
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 'Get mesh info' and lists specific data points (vertex/edge/face count, UV maps, vertex groups, has_custom_normals), making the purpose unambiguous. However, it does not explicitly differentiate from sibling tools like get_vertex_groups or get_uv_maps, which provide more targeted info, so it loses a point for not drawing that distinction.
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. Sibling tools like get_vertex_groups and get_uv_maps exist, but the description gives no exclusions or context for selecting this general info tool over them. The agent must infer usage entirely from the tool name and description content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_inputBRead-only
Get a node input's current default value.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| input | Yes | ||
| material | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the non-mutating nature, and the description aligns with it. The description adds no extra behavioral context such as what 'current default value' means in relation to connected inputs, whether errors occur for invalid node names, or how material selection affects the lookup.
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?
A single, front-loaded sentence with no filler. Every word contributes to the core meaning, and the tool name is reinforced without redundancy.
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 simple getter with readOnlyHint and an output schema, the description is nearly adequate, but it leaves meaningful ambiguity: it does not clarify that this targets material shader nodes rather than geometry nodes, nor that 'input' may be given as a name or index. Those details would materially improve call correctness.
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%, and the description does not explain the three parameters. Names like material, node, and input are somewhat self-explanatory, but the description only clarifies the 'input' concept; it does not compensate for the missing parameter-level documentation.
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 a specific verb ('Get') and resource ('a node input's current default value'), and the tool name is informative. However, it does not distinguish this tool from the sibling get_geonode_input, which could be confused absent additional context about material node trees.
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 a read operation for retrieving a node input's default value, but gives no guidance on when to prefer this over set_node_input or get_geonode_input. No exclusions, prerequisites, or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_treeARead-only
Get the full shader node tree: nodes, links, input values.
| Name | Required | Description | Default |
|---|---|---|---|
| material | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, covering safety. The description adds that it returns the 'full' tree with three component types, which is mild behavioral context. However, it doesn't disclose anything about performance, size limits, or whether the tree is returned in a particular format—though an output schema exists.
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?
A single, front-loaded sentence states the action and the resource immediately. Every word earns its place; there is no fluff or repetition of schema content.
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 (one param) and the presence of an output schema, the description is nearly adequate. However, the complete lack of parameter semantics is a gap, and the description could briefly note that 'material' refers to a material name or index to make it self-contained. Still, the output schema likely clarifies return structure.
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% and the description does not compensate. The 'material' parameter is left entirely unexplained—does it take a name, index, or path? The description never mentions the parameter, so an agent receives no semantic guidance beyond the required string type.
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 uses a specific verb ('Get') and identifies the resource ('full shader node tree') plus what it returns ('nodes, links, input values'). It clearly distinguishes from sibling tools like get_geonodes_tree and get_compositor_tree by specifying 'shader', and from get_node_input which targets a single input.
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 when to use this tool: when you need the complete shader node tree, versus specific inputs or other tree types. It doesn't explicitly name alternatives or exclusions, but the context is clear enough for an agent to route correctly among shader-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_object_infoBRead-only
Get detailed info about an object: type, transforms, modifiers, materials, parent, collections.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already declares this is a read-only operation. The description adds no further behavioral details such as error handling, return format, or performance characteristics. Since annotations cover the read-only nature, the description's contribution is minimal.
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, concise sentence that front-loads the primary action and enumerates the key information types. No redundant words or unnecessary details.
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 that an output schema exists, the description's enumeration of included attributes (type, transforms, modifiers, materials, parent, collections) provides sufficient context. It does not mention error behavior, but for a simple read-only getter with an output schema, this is acceptable.
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 defines a single 'name' parameter with no description (0% coverage). The description does not elaborate on the parameter's meaning, format, or constraints beyond implying it is the object's name. It fails to compensate for the missing schema documentation.
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 a clear verb 'Get' and resource 'detailed info about an object', and lists specific attributes (type, transforms, modifiers, materials, parent, collections). This clearly distinguishes it from more specialized getters like get_mesh_info or get_armature_info, making its purpose unambiguous.
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 such as get_mesh_info or get_scene_info. There is no mention of appropriate contexts or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_particle_infoCRead-only
Get particle system settings.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| system | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals this is a safe read operation, and the description is consistent with that annotation. However, the description adds no behavioral context beyond what the annotation provides—no mention of what settings are returned, whether the system parameter is required, or what happens if the object has no particle system.
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, front-loaded sentence with no filler words. It is appropriately short for such a narrow retrieval tool, though the brevity contributes to the lack of parameter detail.
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?
With an output schema present, return values may be defined elsewhere, but the tool description still fails to explain required inputs or provide usage context. The undocumented parameters and lack of sibling differentiation make this incomplete for reliable invocation, even though the tool itself is simple.
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% and the description does not explain either parameter. 'Object' and 'system' are ambiguous: object could be a scene object name or a particle system name, and system is not clarified as an optional particle system identifier. The agent cannot determine correct parameter values from the description alone.
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 a specific verb and resource: 'Get particle system settings.' It clearly distinguishes itself from mutating siblings like set_particle_property and add_particle_system because it is a retrieval operation. However, it does not explicitly differentiate from other get_* info tools, though the particle system scope makes that implicit.
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. It does not mention that set_particle_property is for modifying settings, that add/remove_particle_system manage particle systems, or that this is the read-only counterpart. The agent is left to infer usage from the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_physics_infoBRead-only
Get physics settings on an object.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with the readOnlyHint annotation and implies a non-mutating read operation. However, it adds no behavioral context beyond what the annotation already provides, such as whether missing physics data causes an error or whether all physics settings are returned at once.
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, front-loaded sentence with no filler. Every word contributes to identifying the tool's purpose and target, making it efficient and easy to scan.
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 (one parameter), the readOnlyHint annotation, and the presence of an output schema, the description is mostly sufficient for an agent to invoke it correctly. The main gap is the lack of any indication about how the object is identified or whether the object must already have physics enabled.
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 for the undocumented 'object' parameter. It only repeats that the operation occurs 'on an object' without clarifying whether the string is a name, path, ID, or what happens if the object does not exist.
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 uses a specific verb ('Get') and resource ('physics settings') with a clear object scope, making its purpose immediately understandable. It is distinguishable from siblings like add_physics, remove_physics, and set_physics_property because it is a getter, though it does not explicitly name or contrast those 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 provides no guidance on when to use this tool versus alternatives such as get_object_info, get_mesh_info, or set_physics_property. It does not state prerequisites (e.g., object must have physics added) or exclusions, leaving the selection decision entirely to inference from the verb 'get.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_render_settingsARead-only
Get render settings: engine, resolution, samples, output path, file format.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already covers the read-only nature. The description adds the specific output fields, but since an output schema exists, this duplicates structured information rather than revealing new behavioral traits like permissions, side effects, or rate limits. It is consistent with the annotation but adds little beyond it.
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, front-loaded sentence with no filler. Each listed field earns its place, and the verb-action structure makes the purpose immediately clear.
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?
This is a simple no-parameter getter with an output schema and a readOnly annotation. The description states the exact resource and the fields of interest, covering everything an agent needs to call it correctly. No additional context about return format or side effects is necessary given the annotations and output schema.
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 zero parameters, so the baseline is 4. There are no parameter semantics to document, and the description's field list is useful context for what will be returned rather than parameter 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 uses a specific verb ('Get') and resource ('render settings') and enumerates the exact fields returned (engine, resolution, samples, output path, file format). This clearly differentiates it from siblings like set_render_settings and render_image without needing to inspect schemas.
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 gives no guidance on when to use this tool versus alternatives such as set_render_settings or get_viewport_info. There is no mention of retrieving current settings before modifying them or any exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scene_infoARead-only
Get current scene metadata: name, frame range, FPS, render engine, object/material counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description's read-only semantic is consistent with that. It adds useful behavioral context by scoping to the current scene and listing the categories of metadata returned, which is enough for a zero-parameter, non-destructive getter.
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?
Single sentence front-loads the action and resource, then compactly lists the returned fields. No filler; every word contributes.
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?
With no parameters and an output schema present, the description covers the invocation context fully. It also conveys the scope ('current scene') that distinguishes it from broader file or project metadata.
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?
Tool has zero parameters and schema coverage is effectively 100%, so there is no parameter documentation burden. Per the 0-param baseline, the description doesn't need to add parameter semantics.
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?
Clearly states a specific verb ('Get') and resource ('current scene metadata'), enumerating the fields returned (name, frame range, FPS, render engine, object/material counts). It doesn't explicitly contrast itself with sibling getters like get_render_settings or get_object_info, so it stops short of full 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?
Provides no guidance on when to use this tool over alternatives, no prerequisites, and no exclusions. The description only asserts what it does, leaving the agent to infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_uv_mapsBRead-only
Get UV maps on a mesh object.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation, and the description's 'Get' is consistent with that. The description adds little behavioral context beyond the annotation, but since the safety profile is covered and an output schema exists, this is acceptable though minimal.
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, front-loaded sentence with no filler; every word contributes meaning. This is appropriately sized for a simple one-parameter read operation.
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 simple read-only, one-parameter tool with an output schema, the description is nearly sufficient, but it lacks edge-case context such as what happens when the mesh has no UV maps and does not connect to related UV operations. It conveys the core operation without alternative or exception guidance.
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 only declares 'object' as a required string with 0% description coverage, so the phrase 'on a mesh object' adds useful meaning by constraining the parameter to a mesh object rather than a generic object. However, it does not clarify object referencing conventions or behaviors when the object lacks UV maps.
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 identifies the verb-resource pair 'Get UV maps' and scopes it to 'a mesh object', so an agent knows what operation is being performed. It does not explicitly distinguish itself from sibling tools like create_uv_map or smart_uv_project, but the 'get' framing is enough to separate it from creation 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 gives no guidance on when to use this tool versus alternatives, when not to use it, or prerequisites such as the object already having UV maps. The intended use is only implied by the phrase 'Get UV maps'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vertex_groupsARead-only
Get vertex groups on a mesh with member counts.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already communicates the non-destructive nature, and the description is consistent with it. However, the description adds no additional behavioral context such as error conditions, performance, or what happens if the object does not exist. Since an output schema exists, return format is covered there, but the description could offer more about side effects or prerequisites.
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, concise sentence that is front-loaded with the action and purpose. There is no fluff or redundant information, and every word contributes to the meaning.
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 tool with one required parameter and no schema descriptions, the description is incomplete because it fails to explain the parameter semantics. While the output schema covers return values, the missing parameter guidance means an agent cannot reliably know what to pass. The description should at least mention that 'object' is the name of the mesh object.
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 has 0% description coverage for the parameter 'object', and the description does not clarify what value to pass. It mentions 'on a mesh' but does not explicitly state that 'object' is the mesh identifier or provide any format or example. The agent is left guessing what to provide, making the tool difficult to invoke correctly.
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 (Get), the resource (vertex groups), and the specific detail (with member counts), which distinguishes it from related tools like get_mesh_info and get_vertices. The verb and object are explicit, leaving no ambiguity about what the tool does.
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 for retrieving vertex groups with their member counts, but it does not explicitly mention when to use this tool instead of alternatives or any exclusions. There is no reference to sibling tools or conditions, so the guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_verticesBRead-only
Get vertex positions. Optionally filter by vertex group. Limited to avoid huge payloads.
| Name | Required | Description | Default |
|---|---|---|---|
| group | No | ||
| limit | No | ||
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=true, so the read-only nature is already disclosed. The description adds 'Limited to avoid huge payloads', which indicates a pagination or limit behavior. However, it does not explain what happens when the limit is exceeded or how the limit interacts with filtering, so additional context is minimal but not contradictory.
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 two concise sentences, front-loaded with the primary purpose. It avoids redundancy and unnecessary detail. The brevity is appropriate, though it could afford a bit more explanation of the object parameter without becoming verbose.
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 has 3 parameters with one required, and schema coverage is 0%, the description is insufficient. It does not explain how to specify the object, what the group filtering expects, or the effect of the limit. While an output schema exists and return values need not be explained, the parameter semantics are under-specified. The tool is a read operation, but the lack of parameter documentation leaves the agent guessing.
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 mentions 'vertex group' (mapping to group) and 'Limited' (mapping to limit), but does not explain the required 'object' parameter (e.g., how to specify the object). It also does not clarify the default limit or the exact format of group names. The description adds only partial semantics for two of three parameters, leaving a significant 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 verb 'Get' and the resource 'vertex positions', and optionally filtering by vertex group. It is distinct from sibling tools like set_vertices (which writes) and get_vertex_groups (which lists groups). The phrase 'Limited to avoid huge payloads' hints at the limit parameter, adding purpose clarity.
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 such as get_vertex_groups or get_mesh_info. It does not mention exclusions or prerequisites, leaving the agent to infer usage context. The optional filtering is mentioned but not framed against other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_viewport_infoARead-only
Get viewport settings: shading mode, overlays, camera, clip distances.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already signals this is a safe read operation. The description adds value by specifying exactly what settings are returned (shading mode, overlays, camera, clip distances), which is useful behavioral context. However, it doesn't disclose the return format or whether the output is a flat object or nested structure, though the output schema exists and likely covers that. No contradiction with annotations.
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, efficient sentence that front-loads the verb and resource ('Get viewport settings') and then enumerates the specific settings. Every word earns its place; there is no fluff or repetition.
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 zero-parameter read-only tool with an output schema, the description is nearly complete. It names the key settings returned. The only minor gap is that it doesn't explicitly state that this is a read-only operation, but the annotation readOnlyHint=true covers that. The output schema likely documents the return structure, so the description is sufficient for an agent to select and invoke the tool correctly.
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 zero parameters, so the schema is trivially complete (100% coverage). The description doesn't need to explain parameters. The baseline for 0 params is 4, and the description appropriately focuses on what the tool returns rather than 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 tool's purpose: 'Get viewport settings' and lists the specific settings it retrieves (shading mode, overlays, camera, clip distances). This distinguishes it from sibling tools like set_viewport_shading and set_viewport_camera, which are setters, and from get_render_settings, which targets render settings rather than viewport settings. However, it doesn't explicitly name a sibling alternative, so it doesn't fully earn a 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 implies usage: use this when you need to read current viewport settings. It doesn't explicitly state when not to use it or name alternatives like get_render_settings for render settings. The context signals show no required parameters, so the tool is straightforward to invoke, but the description provides no explicit guidance on choosing it over related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_world_infoARead-only
Get current world/environment shader settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already communicates that this is a read operation, and the description adds that it targets world/environment shader settings. It does not disclose additional behavioral details, but with an output schema present, the return shape does not need to be fully explained in prose.
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, focused sentence with no filler. It front-loads the action and the target resource, 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?
For a zero-parameter, read-only getter with an output schema, the description is largely sufficient. It could be slightly more explicit about which 'world/environment shader settings' are included, but the output schema likely covers that detail.
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 accepts zero parameters, so the description has no parameter semantics burden. The input schema already fully documents that no arguments are needed, and the description adds no conflicting or missing 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 states a specific verb ('Get') and resource ('current world/environment shader settings'), making the tool's function clear. It is distinct from sibling getters like get_render_settings, though it does not explicitly call out that distinction.
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 gives no guidance on when to use this tool versus alternatives such as get_render_settings, set_world_property, or create_hdri_world. There is no mention of exclusions, prerequisites, or preferred scenarios beyond the generic 'get current settings' phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_fileA
Import a file into the scene. Supported formats: FBX, OBJ, GLTF/GLB, USD, Alembic, STL, PLY, SVG, DAE. Format is auto-detected from extension if not specified.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | ||
| filepath | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given that no annotations are provided, the description carries the full burden of behavioral disclosure. It states that format is auto-detected from extension if not specified, which is a useful behavioral detail, but it does not mention any side effects, such as whether the operation overwrites existing objects, triggers a scene reset, or whether it works asynchronously. It also does not describe whether it handles large files or how it internally organizes imported content.
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 front-loaded with the primary purpose and formats. It is two sentences, with no fluff, and the auto-detection note is a valuable addition. Every sentence contributes useful information without redundancy.
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?
The description covers the core purpose and format handling, but it does not explain return values despite having an output schema. The complexity is moderate, and the tool's behavior around format detection is clarified, but the description lacks details on what the tool returns (e.g., object ID, success status) and how it integrates with the scene state, such as whether it selects imported objects. Given the output schema exists, the description doesn't need to detail returns, but it should mention if the imported object is auto-selected or added to a specific collection.
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 has zero description coverage for parameters, so the description should compensate. It mentions the filepath and format indirectly by saying format is auto-detected if not specified, but it doesn't explicitly describe the format parameter's allowed values beyond supported formats. It does add value by clarifying that format is optional and auto-detected, which is beyond what the schema's 'anyOf' indicates, but it could be more explicit about the parameter semantics.
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 imports a file into the scene and lists supported formats, which effectively distinguishes it from export_file and export_selection among siblings. It names specific actions and resources, though it does not explicitly contrast with load_file, which could be a potential point of confusion.
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 context on when to use the tool (importing files) and enumerates supported formats, but it does not explicitly mention when not to use it or suggest alternatives for similar operations. The list of siblings includes load_file and export tools, but the description does not clarify the distinction between import_file and load_file, which might be a gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
join_meshesADestructive
Join multiple mesh objects into one. The first object becomes the active/target. Destroys source objects.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the destructiveHint annotation by explicitly stating that source objects are destroyed and that the first object becomes the active target. This adds useful behavioral context without contradicting the annotation.
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?
Two short, dense sentences with no filler. The core purpose is front-loaded and every sentence adds information: operation, target behavior, and destructive side effect.
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?
The description covers the essential behavioral contract for a simple one-parameter tool, and an output schema exists so return values need not be explained. The main remaining gap is the exact format of object references in the 'objects' array.
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 conveys that the first array item is the target object and the rest are joined into it, which adds meaning beyond the bare schema. However, it does not clarify whether the strings in 'objects' are object names, IDs, or paths, leaving a gap given 0% schema description coverage.
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?
States a specific verb ('Join') and resource ('multiple mesh objects') and adds crucial semantics: the first object becomes the active/target and source objects are destroyed. This clearly distinguishes it from siblings like separate_mesh and get_mesh_info.
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?
Usage is implied by the description: join when you need to combine multiple meshes into one. However, it does not explicitly mention when not to use it or name alternative tools for related operations like separating meshes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
layout_node_treeB
Auto-arrange nodes in a material's node tree.
| Name | Required | Description | Default |
|---|---|---|---|
| material | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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, but it only states the outcome ('auto-arrange') without revealing side effects. It does not disclose that node positions are overwritten across the entire tree, whether the operation is undoable, or what happens for materials without a node tree.
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?
A single eight-word sentence that front-loads the actionable verb and contains zero filler. Every word contributes meaning, and nothing in the description is redundant with the schema.
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?
The tool is low-complexity (one required string parameter, no enums, no nested objects) and has an output schema, so the description is close to adequate. However, because this is a mutating operation with zero annotations, the omission of side effects and prerequisites leaves an important gap for correct invocation.
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 itself offers no explanation of the material parameter. The phrase 'a material's node tree' implies that material identifies the target material, which is minimal but real compensation, yet the expected format (name, path, or ID) and behavior for missing materials remain unspecified.
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 names a specific verb ('auto-arrange') and resource ('nodes in a material's node tree'), clearly conveying what the tool does. It is reasonably distinct from siblings like set_node_position (manual positioning) but does not explicitly name or contrast any sibling, so it stops short of full 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?
No guidance is given on when to use this tool versus alternatives such as set_node_position or the many other node-tree tools. There are no stated prerequisites (e.g., the material must exist and have a node tree) and no exclusions, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_actionsARead-only
List all actions in the blend file.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already communicates that this is a safe read operation. The description adds that it lists all actions in the current blend file, which is useful scope context, but it does not disclose other behavioral details such as whether actions from linked libraries are included.
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, front-loaded sentence that says exactly what the tool does with no filler or repetition. Every word earns its place, and it is appropriately sized for a no-parameter read-only listing 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?
For a no-argument read-only tool with an output schema and readOnlyHint annotation, the description is almost entirely complete. It clearly identifies the resource and scope, though it could be slightly more helpful by pointing to get_action_info for detailed action inspection.
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 zero parameters and schema description coverage is 100%, so the baseline of 4 applies. The description does not need to compensate for undocumented parameters because there are none.
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 a specific verb ('List') and a clear resource ('all actions in the blend file'), making the tool's purpose immediately understandable. It is distinct from most sibling list_* tools, though it does not explicitly contrast with get_action_info for action-specific details.
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 such as get_action_info or set_interpolation. The usage context is only implied by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_bone_constraintsCRead-only
List constraints on a pose bone.
| Name | Required | Description | Default |
|---|---|---|---|
| bone | Yes | ||
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the read-only nature. The description adds no extra behavioral context, such as what the returned constraints look like or whether they include influence values. It essentially restates the tool's name.
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, focused sentence. It is concise and front-loaded, but it achieves this by omitting necessary detail.
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 tool with two required parameters and zero schema coverage, the description is severely incomplete. It lacks any indication of how to identify the bone or what 'pose bone' means, making it nearly impossible for an agent to call correctly.
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% and the description provides no explanation of the 'object' and 'bone' parameters. An agent would have to guess that 'object' refers to an armature and 'bone' to a bone name, which is not stated.
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 (list) and the resource (constraints on a pose bone). It distinguishes from the generic 'list_constraints' sibling by specifying 'pose bone', though it doesn't explicitly contrast them.
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 list_constraints. The description gives no context about the distinction between object-level and bone-level constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_camerasARead-only
List all cameras with their settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint=true annotation already establishes this as a safe read operation, and the description is consistent with it. The description adds only 'with their settings' as a hint about output content; it does not disclose return format, pagination, or ordering, though for a zero-parameter read tool the additional burden is low.
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?
A single front-loaded sentence with no wasted words. Every element ('List', 'all cameras', 'with their settings') earns its place and conveys the full purpose.
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 zero-parameter, read-only tool with an output schema present, the description is sufficient for an agent to invoke it correctly. The output schema documents return values, and the annotation covers the safety profile, so nothing essential is missing.
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 zero parameters, so the schema trivially covers 100% of them; per the baseline rule for 0 params, a 4 applies. The description adds no parameter semantics, but none are needed since the input schema is empty.
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 a specific verb ('List'), resource ('cameras'), and scope ('all'), and adds 'with their settings' to clarify what is returned. It is clearly distinct from camera-mutation siblings like create_camera, set_camera_property, and set_active_camera, though it does not explicitly name an alternative.
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 explicit guidance on when to use this tool versus alternatives. The use case (enumerate cameras and their settings) is implied by the name and description, but there are no stated exclusions, prerequisites, or references to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_collectionsARead-only
List all collections with child counts, object counts, and visibility.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the safety profile, and the description confirms this by using 'List' rather than a mutation verb. It adds useful scope ('all' collections), but no further behavioral traits such as performance, permissions, or side effects are disclosed; this is a minor gap for such a simple read operation.
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?
One short, front-loaded sentence conveys the action, resource, and return contents with no filler. Every word contributes to an agent's understanding of what the tool does.
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?
With zero parameters, an output schema to define the return shape, and a readOnly annotation, the description is sufficient for an agent to select and invoke the tool correctly. The implied 'current scene/file' context is normal for this MCP domain and not a meaningful omission.
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 takes no parameters, so the baseline of 4 applies. There is no parameter meaning for the description to explain, and the schema coverage is trivially complete.
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 opens with the verb 'List' and the resource 'collections', then specifies what kind of data is returned: child counts, object counts, and visibility. This clearly differentiates it from sibling list_* tools such as list_objects and list_materials.
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 use case is evident: call this tool when you need an inventory of all collections and their counts/visibility. It does not name alternatives or exclusion conditions, but 'all collections' and the zero-parameter signature provide clear read-only context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_comp_node_typesARead-only
List available compositor node types.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes the safe, read-only nature of the tool. The description adds no further behavioral detail, but for a parameterless listing operation this is acceptable; nothing misleading or contradictory is present.
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, direct sentence with no filler. It immediately conveys the action and subject, which is ideal for a simple list operation.
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 zero-parameter, read-only listing tool with an output schema available, the description is fully sufficient. There are no inputs to document, no side effects to warn about, and the return shape is presumably covered by the output schema.
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 zero parameters, so there is nothing for the description to explain. Per the rubric, a baseline of 4 is appropriate for a parameterless tool; the description does not need to compensate for any schema 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 uses a specific verb ('List') and resource ('available compositor node types'), clearly distinguishing this tool from sibling tools like list_shader_node_types and list_geonode_types. The meaning is unambiguous and immediately actionable.
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 given about when to use this tool versus alternatives. While the name suggests compositor-specific usage, the description does not explicitly state 'use this for compositor nodes; use list_shader_node_types for shaders', leaving selection up to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_constraintsBRead-only
List constraints on an object or pose bone.
| Name | Required | Description | Default |
|---|---|---|---|
| bone | No | ||
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a read-only operation, and the word 'List' agrees with that. The description adds the scoping detail that the target can be an object or a pose bone, but does not disclose any further behavioral traits such as whether empty results are returned as an empty list or how errors are surfaced.
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 one short sentence with no filler or repetition. 'List constraints on an object or pose bone' front-loads the action and target efficiently.
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 simple read-only list tool with only two parameters and an output schema present, the description is roughly sufficient. The main gap is the unresolved relationship with list_bone_constraints and the ambiguity of when to specify bone, which prevents the description from being fully complete on its own.
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 maps loosely to the two parameters by mentioning 'object' and 'pose bone', but it does not explain that bone is optional/defaults to null, what format bone values take, or that listing object constraints likely requires bone to be omitted.
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 a clear action ('List') and target ('constraints on an object or pose bone'), which distinguishes it from constraint-mutation tools like add_constraint or remove_constraint. However, it does not distinguish itself from the sibling list_bone_constraints, and its mention of 'pose bone' creates possible overlap with that tool.
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 use when constraints need to be enumerated, but gives no explicit guidance about when to choose this tool over list_bone_constraints or other constraint tools. With a close sibling named list_bone_constraints, the absence of 'use X instead' or exclusions leaves the agent guessing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_geonode_typesARead-only
List available geometry node types for the current Blender version.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the readOnlyHint annotation and adds the useful context that the available types depend on the current Blender version. It does not add much beyond the annotation, but the annotation already covers the read-only safety profile, and no behavior contradicts it.
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 concise sentence that front-loads the action and resource. Every word adds value, with no redundant or filler content.
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 parameterless, read-only list operation with an output schema, the description is complete. It conveys what is listed and the relevant version context, and nothing needed for correct invocation is missing.
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 zero parameters, so there is no parameter burden for the description to carry. The baseline of 4 applies because no parameter documentation is needed and the schema confirms no inputs are expected.
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 a specific verb ('List'), a clear resource ('geometry node types'), and a scope ('for the current Blender version'). It distinguishes itself from sibling tools like list_shader_node_types and list_comp_node_types by explicitly naming 'geometry' node types.
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 clear context: it lists geometry node types and scopes them to the current Blender version. It does not explicitly name alternatives or state when-not-to-use, but the narrow resource makes the intended use unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_imagesARead-only
List all images in the blend file.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already indicates this is a read-only operation, and the description's 'list' aligns with that. The description adds no additional behavioral context (e.g., return format, sorting, or side effects). Since annotations cover the safety profile, this is acceptable but not enhanced.
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 sentence with no fluff. It states the action and resource clearly, front-loading the purpose. Perfect 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?
For a parameterless list tool with an output schema (though not shown), the description is complete. It tells the agent exactly what the tool does, and the read-only nature is covered by annotations. Nothing essential is missing.
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 zero parameters, so there is nothing to explain. The schema coverage is trivially 100%, and the description need not elaborate on parameter meanings. Baseline for zero parameters is 4.
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 a specific verb (list) and resource (images in the blend file), which clearly distinguishes it from siblings like load_image (which loads an image) and pack_images (which packs images). It directly answers what the tool does.
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 explicit guidance is given on when to use this tool vs alternatives. The usage is implied by the name and description (to see what images are in the blend file), but there is no mention of exclusions or alternative tools. It is a simple listing operation, so the gap is minor, but it does not meet the bar for clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_lightsARead-only
List all lights in the scene with type and settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals this is a non-mutating operation, and the description confirms it. The additional 'all lights' scope and 'type and settings' return content add some context, but no edge behaviors, ordering, or error conditions are disclosed.
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, front-loaded sentence with no wasted words. It conveys the action, scope, and output contents efficiently.
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?
With zero parameters, a readOnlyHint annotation, and an output schema present, the description provides all necessary operational context. It clearly identifies the tool's scope and purpose without requiring additional detail.
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 zero parameters, so there is no parameter ambiguity to resolve. The description adds no parameter syntax or semantics, but none are needed; the baseline of 4 applies.
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?
States a specific verb ('list'), a precise resource ('all lights'), and the returned information ('type and settings'). This clearly distinguishes it from mutation siblings like create_light and set_light_property.
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 usage context is implied: use this to enumerate lights when you need an inventory of the scene. However, it does not explicitly mention alternatives or when not to use it, leaving the agent to infer the comparison with create_light, set_light_property, or list_objects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_materialsARead-only
List all materials in the blend file with user counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already communicates that this is a read-only operation. The description adds the useful detail that the tool returns user counts, which goes beyond the annotation. There is no contradiction, and the description is consistent with the read-only nature. The addition of user counts is a small but meaningful extra behavioral insight.
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, front-loaded sentence with no fluff. It states the action and the output in a direct manner, making it highly efficient for an agent to parse.
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?
The description fully conveys what the tool does (lists materials) and what it returns (user counts). An output schema exists to detail the exact return structure, so nothing essential is missing. For a simple parameterless read-only list, this is complete.
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 zero parameters, so the input schema is trivially complete with 100% coverage. The description does not need to explain any parameter semantics because there are none. Baseline 4 is appropriate for a parameterless tool.
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 (list), the resource (all materials), and an additional detail (with user counts). It is specific and distinct from sibling list tools like list_objects or list_lights, leaving no ambiguity about what the tool does.
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 conveys the purpose but does not explicitly say when to use this tool versus alternatives such as list_material_info or get_material_info. The context is clear enough that an agent can infer usage, but no exclusions or alternative routing are provided, so a 3 is warranted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modifiersARead-only
List all modifiers on an object with their type and settings.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description need not repeat safety, but it adds 'with their type and settings' to set expectations about return content. It does not discuss edge cases like missing objects or ordering, but for a read-only list with annotations present this is adequate.
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?
Single, front-loaded sentence with no filler; every part ('List', 'all', 'on an object', 'with their type and settings') adds information.
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 simple read-only listing with an output schema present, the description covers the core call intent. It is slightly thin on parameter format, but the tool's simplicity and annotations make it sufficiently complete.
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 has a single 'object' string with no description (0% coverage). The description ties the parameter to the object containing the modifiers but does not clarify the expected identifier format (name, ID, path), leaving some ambiguity; however, with one parameter its role is mostly inferable.
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?
States a specific verb and resource ('List all modifiers on an object'), names output fields ('type and settings'), and is clearly distinct from sibling modifier mutation tools like add_modifier or remove_modifier.
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 one needs to inspect modifiers but doesn't explicitly differentiate from alternatives such as get_geonodes_modifier or set_modifier_property. It provides no when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_objectsARead-only
List all objects in the scene. Optionally filter by type (MESH, CAMERA, LIGHT, EMPTY, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with the readOnlyHint annotation, confirming a non-destructive operation. It does not add extra behavioral details beyond the annotation, but given the annotation's presence, this is acceptable. No contradictions or misleading claims are present.
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, using only two sentences to convey the core functionality and the optional filter. The key action is front-loaded, and there is no wasted verbiage. It is an appropriate length for a simple listing 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?
For a simple read-only listing tool with an output schema, the description covers all essential information: what it does, the optional filter, and its non-destructive nature (via annotation). No additional details such as return format are needed since the output schema exists. The description is fully sufficient for an agent to invoke it correctly.
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?
Although the schema provides no description for the 'type' parameter, the tool description compensates by explaining its purpose ('filter by type') and giving concrete examples (MESH, CAMERA, LIGHT, EMPTY). This adds meaningful context beyond the bare schema, making the parameter's usage clear.
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: listing all objects in the scene, with an optional filter by type. The verb 'list' and resource 'objects' are specific, and the optional filter distinguishes it from related tools like find_objects. This is unambiguous and easily understood by an agent.
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 for enumeration and filtering by type, but it does not explicitly state when to choose this over alternatives like find_objects. There is no mention of exclusions or specific conditions, leaving the agent to infer the appropriate context from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_render_enginesARead-only
List available render engines.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already communicates that this is a safe read operation. The description adds no behavioral detail beyond that, such as whether engines are system-level or scene-level, how results are ordered, or what fields are returned.
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, front-loaded sentence with no filler. Every word earns its place, and the tool's simplicity is matched by the description's brevity.
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 zero-parameter schema, the readOnlyHint annotation, and the presence of an output schema, the description is nearly complete. It could be slightly more explicit about what 'available' means (e.g., installed engines vs. supported engines), but no critical calling information is missing.
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 zero parameters and an empty input schema, so there is no parameter ambiguity for the description to resolve. The baseline of 4 applies because no parameter semantics are needed.
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 uses a specific verb ('List') and a clear resource ('available render engines'). It is easily distinguished from siblings like get_render_settings, set_render_settings, and render_image, which concern settings or rendering rather than enumeration.
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?
Usage is implied: the agent can infer this tool is for enumerating render engines. However, the description gives no explicit when-to-use guidance or contrast with alternatives such as get_render_settings or list_supported_formats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_shader_node_typesARead-only
List available shader node types.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation, and the description does not contradict it. However, the description adds no behavioral context beyond 'List'—such as what the returned names are used for or any constraints—so it provides only the bare minimum.
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?
A single, direct sentence with no filler or redundant detail. It front-loads the action and resource clearly.
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 zero-parameter, read-only listing tool with an output schema, the description is nearly complete. A small gap is that it does not explicitly mention that the result is intended for use with shader node creation tools, but this is not essential for calling it correctly.
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?
There are zero parameters and schema coverage is 100%, so there is no parameter documentation burden on the description. The baseline of 4 applies because structured data fully covers this dimension.
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 ('List') and the resource ('available shader node types'), which is a specific, distinct category compared to sibling tools like list_comp_node_types and list_geonode_types. The tool's purpose is immediately unambiguous.
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 gives no guidance on when to use this tool versus alternatives or how it relates to create_shader_node or the other node-type listing tools. An agent must infer usage solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_supported_formatsARead-only
List supported import and export file formats.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already discloses read-only behavior. The description adds that it lists both import and export formats, which is a minor detail beyond the annotation. It does not mention return format, error handling, or any other behavioral aspects, so the description adds limited value over the annotation.
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 concise sentence with no wasted words. It is front-loaded with the action and object, making it immediately clear to the agent.
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?
The tool is trivial with no parameters, and an output schema is present (though not shown). The description fully conveys the tool's function. No additional context is needed for correct invocation.
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 zero parameters, so the schema provides complete coverage (100% by definition). Per the baseline rule for zero-parameter tools, a score of 4 is appropriate since there is nothing for the description to add about 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 'List' and the resource 'supported import and export file formats.' It distinguishes from siblings like import_file and export_file, which perform operations, whereas this tool only queries available formats.
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 explicit guidance on when to use this tool versus alternatives. While the purpose implies use before import/export, the description does not mention this context or name any alternative tools. The agent must infer the appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_fileADestructive
Load a .blend file. This replaces the current scene — confirm to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| filepath | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The destructiveHint annotation is supplemented by the description's explicit statement that the tool 'replaces the current scene' and that confirmation is required. This adds context about what gets destroyed and the confirm gate, which goes beyond the mere annotation flag.
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 two short sentences with no filler. The core action is front-loaded, and the critical side effect (replacing the scene) is stated immediately. Every word earns its place.
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?
The description covers the essential facts for a simple load operation, but it omits potential side effects like unsaved changes being discarded, and it does not mention what the tool returns (though an output schema exists). For a destructive operation, a bit more cautionary detail would be beneficial.
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 explain the parameters. It only touches on 'confirm' ('confirm to proceed') but does not clarify the filepath parameter's format, meaning, or requirements. This leaves the agent underinformed about a required parameter.
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?
Description clearly states the action: 'Load a .blend file' and immediately distinguishes it from import/export tools by noting it 'replaces the current scene.' This makes the tool's specific purpose unambiguous and differentiates it from siblings like import_file or export_file.
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: if you want to load a .blend and replace the current scene, use this tool. It also implicitly warns against use if preservation of the current scene is desired. However, it does not explicitly name alternatives like import_file, so the guidance is present but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_imageC
Load an image from file into the blend file.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| filepath | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 but does not disclose whether the image is embedded, linked, or referenced, whether existing images with the same name are replaced, or what happens on invalid file paths. For a tool that mutates the blend file, 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 a single, concise sentence that front-loads the core action. It earns its place with no filler, though it could add a bit more useful context without becoming bloated.
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 has an output schema and two parameters, the description is too thin. It does not explain the 'name' parameter, the return value, or behavioral details like file format support or overwrite semantics. An agent would likely need to inspect the schema and guess at the tool's behavior.
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 mentions 'filepath' implicitly via 'from file' but does not explain the 'name' parameter at all, nor does it clarify the expected filepath format or supported image formats. The description adds minimal meaning beyond the schema's bare parameter names.
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 a specific verb ('Load') and resource ('an image from file into the blend file'), which clearly distinguishes it from sibling tools like render_image or import_file. It is clear but does not explicitly differentiate from the broader import_file sibling, so it loses one point.
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 context: loading an image asset into the current blend file, as opposed to rendering or importing other file types. However, it does not explicitly state when to use this tool versus alternatives like import_file or list_images, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_modifierB
Move a modifier up or down in the stack. Direction: UP or DOWN.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| modifier | Yes | ||
| direction | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It clearly communicates that this is a mutating operation changing modifier order and that direction accepts UP or DOWN. However, it does not disclose behavior at stack boundaries, error cases, or whether anything is returned.
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 two short sentences with no filler. The core operation is front-loaded and the direction constraints are stated directly, making it appropriately concise.
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 tool with three required string parameters, no schema descriptions, and no annotations, the description is too thin. It fails to define what object and modifier refer to and omits boundary behavior, leaving gaps that could cause incorrect invocation.
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 clarify the parameters. It only explains the direction values ('UP or DOWN'); the object and modifier parameters remain undocumented strings, leaving an agent unable to infer whether they expect names, IDs, or paths.
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 a clear action ('move') and resource ('modifier') with the specific scope 'up or down in the stack,' which distinguishes it from modifier creation, deletion, and property tools. It does not explicitly contrast it with sibling tools like reorder_constraint, so it stops short of full 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 intended use case is implied: reorder a modifier within its stack. However, the description gives no explicit guidance on when to use this tool versus alternatives such as set_modifier_property or reorder_constraint, and it provides no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_to_collectionA
Move an object to a collection (removes from current collections).
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| collection | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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. The parenthetical 'removes from current collections' is a critical, non-obvious side effect that prevents the agent from mistaking 'move' for 'add to collection'. It does not mention failure modes or collection-existence requirements, but the core mutation behavior is transparent.
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, front-loaded sentence that states the action and immediately adds the key caveat about removing from current collections. Every word earns its place and there is no filler.
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 simple two-parameter tool with an output schema, the description conveys the essential operation and side effect. It is missing guidance on valid identifier formats and whether the target collection must be pre-created, which may matter for correct invocation. The presence of list_collections as a sibling helps, but the description does not point the agent to it.
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 provides no parameter descriptions (0% coverage), so the description must compensate. It does clarify that 'object' is the thing being moved and 'collection' is the destination, but it does not specify whether these are names, IDs, or paths, nor whether the collection must already exist. This is adequate but not fully compensating 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 uses a specific verb and resource pairing: 'Move an object to a collection', and the parenthetical 'removes from current collections' makes the operation unambiguous. It is clearly distinct from sibling tools like create_collection, delete_collection, or set_collection_visibility.
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 gives clear context: use this tool when an object should be relocated into a target collection, removing it from its current collections. It does not explicitly name alternatives, but no sibling tool performs this same move operation, so the exclusion is not needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pack_imagesA
Pack all external images into the blend file.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It accurately states the action, but it does not mention side effects such as increased blend file size or the fact that external references become embedded. Still, the core behavior is clearly disclosed.
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?
A single, complete sentence that states the action in a direct and front-loaded manner. There is no wasted wording or redundant information.
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 zero-parameter batch operation with an output schema present, the description is sufficient. It tells the agent exactly what the tool does, and no further invocation detail 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 tool has zero parameters and the schema coverage is 100%, so there is nothing missing for the agent to understand. The description adds no parameter detail, which is appropriate here.
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 uses a specific verb ('Pack'), a clear resource ('all external images'), and a target ('into the blend file'). It conveys the exact operation without ambiguity, though it does not explicitly distinguish itself from sibling tools like load_image.
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 intended use is implied: run this when you want to embed external images into the current Blender file. However, there is no explicit guidance about when to choose this over load_image or list_images, and no when-not-to-use conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parent_mesh_to_armatureB
Parent a mesh to an armature. Mode: AUTOMATIC (auto weights), EMPTY (no weights).
| Name | Required | Description | Default |
|---|---|---|---|
| mesh | Yes | ||
| mode | No | AUTOMATIC | |
| armature | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It does reveal weight behavior with 'AUTOMATIC (auto weights)' and 'EMPTY (no weights)', but it does not disclose side effects such as whether existing armature modifiers are replaced, whether EMPTY still creates a modifier, or whether AUTOMATIC is computationally expensive. This leaves important behavioral ambiguity.
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 two short sentences with no filler. The core action is front-loaded, and the mode definitions are compact and useful. Every word earns its place.
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?
The description is too thin for a mutation tool with no annotations and 0% schema parameter coverage. It does not address prerequisites, side effects, or how this differs from sibling parenting tools. The presence of an output schema helps only with return values, not with the missing behavioral and usage 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 explains the mode parameter and its two values, but it adds no meaning to the mesh or armature parameters beyond their names. The agent still does not know whether these expect object names, IDs, or something else.
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 operation: 'Parent a mesh to an armature.' It names a specific verb, resource, and target, and the mode breakdown adds important scope. This distinguishes it enough from the generic sibling set_parent and clear_parent.
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?
There is no guidance about when to use this tool versus alternatives like set_parent or clear_parent. The mode descriptions give some parameter-level direction, but the description never states prerequisites, exclusions, or the difference between this and generic parenting tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingARead-only
Check if the Blender addon is reachable and return version info.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true, the safety profile is already declared. The description adds that it checks reachability and returns version info, which is useful context. It does not disclose potential timeout or error behavior, but the bar is lower because annotations cover the read-only nature.
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?
One clear, front-loaded sentence with no wasted words. It efficiently conveys both the action and the expected result.
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 zero-parameter health-check tool with an output schema and readOnly annotation, the description is complete. Nothing needed to invoke it correctly is missing.
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 zero parameters (schema coverage 100% trivially), so the baseline of 4 applies. The description has no parameters to explain and needs no additional semantics.
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?
Description states a specific verb ('Check') and resource ('Blender addon'), and clarifies the return value is version info. No sibling tool has the same health-check purpose, so it differentiates clearly.
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 this tool is for verifying connectivity before other operations, but it does not explicitly state when to use it or mention any alternatives. For a simple ping utility, the implied usage is reasonable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playback_controlB
Control animation playback: PLAY, PAUSE, STOP.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, yet it only lists the three actions. It does not state whether PLAY restarts from the beginning or resumes from the current frame, whether STOP rewinds the playhead or merely halts, whether PAUSE preserves position, or what side effects occur. The core state-transition semantics of a playback control are left entirely unspecified.
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?
A single short sentence with the three actions front-loaded and zero filler. Every word carries information, and the length is appropriate for a one-parameter tool. This is an exemplary size-to-content ratio.
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 low complexity (one required scalar parameter, no nested objects) and the presence of an output schema, the description need not explain return values. However, it omits playhead behavior (restart vs. resume, stop vs. rewind) and does not distinguish itself from set_frame or set_playback_range, leaving an agent to guess state transitions. Adequate for the simplest call path, but with clear gaps.
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% and the action parameter is a bare string with no enum, so the description's enumeration of PLAY, PAUSE, STOP is the only constraint on valid values — genuine value beyond the schema. However, it stops at the value list and does not explain each action's behavior, expected casing, or the effect of an unknown value.
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 names a specific resource ('animation playback') and enumerates the three operations (PLAY, PAUSE, STOP), which anchors the tool's role and implicitly separates it from animation-related siblings like set_frame, set_playback_range, and render_animation. The verb 'Control' is somewhat generic, but the explicit action list pins down what the tool does. It earns a 4 rather than a 5 because the differentiation from siblings is implicit, not stated.
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?
There is no guidance about when to use this tool versus the many animation-related siblings (set_frame, set_frame_range, set_playback_range, render_animation, frame_selected). No prerequisites, exclusions, or alternatives are mentioned. An agent must infer applicability solely from the name and the three listed actions, which is minimal routing support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remeshC
Remesh an object. Modes: VOXEL, QUAD (quadriflow).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | VOXEL | |
| object | Yes | ||
| voxel_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 for behavioral disclosure. It does not mention whether remeshing is destructive, modifies the original mesh, affects UVs or materials, or requires specific prerequisites. The word 'remesh' implies a geometry change but not its consequences.
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 very concise and front-loaded, with no filler. However, it is so short that it omits useful details; it earns points for structure but loses some for being under-specified rather than merely compact.
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?
An output schema exists, so return values are likely covered, but the description lacks essential operational context: prerequisites, whether the operation is destructive, performance implications, and clear parameter semantics. For a 3-parameter mutation tool with no annotations, this is a significant gap.
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 supply parameter meaning. It does add some meaning to 'mode' by naming VOXEL and QUAD, but it gives no semantics for 'object' or 'voxel_size' (units, scale, effect), leaving significant 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 states the action ('Remesh') and the resource ('an object') clearly, and it names the two modes. It is distinguishable at a basic level from most siblings, though it does not explicitly contrast with related mesh operations.
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?
There is no guidance about when to choose remeshing over alternatives, whether it applies to specific object types, or when to use VOXEL versus QUAD mode. The description only names the modes without any context for selecting between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_constraintB
Remove a constraint by name.
| Name | Required | Description | Default |
|---|---|---|---|
| bone | No | ||
| object | Yes | ||
| constraint | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description itself must convey behavioral impact. It only states 'Remove,' implying a destructive operation, but does not disclose whether the removal is permanent, what happens if the constraint does not exist, or any side effects on the object. This is a minimal disclosure 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 a single, terse sentence with no filler or redundant phrasing. It is front-loaded with the essential action and identifier, making it efficient for an agent to parse. No unnecessary details are included.
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 moderate complexity (3 parameters, no annotations, and an output schema not visible to the agent), the description is too sparse. It fails to explain the 'object' and 'bone' parameters, any error conditions, or the nature of the removal (e.g., reversible or not). An agent would likely struggle to invoke this tool correctly without external knowledge.
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 input schema has zero descriptions (0% coverage), so the description must explain the parameters. It only mentions that constraint is identified by name, but does not explain the 'object' or 'bone' parameters. The agent receives insufficient information to correctly populate all required fields, especially since 'bone' is optional and its role is unclear.
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 as 'Remove a constraint' and specifies the identifier as 'by name.' It is concise and unambiguous, distinguishing this tool from related siblings like add_constraint or set_constraint_property. The verb and object are explicit.
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 for deleting a constraint but provides no explicit guidance on when to choose this over alternatives, such as set_constraint_influence or reorder_constraint. There is no mention of prerequisites like a valid constraint name or object context, leaving the agent to infer the appropriate situation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_materialB
Remove a material slot from an object by slot index.
| Name | Required | Description | Default |
|---|---|---|---|
| slot | No | ||
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 states the action ('remove') but does not specify side effects: whether the material itself is deleted or just unassigned, whether the operation is reversible, or what happens if the slot index is invalid. This is a significant gap for a mutating 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 a single, direct sentence with no filler. The action and target are front-loaded, making it easy to scan. It efficiently conveys the core purpose without unnecessary words.
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 simple removal tool, the description is incomplete. It does not describe return values (though an output schema exists, it is not shown), error handling, preconditions (e.g., object exists, slot exists), or consequences. Combined with the lack of annotations, an agent has insufficient context to call this tool reliably.
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 mentions 'by slot index' but does not clarify the meaning of the slot parameter beyond its name, nor does it explain the object parameter's format. The schema already defines types and defaults, but the description adds no meaningful semantic 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 states a specific verb ('Remove'), a clear resource ('a material slot from an object'), and the method ('by slot index'). This distinguishes it from sibling tools like delete_material (which deletes a whole material) and assign_material (which assigns), making the operation unambiguous.
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 given about when to use this tool versus alternatives. It does not contrast with delete_material (which removes the material entirely) or explain when removing a slot is appropriate. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_modifierA
Remove a modifier from an object by name.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| modifier | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 states that the tool removes a modifier, but does not disclose whether the operation is permanent, what happens if the modifier does not exist, or whether removal affects the object's rendered state. For a mutating operation, this is a meaningful transparency 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 a single, front-loaded sentence with no filler or redundancy. Every word contributes to conveying the action, the target, and the matching criterion, which is ideal for a simple two-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?
For a low-complexity tool with an output schema, the description covers the core action and parameter roles. But with no annotations, it lacks caveats about failure behavior, prerequisites, and side effects, leaving an agent to infer important 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 is the only semantic source for the two parameters. It maps 'object' to the target object and 'modifier' to the modifier name, with 'by name' clarifying the expected modifier input. However, it does not explain the accepted identifier format for object or whether modifier lookup is exact or case-sensitive.
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 uses a specific verb ('Remove') and a clear resource ('a modifier from an object'), and adds 'by name' to specify how the modifier is identified. This clearly distinguishes the tool from siblings like add_modifier, set_modifier_property, toggle_modifier_visibility, and apply_modifier.
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 intended use is implied by the action: use this when a modifier should be removed from an object. However, there is no explicit guidance about when not to use it, no mention that the object and modifier must already exist, and no reference to alternatives such as toggle_modifier_visibility for non-destructive hiding.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_particle_systemC
Remove a particle system by name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It only states the action 'Remove', which is already in the tool name, and adds no side effects, irreversibility, error conditions, or dependencies. The description does not contradict annotations (none exist) but fails to disclose any behavioral traits beyond the obvious mutation.
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 sentence, highly concise and front-loaded with the action and resource. It is efficient, but the brevity comes at the cost of completeness. There is no fluff, but it is arguably too short to be fully useful. It earns a 4 for being well-structured and to the point.
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 a tool with two required parameters, no annotations, and an output schema that is not visible in the description, the description is insufficiently complete. It does not explain the 'object' parameter, provide any usage context, or clarify return values. An agent cannot confidently call this tool correctly without additional information from elsewhere.
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 explains the 'name' parameter indirectly ('by name') but leaves 'object' entirely unexplained. An agent does not know what 'object' refers to (e.g., the object containing the particle system) or how it is used. The description adds minimal meaning over the schema and fails to clarify required 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 states a clear action (remove) and resource (particle system) with a selection criterion (by name). It distinguishes from sibling tools like add_particle_system and set_particle_property, though it does not explicitly mention the 'object' parameter, which is a required field. Overall, the core purpose is unambiguous.
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 does not state prerequisites (e.g., that the object must exist, that the particle system must already be present) or any exclusions. An agent is left to infer that removal is appropriate whenever a named particle system is no longer needed, but there is no explicit routing or caution.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_physicsC
Remove physics from an object.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure fib. It only says 'Remove physics from an object' and fails to disclose side effects, reversible/irreversible nature, whether it applies to all physics types at once, or whether it just detaches physics versus deleting baked data. This is a mutating operation with minimal 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 very concise—a single short sentence with no filler or repetition. It is front-loaded with the action. However, its brevity edges toward under-specification, as no contextual detail about behavior or parameters is included.
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 mutating, 2-parameter tool with no annotations and 0% schema description coverage, this description is not complete. It lacks enough explanation about what 'physics' means, what 'type' accepts, and what consequences removing physics has. The sibling set shows a rich physics ecosystem, but this description does not help an agent navigate it.
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 explain the parameters. It does not mention 'type' at all, leaving its meaning ambiguous—could refer to rigid body, cloth, soft body, fluid, or another physics category. 'object' is inferable as the target, but 'type' lacks any clarifying semantics.
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 a clear verb ('Remove') and resource ('physics from an object'), and its opposite relationship to sibling add_physics is apparent. However, it does not distinguish itself from closely related operations like free_physics_bake or setup_* sim tools, leaving some ambiguity in what 'physics' removal entails.
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 about when to use remove_physics versus alternatives such as free_physics_bake, remove_modifier, or cleanup-oriented tools. There is no mention of prerequisites, target object types, or situations where this tool should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_objectA
Rename an object. Returns the actual name assigned (may be auto-incremented).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| new_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 reveals a key behavioral trait: the assigned name may differ from the requested new_name due to auto-incrementing. This goes beyond the schema and is valuable. It does not mention side effects or whether renaming affects references, but for a simple rename this is a reasonable disclosure.
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 two short sentences with zero waste. The core purpose is stated first, and the behavioral nuance (auto-increment) is appended concisely. It is perfectly sized for the tool's simplicity.
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 tool with only two parameters and an output schema (which likely returns the final name), the description covers the essential purpose and a notable behavior. However, it omits any context about object types, error cases, or how renaming interacts with other object operations. Given the simplicity, a score of 3 is appropriate—adequate but not comprehensive.
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 for the lack of parameter documentation. It does not. The parameter names 'name' and 'new_name' are self-explanatory, but the description adds no constraints, format, or relationship between them. This is a significant gap because the description could have clarified that 'name' is the current object name and 'new_name' is the desired name, but it only implies this.
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 a specific verb ('Rename') and resource ('object'), and adds the return behavior (actual name may be auto-incremented). It is unambiguous and distinct from all sibling tools, none of which perform renaming. This is a model of purpose clarity.
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 explicit guidance on when to use this tool versus alternatives. However, since there is no competing rename tool in the sibling list, the lack of exclusion is acceptable. Still, there is no mention of prerequisites or typical use cases, so it earns a mid-range score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_animationA
Render the full animation frame range. This is a long-running operation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the disclosure burden. It does reveal that the operation is long-running, which is a significant behavioral trait. However, it omits other details like potential output files, whether it blocks, or if it depends on render settings, leaving gaps in what an agent should expect.
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 two succinct sentences with no wasted words. The core action is front-loaded, and the behavioral note follows efficiently. It is appropriately sized for a tool with no inputs.
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?
The description covers the essential action and warns of duration, but it omits context like reliance on current render settings, expected output location, or error behavior. Since an output schema exists, return format is not required, but for a render tool the description is minimal and leaves some operational ambiguity.
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?
There are no parameters in the schema, so the description does not need to explain parameter meaning. The empty schema obviates the need for parametric documentation; the baseline of 4 applies, and the description adds no irrelevant parameter info.
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 a specific verb (Render) and a clear resource (full animation frame range), making the tool's purpose distinct from siblings like render_image and render_viewport. However, it does not explicitly name alternatives, relying on the sibling names to suggest the difference.
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 when to use this tool—for full animation rendering—and the note about long-running operation suggests not for quick previews. Yet it does not explicitly contrast with render_image or render_viewport, nor does it state prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_imageB
Render the current frame to an image file. Uses scene output path if filepath not specified.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It discloses the primary action (render to image file) and the default output path behavior, but does not mention side effects like file overwriting, blocking behavior, or that it uses current render settings.
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?
Two concise sentences with no fluff; the main action is front-loaded and the default path note is directly relevant. Every word earns its place.
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 one-parameter tool with an output schema, the description covers the core behavior and default path. It omits minor details like overwrite semantics or reliance on current render settings, which are arguably implicit but could be more explicit given the lack of annotations.
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 meaning to the filepath parameter by explaining that null/default uses the scene output path. Since schema description coverage is 0%, this compensation is valuable, though it doesn't specify file format or other 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 'Render the current frame to an image file,' specifying the action and resource. It does not explicitly differentiate from render_animation or render_viewport, but 'current frame' implies single-frame output, making the purpose clear enough.
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 given on when to use render_image versus render_animation or render_viewport, and no alternatives or exclusions are mentioned. The only extra note about the filepath parameter concerns parameter behavior, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_viewportC
Render the viewport (OpenGL render) to a file.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 only states the action without explaining side effects, whether existing files are overwritten, whether it uses current frame/render settings, or what the return value is. The output schema exists but is not provided in the context, so the description remains the primary source, and it is very thin.
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 one concise sentence that gets to the point without fluff. It is not bloated, and the core purpose is front-loaded. However, it is so sparse that it sacrifices informational completeness, but as a strict conciseness measure, it is 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 rendering tool, the description is woefully incomplete. It lacks details about file format, naming conventions, whether it respects render settings, how it handles missing cameras, or what the tool returns. With no annotations and only a skeletal parameter schema, an agent cannot confidently predict behavior or integration with other tools.
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 single parameter 'filepath' has no description in the schema (0% coverage) and the tool description does not explain its role, default behavior, or allowed values beyond the schema's type and default null. An agent won't know whether to supply a path or what happens if null is passed, making parameter usage ambiguous.
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 renders the viewport (OpenGL) to a file. This is specific about the resource and action. However, it doesn't differentiate from sibling tools like capture_viewport or render_image, which could also capture the viewport, creating potential ambiguity for an agent choosing among them.
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?
There is no guidance on when to use this tool versus alternatives. The description gives no context about use cases, prerequisites (e.g., camera setup, render settings), or when to choose render_viewport over render_image, render_animation, or capture_viewport. An agent is left to infer usage from the name and brief description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reorder_constraintB
Move a constraint up or down. Direction: UP or DOWN.
| Name | Required | Description | Default |
|---|---|---|---|
| bone | No | ||
| object | Yes | ||
| direction | Yes | ||
| constraint | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It only states the action and direction values, without explaining effects on constraint evaluation, whether the constraint must already exist, how 'up' is defined, or any side effects of the mutation.
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 short and front-loaded: the core action is in the first sentence, and the second sentence gives the required direction values. There is no filler or redundant explanation.
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 four parameters, this description is too sparse to fully guide an agent. It omits what object, constraint, and bone refer to, how direction maps to ordering, and what conditions must hold before calling; the presence of an output schema does not compensate for these gaps.
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%, and the description only clarifies the 'direction' parameter by listing UP or DOWN as valid values. The roles of 'object', 'constraint', and the optional 'bone' are left entirely to inference from their names.
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 a specific action ('Move') on a specific resource ('constraint') with a directional qualifier ('up or down'), making the core purpose clear. It does not explicitly contrast itself with sibling tools, but the up/down movement is distinct from constraint add, remove, and property-setting operations.
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 intended use—reordering a constraint in its stack—is implied by the description, but there is no explicit guidance on when to use this tool versus alternatives like list_constraints or set_constraint_property. No prerequisites, exclusions, or ordering context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_fileA
Save the current scene. If filepath is provided, save-as to that path.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry full behavioral disclosure. It only says 'save', omitting details about overwriting, permissions, side effects, or what happens when filepath is null. This is a significant gap 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 a single, concise sentence that front-loads the core action and efficiently covers the optional parameter. No wasted words.
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?
The tool is simple with one optional parameter, so the description is close to sufficient. However, it lacks behavioral context like overwrite semantics and return behavior, which an agent might need for correct invocation, especially without annotations.
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 has 0% description coverage, so the description must compensate. It explains that filepath triggers 'save-as' behavior, clarifying the parameter's conditional role beyond the bare schema type. This adds meaningful value.
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 a specific action ('save') on a specific resource ('current scene'), and the optional filepath behavior distinguishes it from siblings like load_file and export_file. The purpose is unambiguous and immediately actionable.
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 for saving the scene, but it does not explicitly mention when to prefer save_file over export_file or other related tools. No exclusions or alternative guidance is provided, leaving the agent to infer the right context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
select_objectsB
Select objects by name list, glob pattern, or type. Deselects others by default.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| names | No | ||
| pattern | No | ||
| deselect_others | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 reveals an important side effect: selecting new objects deselects others by default. However, it does not explain what happens when deselect_others is false, whether multiple criteria are combined additively or as alternatives, or how invalid or missing names are handled.
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 two short sentences with no filler. It front-loads the action and selection modes, then adds the most important behavioral default. Every word earns its place.
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?
The description is adequate for straightforward calls, but given zero annotations and zero schema parameter coverage, several important behaviors are missing: how criteria interact, the exact meaning of deselect_others=false, and the selection scope. The presence of an output schema means return values need not be described, but the selection semantics remain underspecified for non-trivial 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 for the lack of parameter documentation. It paraphrases names, pattern, and type, mapping roughly to the schema properties, but it never explicitly mentions deselect_others beyond the default behavior. It also fails to clarify the interaction between criteria when more than one is supplied, leaving significant semantic 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 states a specific action ('Select') on a specific resource ('objects') and lists three concrete selection criteria: name list, glob pattern, and type. It also adds the key behavioral detail 'Deselects others by default,' which clarifies the tool's purpose. It does not explicitly differentiate from sibling tools like find_objects or list_objects, but the selection semantics are clear enough to avoid confusion.
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?
There is no guidance about when to use select_objects versus alternatives such as find_objects or list_objects, nor any context about when this should be preferred. The only usage clue is implied by the verb and parameters. No exclusions or conditional advice are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
separate_meshA
Separate mesh into multiple objects. Modes: LOOSE (by loose parts), MATERIAL (by material), SELECTED.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | LOOSE | |
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it does not state whether the original object is modified, destroyed, or left untouched. It also omits prerequisites such as requiring an active selection or edit mode for the SELECTED mode, which is important for a mutating operation.
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 compact and front-loaded: the core action appears first, followed by a concise mode breakdown. Every piece of text adds information without repetition or filler.
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?
The tool is simple with only two parameters and an output schema, so the description need not explain return values. However, it remains incomplete because it does not disclose side effects or mode-specific prerequisites, which an agent would need to invoke it correctly and safely.
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 does add meaning by enumerating and explaining the three mode values, but it does not clarify the 'object' parameter's expected format or identifier. The compensation is partial.
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 uses a specific verb ('Separate') and resource ('mesh'), and clearly states the outcome ('into multiple objects'). The mode list makes the operation's scope concrete and distinguishes it from siblings like join_meshes.
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 gives clear context for when to use the tool: when a mesh must be split into multiple objects. It also describes the meaning of each mode, which acts as usage guidance, though it does not explicitly name alternatives or state when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_active_cameraCIdempotent
Set the active scene camera.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds little beyond the tool name; it only adds 'scene' to indicate scope. With idempotentHint already provided, the description does not disclose additional behavioral implications such as effects on rendering or any side effects of changing the active camera.
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, concise sentence with no filler. It is front-loaded and efficient, though its brevity comes at the cost of necessary explanatory content.
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?
Even for a simple one-parameter tool, the description is incomplete: it does not clarify the expected input, differentiate from set_viewport_camera, or mention that it affects the scene/render. The presence of an output schema does not compensate for the missing usage 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?
The schema has one parameter 'name' with zero description coverage, and the tool description does not explain what 'name' refers to. The agent is left to guess it is a camera name, which is not explicitly stated.
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 a specific action: set the active scene camera. It is clear and the qualifier 'scene' narrows the resource, but it does not explicitly differentiate from similar siblings like set_viewport_camera.
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?
There is no guidance on when to use this tool versus alternatives such as set_viewport_camera or set_camera_property. The agent must infer usage solely from the name, which is insufficient given the many camera-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_bone_propertyBIdempotent
Set a bone property: roll, envelope_distance, head, tail, use_connect.
| Name | Required | Description | Default |
|---|---|---|---|
| bone | Yes | ||
| value | Yes | ||
| object | Yes | ||
| property | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, so the description's only behavioral addition is the list of properties. It does not disclose side effects (e.g., modifying bone geometry, affecting rigging), error conditions, or the impact of setting head/tail on connected bones. With annotations covering idempotency, the description adds minimal 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?
A single, front-loaded sentence with zero waste. It states the operation and enumerates the key property names efficiently.
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 four required parameters with no schema descriptions and no enums, the description is insufficient. It lacks details on value formats for each property (e.g., head/tail as 3D vectors), the relationship between object and bone, and potential failure modes. Even with an output schema, the agent may struggle to construct valid calls without additional 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 lists the allowed values for the 'property' parameter, which clarifies what can be set and implies value types (e.g., roll is numeric, use_connect is boolean, head/tail likely arrays). However, it does not explain the exact format of head/tail arrays or the meaning of 'object' and 'bone', 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 states a specific verb ('Set'), a resource ('bone property'), and enumerates the exact property names (roll, envelope_distance, head, tail, use_connect). This clearly distinguishes it from sibling tools like get_bone_info (read) and set_pose_bone_transform (pose transforms) by implying edit-mode bone attributes.
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, such as set_pose_bone_transform or batch_set_property. It does not mention prerequisites (e.g., object must be an armature) or context (edit mode vs pose mode).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_camera_propertyBIdempotent
Set camera property: focal_length, sensor_width, clip_start, clip_end, dof_use, dof_focus_distance, dof_aperture_fstop.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| value | Yes | ||
| property | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The idempotentHint annotation already signals that repeated calls with the same arguments are safe. The description adds minimal behavioral context by implying a single-property mutation on a camera, but it does not disclose failure behavior for invalid properties, value constraints, or side effects beyond the property change.
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 focused sentence with no filler. The supported property list is front-loaded immediately after the action, making the core information immediately accessible.
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 simple property setter with an output schema and idempotentHint annotation, the description covers the basic invocation surface. However, it lacks detail on value semantics, prerequisites, and relationships to DOF-related sibling tools, leaving room for incorrect calls when the agent needs non-obvious values.
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 carry the parameter semantics. It usefully enumerates the allowed property strings and hints at value categories (e.g., dof_use is boolean, focal_length is numeric), but it does not specify units, ranges, per-property value types, or the meaning of the 'name' parameter.
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 identifies the verb ('Set') and resource ('camera property'), and enumerates the accepted property names, making the tool's scope unambiguous. It does not explicitly differentiate itself from sibling tools like setup_camera_dof, but the list of properties makes the intended use reasonably clear.
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 given about when to use this tool versus alternatives such as setup_camera_dof, batch_set_property, or set_active_camera. There are no prerequisites, exclusions, or conditional recommendations, so the agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_collection_visibilityBIdempotent
Set collection visibility in viewport and/or render.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| render | No | ||
| viewport | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The only annotation is idempotentHint=true, and the description does not contradict it. However, the description adds no behavioral context beyond the operation itself: it does not explain the semantics of null values (whether they mean 'do not change' or 'hide'), nor whether nested objects or render settings are affected. With minimal annotations, the description carries a heavier burden that it does not meet.
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 short sentence with no filler, front-loading the action and scope. It is extremely efficient and easy to parse, exactly as a tool description should be.
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?
This is a simple 3-parameter tool and an output schema exists, so return values do not need to be explained. However, the description omits crucial behavior around optional parameters: both render and viewport default to null, which likely signals 'leave unchanged,' but the description does not state this. It also gives no hint about whether the collection must already exist or whether the operation affects nested objects, leaving room for incorrect invocation.
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 for missing parameter documentation. It names the two contexts (viewport and render) that correspond to the boolean parameters, which is somewhat helpful, but it does not clarify the meaning of null/default values or how the collection name is resolved. The added semantic value over the bare parameter names is minimal.
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 uses a specific verb ('Set') and identifies the exact resource ('collection visibility') along with the two possible scopes ('viewport and/or render'). This clearly distinguishes it from sibling tools like toggle_modifier_visibility or set_viewport_shading, which address different visibility/shading concerns. The mapping to the schema parameters (name, viewport, render) is immediate.
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 vs alternatives, such as toggle_modifier_visibility, set_viewport_shading, or move_to_collection. It does not state prerequisites (e.g., an existing collection) or mention that optional parameters left null likely mean 'leave unchanged.' An agent must infer the use case solely from the tool name and the brief description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_comp_node_inputCIdempotent
Set a compositor node input value.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| input | Yes | ||
| value | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond the annotation. The idempotentHint is present, but the description does not mention side effects, permissions, or any other runtime behavior. Since annotations already cover idempotency, the description offers no additional value here.
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, concise sentence that front-loads the action. It is not verbose and contains no filler. While it is minimal, it earns its place by being direct.
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 tool with three required parameters and no schema descriptions, the description is insufficient. It does not explain what a compositor node is, what input types are expected, or what the tool returns. An agent would need additional context to use it correctly.
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 has 0% description coverage, and the tool description does not explain the parameters (node, input, value). There is no guidance on what these parameters represent, acceptable formats, or how they interact, leaving the agent to guess.
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 (set) and the resource (compositor node input value) clearly, distinguishing it from shader or geometry node tools. However, it is terse and does not elaborate on the nature of the input or the compositor context, so it falls short of a 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?
No guidance is provided on when to use this tool versus alternatives like set_geonode_input or set_node_input. The description simply states the action without any context or conditions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_constraint_influenceCIdempotent
Set constraint influence (0.0 to 1.0).
| Name | Required | Description | Default |
|---|---|---|---|
| bone | No | ||
| object | Yes | ||
| influence | Yes | ||
| constraint | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation `idempotentHint: true` is already provided, but the description adds no behavioral context beyond the bare action. It does not explain side effects, whether the influence is clamped to the range, or how it interacts with other constraint properties. Given the annotation covers idempotency, the description contributes little extra transparency.
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 extremely concise, consisting of a single sentence with no filler. It is front-loaded with the action. However, it is under-specified, bordering on tautological; it lacks sufficient detail to be useful, so the conciseness is not a strength.
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 tool with four parameters, no schema descriptions, and no output schema details, the description is severely inadequate. It fails to explain what `object`, `constraint`, and `bone` refer to, how they are specified, or what the result of the operation is. An agent would struggle to call this tool correctly without external knowledge.
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 for undocumented parameters. It mentions the influence range (0.0 to 1.0) but does not explain the meaning or format of `object`, `constraint`, or `bone`. The description adds minimal value beyond the schema, which itself lacks 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 a specific verb ('set') and resource ('constraint influence'), which clearly indicates the action. However, it does not differentiate from sibling tools like `set_constraint_property`, which could also modify the influence property. The wording is unambiguous about the target but lacks explicit distinction.
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?
There is no guidance on when to use this tool versus alternatives such as `set_constraint_property` or `set_modifier_property`. No context about prerequisites, typical scenarios, or exclusions is provided. The agent must infer usage solely from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_constraint_propertyCIdempotent
Set a constraint property. Common: target, subtarget, influence, axis.
| Name | Required | Description | Default |
|---|---|---|---|
| bone | No | ||
| value | Yes | ||
| object | Yes | ||
| property | Yes | ||
| constraint | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations only provide idempotentHint=true, and the description adds no behavioral detail beyond the mutation implied by 'Set.' It does not disclose identifier semantics, error behavior, or effects. There is no contradiction with the annotations, but the description carries almost no behavioral burden.
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 one compact sentence with the action and resource front-loaded, followed by a concise, useful example list. It is appropriately brief, though it could earn a 5 by adding a sentence of routing guidance without bloating.
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 generic setter with zero schema parameter coverage and a specialized sibling like set_constraint_influence, the description is too thin for an agent to reliably choose the tool and construct a correct call. An output schema exists, so return values are not the gap; parameter semantics and tool routing are.
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 schema description coverage at 0%, the description needed to compensate, but it only lists example values for the 'property' parameter. It does not explain how to identify 'object' or 'constraint', nor what formats 'value' or optional 'bone' expect.
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 identifies the action ('Set') and the resource ('a constraint property'), and the examples (target, subtarget, influence, axis) add useful specificity. However, it does not distinguish itself from the sibling set_constraint_influence, which also deals with influence, so it stops short of a 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?
There is no guidance about when to use this generic setter versus alternatives like set_constraint_influence, add_constraint, or remove_constraint. The 'Common:' list implies some usage context, but no exclusions or alternative routing are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_curve_pointsC
Set control point positions on a spline. Each entry: {co: [x,y,z], handle_left: [x,y,z], handle_right: [x,y,z]} for Bezier, or {co: [x,y,z,w]} for NURBS/Poly.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| points | Yes | ||
| spline_index | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It only states 'Set control point positions' without mentioning whether it replaces existing points, whether the spline index is zero-based, whether handles are optional for Bezier, or what coordinate system is used. This leaves critical behavior to guesswork.
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 two sentences with no filler: the purpose is first, followed by a compact data format specification. Every phrase earns its place.
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?
With three required parameters and no annotations, the description leaves out the meaning of 'object' and 'spline_index', and does not state whether this operation replaces or edits existing control points. It also lacks information about the output, though an output schema exists. The tool is incomplete for an agent to use confidently.
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 explicitly documents the structure of the 'points' parameter for Bezier and NURBS/Poly entries, which adds meaning beyond the empty schema. However, it does not explain the 'object' or 'spline_index' parameters, so the compensation is only partial for the 0% schema coverage.
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?
States a specific action ('Set control point positions') on a specific resource ('a spline'), and the entry format distinguishes it from generic curve property setters. Though it doesn't name an alternative sibling, the subject matter is unique enough to identify the tool's purpose.
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?
Gives no guidance on when to use this tool vs alternatives like set_curve_property. The description only says what it does, not which situations call for it, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_curve_propertyCIdempotent
Set curve property: bevel_depth, bevel_resolution, extrude, dimensions (2D/3D), resolution_u, fill_mode.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| object | Yes | ||
| property | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations include idempotentHint: true, which implies that repeated calls with the same inputs have the same effect; the description does not contradict this. However, the description provides no additional behavioral context: no mention of prerequisites (e.g., the object must be a curve), no mention of how the tool handles invalid properties or values, and no mention of side effects beyond what annotations cover. With annotations covering idempotency, the bar is lower, and the description is minimal but not misleading.
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: it lists the properties in a single sentence, which is efficient for an agent to parse. It front-loads the action and the resource. The listing of properties is useful, and there is no wasted text. It is not overly verbose, so it earns a high score, though it could add more structural guidance.
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?
The tool has three parameters all required, no output schema (though context says has output schema true? Actually given output schema is true, but that's not in the tool description; the context signals say has output schema true, but the description doesn't mention return values). The complexity is moderate: setting a property requires understanding the value type for each property. The description lists properties but not their value constraints or examples. Given the low schema coverage and no usage guidance, the description is incomplete for an agent to correctly invoke the tool for all properties.
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%, meaning the input schema has no descriptions for 'object', 'property', or 'value'. The tool description partially compensates by listing valid property names, but it does not explain the format of 'value' (e.g., for dimensions, is it an array of floats?), nor does it clarify what 'object' refers to (e.g., object name or ID). The description must carry the full burden for parameter semantics, and it does not fully do so.
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 a specific verb ('Set') and resource ('curve property'), and enumerates the properties it can set (bevel_depth, bevel_resolution, extrude, dimensions, resolution_u, fill_mode). This is clear enough for a basic understanding, but it does not differentiate from sibling tools like set_modifier_property or set_material_property, which are similarly named. The purpose is clear but not uniquely distinguishing in the context of many property-setting 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?
There is no guidance on when to use this tool versus alternatives. For example, there are siblings like create_curve, get_curve_info, set_curve_points, and convert_to_mesh, which all relate to curves, but the description does not mention when to use set_curve_property as opposed to those. Context is implied by the property names, but no explicit exclusions or alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_frameCIdempotent
Set the current frame.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The idempotentHint annotation already signals that repeated calls with the same frame are safe, and the description does not contradict this. The description adds no behavioral context beyond the annotation, such as whether the change affects rendering, viewport, or animation state, but the annotation covers the main safety concern.
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 short sentence with no wasted words, and the essential operation is front-loaded. It is appropriately concise, though it sacrifices semantic richness for brevity.
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 tool with one parameter, no output schema details, and no usage context, the description is incomplete. An agent cannot determine valid frame values, the relationship to set_frame_range, or what 'current frame' affects (viewport, render, animation). The idempotentHint helps but does not fill these gaps.
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 for the undocumented 'frame' parameter. The description only says 'Set the current frame' and does not explain what the integer represents (e.g., frame number, time in seconds, or index), nor its bounds or units. This is a significant gap for a tool with a single parameter.
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 'Set the current frame' states a clear verb and resource, and the single 'frame' parameter makes the operation unambiguous. However, it does not distinguish itself from the sibling 'set_frame_range' or 'playback_control', which are related frame/playback operations, so an agent must infer the difference from the parameter schema.
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 given on when to use this tool versus alternatives like set_frame_range or playback_control. The description does not mention context such as animation playback, scrubbing, or keyframe navigation, leaving the agent to guess the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_frame_rangeAIdempotent
Set the scene frame range (start and/or end frame).
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| start | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
IdempotentHint already signals repeat-safety, and the description adds partial-update behavior via 'start and/or end frame,' which is useful. It does not mention side effects or validation, but for a simple range setter this is a modest gap rather than a contradiction.
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?
One front-loaded sentence with no filler; the parenthetical adds the only necessary detail about the optional parameters.
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 two-parameter idempotent setter with an output schema, this description is nearly complete. The main missing context is an explicit relationship to sibling tools like set_playback_range, though the word 'scene' partially addresses that.
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%, and the description compensates by identifying start and end as frame bounds and signaling that either may be supplied. This is minimal but sufficient for two nullable integer 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?
Names the specific operation (set), resource (scene frame range), and supported fields (start/end). It is not a tautology and is unambiguous as a setter, but it does not explicitly distinguish itself from sibling set_playback_range.
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 phrase 'scene frame range' gives some context that this is scene-level rather than playback-level, but the description never states when to choose it over set_playback_range or set_frame, nor any exclusions. Usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_geonode_inputBIdempotent
Set a geometry node input's default value.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| input | Yes | ||
| value | Yes | ||
| object | Yes | ||
| modifier | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The idempotentHint annotation is true, meaning repeated calls with the same value have no additional effect. The description does not contradict this and simply says 'set default value'. However, it adds no behavioral context beyond the annotation—no mention of error handling, side effects, or what happens if the input path is invalid. With the annotation covering idempotency, the description is minimally sufficient but not richer.
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, front-loaded sentence that immediately states the purpose. There is no fluff, and every word earns its place. It is appropriately concise for a straightforward setter operation.
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?
With five required parameters, no schema descriptions, and only a one-line purpose, the description is inadequate for an agent to correctly call the tool. It lacks information on how to locate the geometry node modifier, how to specify the input (name or index), and what value types are acceptable. The output schema exists, so return values are covered, but input construction is under-specified.
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 for explaining the five required parameters. It does not. The parameter names (object, modifier, node, input, value) are somewhat self-explanatory, but the description provides no details on expected formats, how to identify the input (string vs. integer), or how the value should be typed (number, array, etc.). This is a significant gap for an agent trying to construct valid arguments.
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) and the resource (geometry node input's default value). It is specific enough to distinguish from other node tools like get_geonode_input, though it does not explicitly differentiate from the sibling set_geonodes_input (plural), which likely handles multiple inputs at once. The verb+resource is clear and unambiguous.
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 such as set_geonodes_input (plural) or set_node_input (for shader nodes). The description does not mention prerequisites like the object needing a geometry nodes modifier, nor does it indicate what to do if the input does not exist. An agent is left to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_geonodes_inputAIdempotent
Set a modifier-level input (Group Input interface value).
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| object | Yes | ||
| modifier | Yes | ||
| input_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide idempotentHint, and the description adds minimal behavioral context beyond clarifying that the target is the Group Input interface. It does not disclose whether the input must exist, whether it is created if missing, or any side effects of setting the value.
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?
A single, tightly-worded sentence that front-loads the verb and resource, then adds a clarifying parenthetical. There is no filler or redundant restating of the tool name.
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?
The description, combined with the input schema (4 required params) and output schema, is adequate for a simple setter, but it leaves gaps around input_name semantics and behavior when the input does not exist. The sibling set_geonode_input is not referenced, so an agent may need additional disambiguation.
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 for parameter meaning. It provides general context—object modifier Group Input—which hints at the roles of object, modifier, and input_name, but it does not explicitly detail each parameter or the accepted value formats beyond what the schema's anyOf already conveys.
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 a specific verb (set) and resource (modifier-level input, specifically the Group Input interface value), which clearly communicates the operation. It distinguishes itself from node-level siblings like set_geonode_input and set_node_input by emphasizing 'modifier-level'.
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 'modifier-level' qualifier implies the intended usage context—configuring a Geometry Nodes modifier's exposed inputs—but the description does not explicitly name alternatives or state when not to use it. There is no direct contrast with set_geonode_input or set_node_input.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_gp_layer_propertyCIdempotent
Set a GP layer property: color, opacity, thickness, use_lights.
| Name | Required | Description | Default |
|---|---|---|---|
| layer | Yes | ||
| value | Yes | ||
| object | Yes | ||
| property | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation idempotentHint=true suggests that repeated calls with the same arguments will have the same result, which the description does not contradict. The description adds the specific property names, which is useful context beyond the schema. However, it doesn't describe side effects like whether setting use_lights requires specific render engine or if setting thickness applies only to strokes. The idempotent annotation lowers the bar slightly, but the description could add more 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 a single sentence that is concise and front-loaded with the action and resource. It lists the four supported properties, which is useful. However, it could be slightly more structured by including parameter details, but it is appropriately sized.
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 that there is an output schema (though not provided in detail), the description does not need to explain return values. However, for a tool with 4 required parameters and 0% schema coverage, the description is incomplete. It lacks parameter semantics, usage context, and any behavioral details like error conditions. The tool is relatively simple, but the description misses key information for an agent to use it correctly, especially since the schema is opaque.
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%, meaning the schema provides no meaning for parameters like object, layer, property, value. The description only lists example property names but does not explain the format of the value parameter (e.g., color as hex or RGB, thickness as number). For a tool with 0% coverage, the description must compensate, but it does not provide enough parameter semantics.
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 sets a GP layer property and enumerates the specific properties (color, opacity, thickness, use_lights). This is a specific verb+resource (set + GP layer property) and distinguishes it from siblings like set_modifier_property or set_material_property. However, it doesn't explicitly name a sibling for contrast, but the resource is clear enough.
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 set_property or other set_*_property tools. It doesn't mention requirements (e.g., the layer must exist) or when not to use it. Given the large sibling list, this is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_interpolationAIdempotent
Set keyframe interpolation for all keyframes on a channel. Types: BEZIER, LINEAR, CONSTANT.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| data_path | Yes | ||
| interpolation | No | BEZIER |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation idempotentHint=true already covers repeat safety. The description adds useful scope context: it affects ALL keyframes on a channel, implying bulk overwrite of existing interpolation. It does not mention prerequisites (e.g., existing keyframes) or what happens if no keyframes exist, but it does not contradict annotations.
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?
Two sentences with no padding. The primary action is front-loaded and the allowed types are listed immediately after. Every word contributes essential information.
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 simple setter with an output schema present, the description covers the core operation and the interpolation parameter. It is incomplete on object/data_path semantics and lacks any usage guidance relative to siblings, leaving modest gaps for an agent to infer.
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 carry the burden. It provides the valid enum values for 'interpolation', which is helpful. However, the two required parameters 'object' and 'data_path' are left entirely unexplained; the agent is not told what format to use for object names or how to specify a channel via data_path.
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 a specific verb ('Set'), a precise resource ('keyframe interpolation for all keyframes on a channel'), and clarifies the allowed values (BEZIER, LINEAR, CONSTANT). It clearly differentiates from sibling tools like set_keyframe or set_keyframes, which deal with keyframe values rather than interpolation type.
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 usage context is implied: an agent can infer this tool is for changing interpolation type on a channel. However, there is no explicit guidance on when to choose this over alternatives, such as set_keyframe for individual keyframes, or any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_keyframeC
Insert a keyframe on an object property at a specific frame. Use index for individual channels (0=X, 1=Y, 2=Z), or -1 for all channels.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | Yes | ||
| index | No | ||
| value | No | ||
| object | Yes | ||
| data_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It does not mention side effects such as overwriting existing keyframes, requirements for the object to be animatable, error conditions, or what happens if value is null. It only states the basic action and index semantics, which is insufficient 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 two sentences with no filler. The core purpose is front-loaded, and the index explanation is efficient. Every word contributes meaning.
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?
Despite having an output schema, the description is incomplete for a complex animation tool. It omits crucial information about data_path syntax, value types, frame handling, and any limitations or prerequisites. The tool is not fully usable based on the description alone.
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 for all parameters. It only explains the index parameter (0=X, 1=Y, 2=Z, -1 for all). It does not explain object, data_path, value, or frame formats/units. This is a significant gap for a tool with 5 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 (insert) and resource (keyframe on an object property at a specific frame), which distinguishes it from many sibling tools. However, it does not explicitly differentiate from set_keyframes, which is a closely related sibling, so it lacks explicit 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 parameter usage for the index field but gives no guidance on when to use this tool versus alternatives like set_keyframes or delete_keyframe. There is no mention of conditions that would make this tool the right choice, nor exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_keyframesA
Batch insert multiple keyframes. Each entry: {frame: int, value: float|list}. More efficient than calling set_keyframe repeatedly.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| data_path | Yes | ||
| keyframes | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 discloses that the operation is a batch insert and notes efficiency, but it does not explain whether existing keyframes are overwritten, how invalid frames are handled, or what the response contains. This is a significant gap for a mutating 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 two sentences with no filler. The main operation is front-loaded, and the entry format is stated efficiently.
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?
Despite having an output schema, the description still leaves required top-level parameters unexplained and lacks behavior semantics for insertion. For a batch mutation tool with no annotations CST, this is not complete enough for an agent to call it confidently.
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 for the 'keyframes' parameter by specifying each entry as {frame: int, value: float|list}, but it says nothing about the meaning or expected format of 'object' and 'data_path', leaving two required parameters underdocumented.
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 a specific operation ('Batch insert multiple keyframes') and a precise resource. It also distinguishes itself from the sibling 'set_keyframe' by emphasizing batch efficiency, so an agent can tell them apart.
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 when to use this tool versus set_keyframe: use it for multiple keyframes because it is more efficient. It does not explicitly state when not to use it, but the batch-vs-single contrast provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_light_propertyBIdempotent
Set a light property: energy, color, shadow_soft_size, spot_size, spot_blend, use_shadow, size (area light).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| value | Yes | ||
| property | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The idempotentHint annotation already covers repeat-safety. The description adds a list of valid properties and notes that size applies to area lights, which is useful domain context, but it does not disclose side effects, error behavior, or whether existing values are overwritten.
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?
A single sentence that front-loads the action and resource, then lists the accepted properties compactly. There is no filler or repetition of schema fields.
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?
The description is adequate for a simple setter but leaves gaps: it does not map property names to their expected value types, mention that spot_size/spot_blend are spot-light-specific, or state what happens on invalid property names. The presence of an output schema reduces the need to document return values, but value semantics remain incomplete.
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. It enumerates the valid property strings, which is essential since the schema defines property only as a plain string with no enum. However, it does not explain value formats or units for each property (e.g., color array layout, energy range), leaving the value parameter underspecified.
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 opens with the specific verb 'Set' and the resource 'light property', then enumerates the supported properties (energy, color, shadow_soft_size, spot_size, spot_blend, use_shadow, size). This makes the tool's scope clear and separates it from sibling setters like set_world_property or set_material_property, though it does not explicitly name those 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?
No guidance is given about when to choose this tool over sibling setters, nor any prerequisites or conditions. The only usage signal is the tool name and the phrase 'light property', which is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_material_propertyBIdempotent
Set a Principled BSDF property. Properties: base_color, metallic, roughness, specular, transmission, emission_color, emission_strength, alpha, normal_strength.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| material | Yes | ||
| property | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The only annotation is idempotentHint: true, which already covers idempotency. The description adds no behavioral details beyond listing property names; it doesn't mention validation, error handling, or effects on other properties (e.g., emission_color interacting with emission_strength). Since the annotation is present, a score of 3 is reasonable, but the description contributes little extra transparency.
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 concise sentence that front-loads the purpose and enumerates valid property names. It wastes no words, though it could be structured with bullet points or value-type hints. Still, it is efficient and direct.
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?
The tool is a straightforward setter with an output schema (though not provided here). The main missing context is the value format per property, which is critical for correct invocation. Since it's a simple setter, the description is mostly complete but lacks essential parameter semantics, so it falls short of full completeness.
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 has 0% description coverage, so the description carries the full burden for parameter semantics. It lists property names but does not specify expected value formats (e.g., base_color as an RGB array, metallic as a float, normal_strength as a float). The schema's 'value' is loosely typed (anyOf number/array), so an agent cannot know the correct shape for each property without external knowledge. This is a significant 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 verb 'Set' and the resource 'a Principled BSDF property', and enumerates all supported property names. This distinguishes it from sibling setters like set_modifier_property or set_light_property, so an agent can identify its scope without ambiguity.
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 such as batch_set_property (which likely sets multiple properties at once) or set_material_info. There are no explicit conditions, exclusions, or references to siblings, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_modifier_propertyCIdempotent
Set a modifier property. Property names are Blender API names (e.g., 'levels' for SUBSURF, 'count' for ARRAY, 'operation' for BOOLEAN).
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| object | Yes | ||
| modifier | Yes | ||
| property | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations provide idempotentHint=true, and the description does not contradict that. However, the description only adds the naming-convention note for properties; it does not disclose that setting a property overwrites the current value, what validation may occur, or what the operation returns on failure.
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 focused sentence with useful examples and no filler. It front-loads the verb and resource, then immediately clarifies the naming convention that an agent needs to know.
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 relatively simple setter with an output schema and idempotent annotation, the description is minimally workable. However, it is not fully complete: object and modifier identification semantics are undocumented, and there is no guidance about when to prefer sibling tools.
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 only clarifies the 'property' parameter by giving examples and noting Blender API names; it leaves 'object' and 'modifier' ambiguous about whether they are names, UUIDs, or something else. The 'value' parameter is partially covered by the schema's anyOf types, but not semantically.
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 'Set' and the resource 'modifier property', and the examples of Blender API property names help clarify the domain. It is distinct enough from sibling tools like set_light_property or set_material_property because the resource is explicitly a modifier, though it does not explicitly contrast itself with those siblings.
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 gives no explicit guidance on when to use this tool versus alternatives like batch_set_property or other set_*_property tools. It does not mention prerequisites such as the modifier needing to exist, nor does it exclude cases where another tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_node_inputBIdempotent
Set a node input's default value (color, float, vector).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| input | Yes | ||
| value | Yes | ||
| material | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds that the operation changes the default value rather than a connected/current value, and it hints at the accepted value shapes. The idempotentHint annotation already covers repeatability; side effects on existing connections or material dependencies are not mentioned, but nothing contradicts the annotation.
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?
A single focused sentence with no filler or redundant schema repetition. The verb, target, and value types are 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?
For a four-required-parameter mutation tool with zero schema descriptions, this is too thin. An agent cannot tell which node domain this tool applies to, how `input` is identified, or what value array formats are expected. The output schema covers return shape, but not selection or invocation 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?
With 0% schema description coverage, the description partially compensates: it clarifies that `value` can be a color, float, or vector, and the phrase 'node input' gives meaning to the `input` parameter. It does not explain whether `input` is a name or index, nor what formats `node` and `material` expect.
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 a clear action ('Set') and object ('a node input's default value') and enumerates the accepted value kinds (color, float, vector). It does not explicitly distinguish this from sibling tools like set_geonode_input or set_comp_node_input, so it is not a perfect 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?
There is no guidance about when to use this tool versus get_node_input, set_node_position, or the domain-specific input setters. No prerequisites, call order, or alternative selection cues are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_node_positionCIdempotent
Set a node's position in the editor.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| location | Yes | ||
| material | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the meaningful qualifier 'in the editor,' indicating this is an interface-layout change rather than a world/object transform. The idempotentHint annotation is consistent and covers repeat-call safety, but the description does not disclose the coordinate format, whether the change affects rendering, or any prerequisites such as the node existing.
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 single sentence is concise, front-loaded, and contains no filler. It is not overlong, though the brevity contributes to missing parameter-level detail.
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 tool with three required, opaque parameters and no schema descriptions, the description is too thin. It does not explain how to identify the material/node, what location values mean, what coordinate space the editor uses, or how this relates to the many sibling node tools.
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 carries the full burden for explaining material, node, and location. It only parses as 'node' + 'position' and says nothing about the material parameter, node identifier format, or the expected shape/order of the location array.
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 uses a specific verb and resource: 'Set a node's position in the editor,' which clearly distinguishes the operation from object transforms or node value edits. However, it does not state which node context (material, geometry, compositor) applies, and the required 'material' parameter is not reflected in the wording.
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 phrase 'set a node's position in the editor' implicitly tells the agent this is for manual node layout in a node editor, differentiating it from transform tools. It provides no explicit when-to-use versus alternatives, no exclusions, and no note about alternatives such as layout_node_tree.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_originC
Set an object's origin point. Types: ORIGIN_GEOMETRY, ORIGIN_CENTER_OF_MASS, ORIGIN_CENTER_OF_VOLUME, ORIGIN_CURSOR, GEOMETRY_ORIGIN.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| type | No | ORIGIN_GEOMETRY |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 discloses the operation (set origin) and the type enum, but doesn't mention whether the operation is destructive, whether it requires selection, or what the output/return value is. The behavior is only partially transparent.
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 short and front-loaded with the core action. The type list is useful but could be considered redundant with the schema default; still, it earns its place by clarifying the enum values.
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 schema descriptions, the description is too thin. It doesn't explain what 'origin point' means in practice, how the type affects the result, or what the tool returns. An agent would need to infer too much.
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 explains the 'type' parameter by listing its possible values, but it does not explain the 'name' parameter (which object) or the meaning of the listed types beyond their names. The description adds some value for 'type' but leaves 'name' undocumented.
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 a specific verb and resource ('Set an object's origin point') and lists the supported origin types, which distinguishes it from generic transform tools. It doesn't explicitly name a sibling alternative, but the resource and type list make the purpose clear.
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 on when to use this tool versus alternatives like set_transform or apply_transform. The description implies it is for origin manipulation, but it doesn't state prerequisites (e.g., object must exist) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_parentC
Set parent-child relationship between objects.
| Name | Required | Description | Default |
|---|---|---|---|
| child | Yes | ||
| parent | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 conveys that a parenting relationship is set, but it does not disclose whether existing parents are replaced, whether transforms are affected, or what side effects occur.
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, front-loaded sentence with no filler. Every word contributes to stating the operation, making it easy 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?
For a tool with no annotations and 0% schema description coverage, this is underspecified. An agent still lacks key details about how to identify objects, what the operation changes, and what the output represents, despite an output schema existing.
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 needed to compensate for the child and parent parameters. It only says 'objects,' offering minimal added meaning beyond the raw parameter names and failing to clarify whether these are object IDs, names, or paths.
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 uses a specific verb ('set') and resource ('parent-child relationship between objects'), making the core operation clear. It is not a tautology and is distinguishable from the sibling clear_parent as the inverse operation, though it does not explicitly name that distinction.
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?
There is no guidance on when to use this tool versus alternatives like parent_mesh_to_armature or clear_parent. The description implies general object parenting but does not state when this is the appropriate call or when a more specialized sibling should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_particle_propertyBIdempotent
Set a particle system property: count, lifetime, emit_from, physics_type, size.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| object | Yes | ||
| system | Yes | ||
| property | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The idempotentHint annotation already covers repeated-call safety, lowering the burden on the description. The description adds a useful list of settable properties but does not explain behavioral effects such as overwriting existing values or requiring an existing particle system. It does not contradict the annotation.
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, front-loaded sentence with no filler. It names the action, the resource, and the relevant property keywords efficiently.
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?
Despite the output schema and idempotent annotation, the description is incomplete for correct invocation. It does not explain how to identify the object or particle system, nor what values each listed property accepts. An agent would likely need external knowledge to set emit_from or physics_type correctly.
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 possible values for the property parameter, which helps, but it does not explain the semantics of object, system, or value, nor map value types to each property. For example, emit_from and physics_type likely expect string-like values, yet the schema only allows number, integer, or boolean.
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 a specific verb ('Set') and resource ('particle system property') and enumerates the supported properties: count, lifetime, emit_from, physics_type, size. This makes the tool's purpose immediately clear and distinguishes it from sibling set_* tools like set_physics_property or set_material_property.
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 gives no guidance on when to use this tool versus alternatives such as add_particle_system, get_particle_info, or setup_hair. There is no mention of prerequisites, exclusions, or why an agent would choose this over a sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_physics_propertyCIdempotent
Set a physics property. E.g., type=RIGID_BODY, property=mass, value=5.0.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| value | Yes | ||
| object | Yes | ||
| property | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The only annotation is idempotentHint=true, which the description does not contradict. However, the description adds no behavioral details beyond that—it doesn't disclose whether it modifies existing physics or creates new, whether it invalidates baked simulations, or what error conditions might occur. With minimal annotations, the description carries the burden but fails to provide additional transparency.
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 sentence with an example, which is appropriately concise. It front-loads the action and uses the example to illustrate usage efficiently. There is no wasted words, and the structure is clear.
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 tool with 4 parameters, no enums, and no parameter descriptions, the description is far too sparse. It does not mention that physics must be set up first, how to discover valid properties for a given type, or any restrictions on values. The output schema exists but the description doesn't leverage it. An agent would struggle to use this correctly without external knowledge.
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. The example clarifies type, property, and value with a concrete instance (RIGID_BODY, mass, 5.0), but does not explain the 'object' parameter or enumerate valid property names per type. This provides some semantic value but leaves agents guessing about allowed values and parameter interplay.
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 a clear verb 'Set' and resource 'physics property', and the example (type=RIGID_BODY, property=mass, value=5.0) helps distinguish it from other set_property tools for materials, lights, etc. However, it leaves ambiguity about what 'type' refers to (e.g., physics simulation type) and whether it requires an existing physics object, so it's not fully specific.
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?
There is no guidance on when to use this tool versus alternatives like batch_set_property or other set_*_property tools. No prerequisites are mentioned, such as needing to add physics first (add_physics) or setting up a world. The description only gives an example without any contextual selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_playback_rangeCIdempotent
Set the preview/playback range.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | ||
| start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the idempotentHint annotation, the description adds no behavioral detail such as whether the change affects rendering, whether values are in frames, or whether the existing preview is replaced. It simply restates the action rather than explaining effects.
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 short sentence with no filler, and the core action is front-loaded. It earns its place, though the brevity leaves room for useful details without becoming verbose.
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 two-parameter tool this is close to minimally viable, but the complete lack of parameter semantics and usage context makes it insufficient for a confident call. The output schema may document returns, but the description still does not explain the meaning of start/end or how this differs from set_frame_range.
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 input schema has no descriptions and schema coverage is 0%. The description only implies that 'start' and 'end' correspond to the range endpoints; it does not explain units, ordering, boundaries, or how these map to the preview/playback concept.
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 gives a clear verb ('Set') and a specific resource ('preview/playback range'), so an agent can tell this is about configuring the playback region. It does not explicitly contrast it with the sibling set_frame_range, but the 'preview/playback' wording provides enough distinction for a basic selection.
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 over alternatives such as set_frame_range or playback_control. There is no mention of contexts, prerequisites, or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_pose_bone_transformBIdempotent
Set a pose bone's transform (location and/or rotation in pose space).
| Name | Required | Description | Default |
|---|---|---|---|
| bone | Yes | ||
| object | Yes | ||
| location | No | ||
| rotation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The only annotation is idempotentHint=true, so the description carries the burden of behavioral disclosure. It does not clarify whether omitting location or rotation preserves existing values or resets them, nor does it mention whether the armature must be in pose mode or whether this affects any pose data. The phrase 'pose space' adds some context but little beyond the name.
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 front-loaded sentence with no filler. Every word earns its place: the verb, target, and scope are all present, making it highly scannable for an agent.
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 simple setter with an output schema present and only idempotentHint as an annotation, the description is adequate but leaves important gaps: when to use it (pose mode? only with an armature object?) and the exact behavior when location or rotation is null. These omissions could lead to incorrect usage or unexpected side effects.
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 does clarify that location and rotation are the settable components and that they are alternatives ('and/or'), and 'pose space' gives coordinate context. However, it never describes the `object` and `bone` parameters, nor does it explain the expected numeric format (e.g., radians vs degrees, array length) for location and rotation.
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 uses a specific verb ('Set') with a precise resource ('pose bone's transform') and explicitly scopes the operation to 'location and/or rotation in pose space.' This differentiates it from siblings like set_transform (object transform) and set_bone_property (bone properties) via the phrase 'pose bone' and 'pose space.'
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 about when to use this tool versus alternatives such as set_bone_property or set_transform. It does not mention prerequisites (e.g., pose mode, armature object), exclusions, or conditions that would help an agent select this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_render_settingsAIdempotent
Configure render settings. Engine: CYCLES, BLENDER_EEVEE_NEXT, BLENDER_WORKBENCH. File format: PNG, JPEG, EXR, TIFF. Color mode: BW, RGB, RGBA.
| Name | Required | Description | Default |
|---|---|---|---|
| engine | No | ||
| samples | No | ||
| filepath | No | ||
| color_mode | No | ||
| file_format | No | ||
| resolution_x | No | ||
| resolution_y | No | ||
| film_transparent | No | ||
| resolution_percentage | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation idempotentHint=true already signals that repeated calls have no additional effect. The description adds little beyond that: it does not mention persistence, side effects, or scope (e.g., active scene). However, since it is a configuration setter, the behavior is largely predictable. The description adds limited context beyond the annotation, so a neutral score is appropriate.
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 extremely concise, with two short sentences. The first sentence states the purpose, and the second lists valid values. No unnecessary words or repetition. The structure is front-loaded with the core action, making it easy to scan.
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?
With 9 parameters and no schema coverage, the description is highly incomplete. It only addresses three parameter values and omits details on critical parameters like resolution, samples, and filepath. The output schema exists but is not referenced in the description, and an agent would need to infer the meaning of many parameters from names alone. This is inadequate for a tool with such breadth.
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 only provides allowed values for three parameters (engine, file_format, color_mode), leaving six parameters (samples, filepath, resolution_x, resolution_y, film_transparent, resolution_percentage) completely unexplained. The description does not clarify units, defaults, or intended use for the remaining parameters, making it insufficient for a 9-parameter tool.
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 ('Configure') and resource ('render settings'). It also lists valid values for engine, file format, and color mode, which adds precision. This distinguishes it from sibling tools like get_render_settings (which reads settings) and render_image (which executes rendering).
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: you configure settings before rendering, but it does not explicitly state when to use this tool versus alternatives. No mention of when not to use it or reference to get_render_settings for reading. The guidance is implicit but not explicit, so it does not fully aid an agent in choosing between related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_sculpt_brushAIdempotent
Set the active sculpt brush and settings. Brushes: DRAW, CLAY, CLAY_STRIPS, INFLATE, GRAB, SMOOTH, FLATTEN, PINCH, CREASE, SCRAPE.
| Name | Required | Description | Default |
|---|---|---|---|
| brush | Yes | ||
| radius | No | ||
| strength | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The idempotentHint annotation already tells the agent that repeated calls are safe, and the description adds the active-brush state change plus the valid brush list. However, it does not clarify the semantics of nullable radius/strength parameters, such as whether null means 'leave unchanged' or 'reset to default.'
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 compact, with the main action front-loaded and the allowed brushes listed directly. Every sentence earns its place, and there is no filler or repetition of schema details.
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?
The tool is simple and has an output schema plus an idempotentHint annotation, so extensive behavior explanation is not required. Still, the description omits the null/omission semantics for the optional settings and any sculpt-mode prerequisite, which are the most relevant details for calling the tool correctly.
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 fully compensates for brush by listing legal values, but radius and strength are only covered by the generic phrase 'and settings.' No units, ranges, allowed values, or null behavior are provided for these two parameters, leaving their meaning mostly to name inference.
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 opens with a specific action and object: 'Set the active sculpt brush and settings,' clearly identifying the tool's function. It also enumerates all accepted brush values, so the agent knows exactly what kinds of input are valid. This clearly distinguishes it from sibling sculpting tools like enter_sculpt_mode or remesh.
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 use case is implied: call this when the active sculpt brush or its settings need to change. However, it does not state prerequisites such as whether sculpt mode must already be active, and it does not mention any alternative tool or condition for choosing a sibling. Guidance is therefore present but only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_smooth_shadingBIdempotent
Set shading mode. smooth=True for smooth shading, False for flat. auto_smooth uses angle threshold (radians).
| Name | Required | Description | Default |
|---|---|---|---|
| angle | No | ||
| object | Yes | ||
| smooth | No | ||
| auto_smooth | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The idempotentHint annotation already communicates that repeated calls are safe, but the description adds no further behavioral context such as side effects, permissions, or object-type constraints. Stating that auto_smooth uses an angle threshold is useful parameter behavior, but it is more parameter semantics than broad behavioral transparency.
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?
Three short sentences, each adding distinct value: the action, the meaning of smooth, and the auto_smooth angle behavior. It is front-loaded and contains no filler.
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 simple property-setter tool this is mostly adequate, especially since an output schema exists. However, it leaves out the relationship between auto_smooth and smooth, whether the target must be a mesh, and how this differs from viewport-level shading. These gaps matter for an agent operating on a 3D scene with many shading-related tools.
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 carries the full explanatory burden for parameters. It explains smooth=True/False, auto_smooth behavior, and clarifies that angle is in radians, which the schema does not. It does not describe the object parameter or the exact interaction between smooth and auto_smooth, preventing a 5.
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 identifies the action as setting shading mode and distinguishes smooth, flat, and auto-smooth variants. It does not explicitly differentiate from the sibling set_viewport_shading, but 'smooth shading' and the required object parameter make the mesh-oriented intent reasonably clear.
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 given about when to use this tool versus alternatives such as set_viewport_shading. The description explains how to set the mode but not when the tool is appropriate, what prerequisites exist, or what should be used instead in related scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_transformCIdempotent
Set an object's location, rotation (radians), and/or scale.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| scale | No | ||
| location | No | ||
| rotation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only says 'Set' and mentions the fields, adding little beyond the schema. The annotation provides idempotentHint, but the description does not disclose side effects, behavior for unset fields, coordinate space, or error handling. With only the idempotent hint annotation, the description misses the chance to clarify that it modifies the object in place and leaves unspecified fields unchanged.
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, concise sentence that front-loads the action and key components. It is efficient with no fluff, though it could be slightly richer without losing 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 lack of parameter descriptions, the existence of many sibling tools, and the need to correctly specify transforms, this description is incomplete. It does not cover array formats, coordinate systems, or when to choose this over 'apply_transform' or 'set_pose_bone_transform'. An operating agent would likely need to inspect schema further or guess at conventions.
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 coverage is 0% for parameter descriptions, so the description must compensate. It adds that rotation is in radians, but it does not explain the expected array structure (e.g., [x, y, z] for location/scale, or whether rotation is Euler angles or axis-angle). The semantics of name, scale, and location are barely elaborated, leaving significant ambiguity for the agent.
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') and the resource ('an object's location, rotation, and/or scale'), with a specific unit for rotation (radians). It is unambiguous about what the tool does, though it does not explicitly differentiate it from sibling tools like 'apply_transform' or 'set_pose_bone_transform'.
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, such as 'apply_transform' for applying a transform or 'set_pose_bone_transform' for armatures. There is no mention of prerequisites, object types, or scenarios that favor this tool, leaving the agent to infer usage context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_basic_compositeB
Template: Create Render Layers -> Composite + Viewer setup.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 says it creates nodes, but does not disclose whether it modifies an existing compositor tree, whether it clears prior nodes, whether it enables the compositor, or whether the setup is idempotent.
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 very short with no filler, and the arrow notation compactly conveys the node relationship. It could be slightly clearer grammatically, but it is appropriately concise for a zero-parameter convenience 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?
For a zero-parameter operation, the high-level outcome is stated and an output schema exists, which reduces the need to explain return values. However, the description omits important behavioral context such as whether existing node trees are replaced and whether compositor enabling is handled, so an agent may be surprised by side effects.
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 zero parameters and the schema covers 100% of them, so there is nothing for the description to add. The baseline of 4 applies because no parameter documentation is needed.
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 a specific setup action: creating Render Layers, Composite, and Viewer nodes in a basic compositing template. It is clear enough to distinguish this macro-style tool from individual compositor node tools like create_comp_node, though it does not explicitly name a sibling or contrast its scope.
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 given about when to use this tool versus manually building a node tree with create_comp_node and connect_comp_nodes, or versus using enable_compositor first. The description implies a convenience template but leaves usage conditions entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_camera_dofB
Configure depth of field on a camera. Focus on an object or at a specific distance.
| Name | Required | Description | Default |
|---|---|---|---|
| fstop | No | ||
| camera | Yes | ||
| focus_object | No | ||
| focus_distance | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 states the basic function but does not reveal side effects such as overwriting existing DOF settings, whether the camera must be active, or any impact on rendering. This is minimal transparency 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 two short sentences with no filler. It front-loads the core purpose and immediately lists the two focus options. Every word earns its place.
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 tool with four parameters, no schema descriptions, and no annotations, this description is too thin. It omits the fstop parameter entirely and leaves unclear the interaction between focus_object and focus_distance. An agent would not know how to correctly set both or understand default behavior, making it incomplete.
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 some meaning by naming the two focus modes ('Focus on an object or at a specific distance'), which maps to focus_object and focus_distance. However, it does not explain the fstop parameter, the required camera parameter, or the relationship between the two focus parameters (e.g., mutual exclusivity or precedence). With 0% schema coverage, this only partially compensates.
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 a specific action ('Configure depth of field') on a specific resource ('a camera'), and mentions two focus modes. It is distinct enough from generic camera tools like set_camera_property, though it does not explicitly call out sibling 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?
Usage is implied: this tool should be used when depth of field needs to be configured. However, there is no explicit guidance on when to use this tool versus related tools like set_camera_property or camera_look_at, and no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_cloth_simC
Template: Set up cloth simulation with optional pinning vertex group.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| pin_group | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 only states that it 'set up' cloth simulation, which implies mutation, but does not disclose whether existing physics settings are replaced, whether a mesh is required, how baking is affected, or what side effects occur. The 'Template:' prefix adds no behavioral value.
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 short sentence and is mostly front-loaded, but the leading 'Template:' is extraneous filler that does not help an agent. The core action is stated efficiently, but the unnecessary prefix prevents a higher score.
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?
With no annotations, a minimal schema, and a one-line description, the tool is under-specified for a physics setup operation. It omits prerequisites, effects on existing physics, return behavior, and how it relates to baking or other physics setup tools. An agent would need to guess or inspect external docs to use it correctly.
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 partially does by identifying 'object' as the target of the simulation and 'pin_group' as an optional pinning vertex group. However, it does not clarify format expectations, whether the vertex group must already exist, or how pinning affects the simulation.
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 and resource: 'Set up cloth simulation with optional pinning vertex group.' This distinguishes it from physics siblings like setup_softbody and setup_rigid_body_world by the cloth-specific resource, though it does not explicitly name those 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?
No guidance is provided on when to use this tool versus setup_softbody, setup_rigid_body_world, or add_physics. It does not mention prerequisites such as requiring a mesh or existing vertex groups, nor does it explain when the pin_group should be supplied. Usage is only implied by the tool name and the phrase 'set up cloth simulation.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_fluid_domainB
Template: Set up fluid simulation with domain and optional emitter.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | ||
| emitter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 but does not disclose side effects, whether it creates or replaces a domain, whether an existing object is required, or what 'Template:' means. This is a significant gap for a mutation/setup 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 a single sentence and front-loads the core action. The 'Template:' prefix is unnecessary and slightly confusing, but the overall length is appropriate.
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 setup tool with no annotations and no parameter documentation, the description leaves key questions unanswered: what domain should reference, what emitter does, and what the setup entails. The output schema helps with return values but not with invocation semantics.
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%, and the description only restates the parameter names ('domain', 'optional emitter') without explaining accepted values, formats, or behavior. The optionality of emitter is already encoded in the schema's default null, so no new meaning is added.
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 uses a specific verb ('Set up') and resource ('fluid simulation'), and names the two inputs (domain, optional emitter). This clearly distinguishes it from sibling physics tools like setup_cloth_sim and setup_softbody, even without explicitly naming 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 the tool is for creating fluid simulations, but it gives no explicit when-to-use guidance, prerequisites, or exclusions relative to add_physics or other setup_* siblings. An agent must infer usage from the name and resource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_hairC
Template: Set up hair particles with children and physics.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| length | No | ||
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 disclosing behavior. It merely states the action without detailing side effects, requirements (e.g., object must be a mesh), whether it creates a new particle system or modifies an existing one, or what 'children' and 'physics' entail. This is severely under-specified for a tool that likely has significant side effects.
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 sentence, which is concise, but it lacks structure and depth. While it doesn't waste words, it omits essential information, making it more under-specified than concise. The 'Template:' prefix adds minimal value.
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 setting up hair particles with children and physics, the description is wholly inadequate. With no annotations, no parameter descriptions, and no details about return values or required preconditions, an agent cannot reliably invoke this tool correctly. Even with an output schema, the setup semantics remain opaque.
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%, and the description adds no meaning for count, length, or object. The agent has only the parameter names and defaults to infer their purpose, which is insufficient for a setup tool where these values likely affect particle distribution and 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 identifies the action (set up), the resource (hair particles), and specific features (children and physics). This distinguishes it from generic particle tools like add_particle_system, but it doesn't explicitly contrast with siblings or explain the 'template' aspect.
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 on when to use this tool versus alternatives such as add_particle_system, set_particle_property, or bake_particles. An agent must infer its purpose from the name and brief description, with no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_rigid_body_worldC
Configure the rigid body world and collection.
| Name | Required | Description | Default |
|---|---|---|---|
| collection | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It says 'Configure', implying a mutation that likely affects the scene's physics settings, but it omits key behaviors such as whether it creates a new world if none exists, whether it overrides existing settings, or what the return value indicates. It's adequate but thin.
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 sentence, highly concise, and front-loads the main purpose. However, given the lack of depth, the conciseness is more under-specification than efficient delivery of necessary information, but it still earns a 4 for brevity.
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 (1 optional param), the description is almost sufficient. The output schema exists, so return requirements are covered. What's missing is a note on how this fits into the physics workflow (e.g., use before adding rigid body objects) and when to call it, but for a one-line tool this is acceptable.
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 names the 'collection' parameter's role implicitly by mentioning 'collection', but it doesn't explain what the collection is used for (e.g., which objects belong to the rigid body world). With 0% schema coverage, the description should compensate, but it only provides minimal context, so a baseline 3 is appropriate.
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 a clear verb ('Configure') and resource ('rigid body world and collection'), so the primary purpose is understandable. However, it lacks specificity about what 'configure' entails (e.g., gravity, damping, collection membership), making it only moderately distinguishing from other setup tools like setup_cloth_sim or create_light_rig.
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 such as add_physics or setup_softbody. It does not mention prerequisites (e.g., must have a rigid body world already?), nor does it state exclusions, so an agent must infer usage context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_softbodyC
Template: Set up softbody simulation.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 disclosing behavior. 'Set up softbody simulation' is essentially a restatement of the tool name and reveals nothing about what actually happens: whether it modifies the provided object, creates a physics modifier, affects existing settings, or has side effects. This is too vague to inform an agent about 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 short but under-specified. The 'Template:' prefix is unnecessary noise, and the remaining sentence merely rephrases the tool name without adding useful operational detail. This is under-specification rather than effective 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?
With a single parameter and an output schema, the tool is simple, but the description still leaves critical gaps: the meaning of the object parameter is undocumented, no behavioral details are provided, and no guidance distinguishes this from similar physics setup tools. The description is not complete enough for reliable tool selection or invocation.
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 has a single 'object' parameter with 0% description coverage, and the description does not mention it at all. The agent is not told what 'object' refers to or how it is used in the softbody setup process. The description provides no compensation for the schema's lack of parameter documentation.
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 uses a specific verb and resource: 'Set up softbody simulation.' This clearly identifies the tool's purpose and distinguishes it from sibling tools like setup_cloth_sim or setup_rigid_body_world by naming 'softbody.' However, the odd 'Template:' prefix introduces slight ambiguity and no further specifics are provided.
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?
There is no guidance about when to use this tool versus alternatives. The description does not mention prerequisites, when not to use it, or how it differs from related setup tools such as setup_cloth_sim or setup_rigid_body_world. Usage context is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_verticesA
Set vertex positions. Each entry: {index: int, co: [x, y, z]}.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| vertices | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only states the operation and entry format. It does not say whether existing positions are replaced, whether invalid indices are errors, or how partial updates behave.
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 two short, front-loaded clauses with no filler. Every word contributes either the action or the data shape.
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 simple mutation tool, the description covers the main payload shape and an output schema exists for return values. Still, it omits the meaning of the required object parameter and any behavior around partial or invalid vertex updates.
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%, and the description compensates for the vertices parameter by specifying each entry's format ({index, co}). However, the required 'object' parameter remains completely undocumented, leaving a meaningful 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 names a specific operation ('Set vertex positions') on a clearly understood resource, which distinguishes it from sibling tools like get_vertices and set_curve_points. The verb+resource combination is unambiguous.
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 usage is implied: use this tool when you need to set vertex positions. However, there is no explicit guidance about alternatives, prerequisites, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_viewport_cameraAIdempotent
Set the active camera for the viewport. Pass camera object name, or None for default.
| Name | Required | Description | Default |
|---|---|---|---|
| camera | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The idempotentHint annotation already indicates the operation is safe to repeat, and the description adds the useful detail that passing None restores the default camera. It does not disclose error behavior for invalid camera names or what the output contains, but the output schema likely covers return values.
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?
Two short sentences with no filler. The primary purpose is front-loaded, and the parameter instruction is clear and complete.
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 single-parameter, idempotent setter with an output schema, the description covers the essential behavioral contract. It could be more complete by addressing the overlap with set_active_camera, but nothing critical is missing for basic invocation.
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 carry the parameter meaning. It does so effectively by explaining that the 'camera' parameter is a camera object name and that None means the default camera, which is more informative than the raw schema.
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 the active camera') and the target resource ('the viewport'), and it specifies how to invoke it with a camera object name or None. However, it does not distinguish itself from the sibling tool set_active_camera, which appears to serve a very similar purpose.
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?
There is no guidance about when to use this tool versus set_active_camera or other camera-related tools like camera_look_at. The only usage hint is the parameter instruction, which is not enough to route an agent to the correct alternative in ambiguous situations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_viewport_shadingBIdempotent
Set viewport shading mode: WIREFRAME, SOLID, MATERIAL, RENDERED.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation declares idempotentHint true, so the agent knows calling it multiple times has the same effect. The description adds the list of valid modes, which is helpful, but doesn't explain side effects (e.g., whether it changes render settings or affects other tools). It doesn't contradict the annotation, and since idempotency is already provided, the description adds some value with the mode list but not much else.
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 one short sentence with the action and the allowed values. It's front-loaded with the verb 'Set' and the resource, and the list of modes is directly relevant. No wasted words.
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 simple one-parameter tool with an output schema (which likely confirms the change), the description covers the essential valid values. It doesn't mention prerequisites like needing a 3D viewport, but given the clear naming and sibling context (e.g., get_viewport_info), it's nearly complete. The lack of usage guidance is a minor gap, but the tool is simple enough that the description is sufficient.
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 has one parameter 'mode' with no description or enum. The description enumerates the possible values (WIREFRAME, SOLID, MATERIAL, RENDERED), which directly adds meaning beyond the schema. Since schema coverage is 0%, the description is essential and this is a significant addition. However, it doesn't clarify the exact semantics of each mode (e.g., what RENDERED implies), so it's adequate but not fully detailed.
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 tool's purpose clearly: 'Set viewport shading mode' with a list of valid modes. It identifies the specific action (set) and resource (viewport shading), which is understandable on its own. It doesn't explicitly distinguish from siblings like get_viewport_info or capture_viewport, but the naming and description are clear enough that an agent would recognize this is for changing the shading mode.
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, such as set_viewport_camera or frame_all. It doesn't mention any context like needing an active viewport or whether it affects all viewports. An agent might need to infer when this is relevant, but it's not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_world_propertyBIdempotent
Set world/environment property: color, strength.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| property | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint: true, which covers idempotency. The description adds no behavioral details beyond that—no side effects, permissions, or return behavior. Since the annotation already covers a key trait, the neutral description earns a baseline 3; it neither contradicts nor enhances.
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?
A single, short sentence with no wasted words. The core action is front-loaded, and examples are given immediately. This is an appropriately concise description.
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?
The tool is simple, but with a free-form string property and a polymorphic value, an agent needs more context about allowed properties and value structures. There's no link to get_world_info or other discovery tools. Despite having an output schema (per context), the description leaves significant gaps for correct invocation.
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 coverage is 0%, so the description must compensate. It gives two example property names (color, strength) and implies value types (color likely array, strength number), which adds some meaning. However, it doesn't enumerate valid properties or value formats, leaving the agent to guess. 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 states a clear action (set) and resource (world/environment property), with explicit examples (color, strength). It distinguishes itself from siblings like set_render_settings by focusing on world properties, though it doesn't name alternatives. It is specific enough for an agent to understand the core purpose.
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 on when to use this tool versus alternatives such as create_hdri_world, set_render_settings, or get_world_info. It doesn't mention exclusions or context. An agent cannot infer from the description which tool to pick for a given world-setting task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
smart_uv_projectC
Auto UV unwrap using smart project. Angle limit in radians (default ~66 degrees).
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| angle_limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior, but it only mentions the angle limit and its default. It does not state that this operation mutates the object's UV layout, whether existing UV maps are replaced, whether a mesh is required, or any effects on the object. This is a significant gap for a tool that performs an operation.
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 no filler. Both sentences carry useful information: the operation/method and the key parameter detail. It is appropriately concise, though slightly terse given the missing behavioral context.
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 mutating tool with no annotations, a required object parameter, and an output schema, the description omits essential operational context: what object refers to, whether the object must have a mesh, and what happens to existing UV maps. The output schema may cover return values, but the description still lacks the preconditions and side effects needed for correct 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 does add useful meaning for angle_limit by specifying radians and the approximate default of 66 degrees. However, the required object parameter is not explained at all beyond its schema type, leaving a key part of the invocation underspecified.
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 operation: auto UV unwrapping using the smart project method. It identifies the resource (UVs) and the technique, making the core purpose unambiguous. It does not explicitly differentiate from sibling UV-related tools like create_uv_map, but the name and phrasing are specific enough.
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 given on when to use this tool versus alternatives such as create_uv_map or pack_images. There is no mention of prerequisites, selection requirements, or situations where a different unwrap method would be appropriate. The usage context is entirely left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_modifier_visibilityBIdempotent
Toggle modifier visibility in viewport and/or render.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| render | No | ||
| modifier | Yes | ||
| viewport | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The idempotentHint annotation is present, and the description doesn't contradict it. The description adds the 'viewport and/or render' scoping, which is useful. However, it doesn't disclose what 'toggle' means when both viewport and render are null, or whether the operation is a true toggle (flip current state) or a set-to-value operation. The annotation covers idempotency, but the description could add more 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 a single, concise sentence that front-loads the action and scope. It is appropriately sized for a simple toggle operation, with no wasted words. It could arguably include more detail, but for its length it is well-structured.
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 has 4 parameters, 0% schema coverage, and an output schema, the description is too thin. It doesn't explain the meaning of null for viewport/render, the expected values for object/modifier, or what the output schema contains. An agent would need to infer too much about how to invoke this correctly, especially the toggle semantics when one scope is null.
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 mentions 'viewport and/or render' which maps to the viewport and render parameters, but it doesn't explain the semantics of the boolean values (true/false/null) or how the 'object' and 'modifier' parameters are used. The description adds minimal meaning beyond the schema's property names.
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 'Toggle modifier visibility in viewport and/or render' clearly states the action (toggle), the resource (modifier visibility), and the two scopes (viewport and/or render). It distinguishes itself from sibling tools like set_modifier_property or list_modifiers, though it doesn't explicitly name them. The verb 'toggle' is specific enough to convey the behavior.
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: call this when you want to show/hide a modifier in viewport or render. However, it doesn't explicitly state when to use this vs alternatives like set_modifier_property, nor does it explain the semantics of the boolean/null parameters (e.g., what null means). The context is clear but exclusions and alternatives are not addressed.
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.
173 tool updates
v0.1.0+hardened.2- First observed
add_bone - First observed
add_bone_constraint - First observed
add_constraint - First observed
add_gp_layer - First observed
add_gp_modifier - First observed
add_modifier - First observed
add_node_group_instance - First observed
add_particle_system - First observed
add_physics - First observed
apply_modifier - First observed
apply_sculpt_mask - First observed
apply_transform - First observed
assign_material - First observed
assign_vertex_weights - First observed
bake_particles - First observed
bake_physics - First observed
batch_delete - First observed
batch_set_property - First observed
camera_look_at - First observed
capture_viewport - First observed
clear_animation - First observed
clear_parent - First observed
connect_comp_nodes - First observed
connect_geonodes - First observed
connect_shader_nodes - First observed
convert_to_mesh - First observed
copy_modifiers - First observed
create_armature - First observed
create_camera - First observed
create_collection - First observed
create_comp_node - First observed
create_curve - First observed
create_geonode - First observed
create_geonodes_modifier - First observed
create_gp_stroke - First observed
create_grease_pencil - First observed
create_hdri_world - First observed
create_light - First observed
create_light_rig - First observed
create_material - First observed
create_node_group - First observed
create_object - First observed
create_shader_node - First observed
create_uv_map - First observed
create_vertex_group - First observed
delete_collection - First observed
delete_comp_node - First observed
delete_geonode - First observed
delete_keyframe - First observed
delete_material - First observed
delete_object - First observed
delete_shader_node - First observed
disconnect_geonode - First observed
disconnect_shader_node - First observed
duplicate_material - First observed
duplicate_object - First observed
enable_compositor - First observed
enter_sculpt_mode - First observed
export_file - First observed
export_selection - First observed
find_error_objects - First observed
find_objects - First observed
frame_all - First observed
frame_selected - First observed
free_physics_bake - First observed
get_action_info - First observed
get_armature_info - First observed
get_bone_info - First observed
get_compositor_tree - First observed
get_curve_info - First observed
get_geonode_input - First observed
get_geonodes_tree - First observed
get_gp_info - First observed
get_keyframes - First observed
get_material_info - First observed
get_mesh_info - First observed
get_node_input - First observed
get_node_tree - First observed
get_object_info - First observed
get_particle_info - First observed
get_physics_info - First observed
get_render_settings - First observed
get_scene_info - First observed
get_uv_maps - First observed
get_vertex_groups - First observed
get_vertices - First observed
get_viewport_info - First observed
get_world_info - First observed
import_file - First observed
join_meshes - First observed
layout_node_tree - First observed
list_actions - First observed
list_bone_constraints - First observed
list_cameras - First observed
list_collections - First observed
list_comp_node_types - First observed
list_constraints - First observed
list_geonode_types - First observed
list_images - First observed
list_lights - First observed
list_materials - First observed
list_modifiers - First observed
list_objects - First observed
list_render_engines - First observed
list_shader_node_types - First observed
list_supported_formats - First observed
load_file - First observed
load_image - First observed
move_modifier - First observed
move_to_collection - First observed
pack_images - First observed
parent_mesh_to_armature - First observed
ping - First observed
playback_control - First observed
remesh - First observed
remove_constraint - First observed
remove_material - First observed
remove_modifier - First observed
remove_particle_system - First observed
remove_physics - First observed
rename_object - First observed
render_animation - First observed
render_image - First observed
render_viewport - First observed
reorder_constraint - First observed
save_file - First observed
select_objects - First observed
separate_mesh - First observed
set_active_camera - First observed
set_bone_property - First observed
set_camera_property - First observed
set_collection_visibility - First observed
set_comp_node_input - First observed
set_constraint_influence - First observed
set_constraint_property - First observed
set_curve_points - First observed
set_curve_property - First observed
set_frame - First observed
set_frame_range - First observed
set_geonode_input - First observed
set_geonodes_input - First observed
set_gp_layer_property - First observed
set_interpolation - First observed
set_keyframe - First observed
set_keyframes - First observed
set_light_property - First observed
set_material_property - First observed
set_modifier_property - First observed
set_node_input - First observed
set_node_position - First observed
set_origin - First observed
set_parent - First observed
set_particle_property - First observed
set_physics_property - First observed
set_playback_range - First observed
set_pose_bone_transform - First observed
set_render_settings - First observed
set_sculpt_brush - First observed
set_smooth_shading - First observed
set_transform - First observed
set_vertices - First observed
set_viewport_camera - First observed
set_viewport_shading - First observed
set_world_property - First observed
setup_basic_composite - First observed
setup_camera_dof - First observed
setup_cloth_sim - First observed
setup_fluid_domain - First observed
setup_hair - First observed
setup_rigid_body_world - First observed
setup_softbody - First observed
smart_uv_project - First observed
toggle_modifier_visibility
TDQS
Scored across 173 tools
Most tools have distinct purposes with clear descriptions, though a few pairs like set_geonode_input vs set_geonodes_input could cause confusion without careful reading. The majority are well-separated by resource type and action.
The dominant pattern is verb_noun (e.g., list_objects, create_material), but a few tools like camera_look_at and playback_control deviate to noun_verb. The naming is generally predictable and readable, with only minor inconsistencies.
With 173 tools, this far exceeds the threshold for an extreme mismatch (50+). While Blender is complex, this server attempts to cover every conceivable feature, making the surface unwieldy and difficult for agents to navigate effectively.
The tool surface is remarkably broad, covering objects, materials, modifiers, animation, physics, node systems (shader, geometry, compositor), sculpting, and more. Minor gaps exist (e.g., manual UV editing, advanced painting), but core workflows are well-supported.
Maintenance
Related MCP Connectors
Control Unreal Engine to browse assets, import content, and manage levels and sequences. Automate…
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
Remote MCP server for AI.TV creators — delegate account operations to your AI agent over MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceConnects MCP-compatible clients to a live Blender scene for AI-assisted 3D workflows, enabling inspection and controlled operations on objects, materials, cameras, lights, render settings, animation, UVs, Geometry Nodes, imports, exports, and Python execution.1MIT
- FlicenseAqualityCmaintenanceA headless-first Model Context Protocol server for safe, deterministic Blender automation, exposing typed tools to inspect scenes and render previews without arbitrary command execution.3-
- AlicenseAqualityCmaintenanceEnables safe, repeatable preparation of game characters in Blender through high-level MCP tools for validation, import, normalization, action renaming, and GLB export, with dry-run by default and loopback-only security.9MIT
- AlicenseAqualityCmaintenanceEnables safe, structured control of Blender on Windows via a standalone STDIO MCP server, providing seven tools to inspect scenes, list and edit materials, transform objects, add modifiers, set smooth shading, and export assets without arbitrary code execution.7Apache 2.0