Skip to main content
Glama

toolbag-mcp

An MCP server for Marmoset Toolbag 5. It lets an MCP client such as Claude Code, Claude Desktop or Cursor drive a running Toolbag through typed tools: inspect and change the scene, materials and textures, set up and run bake projects, place lights and cameras, render images. Free Python runs only when you allow it in Toolbag.

Early stage: built and tested against Toolbag 5.0.2 on Windows. Not affiliated with Marmoset LLC; "Marmoset" and "Toolbag" are their trademarks.

How it works

Two parts, one package:

  • A Toolbag plugin (plugin/) that runs inside Toolbag. It listens on 127.0.0.1 (port 18770 by default) and executes named actions on Toolbag's main thread.

  • The MCP server (toolbag_mcp) that runs outside Toolbag, talks to the plugin over HTTP and exposes the actions as MCP tools over stdio.

Toolbag runs plugin code at full speed only while its window has focus. So the server brings Toolbag forward while a call waits for it (Windows), but stays out of your way: it switches only after 1.5 s without keyboard or mouse input, hands the focus back as soon as a longer action is running, and never takes it from a window you picked during the call. While you type, the call waits; a visible Toolbag answers in the background too, only slower (seconds per call).

Scripts that use the client directly can keep Toolbag in front across many calls instead of flashing it for each one:

from toolbag_mcp.client import ToolbagClient

client = ToolbagClient()
with client.holding_focus():
    for name in ("a", "b", "c"):
        client.call("object.get", {"ref": name})

Related MCP server: omni-kit-mcp

Requirements

  • Marmoset Toolbag 5.0.x on Windows (tested with 5.0.2.2). Toolbag 4 and macOS are untested.

  • Python 3.10 or newer and uv for the server. The plugin needs nothing beyond Toolbag's own Python.

Install

The package is not on PyPI; this Git repository is the release channel.

  1. Install the toolbag-mcp command with uv:

    uv tool install git+https://github.com/LandgrafRalle/toolbag-mcp

    Pin a release by appending @v0.1.0 to the URL; uv tool upgrade toolbag-mcp updates later. Without installing, uvx --from git+https://github.com/LandgrafRalle/toolbag-mcp toolbag-mcp ... runs any command below; from a checkout, uv run toolbag-mcp ... does.

  2. Install the plugin into Toolbag's user plugin folder (%LOCALAPPDATA%\Marmoset Toolbag 5\plugins\Toolbag MCP), as a junction to the package or with --copy as a copy of the files:

    toolbag-mcp install

    Run this from a normal shell: packaged (Microsoft Store) apps see %LOCALAPPDATA% redirected, and a junction made from inside one of them is invisible to Toolbag.

  3. In Toolbag: Edit, Plugins, Refresh, then Plugins, Toolbag MCP. A small window shows the port, the call counter and the switch "Allow Python execution". Toolbag can also start the plugin directly: toolbag.exe "<path to>\plugin\__main__.py".

  4. Register the server with your MCP client. toolbag-mcp register prints the lines for your installation; for example for Claude Code:

    claude mcp add --scope user --transport stdio toolbag -- toolbag-mcp

    Claude Desktop and Cursor take the same command in their JSON config: {"mcpServers": {"toolbag": {"command": "toolbag-mcp", "args": []}}}. If a client does not find the command, give it the full path (uv tool dir --bin prints the folder) or the uvx --from ... form.

  5. Check the setup: toolbag-mcp doctor. It verifies the installed plugin, finds the Toolbag window, reads the plugin's state file and does one round trip.

Another port: install --port 18771 writes it to ~/.toolbag-mcp/config.json; the plugin window has a port field too. The plugin writes its port and per-start token to ~/.toolbag-mcp/plugin.json, which the server reads for every call.

Tools

Tool names as the client sees them, by family:

Family

Tools

Diagnostics

status, capabilities, preferences_get, preferences_set

Scene and objects

scene_info, scene_new, scene_load, scene_save, scene_list_objects, scene_tree, scene_import_model, scene_export, scene_bounds, object_get, object_find, object_rename, object_duplicate, object_delete, object_group, object_set_parent, object_set_visible, object_set_transform, object_attributes, object_set_attributes, object_create, selection_get, selection_set, selection_clear, camera_frame, mesh_set_backfaces

Materials

material_list, material_get, material_create, material_duplicate, material_delete, material_assign, material_set_group, material_set_subroutine, material_set_field, material_set_texture, material_set_cutout, material_import, material_export

Baker

baker_list, baker_get, baker_create, baker_add_group, baker_quick_load, baker_set_settings, baker_set_maps, baker_set_cage, baker_set_visible, baker_isolate, baker_bake, baker_bake_psd, baker_bake_to, baker_map_path, baker_load_preset, baker_save_preset, baker_set_texture_set, baker_set_udim_tile, baker_replace_low, baker_skew_preview, baker_skew_clear_preview, baker_skew_apply

Lights, sky, fog, cameras

light_list, light_create, sky_get, sky_set, sky_load, sky_save, sky_set_background_image, sky_compute_procedural, fog_get, fog_set, camera_list, camera_get, camera_create, camera_set, camera_set_active, camera_post_effect_file

Render and timeline

render_get, render_set, render_set_cameras, render_set_passes, render_image, render_images, render_videos, render_export_viewer, timeline_get, timeline_set

Python and lifecycle

execute_python (only while allowed in the plugin window), toolbag_quit

Resources: toolbag://scene, toolbag://materials, toolbag://baker, toolbag://cameras, toolbag://render.

Objects are referenced by uid or exact name; scene_tree, scene_list_objects and object_find give them. object_attributes shows every setting of any object with its value, object_set_attributes changes them, nested settings included ({"lens": {"dofStop": 2.8}} on a camera). In bake scenes, toggle visibility through baker_set_visible and baker_isolate, never on single meshes: that corrupts bakes.

Edge protect sets Toolbag's skew masks without painting them. The rule: full skew correction everywhere, averaged cage directions only in bands along UV seams and open borders, hard edges and soft edges that bend more than a threshold angle; each band has its own width in bake pixels, 0 switches it off. baker_skew_preview shows the masks as base colour on the low materials (black = averaged), baker_skew_apply writes them. Toolbag's Python API cannot set skew masks, so the server saves the scene as a new <scene>_skew.tbscene, writes the masks into that file and loads it; the original file stays untouched.

From the shell: toolbag-mcp actions lists every action with its parameters, toolbag-mcp call scene.info runs one.

Safety

  • The plugin listens on the loopback address only. Every request needs a marker header, the token generated at this plugin start and a Host of 127.0.0.1 or localhost. CORS preflights are never answered, so a web page cannot reach it.

  • execute_python runs only while "Allow Python execution" is ticked in the plugin window. The switch is off at every start and is not persisted.

  • Everything else is a fixed, validated action. Actions write files only where you tell them to. scene_new, scene_load and toolbag_quit drop unsaved changes without a prompt; clients see them flagged as destructive.

  • The server talks to nothing but the plugin's loopback port.

Troubleshooting

  • toolbag-mcp doctor first.

  • No answer: Toolbag must not sit behind a modal dialog or be minimized. While you keep typing, calls wait for a pause (see above); TOOLBAG_MCP_NO_FOCUS=1 turns the focus handling off entirely, calls then rely on Toolbag answering in the background.

  • "Nothing accepts connections" while Toolbag runs: it is busy (loading or saving a large scene stops the plugin for that time). "No longer running": Toolbag closed or crashed; Windows records crashes in the event log (Application, source "Application Error").

  • Save before scene_new or scene_load on large scenes: Toolbag 5.0.2 has crashed in newScene there (see docs/pitfalls.md).

  • A second Toolbag instance cannot bind the port; its plugin window says so.

  • Never run Toolbag MCP together with another plugin that sets onPeriodicUpdate (doctor lists them): Toolbag then runs neither.

  • Verified traps of Toolbag's Python API, with the differences between 5.0.2 and the docs: docs/pitfalls.md.

Development

uv sync
uv run pytest           # tests against a fake mset, no Toolbag needed
uv run ruff check .
uv build                # wheel with the plugin folder inside

Test assets: blender --background --factory-startup --python tests/make_test_assets.py -- <folder>. CI runs lint, tests and the build on Windows and Ubuntu.

License

MIT, copyright (c) 2026 LandgrafRalle.

Available Tools

93 tools
baker_add_groupC

Add an empty bake group (with Low and High nodes) to a bake project.

NameRequiredDescriptionDefault
nameYes
bakerNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

The annotations already declare that this is a non-read-only, non-destructive, closed-world mutation. The description adds that the created group is empty but contains Low and High nodes, which is useful behavioral context beyond the annotations. It does not describe side effects, failure cases, or whether an existing bake project is required.

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

Conciseness5/5

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

The definition is a single well-formed sentence that front-loads the action and resource. Every phrase contributes information, with no repetition or filler.

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

Completeness2/5

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

An output schema exists, so return values need not be described, and annotations cover the basic safety profile. However, for a tool with two parameters at 0% schema coverage, the complete absence of parameter semantics leaves an agent unable to reliably populate the required name and optional baker fields.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must explain the two parameters, but it says nothing about the required 'name' or the optional 'baker' parameter. The ambiguous anyOf type for 'baker' (integer, string, or null) is left completely unexplained, and 'to a bake project' does not clarify which parameter identifies the project.

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

Purpose4/5

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

The description uses a specific verb and resource: 'Add an empty bake group.' It also clarifies that the group comes with Low and High nodes and belongs to a bake project, which distinguishes it from generic object creation. It does not explicitly differentiate itself from close siblings such as baker_create, but the purpose is clear.

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

Usage Guidelines2/5

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

There is no explicit guidance about when to use this tool versus baker_create or other baker tools. The phrase 'to a bake project' implies context, but it does not state prerequisites, alternatives, or when-not-to-use conditions.

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

baker_bakeB

Bake with the project's current settings and write the enabled maps next to outputPath ('_.'). Synchronous, can take minutes.

NameRequiredDescriptionDefault
bakerNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, and the description usefully adds the synchronous/blocking trait ('can take minutes'), which is critical operational context an agent cannot get from structured fields. It also discloses where files land. It stops short of saying whether existing files at that path are overwritten or what the output schema returns.

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

Conciseness5/5

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

Two short sentences, zero filler, with the output-path convention and the timing caveat both front-loaded. Nothing to trim.

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

Completeness3/5

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

The existence of an output schema means return values need not be described, and the timing behavior is covered. However, a 1-param tool with 0% schema coverage needs the description to carry the 'baker' argument and the outputPath/parameter mismatch, and it does not.

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

Parameters2/5

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

Schema coverage is 0% for the single 'baker' parameter, and the description never explains it, so an agent cannot tell whether it selects a baker by name/index or defaults to the active one. Worse, it references 'outputPath' as though it were a parameter, but no such parameter exists in the schema, which will mislead an agent trying to control the destination.

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

Purpose4/5

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

States a specific verb ('Bake') and resource with concrete output behavior: writes enabled maps next to outputPath using the '<stem>_<suffix>.<ext>' naming convention. This is clear on its own, but it never distinguishes itself from close siblings like baker_bake_to or baker_bake_psd.

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

Usage Guidelines2/5

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

The phrase 'with the project's current settings' implies you should configure baker_set_settings/baker_set_maps first, but that is inference rather than guidance. There is no explicit statement of when to pick this over baker_bake_to, baker_bake_psd, or baker_isolate/baker_set_visible setup steps.

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

baker_bake_psdC

Bake all enabled maps into one layered PSD at the output path.

NameRequiredDescriptionDefault
bakerNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false. The description adds that only *enabled* maps are baked and that output is a single layered file, but it does not say whether an existing file at that path is overwritten, where the output path is configured, or whether baking is long-running.

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

Conciseness4/5

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

A single front-loaded sentence with no filler. It is efficiently sized, though its brevity is partly under-specification rather than disciplined economy.

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

Completeness2/5

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

An output schema exists, so return values need no explanation, but for a file-writing bake operation the description leaves critical context unstated: how the output path is supplied, where the 'baker' argument fits, and what happens on overwrite.

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

Parameters2/5

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

Schema coverage is 0% and the sole parameter 'baker' is undocumented and unexplained. The description instead mentions 'the output path', which is not a parameter of this tool at all, creating a mismatch between described inputs and actual schema.

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

Purpose4/5

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

States a specific verb and outcome: bakes all enabled maps into a single layered PSD. It distinguishes itself implicitly from baker_bake and baker_bake_to by the layered-PSD output, but never names those siblings, leaving the agent to infer the distinction.

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

Usage Guidelines2/5

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

No guidance on when to call this versus baker_bake, baker_bake_to, or baker_bake_psd's prerequisites (baker config, enabled maps, output path source). The agent must guess its place in a large baker family.

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

baker_bake_toA

Trial bake of selected maps (default ['normals']) into a separate file, e.g. 'C:/tmp/test.png' gives 'C:/tmp/test_normals.png', at the given size and samples. The project's settings and map switches are restored afterwards; settings are temporary extras such as {"smoothCage": false}.

NameRequiredDescriptionDefault
mapsNo
pathYes
bakerNo
widthNo
heightNo
samplesNo
settingsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false with destructiveHint=false, and the description meaningfully supports that: it explains the project's settings and map switches are restored afterwards and that `settings` are temporary extras, which is exactly the non-destructive context an agent needs. It doesn't clarify what happens to the pre-existing target file on disk (overwrite?) or whether the output is registered into the project, which are the remaining behavioral gaps.

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

Conciseness5/5

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

Two dense sentences, front-loaded with the action and its output naming behavior, then the restoration guarantee, then the parameter nuance. The path example does real work rather than padding.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and the description is adequate for a 7-parameter bake tool with only one required argument. The main shortfall is the undefined `baker` selector and no statement of failure modes (e.g. invalid path, unknown map name) before a potentially slow bake runs.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the burden and largely does: it documents `path` (with a worked example), `maps` with its default ['normals'], the size and `samples` intent, and `settings` with an inline example of {'smoothCage': false}. Only `baker` (integer-or-string selector) and the width/height split are left undiscussed.

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

Purpose4/5

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

States a specific verb+resource: a 'trial bake of selected maps ... into a separate file', with a concrete path-transformation example ('C:/tmp/test.png' → 'C:/tmp/test_normals.png'). It is clear what the tool does, but it never names its nearest sibling (baker_bake) to explain why a caller would pick this over a normal bake, so sibling differentiation is left implicit.

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

Usage Guidelines3/5

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

The word 'Trial' and the restoration guarantee imply this is a safe, non-committal way to preview baking before the real baker_bake, but that comparison is never stated explicitly. There are no exclusions, prerequisites, or named alternatives, so an agent must infer usage from the word 'trial'.

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

baker_createC

Create a new bake project.

NameRequiredDescriptionDefault
nameNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare that this is a non-read-only, non-destructive, closed-world operation, so the safety profile is covered. The description adds no behavioral context beyond the bare action: it does not say whether an existing scene is required, what defaults are applied, or what gets created.

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

Conciseness4/5

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

The description is a single front-loaded sentence with no wasted words. Its brevity is efficient, though it leans toward under-specification rather than informative conciseness.

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

Completeness2/5

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

An output schema exists, so return-value details need not be described. However, for a creation tool surrounded by many baker_* siblings, the description omits prerequisites, the effect of the optional name parameter, and how the new project relates to baker_list/baker_get.

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

Parameters2/5

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

The schema has 0% description coverage for the single optional "name" parameter, whose default is null. The description does not explain what the name represents, whether it is optional, or what happens when it is omitted, so it fails to compensate for the schema gap.

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

Purpose4/5

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

The description states a specific verb and resource: "Create a new bake project." An agent can tell this creates a baker project rather than performing the many bake-related actions in the sibling list. It does not, however, distinguish itself from related lifecycle tools like baker_quick_load or scene_new.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool instead of alternatives such as baker_quick_load, baker_get, or baker_list. No prerequisites or exclusions are stated.

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

baker_getB
Read-onlyIdempotent

One bake project in full: groups with Low (cage offsets, meshes) and High nodes, settings, maps with options, texture sets, UDIM tiles and the expected output files.

NameRequiredDescriptionDefault
mapsNo
bakerNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety behavior is covered. The description adds useful content scope by listing what the full project includes, but does not disclose error behavior or how the baker parameter resolves.

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

Conciseness4/5

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

The description is a single front-loaded sentence with no filler. It is dense with returned-content terms, but every item is relevant to what 'full' means.

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

Completeness3/5

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

With read-only annotations and an output schema present, the description need not fully document return values. However, it leaves important gaps around how to identify the baker and what the maps flag controls, so it is only adequately complete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should clarify both parameters. It mentions 'maps with options' as part of the returned project, which weakly hints at the maps flag, but never explains the baker parameter or whether maps=false excludes maps from the response.

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

Purpose4/5

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

The description states a specific resource: one bake project retrieved in full, and enumerates the major contents returned (groups, settings, maps, texture sets, UDIM tiles, output files). It implicitly contrasts with baker_list by specifying 'One bake project,' but does not explicitly name sibling alternatives.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool instead of baker_list or other baker_* tools. The phrase 'One bake project in full' weakly implies detail retrieval, but no conditions, prerequisites, or alternatives are stated.

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

baker_isolateC

Show only these bake groups and hide all others.

NameRequiredDescriptionDefault
bakerNo
groupsYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations only declare readOnlyHint=false, openWorldHint=false and destructiveHint=false, so the description's 'hide all others' adds genuinely useful context: non-listed groups have their visibility changed as a side effect. It still omits whether the hiding is persistent, whether it can be undone, and how the 'baker' target interacts with the group list.

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

Conciseness4/5

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

A single front-loaded sentence with zero filler, stating the effect immediately. It is efficient, though the brevity comes at the cost of the missing detail noted elsewhere rather than through deliberate tightening.

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

Completeness2/5

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

With two undocumented parameters, no crafted output schema explanation needed but no explanation of what is returned either, and a mutation side effect on unlisted groups, the description is too thin. An agent can guess the intent but cannot confidently supply 'baker' or choose between a string and an array for 'groups'.

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

Parameters2/5

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

Schema coverage is 0%, so the description must carry the burden of explaining both parameters and does not. It never mentions 'baker' (an integer/string identifier of unclear meaning), nor clarifies that 'groups' accepts either a single string or an array of strings, which is the main ambiguity an agent would hit.

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

Purpose4/5

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

The description states a specific operation on a specific resource: show the listed bake groups and hide every other one, which is exactly what 'isolate' means. It is clear enough to distinguish from a plain visibility toggle, though it never names the adjacent tools (baker_set_visible, baker_set_settings) or explains what a 'bake group' is.

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

Usage Guidelines2/5

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

There is no guidance on when to choose isolate over baker_set_visible or baker_set_settings, and no prerequisites or caveats are given. The usage is only inferable from the effect statement, and nothing tells the agent what state it must be in beforehand.

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

baker_listB
Read-onlyIdempotent

All bake projects with their groups and output path.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds that returned items include groups and output path, but it does not disclose ordering, pagination, or other behavioral traits beyond the annotations and output schema.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted words. It is perhaps overly terse, but it efficiently conveys the resource and included fields.

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

Completeness4/5

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

Given zero parameters, an output schema, and rich annotations, the description supplies the essential context: it lists all bake projects and mentions groups and output path. It does not need to explain return values because the output schema covers them.

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

Parameters4/5

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

The tool has zero parameters, so there is nothing for the description to clarify. Per the rubric, zero parameters establishes a baseline of 4.

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

Purpose4/5

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

The description clearly identifies the resource (bake projects) and scope (all), with additional detail on what is included (groups and output path). It does not explicitly use a verb like 'list', but the meaning is unambiguous and distinguishes it from baker_get, which presumably retrieves one project.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives such as baker_get, baker_create, or the other baker_* tools. The word 'All' implies enumeration, but no conditions, exclusions, or alternatives are stated.

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

baker_load_presetC

Load a saved baker preset by name.

NameRequiredDescriptionDefault
nameYes
bakerNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already state readOnlyHint=false, destructiveHint=false and openWorldHint=false, so safety is partly covered, but the description does not say that loading a preset overwrites the target baker's current settings or what happens on an unknown name. For a state-mutating call, that behavioral context is missing.

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

Conciseness4/5

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

A single short sentence with the action and selector front-loaded. It is efficient, though its brevity comes at the cost of the missing details above rather than being maximally informative.

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

Completeness2/5

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

An output schema exists so return values need not be explained, but for a mutation tool with 0% parameter documentation and no annotation detail about side effects, the description leaves the agent guessing about the 'baker' argument and what state changes occur.

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

Parameters2/5

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

Schema description coverage is 0% and the description only clarifies that 'name' identifies the preset. The 'baker' parameter (which baker the preset is applied to) is undocumented in both schema and description, leaving a real ambiguity for an optional parameter.

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

Purpose4/5

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

Names a specific verb and resource ('Load a saved baker preset'), which is enough to distinguish it from baker_save_preset and baker_bake. It does not explicitly contrast with baker_quick_load, whose name implies a similar loading action, so sibling differentiation is only implicit.

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

Usage Guidelines2/5

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

There is no guidance on when to use this instead of baker_quick_load or baker_list/baker_get, and no prerequisites stated (e.g., whether a preset must exist or whether baker_list should be called first). 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.

baker_map_pathB
Read-onlyIdempotent

Toolbag's own output path for a map by display name ('Normals', 'Ambient Occlusion', 'Height'), optionally for a texture set name or UDIM tile ('1001').

NameRequiredDescriptionDefault
bakerNo
map_nameYes
tile_suffixNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds that the lookup is keyed on display name and can be scoped by texture set or UDIM tile, but does not say whether the returned path exists on disk, whether it requires an existing bake, or whether it is absolute.

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

Conciseness4/5

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

A single front-loaded sentence that identifies the tool's function before the optional scoping details. The parenthetical example list is dense but earns its place by illustrating valid map names.

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

Completeness3/5

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

With an output schema present, the return value needn't be described, and read-only annotations cover safety. However, for a 3-parameter tool at 0% schema coverage, the description leaves the 'baker' selector and a mismatched 'texture set' concept unresolved, so it is not fully self-sufficient.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry the params. It explains map_name well with concrete examples and gestures at the UDIM tile ('1001'), but 'texture set name' does not correspond to any parameter in the schema, and the 'baker' parameter is never mentioned at all — leaving the agent guessing which baker instance is targeted.

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

Purpose4/5

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

States a specific resource and output: the Toolbag-internal output path for a given map display name, with example values ('Normals', 'Ambient Occlusion', 'Height'). An agent can distinguish this from baker_get/baker_list, though the verb ('returns/computes') is only implied by 'output path'.

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

Usage Guidelines3/5

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

The phrase 'Toolbag's own output path' implies this should be used instead of hand-constructing a path, which is useful implied guidance. But there is no explicit when-to-use, no prerequisite (e.g. must the baker be configured or baked first), and no mention of any alternative tool.

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

baker_quick_loadA

Load a model through the Quick Loader: objects named '_low' and '_high' pair into one group per stem. A mismatch leaves a group without High and an empty bake, so check the returned groups.

NameRequiredDescriptionDefault
pathYes
bakerNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false / destructiveHint=false, and the description adds genuine non-obvious behavior: an unmatched stem produces a group missing a High entry and an empty bake. That is exactly the kind of failure mode an agent needs to know, and 'check the returned groups' tells it how to detect it. It does not mention what happens to pre-existing objects or whether the operation is reversible.

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

Conciseness5/5

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

Two tight sentences, zero filler, with the pairing rule front-loaded ahead of the failure caveat. Every clause carries information.

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

Completeness3/5

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

An output schema exists, so explaining return values is not required, and the annotations cover the safety profile. But for a two-parameter tool with 0% schema coverage, the description leaves the agent guessing what 'path' points at and what 'baker' selects — a meaningful gap before it can actually call the tool.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry the parameter burden and it does not: 'path' is never explained (model file? directory of low/high pairs?) and 'baker' (integer|string|null) is never mentioned at all. Two undocumented parameters with no compensating prose.

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

Purpose4/5

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

States a specific verb (load), resource (a model), and the mechanism (Quick Loader with <stem>_low / <stem>_high pairing into one group per stem). That is more informative than the name alone, though it does not explicitly distinguish itself from the similar scene_import_model sibling.

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

Usage Guidelines4/5

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

The naming convention acts as a clear precondition for correct use, and the description tells the agent to verify the returned groups afterward. It stops short of naming an alternative (e.g. scene_import_model) or saying when not to use Quick Loader.

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

baker_replace_lowA

Swap the geometry of a group's single low mesh for the mesh in a model file (new UVs, fixed topology) while keeping group, cage and material. Save the scene first if you rely on stored cage directions.

NameRequiredDescriptionDefault
pathYes
bakerNo
groupYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

With annotations already declaring readOnlyHint=false and destructiveHint=false, the description adds real context: the operation is a wholesale geometry swap that brings new UVs and fixed topology while preserving group, cage and material, and it warns that stored cage directions may be unreliable afterward. It stops short of describing failure modes (e.g. group with zero or multiple low meshes) or undo behavior.

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

Conciseness5/5

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

Two sentences, zero filler, with the core operation front-loaded and the caution about cage directions placed after it. Nothing repeats structured data.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, but for a mutation tool the description omits the meaning of the 'baker' parameter and the constraints implied by 'single low mesh' (what happens if the group has none or several). Adequate, not complete.

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

Parameters3/5

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

Schema description coverage is 0%, so the description carries the burden. It gives meaning to 'group' (the group whose single low mesh is replaced) and 'path' (a model file containing the replacement mesh), but the third parameter 'baker' is never mentioned anywhere, leaving it completely ambiguous.

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

Purpose4/5

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

The description states a precise verb and resource: swap the low mesh of a group with a mesh from a model file, preserving group, cage and material. That is specific enough to separate it from siblings like scene_import_model or baker_quick_load, though it does not explicitly name a competing tool.

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

Usage Guidelines3/5

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

Usage is implied by the framing (replace geometry without losing group/cage/material setup) and there is a helpful precondition ('save the scene first if you rely on stored cage directions'). However, it never states when to prefer this over alternatives such as re-importing the model or baker_quick_load, nor what preconditions the group must satisfy.

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

baker_save_presetB

Save the bake project's configuration as a named preset.

NameRequiredDescriptionDefault
nameYes
bakerNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare that this is a non-read-only, non-destructive, closed-world mutation. The description adds that it saves the bake project's configuration as a named preset, but omits important behavior such as whether an existing preset with the same name is overwritten.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. It is appropriately sized for a simple tool.

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

Completeness3/5

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

An output schema and annotations reduce what the description must cover. However, for a mutation tool with a completely undocumented 'baker' parameter and no overwrite semantics, the description leaves meaningful gaps.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needs to carry parameter meaning. It signals that 'name' is the preset name, but the second parameter 'baker' (integer/string/null) is completely unexplained, leaving ambiguity about whether it selects a baker or specifies a bake context.

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

Purpose4/5

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

It uses a specific verb-resource pair: save the bake project's configuration as a named preset. The operation is clear, though it does not explicitly distinguish itself from baker_load_preset or baker_set_settings.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus baker_load_preset, baker_set_settings, or baker_create. The name implies saving a preset, but the description provides no conditional context or exclusions.

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

baker_set_cageC

Cage offsets per bake group (all groups when omitted). estimate lets Toolbag estimate first, explicit min/max then override.

NameRequiredDescriptionDefault
bakerNo
groupsNo
estimateNo
cage_alphaNo
max_offsetNo
min_offsetNo
exclude_when_ignoring_groupsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, non-destructive, closed-world mutation. The description adds the useful behavioral rule that `estimate` lets Toolbag compute first and that explicit min/max override it, but says nothing about persistence, undo, or what happens to groups not named.

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

Conciseness4/5

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

Two short sentences, front-loaded with the resource and scope, with no filler. It is compact rather than padded, though the terse phrasing is borderline cryptic.

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

Completeness2/5

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

For a 7-parameter mutation tool with zero schema descriptions, the definition leaves most parameters and the mutation's effect underspecified. The presence of an output schema excuses it from explaining return values, but not from covering parameter meaning.

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

Parameters2/5

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

Schema coverage is 0% across 7 parameters, so the description must carry the burden. It explains only `groups` (omitted means all) and the estimate/min_offset/max_offset interplay; `baker`, `cage_alpha`, and `exclude_when_ignoring_groups` are entirely undocumented anywhere.

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

Purpose3/5

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

The description names the resource (cage offsets per bake group) and the operating scope, but the verb is implicit and the tool's relationship to sibling setters like baker_set_settings or baker_set_maps is never stated. An agent can infer it configures bake cage offsets, but not precisely what state it changes.

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

Usage Guidelines2/5

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

Only guidance given is '(all groups when omitted)', which is scope, not when-to-use. No indication of when to prefer estimate versus explicit min/max, no prerequisites, and no mention of alternatives such as baker_set_settings.

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

baker_set_mapsB

Switch maps on or off by suffix ('normals', 'ao', 'height', 'curvature', 'position', 'thickness', 'bentnormals', ...) and set map options, e.g. {"normals": {"flipY": true}, "ao": {"rayCount": 1024, "ignoreGroups": false}}. Returns the enabled maps.

NameRequiredDescriptionDefault
bakerNo
enableNo
disableNo
optionsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds that the call returns the enabled maps and that maps are addressed by suffix, but does not say what disabling does to existing per-map options, whether options for disabled maps are retained, or what happens if the target baker is omitted.

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

Conciseness4/5

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

A single sentence front-loads the action, followed by the suffix list and a compact literal example that resolves the otherwise opaque options object. Dense but every element earns its place, and the return-value note sits at the end where it belongs.

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

Completeness3/5

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

The output schema covers the return value, and the annotations cover safety, so the remaining gap is behavioral: default baker selection, list-vs-single suffix handling, and the fate of options on disabled maps are all unstated for a 4-parameter mutation tool with zero schema documentation.

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

Parameters3/5

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

Schema coverage is 0%, so the description must carry the burden, and it partially does: the 'suffix' vocabulary explains what values enable/disable accept and the JSON example documents the shape of the free-form 'options' object. However it never mentions the 'baker' selector parameter or that enable/disable are lists, leaving half the parameters undocumented anywhere.

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

Purpose4/5

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

Names a specific verb pair ('switch maps on or off') and resource ('maps'), plus a secondary capability ('set map options'), with a concrete suffix vocabulary ('normals', 'ao', 'height', etc.). It is clearly distinct from setters like baker_set_visible or baker_set_settings, though it never explicitly contrasts itself with them.

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

Usage Guidelines3/5

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

Usage is implied by the operation (call to toggle maps and configure their options) but there is no explicit when-to-use/when-not guidance and no pointer to the sibling tools that handle adjacent concerns (baker_set_settings, baker_set_texture_set, baker_map_path). An agent must infer the boundary from the name.

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

baker_set_settingsB

Set bake project settings: outputPath, outputWidth, outputHeight, outputBits (8, 16, 32), outputSamples, edgePadding ('None', 'Moderate', 'Extreme'), edgePaddingSize, outputSoften, smoothCage, ignoreBackfaces, useHiddenMeshes, ignoreTransforms, fixMirroredTangents, tileMode (0 single, 1 texture sets, 2 UDIM), geometryMode (0 high to low, 1 low to low, 2 UV match).

NameRequiredDescriptionDefault
bakerNo
settingsYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare a non-read-only, non-destructive, closed-world write operation. The description adds scope by listing the exact settings affected and their allowed enum values, but it does not explain whether settings are merged or replaced, whether omitted settings are preserved, or how the change affects subsequent bakes.

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

Conciseness4/5

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

The description is a single dense sentence that front-loads the purpose before enumerating settings. It contains little waste, though the long comma-separated list is less scannable than it could be.

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

Completeness3/5

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

Given the complex, free-form nested `settings` object and 0% schema description coverage, the enumeration of settings keys is helpful. Still, the description omits the `baker` parameter and does not clarify partial-update versus replacement semantics, leaving meaningful ambiguity for an agent invoking the tool.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It does a reasonable job enumerating many keys inside the free-form `settings` object and clarifying enum values for outputBits, edgePadding, tileMode, and geometryMode. However, it never mentions the `baker` parameter, leaving one of the two top-level parameters undocumented.

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

Purpose4/5

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

The description clearly states a specific verb and resource: 'Set bake project settings.' It also enumerates many of the configurable fields, making the tool's scope concrete. However, it does not distinguish this tool from nearby siblings such as baker_set_maps, baker_set_cage, or baker_save_preset.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives, nor does it state prerequisites or ordering relative to baking. Usage is only implied by the tool name and the list of settings.

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

baker_set_texture_setB

Enable and size one texture set by index or name (tileMode 1).

NameRequiredDescriptionDefault
bakerNo
indexYes
widthNo
heightNo
enabledNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, giving the agent a safety profile. The description adds the useful constraint that it operates on exactly one texture set, but does not disclose side effects on already-enabled sets or what the response contains.

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

Conciseness4/5

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

Single front-loaded sentence with no filler. The parenthetical adds ambiguity rather than clarity, which keeps it from a 5.

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

Completeness2/5

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

A mutation tool with 5 parameters at 0% schema coverage and no output description in the text; the 'baker' target and the meaning of tileMode remain unexplained. An output schema exists, but the input-side gaps are substantial for a state-changing tool.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It hints that index accepts either a numeric index or a name, and that width/height control sizing while enabled toggles state, which maps to several params. However, the 'baker' parameter is never explained and 'tileMode 1' is unexplained jargon.

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

Purpose4/5

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

States a specific verb+resource: 'Enable and size one texture set'. Distinguishes it from siblings like baker_set_maps or baker_set_settings. The '(tileMode 1)' parenthetical is opaque, but the core action is legible.

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

Usage Guidelines2/5

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

No guidance on when to use this versus baker_set_maps or baker_set_settings, no prerequisites, and no mention of what happens if the referenced texture set does not exist. 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.

baker_set_udim_tileB

Enable and size one UDIM tile by index or name such as '1001' (tileMode 2).

NameRequiredDescriptionDefault
bakerNo
indexYes
widthNo
heightNo
enabledNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations declare this is a non-read-only, non-destructive, closed-world mutation, so safety context is already provided. The description adds that it targets one tile by index/name and references tileMode 2, but it does not describe side effects, permissions, or what happens to tile state when enabled/sized.

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

Conciseness5/5

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

It is a single front-loaded sentence with no wasted text. The essential action and identifier syntax are packed efficiently into one line.

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

Completeness2/5

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

An output schema and annotations exist, so return format and safety context are partly covered elsewhere. However, for a 5-parameter baker mutation tool, the description omits the baker parameter, optional-field semantics, and when this should be used instead of other baker configuration tools.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry the explainer burden. It usefully clarifies that index can be a name like '1001', that width/height are sizing inputs, and that enabled controls tile activation, but it leaves the baker parameter unmentioned and does not document optional/null behavior.

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

Purpose4/5

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

The description states a specific action and resource: enabling and sizing one UDIM tile, with index/name as the identifier. It is clear what the tool does, though it does not explicitly differentiate itself from nearby baker_set_* tools such as baker_set_texture_set.

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

Usage Guidelines2/5

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

The description gives a syntax example ('1001') and notes tileMode 2, but does not explain when to use this tool versus related baker tools. There are no prerequisites, exclusions, or alternative-selection guidance.

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

baker_set_visibleB

Show or hide bake groups, or their Low and High nodes separately. The safe way to toggle meshes in a bake scene.

NameRequiredDescriptionDefault
lowNo
highNo
bakerNo
groupsNo
visibleNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false with destructiveHint=false, and "safe way to toggle" is consistent with that profile rather than contradicting it. The description adds that Low and High nodes can be targeted separately, but says nothing about what happens when visible is omitted or how low/high interact with it.

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

Conciseness4/5

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

Two short sentences, front-loaded with the action and scope. The second sentence is slightly promotional but still carries the safety signal, so nothing is wasted.

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

Completeness2/5

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

An output schema exists, so return values need not be described, but for a five-parameter mutation tool with zero schema coverage the description is too thin. An agent cannot tell from the text alone which parameters are required, what null means, or how the node-level flags combine.

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

Parameters2/5

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

Schema description coverage is 0% across five parameters, so the description must carry the load. It loosely maps to groups, low, and high, but leaves visible and baker completely undefined and does not explain the precedence between visible and the low/high booleans.

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

Purpose4/5

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

States a specific verb (show/hide) and resource (bake groups, plus their Low and High nodes), which is more precise than the name alone. It does not name the sibling it overlaps with, object_set_visible, so the distinction from scene-object visibility is left implicit.

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

Usage Guidelines3/5

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

"The safe way to toggle meshes in a bake scene" hints at when this is preferred over the generic object_set_visible, but never states the condition or names the alternative. There are no explicit exclusions or prerequisites.

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

baker_skew_applyA

Edge protect: write skew masks by edge rule (see baker_skew_preview, same parameters) into the bake groups. The Python API cannot set skew masks, so the scene is saved as a new file, the masks go into that file and Toolbag loads it. path is that new file (never overwritten); default <scene>_skew.tbscene next to the current scene, which then must have been saved once. The original scene file stays untouched.

NameRequiredDescriptionDefault
pathNo
bakerNo
groupsNo
bend_pxNo
hard_pxNo
seam_pxNo
soft_pxNo
bend_degNo
mask_sizeNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations: explains the workaround (Python API can't set skew masks, so the scene is saved to a new file, masks written there, Toolbag loads it), that `path` is never overwritten, the default `<scene>_skew.tbscene` naming, and that the original scene file stays untouched. These are exactly the side effects and prerequisites an agent needs before invoking a mutating tool, and they are consistent with destructiveHint=false.

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

Conciseness4/5

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

Front-loads purpose in the first clause and keeps the file-lifecycle explanation tight at four sentences. The workaround detail is long but load-bearing for correct invocation; only mild redundancy between 'saved as a new file' and 'original scene file stays untouched'.

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

Completeness4/5

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

With an output schema present, return values needn't be described, and the description covers the side effects, file naming, and prerequisite that matter for this mutation. The gap is the eight undocumented tuning parameters, which are only reachable via a cross-reference to another tool's definition.

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

Parameters3/5

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

Schema description coverage is 0% across 9 parameters, so the description must compensate. It fully explains `path` (what it is, default, never overwritten) and delegates the remaining edge-rule parameters to baker_skew_preview, but bend_px, hard_px, seam_px, soft_px, bend_deg, mask_size, baker and groups get no meaning, units, or ranges anywhere.

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

Purpose5/5

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

States a specific verb and resource: write skew masks by edge rule into the bake groups. It also names the sibling it complements (baker_skew_preview, same parameters), so an agent can distinguish apply-from-preview without opening either schema.

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

Usage Guidelines4/5

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

The parenthetical pointer to baker_skew_preview with 'same parameters' routes the agent to the preview counterpart for inspection, and the default-path note states the prerequisite that the current scene must have been saved once. It stops short of an explicit 'use preview first, then apply' instruction or any when-not guidance.

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

baker_skew_clear_previewA

End the skew mask preview: the low materials get their albedo map and colour back.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, so the description only needs to explain the state change. It does say the low materials regain their albedo map and colour, which is genuinely useful side-effect information, but it doesn't clarify whether the skew mask is discarded or merely hidden, nor whether any other preview state is reset.

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

Conciseness5/5

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

A single front-loaded sentence with the action first and the effect second; nothing is wasted and nothing is buried.

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

Completeness3/5

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

With no parameters and an output schema present, little is required, but the description doesn't tie the call to its preview counterpart (baker_skew_preview) or mention whether it must follow a preview. The pairing context would make correct sequencing obvious.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing to disambiguate and the baseline of 4 applies. The description correctly implies no arguments are needed.

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

Purpose4/5

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

States a specific verb and resource ('End the skew mask preview') and immediately names the effect on low materials' albedo and colour. It is distinguishable from siblings baker_skew_preview and baker_skew_apply, though the distinction is implicit rather than spelled out.

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

Usage Guidelines3/5

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

The word 'End' implies this is the teardown counterpart to a preview, but it never states when to call it (e.g. after baker_skew_preview) or how it differs from baker_skew_apply. Usage is inferable but not directed.

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

baker_skew_previewA

Edge protect: compute skew masks by edge rule and show them as base colour on the low materials (black = averaged cage, white = corrected). Full correction everywhere except bands along UV seams and open borders (seam_px), hard edges (hard_px) and soft edges bending more than bend_deg degrees (bend_px); widths in bake pixels, 0 switches a band off, soft_px adds a falloff. Nothing is written into the scene: check the look, adjust, then baker_skew_apply. baker_skew_clear_preview restores the materials.

NameRequiredDescriptionDefault
bakerNo
groupsNo
bend_pxNo
hard_pxNo
seam_pxNo
soft_pxNo
bend_degNo
mask_sizeNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Goes beyond the annotations (readOnlyHint=false, destructiveHint=false) by clarifying that 'nothing is written into the scene' even though low materials are visibly repainted, and by naming the restoration tool. It stops short of saying whether the preview persists across scene operations or how mask_size affects cost, so not a full 5.

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

Conciseness4/5

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

Front-loaded with the operation and its visual result, then the rule details, then the workflow. Dense but each clause carries information; the parenthetical 'black = averaged cage, white = corrected' is the only line whose payoff for tool selection is unclear.

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

Completeness4/5

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

For an 8-parameter, zero-coverage tool with an output schema, the description covers behavior, side effects, and the surrounding workflow well enough to call it correctly. The gap is the unexplained baker/groups scoping parameters — an agent cannot tell from this text which bakers or groups the preview applies to.

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

Parameters4/5

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

With 0% schema description coverage, the description carries the burden and mostly does: it defines seam_px/hard_px/bend_px as band widths in bake pixels, explains that 0 disables a band, gives bend_deg its threshold meaning, and describes soft_px as a falloff. It leaves baker, groups, and mask_size completely unexplained, which holds it below 5.

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

Purpose5/5

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

Names a specific operation (compute skew masks by edge rule) and its visible effect (base colour on the low materials), so the agent knows exactly what happens. It also distinguishes itself from the two closest siblings by naming baker_skew_apply and baker_skew_clear_preview as the follow-up and undo paths.

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

Usage Guidelines5/5

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

States the workflow explicitly: 'check the look, adjust, then baker_skew_apply', and gives the exit path via baker_skew_clear_preview. The condition selecting this tool over the apply variant (non-destructive preview) is spelled out rather than implied.

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

camera_createA

Create a camera with optional transform and attributes; activate makes it the viewport and render camera.

NameRequiredDescriptionDefault
nameNo
activateNo
positionNo
rotationNo
attributesNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false). The description adds one genuinely useful behavioral fact beyond them — that activate makes the camera both viewport and render camera, i.e. it changes global application state — but says nothing about defaults applied when position/rotation are omitted or how the new camera relates to existing ones.

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

Conciseness5/5

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

A single compact sentence that front-loads the action and appends the only notable side effect; nothing is redundant or padded.

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

Completeness4/5

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

An output schema exists, so return values need not be described. For a five-parameter create tool with zero schema descriptions, the entry point and main side effect are covered, though the name parameter and array/attribute shapes remain undocumented.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It does cover four of five parameters loosely (transform = position/rotation, attributes, activate) but never mentions name and gives no format detail for the position/rotation arrays or the accepted keys in attributes.

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

Purpose4/5

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

Uses a specific verb and resource ("Create a camera") and names the optional payload (transform and attributes), so an agent knows exactly what the tool produces. It does not explicitly distinguish itself from camera_set, camera_set_active, or camera_get, but the create semantics are unambiguous.

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

Usage Guidelines3/5

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

Usage is only implied from the verb: create a new camera. There is no statement of when to use this versus camera_set_active or camera_set, and no note that activate also switches the viewport/render camera, which is the main decision an agent faces when calling it.

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

camera_frameA

Frame one object, or the whole scene without ref, in the current camera.

NameRequiredDescriptionDefault
refNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the agent knows this is a non-destructive mutation within the scene. The description adds that the operation targets 'the current camera', which is real behavioral context, but says nothing about whether it moves the camera transform, whether it persists or is view-only, or what happens if no camera is active.

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

Conciseness5/5

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

One sentence, front-loaded with the primary action, and the conditional detail about `ref` is folded in without padding. Nothing to cut.

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

Completeness4/5

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

For a single-optional-parameter tool with an output schema and safety annotations in place, the description covers the essential behavior. The only meaningful gap is the type ambiguity of `ref` and whether the framing result is transient or persisted.

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

Parameters3/5

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

Schema coverage is 0%, so the description must carry the parameter meaning, and it does explain the key semantic: presence of `ref` frames one object, absence frames the scene. However, it does not clarify the anyOf(integer | string) union — whether an integer is an object ID or index and a string is a name — leaving a real ambiguity the schema cannot resolve.

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

Purpose4/5

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

The description names a specific verb ('Frame') and its two targeting modes (one object, or the whole scene), scoped to 'the current camera'. That is enough to separate it from siblings like camera_set, camera_set_active, and camera_get, though the differentiation is implied by the word 'frame' rather than stated outright.

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

Usage Guidelines3/5

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

It gives one concrete usage rule — omit `ref` to frame the whole scene instead of a single object — which is genuinely useful routing information. It never says when to prefer this over camera_set or camera_get, and doesn't mention prerequisites such as needing an active camera.

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

camera_getB
Read-onlyIdempotent

One camera in full (the active one by default): transform, mode, fov, focal length, lens (depth of field, distortion, flares, motion blur), limits and postEffect (tone mapping, exposure, contrast, bloom, vignette, grain).

NameRequiredDescriptionDefault
refNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds something annotations do not: that omitting the ref falls back to the active camera, which resolves the schema's bare 'default: null'. It stops short of describing failure modes (e.g., no camera exists) but the output schema carries the return shape.

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

Conciseness4/5

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

A single sentence with the resource and default scope front-loaded, then a compact field list. The parenthetical enumerations are dense but every item earns its place by telling the agent what data it will receive.

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

Completeness3/5

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

For a read-only getter with an output schema, the description is mostly complete: it says what comes back and what happens with no argument. The remaining gap is ref format semantics, which is exactly what an agent needs to call it with a non-default camera.

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

Parameters2/5

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

Schema description coverage is 0% for the single 'ref' parameter, which accepts integer, string, or null with no documentation. The description explains only the null case ('active one by default') and leaves the agent guessing whether an integer is an index and a string is a name or UUID — the most consequential ambiguity in the whole definition.

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

Purpose4/5

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

States a specific resource and scope: a single camera retrieved 'in full', followed by an enumeration of exactly which property groups come back (transform, lens, postEffect, etc.). This implicitly separates it from the sibling camera_list (many cameras) and camera_set (mutation), though no sibling is named explicitly.

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

Usage Guidelines3/5

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

The parenthetical 'the active one by default' tells the agent how to call it with no argument, which is genuine usage guidance. But it never states when to prefer this over camera_list or camera_set, nor what happens if there is no active camera.

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

camera_listA
Read-onlyIdempotent

All cameras with mode, field of view, focal length and which one is active.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered structurally. The description adds the returned field set (mode, FOV, focal length, active flag), which is modest extra value, though an output schema exists and may already document returns.

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

Conciseness4/5

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

A single front-loaded clause with no filler. It is a sentence fragment without an explicit verb, which is terse but not confusing.

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

Completeness4/5

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

For a zero-param read tool with full annotation coverage and an output schema, the description supplies enough to call it correctly and interpret the result. Nothing critical is missing, though noting that camera_get retrieves a single camera would complete the picture.

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

Parameters4/5

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

Zero parameters, so there is nothing for the description to disambiguate; the baseline for a no-arg tool applies. It correctly implies no filtering or paging arguments.

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

Purpose4/5

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

Names the resource and the exact scope (all cameras) plus the attributes surfaced, so an agent knows it is an enumeration rather than a single-item fetch. It never names camera_get, but 'All cameras' does the disambiguating work implicitly.

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

Usage Guidelines3/5

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

Usage is only implied by the word 'All' — an agent can infer this is the listing counterpart to camera_get, but the description never states when to prefer one over the other or any prerequisite.

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

camera_post_effect_fileB

Load a camera post effect preset from a file, or save the current one (save=true).

NameRequiredDescriptionDefault
refNo
pathYes
saveNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare non-read-only, non-destructive, closed-world behavior, so the safety bar is lower. The description contributes the mode-switch semantic (same tool mutates in one branch, reads in the other), but says nothing about whether loading overwrites the current effect stack, what file format/encoding path expects, or what errors surface.

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

Conciseness4/5

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

A single front-loaded sentence with the operation first and the mode flag second; nothing is wasted. The compactness is borderline under-specified rather than bloated, but structurally sound.

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

Completeness3/5

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

An output schema exists, so return values need no explanation, and the two modes are covered. Missing pieces are material for a file I/O tool: the meaning of 'ref', whether the current preset is replaced on load, and the expected path format — enough gaps to rate only minimum-viable.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden: it explains only 'save' and implies 'path' ('from a file'). The 'ref' parameter — an anyOf integer/string/null, presumably the camera selector — is never mentioned, so an agent has no idea how to target a specific camera versus the active one.

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

Purpose4/5

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

Names a specific resource (camera post effect preset) and two concrete operations (load from file / save current), so an agent can tell it apart from camera_set or sky_load/sky_save. It stops short of any explicit sibling differentiation, but the verb+resource pair is unambiguous.

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

Usage Guidelines3/5

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

The parenthetical '(save=true)' gives the one branch condition needed to pick load vs save, which is real guidance. There is no statement about prerequisites, what happens when the file does not exist, or when to prefer this over camera_set / another preset mechanism.

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

camera_setA

Set camera attributes (the active camera by default): fov, focalLength, mode, {"lens": {"dofMode": 1, "dofStop": 2.8, "dofFocusDistance": 50}}, {"postEffect": {"toneMappingMode": "aces", "exposure": 1.2, "bloomBrightness": 0.1}}, {"limits": {...}}.

NameRequiredDescriptionDefault
refNo
attributesYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the description only needs to add context beyond that. It usefully notes the default target (active camera) and implies nested/json-or-object attribute payloads, but leaves open whether omitted fields are preserved or reset — a key question for a non-destructive mutation tool.

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

Conciseness4/5

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

The key action and default target are front-loaded, and the attribute list plus inline JSON examples add signal without padding. The raw JSON snippets make the sentence less clean to read than prose, but every element is informative, so structure is only slightly penalized.

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

Completeness3/5

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

An output schema exists, so return values need not be described. However, for a nested free-form mutation tool with 0% schema coverage, key gaps remain: ref is undocumented, the full set of settable attributes is only partially enumerated (mode and limits are vague or truncated), and merge-vs-replace semantics for omitted fields are unstated. Adequate but not sufficient for confident invocation.

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

Parameters4/5

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

Schema description coverage is 0%, and the attributes object is free-form with additionalProperties=true, so the description carries the main burden of documenting shape. It does this well for the attributes parameter by naming concrete keys (fov, focalLength, mode) and showing exact nested JSON for lens, postEffect, and limits. It earns a 4 but not a 5 because the ref parameter is never explained.

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

Purpose4/5

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

The first clause "Set camera attributes (the active camera by default)" names a specific verb and resource and states the default target, so an agent knows it mutates a camera rather than reading it (camera_get) or managing cameras (camera_list, camera_create, camera_set_active). It does not explicitly note when to prefer a sibling such as camera_set_active, keeping it 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.

Usage Guidelines3/5

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

The parenthetical "the active camera by default" implies you may target a specific camera via ref, but there is no explicit when-to-use versus camera_set_active, camera_frame, or object_set_transform. Usage is implied rather than spelled out, and no exclusions or prerequisites are given.

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

camera_set_activeB

Make a camera the active viewport and render camera.

NameRequiredDescriptionDefault
refYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real value by disclosing that the call changes two separate pieces of state (viewport and render camera), which an agent would otherwise not know. It does not say whether the change persists in the scene file, whether it is undoable, or whether the render-camera change is global across scenes.

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

Conciseness5/5

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

A single tidy sentence with the outcome front-loaded and no filler. Nothing in it is wasted.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations cover the safety profile. However, for a one-parameter mutation tool with zero schema description coverage, the omitted semantics of 'ref' and the lack of any persistence/undo note leave the definition only narrowly sufficient.

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

Parameters2/5

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

Schema description coverage is 0% and the sole parameter 'ref' accepts either an integer or a string, yet the description only says 'a camera' without indicating whether that means an index, a name, or a path. This is the one thing an agent most needs and it is absent from both schema and description.

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

Purpose4/5

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

States a specific verb ('Make ... active') and the two concrete effects: viewport camera and render camera. It is unambiguous what the tool does, but it offers no differentiation from nearby siblings such as camera_set or render_set_cameras, which an agent must choose between.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this versus camera_set, camera_frame, or render_set_cameras, nor on prerequisites (does the camera need to exist first?). At best the usage is implied by the outcome it describes.

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

capabilitiesA
Read-onlyIdempotent

Everything the running Toolbag exposes in mset plus the plugin's action list, for version differences between Toolbag builds.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds one genuine behavioral fact — the contents vary by Toolbag version — but says nothing about size, structure, or how to consume the result (though an output schema exists, so return shape is documented elsewhere).

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

Conciseness4/5

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

A single compact sentence with no filler; the enumeration scope comes first and the purpose clause second. Slightly awkward phrasing ('Everything the running Toolbag exposes in `mset` plus...') but nothing wasted.

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

Completeness4/5

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

With no inputs, an output schema documenting return values, and annotations covering safety, the description only needs to convey scope and purpose — which it does. The one gap is leaving `mset` unexplained for an agent that may not know the domain.

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

Parameters4/5

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

The tool takes zero parameters, and the schema is an empty object; there is nothing for the description to explain. Baseline 4 applies.

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

Purpose4/5

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

The description identifies a specific resource: everything the running Toolbag exposes in `mset` plus the plugin's action list, i.e. a capability/introspection enumeration. It is clear enough to distinguish from action siblings like scene_info or preferences_get, though the term `mset` is undefined jargon and there is no verb to pin the operation down.

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

Usage Guidelines3/5

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

The trailing clause 'for version differences between Toolbag builds' implies the intended use case — checking what a given Toolbag build supports before calling other tools. It never states explicitly when to call this versus status, nor any exclusion or prerequisite, 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.

execute_pythonA
Destructive

Run Python inside Toolbag with mset imported; only while the user has ticked "Allow Python execution" in the Toolbag MCP window. The namespace persists between calls; assign result to return a value; print() output comes back as log.

NameRequiredDescriptionDefault
codeYes
timeoutNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Beyond annotations, it discloses that the namespace persists between calls, that assigning `result` returns a value, and that `print()` output is returned as `log`. These are meaningful execution semantics not captured by the structured fields.

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

Conciseness5/5

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

The description is compact and front-loaded with the core action. Every clause adds useful information about permissions, state persistence, or return behavior.

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

Completeness4/5

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

For an arbitrary code execution tool with annotations covering destructiveness and an output schema covering return values, the description is largely complete. The main gap is the unexplained `timeout` parameter.

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

Parameters3/5

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

It explains the required `code` parameter well by describing the Python environment and return conventions. With 0% schema description coverage, however, it omits any explanation of the `timeout` parameter and its units or behavior.

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

Purpose5/5

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

The description states a specific verb and resource: run Python inside Toolbag. It also identifies the execution context (`mset` imported) and distinguishes this as the generic code-execution tool among otherwise domain-specific siblings.

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

Usage Guidelines3/5

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

It gives an important prerequisite: the user must have enabled 'Allow Python execution'. However, it does not explain when to prefer this over the many specific sibling tools, nor 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.

fog_getB
Read-onlyIdempotent

The scene's fog with its attributes, or exists: false when there is none.

NameRequiredDescriptionDefault
refNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds a useful behavioral detail — that it returns exists: false when no fog is present — which tells the agent how to detect absence. It does not add further behavioral context beyond that.

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

Conciseness4/5

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

A single, front-loaded sentence with no wasted words. It is terse but appropriately sized for a simple getter, though the terseness contributes to the missing parameter guidance.

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

Completeness3/5

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

An output schema exists, so detailed return-value explanation is not required, and the exists:false note covers the key edge case. However, the lone 'ref' parameter's meaning is left entirely undocumented, which is a real completeness gap for an agent trying to invoke this correctly.

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

Parameters2/5

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

Schema description coverage is 0% and there is one parameter, 'ref', whose type (integer|string|null) and purpose are entirely unexplained in both schema and description. The description does not compensate for this gap, leaving the agent unsure what 'ref' refers to or whether to supply it.

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

Purpose4/5

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

The description names a specific resource (the scene's fog) and states it returns its attributes, which distinguishes it from the sibling fog_set mutation. It is clear about what is retrieved, though it could explicitly name fog_set as its counterpart.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to call this versus fog_set or other scene-inspection tools like scene_info. The read-only nature is only implied by the word 'get' and the shape of the response, not stated as usage context.

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

fog_setA

Set fog attributes (color, density, opacity, volumeType 'fit'/'vertical', heightMin, heightMax, falloffMin, falloffMax); creates the fog object when the scene has none.

NameRequiredDescriptionDefault
refNo
createNo
attributesYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so safety is covered. The description adds genuinely useful behavior — implicit creation when no fog object exists — but leaves open whether supplied attributes merge with or replace existing fog settings, and how this interacts with the separate 'create' parameter (default true).

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the verb and resource come first and the creation fallback is attached compactly. The dense parenthetical list is efficient though slightly compressed for an eight-key attribute bag.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations cover the safety profile. For a mutation tool with a free-form nested object and a 'ref' selector, the description is still missing merge-vs-replace semantics and how 'ref' interacts with the auto-creation behavior.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the parameter burden; it does so for the required 'attributes' bag by naming eight accepted keys and the volumeType enum values, which is real value since the schema declares only additionalProperties:true. It does not explain 'ref' (which fog object to target when several exist) or 'create', so compensation is partial rather than complete.

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

Purpose5/5

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

States a specific verb (Set) plus the resource (fog) and enumerates the exact attributes it controls, including the accepted volumeType values. The name/description pairing makes it immediately distinguishable from the sibling fog_get without opening either schema.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is the write counterpart to fog_get. The one conditional given ('creates the fog object when the scene has none') describes behavior rather than when to choose this tool over alternatives such as sky_set or object_set_attributes; there are no explicit exclusions or preconditions.

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

light_createA

Create a light: 'omni', 'spot' or 'directional', with optional transform and attributes such as brightness, color [r, g, b], castShadows, width, lengthX, lengthY, spotAngle, useTemperature, temperature (object_attributes lists what this Toolbag build has; 5.02 has no shape or physical units).

NameRequiredDescriptionDefault
nameNo
positionNo
rotationNo
attributesNo
light_typeNoomni

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnly=false, destructive=false, openWorld=false). The description adds genuinely useful behavioral context — attribute availability varies by build, and 5.02 lacks shape/physical units — but says nothing about defaults, failure modes, or scene requirements for a mutation tool.

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

Conciseness4/5

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

One dense sentence, front-loaded with the core action and types, with supporting detail in a trailing parenthetical. Efficient, though the parenthetical packs several distinct ideas (attribute list, attribute discovery, version limits) into one clause without separation.

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

Completeness4/5

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

An output schema exists so return values need no explanation, and annotations cover the safety profile. Given the version-sensitivity of light attributes and the opaque attributes object, the description provides the necessary pointers; only the lack of any scene/prerequisite context keeps it from being fully complete.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it does for the key gaps: it names the valid light_type values (the schema has no enum) and lists concrete keys for the opaque attributes object (brightness, color [r, g, b], castShadows, width, lengthX, lengthY, spotAngle, useTemperature, temperature). It says nothing about name/position/rotation semantics, but those are largely self-evident.

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

Purpose5/5

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

The description opens with a specific verb and resource ('Create a light') and immediately enumerates the valid light types ('omni', 'spot' or 'directional'), so an agent knows exactly what the tool produces. The create verb inherently separates it from siblings like light_list or object_create.

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

Usage Guidelines3/5

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

Usage is implied by the verb, and the parenthetical points the agent at object_attributes to discover which attributes a given Toolbag build supports, plus a version caveat for 5.02. However, it never states when to prefer this over object_create/object_duplicate or what prerequisites (e.g. active scene) are needed.

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

light_listA
Read-onlyIdempotent

All lights (sky child lights included) with type, brightness, colour, shadows, shape and transform.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile needs no restating. The description's one genuinely additive claim is the scope note that sky child lights are included, which is not derivable from structured fields; beyond that it mostly re-lists return fields already present in the output schema.

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

Conciseness5/5

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

A single sentence with zero filler, front-loading the scope ('All lights') and then the returned attributes. Every clause carries information.

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

Completeness4/5

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

For a parameterless read with a full output schema and complete annotation coverage, the description is sufficient — the agent knows what it gets and that sky child lights are in scope. A minor gap remains around whether the result is scene-wide or selection-scoped and whether any ordering applies.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; the description correctly avoids inventing filter or scope parameters.

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

Purpose4/5

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

The description names the resource (all lights) and enumerates the attributes returned (type, brightness, colour, shadows, shape, transform), making the read intent unambiguous. It does not explicitly contrast with light_create or otherwise differentiate from siblings, but the verb-less 'All lights …' framing reads clearly as a listing operation.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is the read path for lights, with light_create as the obvious write counterpart. There is no explicit when-to-use statement, no note on whether it spans the whole scene or the current selection, and no named alternative.

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

material_assignB

Assign a material to objects, by default including their children.

NameRequiredDescriptionDefault
nameYes
refsYes
include_childrenNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, non-destructive, closed-world operation. The description adds the useful default behavior of including children, but does not disclose whether existing assignments are overwritten or whether the material must already exist.

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

Conciseness4/5

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

A single front-loaded sentence with no wasted words. It is appropriately terse, though slightly undersized given the complete absence of schema parameter descriptions.

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

Completeness3/5

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

An output schema exists, so return values need not be described. However, for a mutation tool with three undocumented parameters and an existing sibling set of material-setting tools, it does not fully cover overwrite behavior or parameter intent.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It hints that refs are objects and that include_children defaults to true, but does not clarify that name is the material name or explain accepted ref formats; the default it mentions is already in the schema.

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

Purpose4/5

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

States a specific verb and resource: assigning a material to objects. This is clear enough to distinguish it from siblings like material_create or material_set_field, though it does not explicitly name alternatives.

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

Usage Guidelines3/5

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

Implied usage is clear from the verb, but there is no explicit guidance on when to use this versus material_set_group, material_set_subroutine, or material_set_field. No prerequisites or exclusion conditions are mentioned.

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

material_createB

Create a material with Toolbag's default shaders.

NameRequiredDescriptionDefault
nameYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the mutation and safety profile is covered. The description adds one useful behavioral fact — the new material comes pre-populated with default shaders rather than being empty — but says nothing about whether the material is auto-selected, assigned to any object, or how name collisions 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.

Conciseness4/5

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

A single front-loaded sentence with no filler; the verb and resource lead immediately. It is arguably too terse rather than too long, which is under-specification rather than a structural flaw.

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

Completeness3/5

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

For a one-parameter creation tool with annotations and an output schema, the description covers the basic action and the initial state of the material, but leaves open the post-creation side effects (selection, assignment, naming rules) that an agent would want before calling it.

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

Parameters2/5

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

Schema description coverage is 0% and the sole parameter, 'name', appears with only its title. The description does not clarify whether the name must be unique, whether it can be omitted or auto-generated, or what naming constraints exist, so it fails to compensate for the coverage gap.

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

Purpose4/5

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

States a specific verb and resource ('Create a material') and adds the distinguishing detail that the material is initialized with Toolbag's default shaders. It does not explicitly contrast with siblings like material_duplicate or material_import, which is why 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.

Usage Guidelines2/5

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

No guidance on when to use this versus material_duplicate (copy an existing material) or material_import (bring in an external material), both of which are viable alternatives for getting a material into the scene. The agent must infer the choice 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.

material_deleteB
Destructive

Delete a material; its objects fall back to the default material.

NameRequiredDescriptionDefault
nameYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the description's real value is the disclosed side effect: objects using the material fall back to the default material. That is meaningful consequence information beyond structured fields. It stops short of stating irreversibility or whether the deletion is blocked when the material is in use.

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

Conciseness5/5

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

One sentence, front-loaded with the action, with the side-effect consequence appended. No wasted text.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and the destructive annotation is complemented by the fallback disclosure. However, for a destructive one-parameter tool with zero schema coverage, the definition should at least identify what 'name' refers to.

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

Parameters2/5

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

Schema description coverage is 0% and the single parameter 'name' is undocumented in both schema and description. The description does not clarify whether 'name' is a material name, path, or ID, leaving the one required parameter ambiguous.

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

Purpose4/5

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

States a specific verb and resource: 'Delete a material'. The resource distinguishes it from object_delete and the other material_* siblings, though it does not explicitly name an alternative tool. Clear and unambiguous purpose.

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

Usage Guidelines2/5

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

No guidance on when to delete versus reassign via material_assign, nor any prerequisites or warnings. The usage context is only implied by the verb 'Delete'.

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

material_duplicateC

Duplicate a material; optional name for the copy.

NameRequiredDescriptionDefault
nameYes
new_nameNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare a non-destructive write (readOnlyHint=false, destructiveHint=false), so the safety profile is covered. The description adds only that the copy can be named, but says nothing about whether textures/settings are copied, whether the duplicate is added to the scene, or how the default empty new_name behaves.

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

Conciseness4/5

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

The single sentence is front-loaded and wastes no words. It is perhaps too telegraphic, but the structure is efficient.

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

Completeness2/5

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

With an output schema present, return values need not be described, but the definition still omits the meaning of the required 'name' and any side effects of duplication. For a mutation tool with no schema descriptions, this leaves the agent guessing at invocation details.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only clarifies the optional new_name ('optional name for the copy'). The required 'name' parameter is never explained—an agent cannot tell whether it is the source material's name, a path, or a target name. This is a significant ambiguity for a 2-parameter tool.

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

Purpose4/5

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

The description states a clear verb and resource ('Duplicate a material'), which distinguishes it from material_create and material_import. It does not explicitly contrast with siblings, but the operation is unambiguous.

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

Usage Guidelines2/5

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

There is no guidance on when to use this instead of material_create, material_import, or object_duplicate, and no mention of prerequisites such as the material existing or being selected. The agent must infer everything from the name.

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

material_exportB

Export a material to a .tbmat file.

NameRequiredDescriptionDefault
nameYes
pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already disclose readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds the target file format, but omits whether an existing file at 'path' is overwritten and whether a file must pre-exist for import/export symmetry.

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

Conciseness4/5

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

A single front-loaded sentence with no waste. Brevity is appropriate for a simple two-parameter tool, though it tips into under-specification.

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

Completeness3/5

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

An output schema exists, so return values need not be explained. However, for a file-writing tool with 0% schema coverage, the missing overwrite/error behavior and parameter meanings leave an agent guessing on edge cases.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden. 'Export a material to a .tbmat file' loosely implies name=material and path=destination, but neither parameter is named or explained, and no format/path convention is given.

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

Purpose4/5

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

Specific verb (export) and resource (material) plus the output format (.tbmat), so an agent can distinguish it from material_import or scene_export. It stops short of explicitly naming a sibling alternative, 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.

Usage Guidelines2/5

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

No statement of when to use this versus material_import or scene_export, no prerequisites, and no exclusions. An agent must infer usage purely from the verb.

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

material_getB
Read-onlyIdempotent

One material in full: each slot (albedo, surface, microsurface, reflectivity, transparency, ...) with shader and field values, textures as path and sRGB flag, and the objects it is assigned to.

NameRequiredDescriptionDefault
nameYes
fieldsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds scope information (which slots, how textures are represented, that assignment objects are included), but says nothing about behavior when the name is unknown or how expensive a full dump is.

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

Conciseness4/5

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

A single front-loaded sentence that leads with 'One material in full' and then enumerates slot, texture, and assignment data. Dense but every clause carries information; no filler.

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

Completeness3/5

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

An output schema exists, so return shape need not be described, and the annotations cover safety. The remaining gap is the undocumented 'fields' toggle and the absence of any failure mode, which for a two-parameter lookup leaves the agent guessing about a supported option.

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

Parameters2/5

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

Schema description coverage is 0%: 'name' has no documented format (material name vs. path vs. case sensitivity) and 'fields' (boolean, default true) is never explained. The phrase 'with shader and field values' faintly hints that 'fields' controls that output, but the description never states the flag's effect or that it is optional.

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

Purpose4/5

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

States precisely what is returned: a single material with per-slot shader/field values, textures as path plus sRGB flag, and assignments. The phrase 'One material in full' implicitly contrasts with the sibling material_list, though it never names that alternative or uses an explicit verb.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is the tool for inspecting one material's full contents, but there is no statement of when to prefer it over material_list or material_export, and no preconditions (e.g., material must already exist).

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

material_importB

Import a material file (.tbmat, MTL, or named texture files).

NameRequiredDescriptionDefault
nameNo
pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already indicate the tool is not read-only, not destructive, and not open-world, so the safety profile is known. The description adds accepted file formats, but does not clarify whether import creates a new material, updates an existing one, or how duplicates 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.

Conciseness5/5

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

The description is a single front-loaded sentence with no wasted words. It efficiently names the action, resource, and accepted formats.

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

Completeness2/5

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

For a simple two-parameter import tool with an output schema, the description still leaves key context missing: the role of the optional name parameter and the side-effect semantics of importing a material. It is under-specified for correct invocation beyond a basic file path.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It implies the required 'path' is a file path via the import/file wording and format list, but it does not document the optional 'name' parameter at all.

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

Purpose4/5

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

The description uses a specific verb ('Import') and resource ('material file'), and lists supported formats (.tbmat, MTL, named texture files). It does not explicitly distinguish itself from siblings like material_create or scene_import_model, but the action and resource are clear.

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

Usage Guidelines2/5

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

The description implies the tool is used when a material file exists, but gives no explicit when-to-use guidance, no prerequisites, and no alternatives such as material_create or material_duplicate. In a large sibling set, the agent must infer the routing decision.

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

material_listB
Read-onlyIdempotent

All materials with group, number of assigned objects and the shader per slot.

NameRequiredDescriptionDefault
name_containsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare the safety profile: read-only, idempotent, non-destructive, and closed-world. The description adds some result context by stating which material attributes are included, but it does not clarify how the optional name filter changes the result set or mention ordering/limits.

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

Conciseness4/5

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

The description is a single front-loaded fragment with no filler, so it is efficient and easy to scan. However, it is clipped enough that it omits important usage and filter details, which belongs in other dimensions rather than conciseness.

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

Completeness3/5

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

For a simple read-only list tool with an output schema and safety annotations, the description is adequate about what is returned. It remains incomplete because it omits the optional name filter and does not distinguish material_list from material_get or other material-listing alternatives.

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

Parameters2/5

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

The single optional name_contains parameter has 0% schema description coverage and is not mentioned in the description at all. The phrase 'All materials' may even imply no filtering, so the agent must infer the filter behavior solely from the property name.

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

Purpose4/5

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

The description states a clear list operation on materials and names the returned fields: group, assigned object count, and shader per slot. It is clearly distinguishable from mutation siblings, but it does not explicitly differentiate itself from material_get or other material read tools.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance, no alternatives named, and no explanation of when to use material_list versus material_get. The only implied usage is that it lists 'All materials' rather than retrieving one material.

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

material_set_cutoutB

Alpha-tested transparency from a mask image: transparency slot to Cutout, 'Use Albedo Alpha' off, channel (0 = R) and the mask as Alpha Map, re-read from disk.

NameRequiredDescriptionDefault
nameYes
srgbNo
channelNo
alpha_mapYes
thresholdNo
use_albedo_alphaNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior4/5

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

Annotations establish that this is a non-destructive, non-read-only mutation. The description adds useful behavioral detail beyond annotations: it sets the transparency slot to Cutout, disables Use Albedo Alpha, assigns the channel and Alpha Map, and re-reads from disk. It stops short of explaining broader side effects or whether existing material settings are preserved.

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

Conciseness4/5

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

The description is a single dense sentence with little wasted text, and it front-loads the core purpose before listing the configured settings. The telegraphic phrasing is efficient, though some clauses like 're-read from disk' could be clearer.

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

Completeness3/5

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

An output schema exists and annotations cover safety, so the description need not explain return values. However, for a six-parameter mutation tool with 0% schema coverage, the description leaves important parameter semantics and usage alternatives underspecified.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for six undocumented parameters. It explains channel (0 = R), alpha_map as the mask, and use_albedo_alpha being off, but it omits name, srgb, and especially threshold, which are important for correct invocation.

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

Purpose4/5

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

The description names a specific operation: configuring alpha-tested transparency from a mask image, including switching the transparency slot to Cutout and assigning the mask as Alpha Map. It is clearer than a mere restatement of the name, though it does not explicitly contrast itself with sibling material_set_texture or material_set_field tools.

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

Usage Guidelines2/5

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

The phrase 'Alpha-tested transparency from a mask image' implies the intended use case, but there is no explicit guidance on when to choose this tool over material_set_texture, material_set_field, or other material tools. No prerequisites or exclusions are stated.

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

material_set_fieldA

Set a number, boolean, enum or color field of a material slot (field names from material_get). For texture fields use material_set_texture.

NameRequiredDescriptionDefault
nameYes
slotYes
fieldYes
valueYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare false for readOnly, destructive and openWorld, so the agent knows this is a non-destructive mutation within the open scene. The description adds the accepted value type space (number/boolean/enum/color), which is useful, but says nothing about overwrite behavior, prerequisites (material must exist), or reversibility. With annotations carrying the safety profile, a 3 fits.

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

Conciseness5/5

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

Two short sentences, no filler, with the routing rule front-loaded right after the capability statement. Every clause earns its place by either defining scope or directing to a sibling.

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

Completeness5/5

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

An output schema exists, so return values need not be described, and annotations cover the safety profile. Given that, the description plus schema is sufficient to call the tool correctly except for the minor name/slot ambiguity, which the sibling tools' naming conventions resolve.

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

Parameters3/5

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

Schema description coverage is 0% across four required parameters, so the description must compensate and only partially does: it clarifies that 'field' takes a name from material_get and that 'value' is a number, boolean, enum or color. It says nothing about 'name' or 'slot', which are left ambiguous (material name vs. slot identifier/index).

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

Purpose5/5

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

States a specific verb (set) and resource (a field of a material slot) and enumerates the exact field types it handles: number, boolean, enum, color. It explicitly disambiguates from the sibling material_set_texture in the same breath, so an agent can pick between them without opening either schema.

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

Usage Guidelines4/5

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

Explicitly routes texture fields to material_set_texture and tells the agent to obtain field names from material_get, which is real when/where guidance. It does not mention material_set_cutout or material_set_subroutine as alternatives, so the routing picture is incomplete rather than fully closed.

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

material_set_groupB

Move a material into a material group ('' for none).

NameRequiredDescriptionDefault
nameYes
groupNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=false, readOnlyHint=false, and closed-world scope, so the safety profile is covered. The description adds one genuinely useful behavioral detail — passing '' removes the material from any group — but says nothing about failure modes (unknown material name, nonexistent group, case sensitivity).

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

Conciseness4/5

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

A single front-loaded sentence with the core action first and the sentinel-value caveat in parentheses. Nothing is wasted, though the parenthetical is terse enough to be slightly cryptic.

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

Completeness3/5

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

An output schema exists, so return values needn't be explained, and annotations cover the mutation profile. Still, for a two-parameter tool with zero schema documentation, the description leaves the identity of `name` unclear and omits what happens when the group doesn't exist.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry parameter meaning, and it only partly does. It explains the empty-string sentinel for `group`, but never states that `name` is the material to move (vs. the group name), leaving the most important parameter implicit.

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

Purpose4/5

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

The description uses a specific verb ("Move") and resource ("a material into a material group"), which is far clearer than a name restatement. It doesn't explicitly differentiate itself from adjacent siblings like material_set_field or material_assign, but the group-targeting 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.

Usage Guidelines2/5

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 versus material_assign or the other material_set_* tools, and no prerequisites are stated. It also doesn't say whether the target group must already exist or will be created on the fly.

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

material_set_subroutineB

Set the shader of a material slot, e.g. ('transparency', 'Cutout'), ('reflectivity', 'Metalness'), ('surface', 'Normals'). Slots: subdivision, displacement, surface, microsurface, albedo, diffusion, transmission, reflectivity, reflection, clearcoat reflection, clearcoat microsurface, clearcoat reflectivity, occlusion, emissive, transparency, texture. Returns the slot's field names.

NameRequiredDescriptionDefault
nameYes
slotYes
shaderYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate this is a non-read-only but non-destructive mutation with openWorldHint=false. The description adds little beyond that: it does not describe permissions, side effects, reversibility, or rate limits, and its return-value note is redundant because 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.

Conciseness4/5

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

The purpose is front-loaded and the slot list earns its place given the undocumented schema. The final sentence about return values is somewhat redundant because an output schema is present, but overall the structure is efficient.

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

Completeness3/5

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

The description covers the slot parameter well and gives useful examples for shader, and the output schema can carry return details. However, it leaves the 'name' parameter unexplained and gives no sibling routing, which are meaningful gaps for a mutation tool with three required parameters.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It does so partially by listing valid slot names and giving slot/shader examples, but it never explains the 'name' parameter and does not exhaustively define valid shader values for each slot.

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

Purpose4/5

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

The description states a specific verb and resource: 'Set the shader of a material slot,' with examples that clarify the operation. It is clear what the tool does, but it does not distinguish this from sibling tools such as material_set_field, material_set_texture, or material_set_cutout.

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

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or alternative-tool guidance is provided. The examples illustrate parameter values rather than selection between this tool and closely related siblings.

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

material_set_textureA

Put an image file into a texture field (e.g. slot 'albedo', field 'Albedo Map'; slot 'surface', field 'Normal Map'). The field is cleared first so a changed file is re-read. srgb and mipmaps default to the previous texture's settings. An empty path clears the field.

NameRequiredDescriptionDefault
nameYes
pathYes
slotYes
srgbNo
fieldYes
mipmapsNo
wrappingNo
filteringNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare this is a non-readonly, non-destructive, closed-world mutation. The description adds real behavioral context beyond that: the field is cleared before writing so a changed file is re-read, `srgb`/`mipmaps` inherit the previous texture's settings, and an empty path clears the field. It does not cover failure modes (missing file, invalid slot) or what wrapping/filtering default to.

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

Conciseness5/5

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

Three tightly packed sentences: what it does first, then concrete slot/field examples, then the behavioral caveats. No filler, and the clear-then-re-read note is separate from the empty-path-clears note rather than redundant.

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

Completeness4/5

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

An output schema exists, so return values need no explanation, and the mutation semantics are covered for the main path. The remaining shortfall is the unexplained `wrapping`/`filtering` options and no note on what happens when the path is invalid or the target material is absent.

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

Parameters3/5

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

Schema coverage is 0%, so the description must carry parameter meaning. It explains `slot` and `field` by example, `path` (empty clears), and the fallback semantics of `srgb` and `mipmaps`, but leaves `wrapping`, `filtering`, and `name` (the target material) completely unexplained — a third of the parameters remain opaque.

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

Purpose4/5

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

States a specific verb and resource: putting an image file into a texture field, with concrete slot/field examples ('albedo'/'Albedo Map', 'surface'/'Normal Map'). It is distinguishable from generic siblings like material_set_field by being texture-specific, though it never explicitly says so.

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

Usage Guidelines3/5

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

Gives implicit usage guidance via the empty-`path` clearing case and the slot/field examples, so an agent knows how to target a texture slot. However, it never says when to use this instead of material_set_field, material_set_cutout, or material_import, nor what preconditions (existing material, file on disk) are required.

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

mesh_set_backfacesA

Show back faces (cull back faces off) on all meshes or the given ones, as a two-sided shader would render them. Per object; lost on re-import.

NameRequiredDescriptionDefault
refsNo
showNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare it non-destructive/non-read-only, and the description adds genuinely new behavioral context: the effect is per-object and non-persistent ('lost on re-import'). That transient-state caveat is exactly the kind of information annotations cannot convey.

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

Conciseness4/5

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

One compact sentence plus a short trailing caveat, with the action and scope front-loaded. Nothing is padded, though the parenthetical and shader analogy are slightly redundant with each other.

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

Completeness3/5

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

With an output schema and annotations present, the description covers the essentials of a small two-parameter tool. It still omits the meaning of toggling show off and the accepted ref forms, which an agent must guess before calling correctly.

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

Parameters3/5

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

Schema description coverage is 0%, so the burden falls on the description; it partially compensates by explaining that refs absent means 'all meshes' and provided means 'the given ones'. However, the accepted reference forms (int index vs. string name) and the semantics of show=false (restore culling) are left undocumented.

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

Purpose4/5

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

States a specific verb and resource ('Show back faces (cull back faces off) on all meshes or the given ones') with a concrete scope of all vs. selected objects. No sibling in the list deals with backface culling, so there is little risk of confusion, though it does not explicitly contrast with e.g. object_set_visible.

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

Usage Guidelines3/5

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

'on all meshes or the given ones' implies the targeting rule (omit refs = whole scene), and 'lost on re-import' hints that this is a viewport/display-only setting rather than a saved material change. There is no explicit statement of when an agent should choose this over material-related tools or whether it applies to selection.

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

object_attributesB
Read-onlyIdempotent

Every plain attribute of an object with its current value, type-specific: light, camera (lens, limits, postEffect expanded), sky, fog, shadow catcher, backdrop, mesh. These are the names object_set_attributes takes.

NameRequiredDescriptionDefault
refYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds useful scope information (only 'plain' attributes, values are type-specific and some are expanded, e.g. camera lens/limits/postEffect) but says nothing about failure behavior, unresolvable refs, or whether unset/derived attributes are omitted.

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

Conciseness4/5

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

Two short sentences, front-loaded with the resource and then the sibling relationship. The type list is compact and earns its place; only the parenthetical 'lens, limits, postEffect expanded' is slightly cryptic in phrasing.

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

Completeness3/5

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

An output schema exists, so return shape need not be explained, and the type enumeration covers what comes back. However, with a required but entirely undocumented `ref` and no guidance on interplay with the many sibling getters, the definition is adequate but leaves the main invocation risk unresolved.

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

Parameters2/5

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

Schema description coverage is 0% and the single `ref` parameter is documented only by its title, accepting either integer or string. The description never explains whether ref is an object name, a path, or an index, which is the one thing an agent must get right to call this tool — a real gap that the description should have closed.

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

Purpose4/5

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

The description states a specific resource (an object's plain attributes with current values) and scopes it by object type (light, camera, sky, fog, shadow catcher, backdrop, mesh). The read verb is only implicit ('Every plain attribute of an object...'), but the closing sentence ties it explicitly to the write counterpart object_set_attributes, which distinguishes it from object_get and the setter.

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

Usage Guidelines3/5

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

The line 'These are the names object_set_attributes takes' strongly implies the intended workflow (read here, write there), but it never states when to call this versus object_get, scene_info, or the type-specific getters like camera_get/sky_get/fog_get that also appear as siblings. Usage is inferable rather than stated.

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

object_createB

Create a scene object by class: LightObject, CameraObject, FogObject, SkyBoxObject, ShadowCatcherObject, BackdropObject, SceneObject (a group), TransformObject, BakerObject; with optional name, transform, parent and attributes set right away.

NameRequiredDescriptionDefault
nameNo
parentNo
positionNo
rotationNo
attributesNo
object_typeYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real behavioral value by saying name/transform/parent/attributes are applied 'right away' at creation (one round trip instead of two), but stays silent on collision behavior for duplicate names, error conditions, or undo.

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

Conciseness4/5

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

One sentence, front-loaded with the verb and the class enumeration, with the optional-field behavior appended. The class list is long but every item is functional information rather than filler.

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

Completeness5/5

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

Return values need not be described because an output schema exists. Given that annotations cover the safety profile and the description covers creation semantics and accepted classes, what remains missing is mostly parameter formatting already implied by the schema's array/object types.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden and only partially delivers: it maps position/rotation to a 'transform' and names parent and attributes, but gives no formats (array length for position, Euler vs quaternion for rotation) and never explains that parent accepts either an integer or a string handle despite that ambiguity in the schema.

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

Purpose4/5

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

States a specific verb and resource (create a scene object) and enumerates the exact class values accepted, which lets an agent distinguish it from material_create or baker_create. It does not, however, distinguish itself from the sibling light_create and camera_create tools even though LightObject and CameraObject are listed as valid classes here.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance is given. The most important routing question an agent faces — should I call object_create with 'LightObject' or call light_create? — is left completely unresolved, and nothing states whether this is preferred over create-then-object_set_transform.

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

object_deleteC
Destructive

Delete objects from the scene.

NameRequiredDescriptionDefault
refsYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

The annotations already declare destructiveHint=true and readOnlyHint=false, and the description merely repeats that it deletes objects. It does not add useful behavioral context such as irreversibility, undo behavior, dependency handling, or what happens to child objects. There is no contradiction with 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.

Conciseness4/5

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

The description is a single front-loaded sentence with no wasted words. It is structurally clean, though extremely terse for a destructive operation.

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

Completeness2/5

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

Given a destructive tool with an undocumented required parameter and no output explanation needed because an output schema exists, the description is not complete enough. It identifies the action but omits reference format, deletion scope, and safety context an agent needs before invoking it.

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

Parameters1/5

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

The single required parameter `refs` has 0% schema description coverage, and the description never explains what a ref is, whether it accepts names or IDs, or that it supports a single value or an array. The plural 'objects' is the only hint of batch deletion, which is not enough to document the parameter.

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

Purpose4/5

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

The description gives a specific verb and resource: 'Delete objects from the scene.' It is clear this operates on scene objects rather than materials or other resources, though it does not explicitly contrast with siblings such as object_duplicate or material_delete.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, no prerequisites, and no warning about destructive behavior. Usage is only implied by the name and one-sentence description.

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

object_duplicateB

Duplicate an object with its children; optional name for the copy.

NameRequiredDescriptionDefault
refYes
nameNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the write-but-safe profile is covered. The description adds real value with 'with its children', disclosing a deep-copy behavior not visible in the schema. It omits whether children are copied recursively, whether the new object becomes selected, and how the default empty name is resolved.

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

Conciseness5/5

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

A single compact sentence that front-loads the action and ends with the optional parameter; nothing is wasted or buried.

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

Completeness3/5

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

The existence of an output schema removes the need to document return values. However, for a duplication tool with a 0%-covered schema, the description should clarify ref semantics and whether duplication is recursive; those gaps remain.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry parameter meaning; it explains the optional 'name' as the name of the copy. The required 'ref' parameter is left entirely undefined — the schema's anyOf integer|string makes it unclear whether ref is an ID, name, or path, which is exactly the ambiguity a description should resolve.

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

Purpose4/5

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

States a specific verb and resource ('Duplicate an object') plus the key scope qualifier ('with its children'), which distinguishes it from material_duplicate and object_create in the sibling list. It does not explicitly name those siblings, but the resource is unambiguous.

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

Usage Guidelines2/5

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

No guidance on when to use this versus object_create or material_duplicate, and no prerequisites (e.g. object must exist, whether it must be selected). An agent can infer duplication semantics but must guess at selection/creation alternatives.

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

object_findB
Read-onlyIdempotent

Objects whose name contains name (case-insensitive), or equals it with exact.

NameRequiredDescriptionDefault
nameYes
exactNo
limitNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare this as a safe, read-only, idempotent, non-destructive operation. The description adds useful matching-behavior context (case-insensitive substring search, exact-match toggle), but it does not mention the `limit` default or whether results are truncated, which is relevant behavior 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.

Conciseness5/5

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

The description is a single front-loaded sentence with no wasted wording. It immediately communicates the core filtering behavior and the exact-match switch.

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

Completeness4/5

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

For a simple search tool with rich annotations and an output schema, the description covers the essential matching semantics. The only meaningful gap is the unexplained `limit` parameter, but return values are covered by the output schema and safety is covered by annotations.

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

Parameters3/5

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

Schema description coverage is 0%, so the description carries the full burden for parameter meaning. It explains `name` matching and how `exact` changes it to equality, but it does not explain the `limit` parameter or its default of 100, leaving one of three parameters undocumented.

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

Purpose4/5

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

The description specifies the resource (objects) and matching behavior: case-insensitive substring match by name, or exact match when `exact` is true. It is clear enough to distinguish this from listing all objects, though it does not explicitly name a sibling alternative like `scene_list_objects`.

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

Usage Guidelines2/5

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

The description only states the matching semantics; it does not say when to use this tool versus `scene_list_objects`, `object_get`, or `selection_get`. There are no exclusions or prerequisites, so the agent must infer when this name-based search is appropriate.

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

object_getC
Read-onlyIdempotent

Everything about one object: transform, pivot, bounds, mesh/camera/light settings, submeshes with their materials.

NameRequiredDescriptionDefault
refYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive behavior, and closed-world operation, so the safety profile is covered. The description adds useful scope by saying it returns comprehensive object data including submeshes and their materials, but it does not describe ref resolution or any other behavior beyond that scope.

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

Conciseness5/5

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

The description is a single front-loaded sentence with a compact enumeration of returned data categories. There is no filler, and the important scope statement comes first.

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

Completeness3/5

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

The output schema exists and annotations already carry the read-only/idempotent profile, so return-value explanation is not strictly required. However, the description leaves the required 'ref' identifier undefined and gives no selection guidance among many object-related siblings, which is a meaningful completeness gap.

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

Parameters1/5

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

The only required parameter is 'ref', and schema description coverage is 0%. The description never explains whether ref is an integer ID, a name, a path, or another identifier, nor how the anyOf integer/string union should be used.

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

Purpose4/5

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

The description clearly identifies the resource as a single object and enumerates the object data returned: transform, pivot, bounds, mesh/camera/light settings, and submeshes with materials. It lacks an explicit retrieval verb and does not distinguish itself from nearby siblings such as object_attributes or object_find.

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

Usage Guidelines2/5

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

The phrase 'Everything about one object' implies a broad inspection use case, but there is no explicit guidance on when to use this tool versus object_attributes, object_find, scene_tree, or scene_list_objects. No exclusions or alternatives are named.

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

object_groupC

Put objects under a new group, optionally named.

NameRequiredDescriptionDefault
nameNo
refsYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false with destructiveHint=false and openWorldHint=false, so a non-destructive mutation is established. The description adds only that naming is optional, which implies a default auto-naming behavior, but never says whether objects are moved out of their current parent, whether existing group membership is replaced, or what happens 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.

Conciseness4/5

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

A single front-loaded sentence with zero filler, and the optional-naming qualifier is placed after the core action. It is appropriately sized for a two-parameter tool, though the brevity borders on under-specification.

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

Completeness2/5

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

Although an output schema exists and annotations cover the safety profile, the description leaves essential operational questions unanswered for a scene-graph mutation: what a ref resolves to, whether grouping reparents or copies, and whether selection state is affected. For a mutation tool with 0% schema coverage this is inadequate.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden. It clarifies only that 'name' is optional; the required 'refs' parameter, which accepts an int, string, or array of either, is never explained as to what a ref actually is (object id, object name, path).

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

Purpose4/5

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

States a specific verb (grouping) and resource (objects) in a scene-graph sense, so the agent knows it creates a container and places objects in it. It does not distinguish itself from the near-sibling object_set_parent, which could be an alternative way to restructure the hierarchy.

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

Usage Guidelines2/5

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

There is no guidance on when to group versus reparent (object_set_parent) or create a fresh scene (scene_new), nor any prerequisite about selection state or existing groups. 'Optionally named' hints at the optional parameter but says nothing about choosing between this tool and its alternatives.

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

object_renameC

Rename an object.

NameRequiredDescriptionDefault
refYes
nameYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, telling the agent this is a non-destructive mutation in a closed world. The description adds no behavioral context beyond that – nothing about whether renaming affects references, whether names must be unique, or what happens 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.

Conciseness3/5

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

A single front-loaded sentence with no waste, which is appropriately terse for a simple tool. However, the brevity crosses into under-specification rather than efficiency, since essential invocation context is absent.

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

Completeness2/5

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

An output schema exists, so return value details need not be explained, and annotations cover the safety profile. But for a mutation with two undocumented parameters and an ambiguous union-typed 'ref', the description should clarify what is being renamed and how the target is identified; it does not.

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

Parameters2/5

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

Schema description coverage is 0%, so both required parameters (ref and name) are undocumented. The description does not compensate at all: it never explains that 'ref' identifies the target object (accepting integer or string) or that 'name' is the new name. Only the verb itself implies their roles.

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

Purpose4/5

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

States a specific verb (rename) and resource (object), so an agent can tell it apart from object_delete, object_duplicate, or object_set_attributes by name alone. It does not explicitly differentiate against nearby siblings that also mutate the object, but 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.

Usage Guidelines2/5

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 versus alternatives like object_set_attributes or object_duplicate, nor on prerequisites such as the object existing or the selection state. The agent is left to infer everything from the one-sentence purpose.

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

object_set_attributesA

Set attributes of any object by name: {"brightness": 3, "color": [1, 0.9, 0.8]} for a light, {"lens": {"dofStop": 2.8}} or {"lens.dofStop": 2.8} for a camera, {"density": 0.2} for fog, {"opacity": 0.5} for a shadow catcher.

NameRequiredDescriptionDefault
refYes
attributesYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare non-readOnly, non-destructive, and non-openWorld, so safety is covered. The description adds the dot-notation alternative for nested keys, a useful behavioral detail, but does not explain error handling, validation, or whether attribute names are free-form. With annotations covering the basics, 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.

Conciseness5/5

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

A single sentence with concrete examples, front-loaded with the action, and every example earns its place by illustrating attribute shapes for different object types. No wasted words.

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

Completeness4/5

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

An output schema exists so return values needn't be explained, and annotations cover safety. The description gives enough to call the tool for common attribute shapes, but the ref parameter's expected value (name vs ID) remains ambiguous, which is a minor gap for a required parameter.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It provides rich examples for the attributes object (brightness, color, nested lens, density, opacity) and shows dot-notation, which is helpful. However, it barely describes the ref parameter ('by name'), leaving the integer/string union unexplained. Partial compensation justifies a 3.

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

Purpose5/5

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

States a specific verb 'Set' and resource 'attributes of any object', and the examples clarify which object types and attribute shapes are targeted. This distinguishes it from narrower sibling setters like object_set_transform, object_set_visible, and object_rename.

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

Usage Guidelines3/5

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

The examples imply when to use it for lights, cameras, fog, and shadow catchers, but there is no explicit guidance on when to prefer it over object_set_transform or object_attributes, nor any exclusions or prerequisites. Usage is inferable but not stated.

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

object_set_parentA

Re-parent an object; without parent it moves to the scene root.

NameRequiredDescriptionDefault
refYes
parentNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, non-destructive, closed-world mutation, so the safety profile is covered. The description adds a genuinely useful behavioral detail — omitting `parent` detaches to the scene root — but omits key reparenting semantics such as whether world transform is preserved or whether cycles are rejected.

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

Conciseness5/5

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

One short sentence with the primary action front-loaded and the default-case nuance immediately after; no filler or restatement of the tool name.

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

Completeness3/5

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

An output schema exists, so return values need no explanation, and the mutation semantics of `parent` are covered. However, with `ref` undocumented and no statement about transform preservation or cycle handling, an agent still lacks information needed to call this correctly in edge cases.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry the burden. It explains `parent` well, including the null default and its root-detach consequence, but says nothing about `ref`, leaving the agent to guess whether it is an object id, name, or path despite the integer|string union.

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

Purpose4/5

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

States a specific verb and resource ('Re-parent an object') plus the scope effect of the default case ('moves to the scene root'). It does not explicitly contrast with nearby siblings like object_group or object_set_transform, but the operation is unambiguous.

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

Usage Guidelines3/5

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

Usage is implied by the verb: use it to change hierarchy, omit `parent` to detach to root. There is no explicit guidance on when to prefer this over object_group or how it interacts with selection-based tools, leaving the agent to infer context.

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

object_set_transformA

Set position, rotation (degrees), scale or pivot (each three numbers) of a transform object; omitted ones stay.

NameRequiredDescriptionDefault
refYes
pivotNo
scaleNo
positionNo
rotationNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already establish that this is a non-read-only, non-destructive, closed-world mutation. The description adds valuable behavior beyond that: partial updates leave omitted transform components unchanged, and rotation is specified in degrees. It does not discuss undo/error behavior, but the added context is meaningful.

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

Conciseness5/5

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

A single tightly written sentence that front-loads the operation and packs the key field, unit, and partial-update details without waste.

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

Completeness3/5

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

The description is adequate for a simple mutation tool and does not need to explain return values because an output schema exists. However, for a 5-parameter tool with 0% schema coverage, the unexplained required 'ref' parameter and lack of usage context are notable gaps.

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

Parameters3/5

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

With 0% schema description coverage, the description must explain parameters. It documents the four optional transform fields as three-number arrays, including rotation units and omission semantics, but the required 'ref' parameter is not explained at all.

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

Purpose4/5

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

States a specific verb and resource: setting position, rotation, scale, or pivot on a transform object, and clarifies the units for rotation. It does not explicitly contrast with siblings like object_set_parent or object_set_attributes, but the transform-specific fields make the distinction clear.

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

Usage Guidelines2/5

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

Explains what the tool does, but gives no explicit when-to-use guidance, prerequisites, or alternatives. The partial-update note ('omitted ones stay') is useful but is behavioral semantics rather than usage routing.

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

object_set_visibleA

Show or hide groups, lights, cameras or bake nodes. Refuses submeshes always and meshes unless allow_mesh is true: in bake scenes those flags corrupt bakes or crash Toolbag on load. For bake scenes use baker_set_visible or baker_isolate.

NameRequiredDescriptionDefault
refsYes
visibleYes
allow_meshNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only declare that this is not read-only and not destructive; the description goes well beyond by disclosing the refusal behavior for submeshes/meshes and the concrete failure mode ('corrupt bakes or crash Toolbag on load'). It doesn't describe what happens to already-invisible objects or the response shape, but the risk disclosure is the high-value information here.

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

Conciseness4/5

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

Three tight sentences with the capability stated first and the routing hint last. The middle sentence about refusals is slightly compressed ('Refuses submeshes always') but no sentence is wasted.

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

Completeness4/5

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

An output schema exists so return values needn't be explained, and the description covers scope, hidden refusal rules, and safer alternatives. The remaining gap is the ambiguous `refs` parameter format, which an agent must guess from the anyOf schema alone.

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

Parameters3/5

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

Schema description coverage is 0% across 3 parameters, so the description must compensate. It does explain allow_mesh's effect and why it exists, but says nothing about what form `refs` takes (id vs name vs array) or that `visible` is the boolean toggle. Partial compensation only.

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

Purpose5/5

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

States a specific verb+resource ('Show or hide groups, lights, cameras or bake nodes') and enumerates exactly which object types it applies to. The agent can distinguish it from baker_set_visible without opening either schema, since the description explicitly routes bake scenes elsewhere.

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

Usage Guidelines5/5

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

Gives explicit exclusions ('Refuses submeshes always and meshes unless allow_mesh is true') and names two alternative tools (baker_set_visible, baker_isolate) with the condition that selects them ('For bake scenes'). This is exactly the when/when-not/alternatives structure.

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

preferences_getB
Read-onlyIdempotent

Toolbag application preferences, all or the given keys (e.g. autoTextureReload, defaultTangentMethod, rayTraceBackend).

NameRequiredDescriptionDefault
keysNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds value by naming concrete preference keys (autoTextureReload, defaultTangentMethod, rayTraceBackend), but says nothing about behavior with unknown keys or the shape of the response (the output schema handles the latter).

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

Conciseness4/5

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

A single compact sentence with the scope decision ('all or the given keys') front-loaded and concrete examples appended. No filler, though it is a fragment rather than a complete statement of action.

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

Completeness3/5

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

With an output schema and full annotations, the description doesn't need to explain return values or safety. It is adequate for a simple getter, but omits what happens with invalid/unrecognized keys and never references preferences_set, leaving a small gap an agent would want covered.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the load for the single 'keys' parameter — and it does: it explains that omitting keys returns all preferences and supplies three real key names as examples. Only the exact key format/casing rules remain unspecified.

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

Purpose4/5

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

The description names the resource (Toolbag application preferences) and clarifies the scope — either all preferences or only the supplied keys — which lets an agent distinguish it from the sibling preferences_set. It reads as a noun phrase rather than an explicit verb, but combined with the name the retrieval 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.

Usage Guidelines2/5

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

There is no explicit when-to-use guidance and no mention of preferences_set as the write-side alternative. The only usage hint is implicit in 'all or the given keys' (omit keys to get everything), which is really parameter behavior rather than routing guidance.

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

preferences_setA

Set one Toolbag application preference (see preferences_get for keys).

NameRequiredDescriptionDefault
keyYes
valueYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

Annotations already declare this is a non-destructive, non-open-world write, so the safety profile is covered. The description adds nothing beyond that: no mention of whether changes persist across sessions, what happens on an unknown key, or whether values are coerced. For a mutation with 0% schema coverage, 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.

Conciseness5/5

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

One short sentence that front-loads the action and folds in the cross-reference. No wasted words.

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

Completeness3/5

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

An output schema exists, so return values needn't be explained, and annotations cover the write semantics. What's missing is the shape of a valid key/value pair — the one thing an agent must get right to call this successfully — since the schema provides no hints.

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

Parameters3/5

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

Schema description coverage is 0% and neither key nor value is documented in the schema, so the description does real work by routing the agent to preferences_get for valid keys. It says nothing about the value parameter's expected type or format, so the compensation is only partial.

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

Purpose4/5

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

States a specific verb and resource: sets a single Toolbag application preference. It's clearly distinguishable from the sibling preferences_get (read vs write), though it doesn't say what kinds of preferences exist, leaving that to the referenced tool.

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

Usage Guidelines4/5

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

Points the agent at preferences_get to discover valid keys, which is the main prerequisite for using this tool. It doesn't offer exclusions or say when a preference change is preferable to other setters (sky_set, render_set), but the usage context is clear.

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

render_export_viewerC

Export a Marmoset Viewer (.mview) archive of the scene.

NameRequiredDescriptionDefault
pathYes
titleNo
widthNo
authorNo
heightNo
author_urlNo
texture_qualityNohigh
export_animationsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare non-readonly, non-destructive, closed-world behavior, so safety is covered. Beyond the file extension, the description says nothing about what the export writes, how long it takes, how textures/animations are handled, or what the defaults mean.

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

Conciseness3/5

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

A single front-loaded sentence with no wasted words, but the brevity reflects under-specification rather than efficient communication for an eight-parameter tool.

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

Completeness2/5

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

An output schema exists, so return values needn't be explained. However, with eight undocumented parameters and no behavioral context, the description is far too thin for an export tool that manipulates scene data and writes a file.

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

Parameters1/5

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

Eight parameters with 0% schema description coverage means the description carries the full burden, yet it explains none of them. Width/height defaulting to -1, the unconstrained texture_quality string, export_animations, and the optional metadata fields are all left for the agent to guess.

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

Purpose4/5

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

States a specific verb ('Export') and resource ('Marmoset Viewer (.mview) archive of the scene'), which is clear enough to separate it from render_image or render_videos. It stops short of explicitly contrasting with the sibling render/export tools, so it doesn't reach 5.

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

Usage Guidelines2/5

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

No indication of when to choose this over render_image, render_images, render_videos, or scene_export, and no prerequisites or exclusions are given. The agent must infer 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.

render_getB
Read-onlyIdempotent

The render object: options (renderer, ray tracing, shadows, occlusion, wireframe, watermark), image and video output settings (outputPath, format, width, height, samples, transparency), and the cameras and passes enabled for export.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds useful scope by listing the render setting categories included in the returned object, but it does not disclose any additional behavioral details such as rate limits or authentication needs.

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

Conciseness4/5

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

The description is a single sentence with no wasted words and front-loads the resource being described. The list of fields is dense but appropriately scoped for a getter.

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

Completeness4/5

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

With an output schema present and zero input parameters, the description does not need to explain return values in detail. It gives enough context about the returned render object's contents, though it could more explicitly say it retrieves the current render settings and distinguish it from render_set.

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

Parameters4/5

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

The tool has zero parameters, so there are no parameter semantics to explain. The baseline for zero-parameter tools is 4, and nothing in the description undermines that.

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

Purpose4/5

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

The description clearly identifies the resource as the render settings object and enumerates the categories it contains: renderer options, output settings, and enabled cameras/passes. It does not explicitly state 'get' or distinguish itself from render_set, but the resource scope is unambiguous enough for an agent to infer retrieval.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus render_set, render_set_cameras, or render_set_passes. The getter nature is implied by the name and the word 'object', but the description provides no conditions, alternatives, or prerequisites.

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

render_imageB

Render one image with the active camera (or the given one) using the render object's settings; width, height and sampling default to those settings. With path the file is written (format by extension). Can take minutes with ray tracing.

NameRequiredDescriptionDefault
pathNo
widthNo
cameraNo
heightNo
samplingNo
transparencyNo
viewport_passNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare non-read-only, non-destructive, non-open-world, so safety is largely covered. The description adds two genuinely useful traits beyond that: writing to disk when path is set, format chosen by extension, and that ray tracing can take minutes. It says nothing about what happens when path is omitted or what transparency/viewport_pass do.

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

Conciseness4/5

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

Two dense sentences, no filler, with the core action and settings scope front-loaded and the caveat (slow with ray tracing) at the end where it still reads. Slightly awkward semicolon chaining but nothing wasteful.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and the disk-write and runtime behavior are covered. However, with seven parameters at 0% schema coverage, two parameters (transparency, viewport_pass) and the camera identifier format are undocumented, leaving real gaps for a moderately complex render tool.

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

Parameters2/5

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

Schema coverage is 0%, so the description must carry all seven parameters. It explains path (format by extension), width/height/sampling (default to render settings, implying the -1 sentinel) and camera (active or given), but transparency and viewport_pass are completely unaddressed and there is no hint of accepted camera identifier forms.

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

Purpose4/5

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

States a specific verb and resource ('Render one image') plus the governing camera and render-object settings, which lets an agent distinguish it from the plural siblings render_images and render_videos. It stops short of explicitly naming those siblings, so differentiation is implied rather than stated.

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

Usage Guidelines3/5

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

'Render one image' versus the sibling 'render_images'/'render_videos' hints at the single-vs-batch distinction, and the note about path writing implies when output goes to disk. There is no explicit when-to-use/when-not guidance, no prerequisites (active camera must exist), and no routing to alternatives.

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

render_imagesB

Render all enabled cameras and passes into the image output folder (render_get: images.outputPath). Returns the files written.

NameRequiredDescriptionDefault
widthNo
heightNo
samplingNo
transparencyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare this is a non-readonly, non-destructive, closed-world operation, so the safety profile is covered. The description usefully adds that files are written to the images output folder and returns the written files. It omits meaningful traits for a render job: whether existing files are overwritten, whether the call blocks until done, and expected cost/duration.

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

Conciseness5/5

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

Two tight sentences with the scope stated first and the return value second; no filler, no repetition of the tool name.

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

Completeness2/5

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

An output schema exists, so return values needn't be explained. However, with a block-writing render operation and 0% parameter documentation, the description should cover the -1 sentinel semantics and the interaction with render settings; that omission leaves the agent guessing about how to call it with overrides.

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

Parameters2/5

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

Schema description coverage is 0% — the four parameters (width, height, sampling, transparency) carry only titles and defaults of -1/false, and the description says nothing about them. It does not explain that -1 means 'inherit from render settings' or how these overrides interact with the configured render settings, which is exactly the gap the description should fill.

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

Purpose4/5

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

States a specific verb and resource — render all enabled cameras and passes into the image output folder — and names the destination via render_get: images.outputPath. It is distinguishable from render_image and render_videos by the plural 'cameras and passes' scope, though it never explicitly contrasts 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.

Usage Guidelines2/5

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

There is no statement of when to use this versus render_image, render_videos, or render_export_viewer, and no prerequisite is spelled out (e.g. that cameras/passes must be enabled via render_set_cameras/render_set_passes first). 'Enabled cameras and passes' hints at a precondition but leaves the agent to infer it.

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

render_setB

Change render settings: options ({"renderer": "raytrace", "rayTraceBounces": 4, "shadowQuality": "High"}), images ({"outputPath": "C:/out", "format": "PNG", "width": 1920, "height": 1080, "samples": 256, "transparency": true}), videos (same keys).

NameRequiredDescriptionDefault
imagesNo
videosNo
optionsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered and the bar is lower. The description adds nothing about whether settings are merged with existing values or fully replaced, whether changes persist across sessions, or whether a render must be idle — the behavioral questions that actually matter for a mutation tool.

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

Conciseness4/5

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

A single front-loaded sentence with the verb and setting groups first, then the example payloads. The JSON samples earn their space given the empty schema, though "videos (same keys)" is a compression that costs clarity.

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

Completeness3/5

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

An output schema exists so return values need not be described, and annotations cover the safety profile. Still, for a three-parameter mutation tool with completely undocumented object payloads, the definition leaves an agent unsure whether omitted keys are preserved or reset, which is essential before calling it.

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

Parameters3/5

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

Schema coverage is 0% and all three parameters are bare `additionalProperties: true` objects, so the description is the only source of key names — and it does supply concrete example keys (renderer, rayTraceBounces, width, height, samples, transparency). However, "videos (same keys)" is ambiguous about whether every image key truly applies, and no key semantics or mutation-vs-replace behavior is explained.

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

Purpose4/5

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

States a specific verb ("Change") and resource ("render settings") and enumerates the three settable groups (options, images, videos), so the agent knows exactly what the tool mutates. It does not explicitly contrast itself with render_set_cameras or render_set_passes, which sit in the same namespace and could be confused with it.

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

Usage Guidelines2/5

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

There is no statement of when to use this versus render_get, render_set_cameras, render_set_passes, or render_image(s)/videos. The only signal is the name itself, which is weaker than naming the sibling tools to route to.

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

render_set_camerasC

Choose which cameras render on render_images and render_videos.

NameRequiredDescriptionDefault
enableNo
disableNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare a non-destructive, non-open-world mutation, so the safety profile is covered. The description adds nothing beyond purpose: it never says whether the enable/disable lists are additive or replacing, whether disable wins over enable, whether both-null resets to defaults, or whether the setting persists in the scene file vs. only for the session.

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

Conciseness4/5

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

A single front-loaded sentence with zero filler, correctly naming the downstream tools. It is efficient, though its terseness is part of why the behavioral and parameter gaps exist.

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

Completeness2/5

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

An output schema exists so return values need no explanation, but for a two-parameter configuration mutation with 0% schema description coverage the description does too little: an agent cannot tell what values to pass or what the enable/disable semantics are.

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

Parameters2/5

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

Schema description coverage is 0% and the two parameters (enable, disable) are opaque anyOf arrays of integer-or-string with no titles beyond the key names. The description gestures at 'which cameras' but never says the values are camera names/indices, nor how the two lists interact, so it does not compensate for the coverage gap.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb+resource: choosing which cameras get rendered, scoped explicitly to the render_images and render_videos tools. That tells an agent the tool is a configuration step in front of those two render calls, though it never distinguishes itself from near siblings like camera_set_active or render_set.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'render on render_images and render_videos' implies the tool is used to configure cameras before invoking those renders, but there is no explicit when-to-use statement, no prerequisites, and no mention of alternatives such as camera_set_active. Usage must be inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_set_passesA

Switch render passes on or off by name (render_get lists them).

NameRequiredDescriptionDefault
enableNo
disableNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-read-only, non-destructive, closed-world mutation, and the description is consistent with that. It adds that passes are addressed by name, but says nothing about whether toggling a pass discards its settings, whether unspecified passes are left untouched, or whether the operation is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence, front-loaded with the action and resource, with the sibling pointer placed where it is most useful. Nothing is wasted or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the discovery sibling is referenced. However, for a two-parameter mutation with zero schema descriptions, the definition leaves the interaction between enable and disable and the effect on unlisted passes unspecified, which is a real gap for an agent composing a call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load, and it only partially does: 'by name' clarifies that the string arrays hold pass names, and 'on or off' loosely maps to enable/disable. It never explains whether both lists may be supplied simultaneously, which wins on conflict, or what null means, so half the parameter semantics remain implicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb ('switch ... on or off') and a specific resource ('render passes'), plus the keying method ('by name'). It also names the sibling that enumerates passes, so an agent can distinguish this from render_get and render_set without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical '(render_get lists them)' gives the prerequisite step for discovering valid pass names, which is the main usage hurdle. It stops short of stating when to prefer this over the sibling render_set or what happens if a name does not match, so no explicit exclusions are offered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_videosC

Render the animation into the video output folder (render_get: videos.outputPath). Can take long.

NameRequiredDescriptionDefault
widthNo
heightNo
samplingNo
transparencyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (not read-only, not destructive, not open-world), so the description's added value is the output location and the 'Can take long' duration warning, which is genuinely useful for timeout/async planning. It omits whether existing files are overwritten, progress reporting, or cancelability, which matter for a long-running write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and destination, followed by the runtime caveat. No filler; the only weakness is that brevity here comes at the cost of omitting necessary parameter context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but for a multi-parameter, long-running mutation with zero schema documentation, the description leaves critical gaps: parameter meaning, overwrite behavior, and setup prerequisites are all absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All four parameters (width, height, sampling, transparency) have 0% schema description coverage and defaults that are opaque sentinels (-1, false). The description says nothing about them, leaving an agent unable to know that -1 likely means 'use project settings' or what sampling controls.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: rendering the animation into the video output folder, with a pointer to where that folder is defined (render_get: videos.outputPath). This implicitly separates it from render_image/render_images (still vs. sequence), though the sibling distinction is never made explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to choose this over render_image or render_images, no prerequisites (cameras set via render_set_cameras, passes, timeline range), and no note about what happens if a render is already in progress. Usage can only be inferred from the phrase 'the animation'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scene_boundsB
Read-onlyIdempotent

Bounds of the whole scene as [min_xyz, max_xyz] plus the unit scale.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds that the payload is axis-aligned min/max plus a unit scale, but since an output schema exists this return detail is partly redundant and no extra behavior (units assumed, empty-scene behavior) is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with the resource front-loaded and the return format appended; nothing wasted. It is, however, terse to the point of omitting any routing context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, a full output schema, and complete annotations, most of the burden is already carried by structured data, so the description is minimally sufficient. It still leaves the agent guessing about scene-state prerequisites and how it differs from other scene-wide queries in a very large sibling set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing to document and the baseline 4 applies. The description adds no misleading parameter-like language.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (scene bounds) and the exact result shape ([min_xyz, max_xyz] plus unit scale), so an agent knows precisely what comes back. It doesn't distinguish itself from nearby siblings like scene_info or camera_frame, which keeps it 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no indication of when to call this versus scene_info, scene_list_objects, or selection_get, and no preconditions such as requiring a loaded scene. The agent must infer usage purely from the name and result shape.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scene_exportA

Export the scene; the format follows the extension: .fbx, .obj, .glb/.gltf, .usd/.usda/.usdc/.usdz, .dae. options are exporter flags such as {"materials": false, "triangulate": true, "embedassets": true}.

NameRequiredDescriptionDefault
pathYes
optionsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare that this is a non-read-only, non-destructive, closed-world operation. The description adds useful behavior about format selection and exporter options, but it does not disclose overwrite behavior, error conditions, or whether the target path must already exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: it states the core action first, then format behavior, then parameter examples. Every clause contributes useful information without unnecessary repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need not be described. The description is nearly complete for a two-parameter export tool, but it leaves out overwrite semantics and a fuller definition of valid option keys, which would matter for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the parameter burden. It explains that the output format is determined by the path extension and gives concrete examples of exporter flags accepted by options, covering both parameters with meaningful context, though the options list is not exhaustive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: 'Export the scene.' It also lists supported export formats, which makes the tool's role clear. However, it does not explicitly differentiate itself from nearby tools like scene_save or material_export, relying on the reader to infer the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by explaining that the export format follows the file extension and that options are exporter flags. It does not state when to choose this tool over scene_save, material_export, or render_export_viewer, nor does it mention exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scene_import_modelA

Import a model file (FBX, OBJ, glTF, USD, ...) into the scene with the scene's import settings. Returns the imported root and the new objects.

NameRequiredDescriptionDefault
pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-read-only, non-destructive, closed-world operation, so the safety bar is partly met. The description adds meaningful context beyond that: import runs through the scene's existing import settings and adds new objects to the current scene rather than replacing it, plus it names the return payload.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, zero filler, with the core action and format list front-loaded and the return value relegated to a trailing clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only one parameter, full annotation coverage, and an output schema that documents return values, the description covers the essentials. Minor residual gaps are path format conventions and whether existing objects are affected, which an agent might still want.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the weight for the single 'path' parameter. It partially does by stating the file is a model file and listing accepted formats, but it does not specify absolute vs. relative paths, whether directories are allowed, or error behavior for unsupported formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('Import a model file ... into the scene') and enumerates supported formats (FBX, OBJ, glTF, USD), which separates it from generic scene loading. It does not explicitly distinguish itself from scene_load or material_import, but the model-file framing makes the intent clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the tool for bringing model geometry into a scene. There is no mention of when to prefer it over scene_load, 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.

scene_infoC
Read-onlyIdempotent

Scene path, unit scale, bounds, object counts by type, bake projects, selection.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the full safety profile is covered elsewhere. The description adds no behavior beyond annotations: no cost, latency, freshness, or scope notes. Its content (the returned fields) is redundant with the declared output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single short fragment with no filler, which is good, but it reads as a noun-phrase dump without a leading verb or purpose statement. It is under-specified rather than verbose, and the most important information (that it is a read-only summary getter) is not front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description is not obligated to document return values, and annotations cover the safety profile. What is missing is disambiguation from scene_bounds, scene_list_objects, scene_tree, and selection_get, which matters a lot in a 70+ tool sibling set where several tools answer overlapping scene questions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. The field enumeration does not correspond to any inputs and does not need to.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a bare list of returned fields (scene path, unit scale, bounds, object counts, bake projects, selection) with no verb, so the action is only implied: 'get scene info'. It does overlap-flag the resource (the scene) which distinguishes it from object- or material-level siblings, but it never states that it retrieves rather than sets these values.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus the many closely related siblings such as status, scene_bounds, scene_list_objects, scene_tree, or selection_get. An agent has to infer from the field list which tool is the right one for a given question, and nothing tells it that this is the broad summary tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scene_list_objectsB
Read-onlyIdempotent

Flat list of scene objects (uid, name, type, parent, visibility, transform). object_type filters by class: MeshObject, SubMeshObject, BakerObject, BakerTargetObject, LightObject, CameraObject, SkyBoxObject, FogObject, SceneObject (groups). parent restricts to the descendants of one object.

NameRequiredDescriptionDefault
limitNo
parentNo
object_typeNo
name_containsNo
include_hiddenNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds the useful fact that results are a flat (non-hierarchical) enumeration and names the returned fields, but it omits truncation/pagination behavior despite a default `limit` of 500, and says nothing about whether hidden objects appear by default.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, front-loaded, and every clause carries information — the field list and the two filter semantics. Slightly telegraphic, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so listing returned fields is somewhat redundant but harmless, and the two filters are well explained. The notable gap for a 5-parameter list tool is the unstated default page size (`limit`=500) and the hidden-object default, which affect what the agent actually receives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry parameter meaning; it does well for `object_type` (enumerating the accepted classes, which the schema lacks entirely) and adequately for `parent`. It leaves `limit`, `name_contains`, and especially `include_hidden` (default true) undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb/resource (flat list of scene objects) and enumerates the returned fields, so the agent knows exactly what comes back. 'Flat list' implicitly distinguishes it from the hierarchical `scene_tree`, but that contrast is never made explicit, and it does not mention `object_find`/`object_get` as alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains filter mechanics but never says when to choose this over `scene_tree`, `object_find`, or `selection_get`, all of which return overlapping data. An agent must infer the routing decision from the word 'flat' alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scene_loadA
Destructive

Load a .tbscene file. Unsaved changes in the current scene are lost without a prompt; save a large scene first (Toolbag 5.0.2 has crashed tearing big bake scenes down).

NameRequiredDescriptionDefault
pathYes
download_missing_library_assetsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the destructiveHint=true annotation by spelling out the exact failure mode: current scene changes are lost with no confirmation prompt. It also flags a version-specific crash risk when tearing down large bake scenes, which is information an agent cannot get from any structured field.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the action and immediately following with the consequence. Nothing is padding; the parenthetical adds real risk information rather than noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The destructive-behavior side is thoroughly covered, and the output schema means return values need no explanation. The gap is the undocumented `download_missing_library_assets` flag, which matters when loading a scene whose library assets are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry both parameters, but it only implies that `path` points at a .tbscene file and says nothing about `download_missing_library_assets`. An agent reading only the description would not know that missing library assets can be fetched automatically.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource ("Load a .tbscene file"), which is unambiguous against siblings like scene_save and scene_new. It doesn't explicitly say how it differs from scene_import_model, but the file-format specificity does most of that work.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear precondition (save first, because unsaved work is discarded without a prompt) and a situational warning for large bake scenes. It stops short of naming scene_save as the alternative action, so the routing 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.

scene_newA
Destructive

New empty scene. Unsaved changes are lost without a prompt. Save a large scene first: Toolbag 5.0.2 has crashed here on big bake scenes.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the destructiveHint=true annotation by disclosing that there is no confirmation prompt, that unsaved work is irrecoverably lost, and that Toolbag 5.0.2 has a specific crash risk on large bake scenes. That version-specific hazard is exactly the kind of context structured fields cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core action and followed immediately by the risk warning. Every sentence carries distinct information; none could be removed without losing a real signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists so return values need no explanation, annotations cover the safety profile, and there are no parameters. The remaining burden — destructive side effects and a known crash condition — is fully addressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; nothing is gained or lost here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: creates a new empty scene. It's clearly distinguishable from scene_load and scene_save by name and effect, though it never explicitly names those siblings as alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Save a large scene first' gives a concrete precondition that implicitly routes the agent to scene_save, and 'Unsaved changes are lost without a prompt' establishes when not to call it casually. It stops short of explicitly naming alternatives or excluding cases like loading an existing file.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scene_saveA

Save the scene to its current file, or to path (save as). Overwrites without asking.

NameRequiredDescriptionDefault
pathNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the key trait annotations do not convey: it overwrites silently with no confirmation prompt, which matters for an agent making an irreversible file change. There is a mild tension with destructiveHint=false, but 'overwrite in place' is the normal save semantic rather than a destructive operation, so this reads as disclosure rather than contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, and the destructive overwrite warning is front-loaded so it cannot be missed. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering read/write and world scope, the description is nearly complete for a one-parameter tool. Minor gaps: behavior on a never-saved scene and whether a new path creates directories or must already exist.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the `path` property has no description, so the description carries the burden — and it does: `path` means 'save as this location,' and its absence means 'save to the current file.' That null/default semantics is exactly what the schema omits.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (save the scene) and immediately disambiguates the two modes: current file vs. `path` as save-as. It does not, however, distinguish itself from siblings like `scene_export` or `scene_import_model`, which an agent must infer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The path/no-path split implies when each mode applies, so usage is implied rather than spelled out. There is no explicit when-not guidance (e.g., 'use scene_export to write a different format or copy elsewhere') and no note about unsaved scenes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scene_treeB
Read-onlyIdempotent

Object hierarchy as nested nodes, depth levels deep (deeper levels show the child count only). Good first look at an unknown scene.

NameRequiredDescriptionDefault
rootNo
depthNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds one genuinely useful behavioral detail—deeper levels return only a child count rather than full subtrees—but says nothing about cost or size limits for large scenes with the default depth of 4.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the result shape before the usage hint. Nothing redundant and nothing buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the return shape need not be spelled out, and the truncation rule is a nice addition. However, for a tool whose only ambiguous input is `root`, leaving that parameter undocumented makes the definition incomplete for confident invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the load. It explains what `depth` controls and what happens past the cutoff, but `root` is entirely unexplained despite accepting an integer OR a string (object name vs. handle?), which is exactly the ambiguity an agent needs resolved to call this correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific resource (object hierarchy) and states the shape of the result (nested nodes), which separates it from flat listings like scene_list_objects and single-object reads like object_get or object_find. It does not explicitly name those siblings, so an agent must infer the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Good first look at an unknown scene" implies an orientation use case, but there is no explicit when-not guidance and no mention of alternatives such as scene_list_objects or object_find for targeted lookups. Usage is suggested rather than specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

selection_clearA

Deselect everything.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false), so the bar is lower. The description adds the useful scope detail that the clear is total ('everything') rather than partial, but says nothing about behavior when nothing is selected or the response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two words, front-loaded, zero waste. For a no-argument state-reset tool this is exactly the right size, with no filler or restated name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, full annotation coverage, and an output schema to describe the return, the description supplies everything needed to invoke the tool correctly. Only the edge case of clearing when nothing is selected is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for 0 params is 4 and nothing here undermines that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific action (deselect) and its object (everything), so an agent can tell it clears the selection rather than modifying it. It is distinguishable from selection_set and selection_get by semantics, though it never names them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is implied clearly enough — call this to wipe the current selection — but there is no explicit guidance on when to prefer it over selection_set with an empty list, and no mention of preconditions or side effects.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

selection_getC
Read-onlyIdempotent

The currently selected objects.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds no behavior beyond that — it doesn't say what is returned when nothing is selected, whether multiple objects can be selected, or how order is determined.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three words is appropriately short and front-loaded, but it is a sentence fragment rather than a definition, so the brevity comes from under-specification rather than economy. Adding a verb like 'Returns' would cost one word and materially improve it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read with rich annotations and an output schema, minimal description is tolerable — the schema explains the return shape. Still, it omits the one thing an agent can't get elsewhere: that there must be an active selection and what happens when the selection is empty.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to clarify — baseline 4 applies. The description neither helps nor hurts here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a bare noun phrase that essentially restates the tool name ('selection_get' → 'the currently selected objects') without a verb or stated behavior. It does identify the resource, but an agent learns nothing it couldn't infer from the name plus the sibling 'selection_set'/'selection_clear'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to call this versus siblings such as 'scene_list_objects', 'object_get', or 'scene_tree', even though 'selection_get' depends on a prior selection existing. No prerequisites or exclusions of any kind.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

selection_setC

Select exactly these objects.

NameRequiredDescriptionDefault
refsYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context with "exactly," implying prior selection is discarded rather than appended, but it says nothing about invalid refs, partial success, or what state changes are observable afterward.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single four-word sentence with the selection-replacement semantics front-loaded and zero padding. Its brevity is appropriate structurally, even though the content is thin.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be described, but the description leaves the one required parameter's format unexplained and does not confirm replacement vs additive semantics or error behavior for unknown refs. For a state-mutating selection tool, that leaves meaningful gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the single `refs` parameter accepts int, string, or array with no rules. The description's "these objects" only vaguely implies the values are object references; it gives no clue whether they are IDs, names, or paths, or how the array form should be mixed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Select exactly these objects" gives a verb (select) and a resource (objects), and the word "exactly" hints that this replaces the current selection rather than adding to it. But it never says what kind of objects or what a "ref" is, and against siblings like selection_get and selection_clear it barely differentiates its role beyond the name itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when to use this versus selection_get (read current selection), selection_clear (empty it), or object_find (locate objects to select). No prerequisites, no mention of whether it can be called before objects exist, and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sky_compute_proceduralB

Switch the sky to procedural mode (sun by time, day and location) and recompute it.

NameRequiredDescriptionDefault
refNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-read-only, non-destructive, closed-world operation, so the safety bar is lower. The description adds the meaningful side effect that it recomputes the sky after switching mode, but does not say what happens to existing manual sky settings or whether the switch is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence with no filler; the mode switch and the recompute are both stated compactly. It is arguably too terse for the gaps it leaves, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained, and the core action is clear. However, with an undocumented 'ref' parameter and no guidance on how this interacts with sibling sky tools, an agent still has open questions before calling it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single optional 'ref' parameter has 0% schema description coverage and the description never mentions it, so an agent gets no guidance on what to pass or when to omit it. The description only characterizes the operation, not the argument.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb-and-resource pair ('switch the sky to procedural mode ... and recompute it'), which is far more informative than the bare name. It implicitly separates itself from sky_set/sky_load by naming the procedural mode, but never explicitly contrasts 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the tool for entering a sun-by-time/day/location lighting setup. There is no explicit when-to-use vs. sky_set, sky_load, or sky_set_background_image, and no stated prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sky_getC
Read-onlyIdempotent

The sky: mode, brightness, rotation, background, procedural sun settings and its child lights.

NameRequiredDescriptionDefault
refNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is fully covered. The description contributes only a field inventory, which duplicates what the existing output schema provides, and omits behavior an agent would want: what happens with no ref (active scene?), whether missing sky returns an error or defaults, and whether procedural sun results are cached.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is one short front-loaded phrase with no filler, which is fine stylistically. But the terseness crosses into under-specification: the content is a bare field list rather than a statement of action and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only getter with an output schema and rich annotations, the description can be brief — but it still needs to explain the ref argument and the default-target behavior, since neither schema nor annotations cover those. Those gaps are exactly what an agent needs in order to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single parameter 'ref' accepts integer, string, or null with no declared default meaning. The description never mentions ref, so the agent has no idea whether it names a scene, a sky node, or a handle, nor what null implies. One undocumented parameter at 0% coverage requires description compensation that is entirely absent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description enumerates the resource being read (sky mode, brightness, rotation, background, procedural sun, child lights), so an agent can infer this returns sky settings. But it never states a verb — it reads as a noun list rather than 'retrieves the current sky configuration' — and it does nothing to distinguish sky_get from close siblings like sky_set, sky_load, sky_save, or sky_compute_procedural.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance at all. It doesn't say to call this before sky_set to inspect current values, nor how it differs from sky_load or sky_compute_procedural. The agent must infer usage purely from the name suffix.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sky_loadA

Load a sky: a .tbsky file replaces the whole sky, an image (.hdr, .exr, .png, .jpg) becomes the panorama.

NameRequiredDescriptionDefault
refNo
pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds real behavioral context beyond the annotations: a .tbsky load replaces the entire sky, which tells the agent existing sky state is discarded — non-trivial information given destructiveHint=false. It also discloses the format-dependent outcome (panorama replacement vs. full sky swap). It does not cover error handling for unsupported formats or what happens to the prior sky (recoverable or not).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence, front-loaded with the action, that uses a parallel clause to convey both behaviors with zero filler. Nothing could be removed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Return values are covered by the output schema and the safety profile by annotations, so the description's remaining burden is modest. Still, an unexplained `ref` parameter and no note on failure modes for unsupported or missing files leave an agent guessing on a mutating load call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across two parameters, so the description carries the full burden. It only implicitly covers `path` via the file-extension discussion; the `ref` parameter (integer|string|null, default null) is never mentioned and remains completely opaque. With half the parameters undocumented in both schema and description, this falls below the minimum-viable bar.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (load) and resource (sky), and goes further by explaining the two file classes and their distinct effects: .tbsky replaces the whole sky, while an image becomes the panorama. That is a clear, non-tautological purpose. It does not, however, distinguish itself from near siblings such as sky_set, sky_get, or sky_set_background_image, which an agent must disambiguate on its own.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the file-extension branch hints at when each mode applies, which is helpful. But there is no explicit guidance on when to choose this over sky_set or sky_set_background_image, and no mention of prerequisites such as an open scene or a valid file path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sky_saveC

Save the sky as a .tbsky archive.

NameRequiredDescriptionDefault
refNo
pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a non-read-only, non-destructive, closed-world operation, so the safety profile is covered. The description adds the output format (.tbsky archive), but it omits file-write behavior an agent would want, such as whether an existing file at path is overwritten or whether parent directories must exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. It is efficient, though slightly too terse for a tool with an undocumented optional parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but for a file-writing tool with two parameters at 0% schema coverage the description leaves too much open: the role of 'ref', what 'path' points to, and overwrite behavior are all unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does not. The required 'path' is only indirectly implied by 'archive', and the optional 'ref' parameter is never mentioned at all, leaving its meaning and default semantics completely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('Save the sky as a .tbsky archive'), which clearly separates it from read-side siblings like sky_get and sky_load. It stops short of explicitly distinguishing it from scene_save, so it does not reach a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus sky_load or scene_save, and no prerequisites or exclusions. The save-vs-load distinction is only implied by the name 'save'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sky_setB

Set sky attributes: brightness, rotation (degrees), mode ('color', 'sky', 'blurred sky', 'ambient sky'), backgroundColor, blur, and for a procedural sky time, day, latitude, longitude, turbidity, sunBrightness.

NameRequiredDescriptionDefault
refNo
attributesYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (mutation, non-destructive, not open-world), so the description needn't restate that. What it omits is the behavior that matters for a stateful setter: whether unspecified attributes are preserved or reset, whether the change is transient or requires sky_save to persist, and what happens on an invalid attribute name given additionalProperties=true. For a scene-mutating tool these are real gaps, so it adds little beyond the annotation baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence with no filler; the most-relevant common attributes come first and the niche procedural block is deferred to the end. What it lacks is any structural separation between the two attribute groups, which would have aided scanning, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation. But for a mutation tool taking an untyped free-form attribute bag plus an undocumented ref, the description should still say how attributes merge with existing state, what ref defaults to when null, and roughly what the accepted value shapes/ranges are. None of that is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and 'attributes' is a free-form object with additionalProperties=true, so the description's enumeration of keys is the only documentation of the nested payload — that is real added value. However, the 'ref' parameter is left completely unexplained (integer|string|null with no hint whether it targets a sky by name, index, or the active sky), and values get no types or ranges beyond 'rotation (degrees)'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

A clear verb+resource ('Set sky attributes') followed by an enumeration of the specific knobs it touches, including mode enum values and the procedural-sky sub-group. An agent can tell this apart from sky_get/sky_load/sky_save by name alone. It stops short of explicitly naming those siblings or stating how it differs from sky_set_background_image, which is the one adjacent tool it could be confused with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied through the attribute list; the phrase 'for a procedural sky time, day, latitude...' hints that some attributes are mode-conditional, which is genuinely useful context. But there is no explicit when-to-use, no prerequisites (does a sky need to exist? does it need to be the active sky?), and no routing to sky_load or sky_set_background_image for cases this tool doesn't cover.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sky_set_background_imageB

Use an image as the sky's background; an empty path clears it.

NameRequiredDescriptionDefault
refNo
pathNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the description does not need to restate safety. It adds the useful behavioral detail that an empty path clears the background, but says nothing about whether an existing sky is required or what the ref parameter controls.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single compact sentence with the main action and clearing behavior front-loaded. There is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with two undocumented parameters and 0% schema coverage, the description is too thin. The output schema exists so return values need not be explained, but the missing ref semantics and lack of usage context make it incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It only hints that path can be empty to clear the background and never mentions the ref parameter at all, leaving a key input undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Use an image as the sky's background') and clarifies the clearing behavior, so an agent can tell what the tool does. It does not explicitly differentiate from siblings like sky_set or sky_load, but the resource is precise enough.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage hint is that an empty path clears the background. There is no guidance on when to prefer this over sky_set, sky_load, or sky_compute_procedural, and no 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.

statusA
Read-onlyIdempotent

Toolbag version, graphics adapter, scene path, counts and plugin state (port, Python switch, call counter). Start here: it tells whether the plugin is reachable.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered structurally. The description adds real value on top by framing the call as a reachability probe and naming the plugin-state fields (port, Python switch, call counter) that indicate health.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, and the diagnostic framing ('Start here') is placed after the field list but still prominent. The parenthetical field grouping is dense but informative rather than wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering safety, the description need only say what the tool is and when to reach for it, which it does. Nothing required for correct invocation is missing; only explicit routing versus sibling info tools is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the schema is empty and fully described. Baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description enumerates exactly what the tool reports (Toolbag version, graphics adapter, scene path, counts, plugin state including port/Python switch/call counter), which is well beyond the bare name 'status'. It doesn't explicitly contrast with siblings like capabilities or scene_info, 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Start here: it tells whether the plugin is reachable' gives a concrete condition for selecting this tool as a first diagnostic step. It does not state when to prefer capabilities or scene_info instead, so no exclusion guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

timeline_getB
Read-onlyIdempotent

Animation timeline: time, frame, total frames, frame rate, selection, speed.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a read-only, idempotent, non-destructive, closed-world operation, so the safety profile is covered. The description adds only a list of timeline fields and does not disclose additional behavior such as whether it returns current state, units, or dynamic values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact fragment with no wasted words and is front-loaded with the resource. It is very terse, however, and its fragmentary style omits an explicit action verb.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read tool with rich annotations and an output schema, the description is largely sufficient because the output schema defines the return values. It could still more clearly state that it retrieves the current animation timeline state.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter semantics burden for the description to carry. The baseline for zero-parameter tools applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource ('Animation timeline') and lists the fields involved, but it never uses a verb like 'get' or 'returns'. The purpose is inferable from the tool name and sibling timeline_set, but the description itself only vaguely states 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool instead of timeline_set or other scene-inspection tools. The field list implies it is for reading timeline values, but no conditions, alternatives, or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

timeline_setA

Set the timeline: time in seconds or frame, total frames, frame rate (resamples keyframes), selection range, playback speed; play=true/false starts or stops playback.

NameRequiredDescriptionDefault
playNo
timeNo
frameNo
frame_rateNo
total_framesNo
selection_endNo
playback_speedNo
selection_startNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-destructive mutation; the description adds a genuinely useful side effect that 'frame_rate' resamples keyframes. However, it does not disclose what happens when no parameters are supplied, whether 'time' and 'frame' conflict, or any reset/clamping behavior — meaningful gaps 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single semicolon-delimited sentence that front-loads the core action and packs every controllable facet without filler. It borders on dense list-reading, but no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers all eight parameters. What is missing is the semantics of an all-optional mutation tool: what a no-argument call does, and how mutually exclusive time/frame inputs are resolved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden, and it largely does: time/frame, total_frames, frame_rate, playback_speed, play, and 'selection range' (mapping to selection_start/selection_end) are all named. The gap is that it never clarifies precedence between 'time' and 'frame' or the units/coordinate basis of selection bounds.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Set the timeline') and enumerates the exact facets it controls: time, frame, total frames, frame rate, selection range, playback speed, play state. It is clearly distinct from the sibling timeline_get by name and function, though it never says so explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the field list and by 'play=true/false starts or stops playback', which tells the agent how to trigger playback. There is no explicit when-to-use guidance, no statement about the relationship to timeline_get (read vs. write), and no note on how to combine partial updates.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

toolbag_quitA
Destructive

Quit Toolbag. Unsaved changes are lost without a prompt; the plugin answers and Toolbag closes right after.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, and the description adds genuinely new behavioral detail: there is no confirmation prompt and the process closes immediately after responding. It does not say what happens to in-flight work or subsequent tool calls, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and followed by the risk. The trailing phrase is slightly awkwardly worded ("the plugin answers and Toolbag closes right after") but carries real meaning about the abrupt close.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter, destructive termination tool with an output schema already covering the response, the description supplies exactly the missing piece: the data-loss risk and the absence of a confirmation prompt. Nothing needed to call it correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline of 4 applies; there is nothing for the description to disambiguate and it correctly says nothing about inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Quit Toolbag") that no sibling shares, so an agent can distinguish it from shutdown-adjacent tools like scene_save or execute_python at a glance. The second clause clarifies the terminating effect rather than restating the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The warning that unsaved changes are lost implies the prerequisite of saving beforehand, but it never states when to use this tool versus persisting work first, nor names any alternative. Usage is inferable from the name rather than explicitly guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 93 tool updatesv0.1.0
    • First observedbaker_add_group
    • First observedbaker_bake
    • First observedbaker_bake_psd
    • First observedbaker_bake_to
    • First observedbaker_create
    • First observedbaker_get
    • First observedbaker_isolate
    • First observedbaker_list
    • First observedbaker_load_preset
    • First observedbaker_map_path
    • First observedbaker_quick_load
    • First observedbaker_replace_low
    • First observedbaker_save_preset
    • First observedbaker_set_cage
    • First observedbaker_set_maps
    • First observedbaker_set_settings
    • First observedbaker_set_texture_set
    • First observedbaker_set_udim_tile
    • First observedbaker_set_visible
    • First observedbaker_skew_apply
    • First observedbaker_skew_clear_preview
    • First observedbaker_skew_preview
    • First observedcamera_create
    • First observedcamera_frame
    • First observedcamera_get
    • First observedcamera_list
    • First observedcamera_post_effect_file
    • First observedcamera_set
    • First observedcamera_set_active
    • First observedcapabilities
    • First observedexecute_python
    • First observedfog_get
    • First observedfog_set
    • First observedlight_create
    • First observedlight_list
    • First observedmaterial_assign
    • First observedmaterial_create
    • First observedmaterial_delete
    • First observedmaterial_duplicate
    • First observedmaterial_export
    • First observedmaterial_get
    • First observedmaterial_import
    • First observedmaterial_list
    • First observedmaterial_set_cutout
    • First observedmaterial_set_field
    • First observedmaterial_set_group
    • First observedmaterial_set_subroutine
    • First observedmaterial_set_texture
    • First observedmesh_set_backfaces
    • First observedobject_attributes
    • First observedobject_create
    • First observedobject_delete
    • First observedobject_duplicate
    • First observedobject_find
    • First observedobject_get
    • First observedobject_group
    • First observedobject_rename
    • First observedobject_set_attributes
    • First observedobject_set_parent
    • First observedobject_set_transform
    • First observedobject_set_visible
    • First observedpreferences_get
    • First observedpreferences_set
    • First observedrender_export_viewer
    • First observedrender_get
    • First observedrender_image
    • First observedrender_images
    • First observedrender_set
    • First observedrender_set_cameras
    • First observedrender_set_passes
    • First observedrender_videos
    • First observedscene_bounds
    • First observedscene_export
    • First observedscene_import_model
    • First observedscene_info
    • First observedscene_list_objects
    • First observedscene_load
    • First observedscene_new
    • First observedscene_save
    • First observedscene_tree
    • First observedselection_clear
    • First observedselection_get
    • First observedselection_set
    • First observedsky_compute_procedural
    • First observedsky_get
    • First observedsky_load
    • First observedsky_save
    • First observedsky_set
    • First observedsky_set_background_image
    • First observedstatus
    • First observedtimeline_get
    • First observedtimeline_set
    • First observedtoolbag_quit

TDQS

B3.2/5.0

Scored across 93 tools

Disambiguation4/5

Tools are organized into clear domain prefixes (scene_, object_, material_, baker_, camera_, sky_, fog_, render_, timeline_), so most selections are obvious. A few genuine overlaps exist: object_create vs light_create/camera_create, object_set_attributes vs camera_set/sky_set, and scene_list_objects vs object_find vs scene_tree; descriptions mostly disambiguate (e.g. object_set_visible explicitly defers to baker_set_visible/baker_isolate for bake scenes), but the create/attribute-set duplication could still cause misselection.

Naming Consistency4/5

The dominant convention is prefix_noun_verb (material_set_texture, baker_set_maps, camera_set_active), applied consistently across domains. Deviations are limited to a handful of bare or legacy names (status, capabilities, execute_python, toolbag_quit), which are readable but break the pattern.

Tool Count2/5

93 tools is far beyond any comfortable agent working set, even for a full 3D DCC application. The breadth (baking, skew masks, sky, fog, render, timeline) justifies many of them, but a large tail of hyper-specific tools (baker_skew_preview/apply/clear_preview, baker_map_path, camera_post_effect_file, baker_set_udim_tile) bloats the surface when execute_python could absorb rare cases.

Completeness5/5

Coverage is exceptional: full lifecycle for scenes, objects, materials, bake projects, cameras, sky, fog, lights, rendering, and timeline, plus presets and export paths. The execute_python escape hatch means there are effectively no dead ends for operations the tool set omits (e.g. material renaming).

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects 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.
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables driving Omniverse Kit apps (Isaac Sim, Isaac Lab) over MCP, allowing agents to control simulations, run Python, and call namespace-scoped tools via a single bridge.
    1
    2
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Typed DCC-MCP control for Marmoset Toolbag 4.03+ and 5.x, enabling shell-capable agents to interact with Toolbag scenes via a shared CLI and MCP gateway.
    3
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables MCP clients to drive Blockbench Desktop locally for Minecraft model, UV, texture, animation, and export workflows. It provides typed operations, high-level task workflows, native controls, and inspection/verification tools over an authenticated loopback connection.
    3
    -