Skip to main content
Glama

Blender Asset MCP

An MCP server for building game assets in Blender, where the agent renders its work, looks at the result, and fixes what it sees.

Most Blender MCP servers give an AI agent a remote control. This one also gives it a way to check its work. The agent models, textures and lights an asset, calls render_preview, looks at the image, and fixes what is wrong. It then checks the asset against your engine budgets and exports GLB/FBX. It works in your running Blender session, so you can watch every step and take over at any point.

  • 126 typed MCP tools covering scene, objects, transforms, meshes, modifiers, materials, textures, UVs, cameras, lighting, rendering, checkpoints, export, validation, collision and LODs, plus a Python escape hatch for everything else.

  • Checks its own work. render_preview and render_turntable do real renders and return images the agent can open. The built-in agent instructions tell it never to call an asset finished until it has viewed a render.

  • Game-ready output. analyze_game_asset and validate_game_asset check triangle, vertex and material budgets, size, UVs, applied transforms, n-gons and manifold geometry. create_lod generates LOD chains and the collision tools create UCX_ colliders. It exports to GLB, glTF, FBX and OBJ.

  • Safe to leave running. Named operations take a checkpoint before they start, so a failed attempt can be rolled back. Checkpoints never overwrite your .blend, all writes stay inside one workspace folder, and the bridge listens on localhost only, with an optional access token.

  • Works with any MCP client: Claude Code, Claude Desktop, Cursor, and others.

Requirements

Blender

5.2 or newer (Blender extension format)

Python

3.10+ for the MCP server (separate from Blender's own Python)

MCP SDK

mcp>=2.2 (installed automatically)

OS

Windows, macOS, Linux


Related MCP server: Blender MCP Server

Installation

1. Install the Blender add-on

Download ai_bridge.zip from the latest release, then in Blender: Edit → Preferences → Add-ons → ⌄ → Install from Disk… and choose the zip. Make sure AI Bridge is enabled.

From a clone you can instead copy the add-on straight into Blender's extensions folder:

python scripts/install_extension.py          # add --blender-version 5.3 etc. if needed
python scripts/install_extension.py --zip-only   # just build ai_bridge.zip

2. Start the bridge

In the 3D viewport press N, open the AI Bridge tab and click Start Bridge. To have it start with Blender, tick Start bridge when Blender loads in the add-on preferences.

3. Connect your MCP client

The quickest way to run the server is uv. There is nothing to clone:

uvx --from git+https://github.com/yi00it/blender-asset-mcp blender-asset-mcp

Claude Code

claude mcp add blender -- uvx --from git+https://github.com/yi00it/blender-asset-mcp blender-asset-mcp

Claude Desktop (claude_desktop_config.json) / Cursor (.cursor/mcp.json)

{
  "mcpServers": {
    "blender": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/yi00it/blender-asset-mcp", "blender-asset-mcp"]
    }
  }
}
git clone https://github.com/yi00it/blender-asset-mcp
cd blender-asset-mcp
python -m venv .venv
# Windows: .venv\Scripts\python -m pip install -e .
# macOS/Linux:
.venv/bin/python -m pip install -e .

Then point your client at the venv's blender-asset-mcp executable (.venv/Scripts/blender-asset-mcp.exe on Windows, .venv/bin/blender-asset-mcp elsewhere), or at python server/server.py.

4. Try it

Ask your agent something like:

Build a low-poly wooden crate for a mobile game, under 500 triangles, with a worn wood material. Render it from a few angles, fix anything that looks off, validate it and export it as GLB.

To check the bridge without an agent, run python scripts/smoke_test.py. It creates a temporary SMOKETEST_Cube, renders it, deletes it and confirms the scene is back to how it was.

Configuration

Environment variable (MCP server)

Default

Purpose

BLENDER_MCP_WORKSPACE

~/blender-asset-mcp/workspace

Where previews, checkpoints and exports go

BLENDER_MCP_TOKEN

(unset)

Must match the add-on's Access token, if you set one

BLENDER_MCP_PORT

9876

Bridge port

Set environment variables in your client's config, e.g. "env": {"BLENDER_MCP_TOKEN": "..."} in the JSON above, or claude mcp add -e BLENDER_MCP_TOKEN=... blender -- ....


Tool categories

Category

Tools

Examples

Health

5

ping_blender, get_bridge_status, list_bridge_actions

Scene inspection

11

get_scene_info, get_object, list_objects, list_materials

Objects

15

create_primitive, duplicate_object, move_to_collection, set_parent

Transforms

6

set_transform, rotate_object, apply_transforms, set_origin

Meshes

8

create_mesh, join_objects, shade_smooth, mesh_cleanup

Modifiers

15

add_modifier, add_bevel, add_boolean, apply_modifier

Materials

11

create_material, assign_material, connect_nodes

Textures

5

load_image, create_image_texture_node

UVs

7

smart_uv_project, unwrap_selected, mark_seams_by_angle

Cameras

6

frame_objects_with_camera, look_at, set_camera_transform

Lighting

6

create_light, create_preview_lighting, set_world_background

Rendering

6

render_preview, render_turntable, read_preview_image

Save / checkpoint

8

create_checkpoint, restore_checkpoint, undo, save_blend

Export

5

export_glb, export_fbx, export_gltf, export_obj

Validation

6

analyze_game_asset, validate_game_asset, create_lod

Advanced

6

execute_blender_python, begin_operation, cancel_operation

Conventions across every tool:

  • Rotations are DEGREES. Blender stores radians; the bridge converts.

  • Colors are [r, g, b] or [r, g, b, a] floats in 0..1, linear. Not 0–255, not sRGB hex.

  • Objects are addressed by name.

  • Lengths are Blender units (1 unit = 1 metre by default).

See docs/AGENT_GUIDE.md for how an agent should drive the toolkit.


Architecture

MCP client (Claude Code, Claude Desktop, Cursor, ...)
     │  stdio, JSON-RPC
     ▼
blender_asset_mcp  (server/)       ← never imports bpy
  app.py      MCP server + agent instructions
  client.py   TCP protocol client
  paths.py    workspace rules
  tools/      126 typed tools
     │  TCP, newline-delimited JSON
     ▼  127.0.0.1:9876
blender_extension/  (Blender add-on "AI Bridge")
  bridge.py     listener + per-connection threads  ← never touch bpy
     │  queue.Queue
     ▼
  bpy.app.timers pump  ← Blender's MAIN THREAD
  dispatch.py → handlers/   ← the only code that calls bpy

Two rules hold this together, and the file layout enforces them:

  1. The socket threads never call bpy. They parse JSON and put work on a queue.

  2. Every bpy call happens on Blender's main thread, run by a bpy.app.timers callback that drains that queue. The timer is registered with persistent=True, so it keeps running after a .blend file is loaded.

The MCP server and the Blender add-on are separate programs in separate processes. They share nothing but the wire protocol.

Wire protocol

One JSON object per line, in each direction.

// request
{"action": "create_primitive", "primitive": "cube", "name": "Crate", "_timeout": 30.0}

// success
{"ok": true, "created": "Crate", "object": { ... }, "_duration_ms": 4.2}

// failure: always structured, never silent
{"ok": false, "error": "No object named 'Crat'.", "error_type": "object_not_found",
 "action": "get_object", "suggestions": ["Crate"]}

_timeout tells Blender how long it may spend before the client gives up. _token carries the access token when one is configured.


Workspace

~/blender-asset-mcp/workspace/
  previews/      render_preview output (PNG)
  checkpoints/   timestamped .blend copies
  exports/       .glb / .gltf / .fbx / .obj
  logs/          bridge-YYYYMMDD.log (JSONL, one line per command)
  temp/          scratch saves

Both sides default to this folder. Change it with the Workspace add-on preference in Blender and BLENDER_MCP_WORKSPACE for the server. get_bridge_status reports both and warns if they differ. Blender's path takes precedence, since Blender is the one writing the files.

Logs record the timestamp, action, duration, success and error. They store only the size and a SHA-1 prefix of mesh arrays and Python source, never the content.


Security model

Rule

How it is enforced

Listener is localhost only

Binds to 127.0.0.1, plus a peer-address check that drops any non-loopback connection

Web pages cannot drive it

Requests that start with an HTTP request line are dropped, so a browser tab POSTing to 127.0.0.1:9876 gets nothing

Optional access token

Set Access token in the add-on preferences (the ↻ button generates one and copies it to the clipboard) and BLENDER_MCP_TOKEN for the server. Other local programs are then refused. Compared in constant time and never logged

No OS commands from the bridge

The structured actions expose no shell, spawn no subprocess and open no outbound socket

Writes stay in the workspace

Output paths must be relative. Drive letters, .. and reserved characters are rejected, and the resolved path is checked to be inside the workspace. Both the server and Blender check this

Reads are constrained

load_image only reads from the workspace or the open .blend's folder, unless you tick Allow reads outside workspace

Checkpoints never clobber your file

save_as_mainfile(copy=True), so bpy.data.filepath still points at your document

Request size is bounded

16 MB per request

execute_blender_python is trusted local execution

This tool runs arbitrary Python in your live Blender session, with the same power as Blender's scripting console. That includes file access and anything else Python can do. It is not a sandbox. It exists so the agent can use bpy/bmesh/mathutils when the structured tools don't cover a task. When code imports modules such as subprocess or socket, the response lists them in notable_imports, so their use is always visible.

Your MCP client asks for approval before tool calls, so review these calls the way you would review any code an agent wants to run. To turn off every tool, stop the bridge.


Troubleshooting

bridge_unreachable / "Cannot connect to Blender" Blender must be open, the AI Bridge add-on enabled, and Start Bridge clicked. The sidebar panel shows Running/Stopped, the port and the last error.

unauthorized The add-on has an access token set, and BLENDER_MCP_TOKEN in your MCP client config is missing or different. After changing the token in Blender, restart the bridge.

"Address already in use" when starting the bridge Another Blender instance (or another Blender MCP add-on) still holds port 9876. Close it, or stop its bridge first.

Tools behave the old way after updating the add-on Reload the add-on: untick and re-tick AI Bridge in Preferences, or restart Blender.

timeout on a render Increase samples or resolution in smaller steps. A heavy render blocks Blender's main thread, and the bridge queue with it. Blender is still working on the command; only the client stopped waiting.

Preview looks washed out render_preview uses the Standard view transform by default, because Blender's AgX desaturates colours heavily. If you passed view_transform="AgX", that is why.

Undo does nothing Blender's undo stack needs a window, so in a windowless session the bridge refuses rather than risk a crash. Use checkpoints instead; they work either way.

Workspace mismatch warning Set the add-on's Workspace preference and BLENDER_MCP_WORKSPACE to the same folder, or clear both to use the defaults.


Development

python -m pip install -e ".[dev]"
python -m pytest                       # protocol, paths, tools; no Blender needed
python scripts/smoke_test.py           # end to end against a running bridge
python scripts/install_extension.py    # copy the add-on into Blender

tests/ covers the protocol client (framing, timeouts, error mapping, split packets, tokens), the bridge's request screening, the workspace path rules and the tool layer (request shape, validation, timeouts, description quality).

Issues and pull requests are welcome.

License

MIT © 2026 Yiğit Özdamar

Available Tools

126 tools
add_arrayB

Add an Array modifier to repeat geometry (fences, stairs, pillars).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
countNo
modifier_nameNo
offset_objectNoUse this object's transform as the step (great for radial arrays with an Empty)
merge_verticesNo
constant_offsetNoOffset in Blender units; overrides relative offset
relative_offsetNoOffset as a multiple of the object's bounding box, e.g. [1.1, 0, 0]

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description alone must disclose side effects and prerequisites. It states the core effect (repeating geometry) but omits that the modifier is applied to the selected/active object, that geometry is instanced, and whether any object must be active. For a mutation tool, this is a significant behavioral gap.

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

Conciseness5/5

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

A single sentence with no filler; 'fences, stairs, pillars' is compact but informative. The description is front-loaded with the action and follows with the purpose.

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?

Despite the 7-parameter schema and no output schema or annotations, the description provides only one sentence. It doesn't mention the target object, prerequisites, or how the array parameters combine, so an agent lacks enough context to invoke the tool confidently beyond knowing its basic purpose.

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?

With only 43% schema description coverage, the description needed to explain parameters like count, name, modifier_name, and merge_vertices, but it adds none of that. The only parameter-related information is the abstract 'repeat geometry' phrase; the offset parameters are already described in the schema. The description fails to compensate for the missing parameter docs.

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 ('Add') and resource ('an Array modifier'), then clarifies the function ('to repeat geometry') with concrete examples ('fences, stairs, pillars'). This clearly differentiates it from modifier siblings like add_mirror or add_bevel without needing to inspect schemas.

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

Usage Guidelines3/5

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

The examples convey the intended use case (repeating geometry for fences, stairs, pillars), so an agent can infer when to choose this tool. However, it never explicitly names alternatives or states when not to use it (e.g., generic add_modifier, or mirror instead of array), leaving the usage decision partially to inference.

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

add_bevelC

Add a Bevel modifier -- the cheapest way to make hard edges catch light.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
widthNoBevel width in units
profileNo
segmentsNo
angle_limitNoOnly bevel edges sharper than this (degrees)
limit_methodNoANGLE
modifier_nameNo
harden_normalsNoKeep the shading of the original faces; needs smooth shading and a Weighted Normal modifier after it

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Add a Bevel modifier,' with no information about side effects, dependencies on the active object, modifier stack placement, destructiveness, or undo behavior. This leaves the agent without critical behavioral context 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?

The description is one short sentence and immediately identifies the operation. The phrase 'cheapest way to make hard edges catch light' is slightly colloquial but adds a concise purpose statement. There is no unnecessary repetition of the tool name or schema fields, keeping the definition 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 eight parameters, no output schema, and no annotations, the description should explain prerequisites and behavior more thoroughly. It does not state whether the modifier is added to an active object, whether a selected object is required, or how the modifier is identified afterward. The definition is too sparse for an agent to use confidently in varied scene contexts.

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 only 38%, and the tool description adds no parameter explanations. Parameters like profile, segments, limit_method, and modifier_name have no prose context beyond bare names and constraints. Defaults and enums provide some signal, but the low coverage combined with complete silence in the description leaves major semantic gaps.

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

Purpose4/5

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

The description states a specific action and resource: 'Add a Bevel modifier.' It also hints at the purpose ('make hard edges catch light'), making the tool's role clear. It is distinct enough from sibling add_* tools because it names the exact modifier, though it does not explicitly contrast itself with the more generic add_modifier.

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 'the cheapest way to make hard edges catch light' implies when an agent might choose this tool, but it does not give explicit context, exclusions, or alternatives. There is no mention of selecting an object first, nor of when to prefer add_bevel over add_modifier or a manual bevel operation. Usage guidance is implied rather than stated.

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

add_booleanA

Add a Boolean modifier to cut one object with another.

Booleans make messy topology -- check the result with analyze_game_asset and a render before applying.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesObject being cut
cutterYesObject used as the tool
solverNoEXACT is the reliable default; MANIFOLD is faster but needs watertight inputEXACT
operationNoDIFFERENCE
hide_cutterNoHide the cutter object afterwards
modifier_nameNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations are absent, so the description carries a heavier burden. It does add useful behavioral context by warning that Booleans create messy topology and that results should be checked before applying. However, it does not describe side effects such as modifier-stack behavior, cutter visibility, or potential failure conditions.

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 two sentences with the primary purpose front-loaded and a concise risk warning as the second sentence. There is no filler or redundant restating of schema 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?

For a 6-parameter tool with no annotations and no output schema, the description covers the core purpose and the main risk, but it leaves edge-case behavior to inference. The schema supplies solver and operation defaults, so basic invocation is viable, but deeper context such as modifier naming and non-watertight geometry is not addressed.

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 67%, and the key parameters name and cutter are already documented in the schema. The description adds no parameter-level detail and does not help clarify the undocumented operation or modifier_name parameters, so the schema carries most of the burden.

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 opening sentence uses a specific verb and resource ('Add a Boolean modifier') and states the intended effect ('cut one object with another'). This makes it easy to distinguish from sibling generic modifiers like add_modifier and from other specific modifiers like add_bevel.

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 a clear use case (cutting one object with another), so an agent can infer when the tool is relevant. However, it does not explicitly name alternatives or exclusion conditions, and the topology warning is post-operation guidance rather than tool-selection guidance.

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

add_decimateA

Add a Decimate modifier to reduce triangle count.

For LOD chains prefer create_lod, which builds named copies and leaves the source untouched.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
ratioNoFraction of faces to keep, e.g. 0.5 halves them
triangulateNo
decimate_typeNoCOLLAPSE
modifier_nameNo

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavior. It only says the modifier reduces triangle count; it does not mention whether this is destructive, whether it modifies a named object or the active object, whether the modifier is reversible, or any side effects.

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

Conciseness5/5

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

Two sentences, zero filler. Purpose is front-loaded, and the sibling alternative is stated in a compact second sentence.

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 five parameters, no output schema, and no annotations, this description is too sparse. It omits how the target object is identified, how modifier naming works, and how the decimation settings behave, leaving the agent to guess from the schema.

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 only 20%, so the description must compensate, but it adds nothing about the required 'name', 'ratio', 'triangulate', 'decimate_type', or 'modifier_name' parameters. Only the schema's ratio field has a helpful description.

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: 'Add a Decimate modifier to reduce triangle count.' The second sentence differentiates it from create_lod, making the purpose and sibling 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 Guidelines5/5

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

Explicitly advises preferring create_lod for LOD chains and explains why ('builds named copies and leaves the source untouched'). This gives the agent a direct when-not-to-use signal.

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

add_mirrorB

Add a Mirror modifier -- model half an asset and get the other half free.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
axis_xNo
axis_yNo
axis_zNo
use_clipNoStop vertices crossing the mirror plane
mirror_objectNoMirror across this object's origin instead of the object's own
modifier_nameNo
merge_thresholdNo

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says a Mirror modifier is added and gives a figurative benefit, but it does not state prerequisites like requiring a selected object, the actual duplication/mirroring behavior, or side effects. This is too thin 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.

Conciseness5/5

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

The description is a single sentence with no filler. The action is front-loaded, and the metaphor adds value without bloating the 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?

With 8 parameters, no output schema, no annotations, and low parameter coverage, a one-line description is not enough. It omits what 'name' refers to, how the modifier is applied, and what an agent should expect after invocation, making reliable use dependent on external knowledge.

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 only 25%, and the description adds no parameter meaning at all. It does not clarify the required 'name' parameter (object name vs. modifier name) nor explain axis defaults, merge_threshold, or modifier_name. The two schema-level descriptions for use_clip and mirror_object help, but most parameters remain under-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 description clearly states the action and resource: 'Add a Mirror modifier'. The phrase 'model half an asset and get the other half free' adds useful intent. It does not explicitly distinguish itself from the generic add_modifier sibling, so it misses the top score.

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 a use case (symmetric modeling of half an asset), which gives some context for when this tool is appropriate. However, it provides no explicit when-to-use or when-not-to-use guidance and does not mention alternatives like generic add_modifier or set_modifier.

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

add_modifierB

Add and configure a modifier in one call.

Returns the modifier's resulting state and the object's full stack. An unknown property name fails with the list of valid ones.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesObject to add the modifier to
typeYesModifier type
settingsNoBlender property names, e.g. {"width": 0.02, "segments": 3}. Angles are DEGREES. Properties that point at another object (boolean 'object', array 'offset_object', mirror 'mirror_object') take that object's NAME.
use_defaultsNoApply the bridge's game-friendly defaults for this type before your settings
modifier_nameNoName for this modifier instance

TDQS

B3.4/5.0
Behavior3/5

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

Since no annotations are provided, the description carries the behavioral burden. It usefully discloses the return value ('resulting state and the object's full stack') and a specific failure mode for unknown settings keys. However, it does not mention prerequisites, side effects beyond adding/configuration, or the effect of use_defaults, though 'Add' does imply mutation.

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 three concise, front-loaded sentences with no filler. The action, return behavior, and a notable error case each earn their place, making it easy to parse quickly.

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 tool with no output schema and no annotations, the description communicates the postcondition, the return shape, and a key failure mode, while the schema covers all parameter details. It omits selection guidance among specialized modifier tools, but that gap is already reflected in usage_guidelines; for actually invoking the tool, the description is largely sufficient.

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

Parameters3/5

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

The input schema already documents all five parameters with 100% coverage, so the baseline is 3. The description adds one meaningful detail about settings validation — unknown property names fail with valid names — but it does not add meaning for type, use_defaults, or modifier_name beyond what the schema provides.

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, 'Add and configure', and names the resource, 'a modifier', so an agent can tell this is a creation tool. It does not explicitly name the generic-vs-specialized relationship with siblings like add_bevel or set_modifier, but the action and the type enum make the purpose clear.

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

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 add_modifier instead of the many specialized modifier tools such as add_bevel, add_subdivision, or set_modifier. The phrase 'in one call' implies a convenience path, but no exclusions, 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.

add_solidifyA

Add a Solidify modifier to give a flat surface real thickness.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
offsetNo-1 grows inward, 0 both ways, 1 outward
use_rimNo
thicknessNoShell thickness in units
modifier_nameNo
use_even_offsetNo

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral disclosure; it does state that the operation adds a modifier and produces a thickness effect, which makes the mutating behavior explicit. However, it does not mention target-object requirements, whether repeated calls stack modifiers, or any side effects on the modifier stack, leaving the disclosure only at a basic level.

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 filler and it is front-loaded with the tool's action. It is slightly under-sized relative to the six parameters and the lack of annotations, but it is not redundant.

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 tool with six parameters, no output schema, and no annotations, one sentence is insufficient. It omits how the 'name' parameter identifies the target object, how offset direction works, modifier naming behavior, and which options are safe defaults for common use.

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 only 33%, so the description needed to compensate for the undocumented parameters. It adds no meaning for offset, use_rim, modifier_name, or use_even_offset; even the word 'thickness' is a loose restatement of the thickness parameter rather than a semantic explanation.

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 action ('Add'), a precise resource ('Solidify modifier'), and the intended outcome ('give a flat surface real thickness'). This clearly differentiates the tool from sibling modifiers like add_bevel or add_subdivision without needing to open the 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 phrase 'to give a flat surface real thickness' provides a clear context for when this tool should be chosen. It does not explicitly compare against add_modifier or other modifier tools, but the dedicated purpose is obvious enough that an agent can route to it.

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

add_subdivisionB

Add a Subdivision Surface modifier. Each level multiplies faces by ~4 -- keep levels low for game assets.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
levelsNoViewport subdivision level
modifier_nameNo
render_levelsNo
subdivision_typeNoCATMULL_CLARK

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It adds a useful fact about face multiplication ('~4 per level') and a performance warning, but it never states which object receives the modifier, whether existing modifiers are preserved, or what side effects or errors may occur.

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 sentence with the main action front-loaded and a practical warning included without redundancy. Every clause earns its place and nothing is restated from the schema.

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 five parameters, no annotations, and no output schema, the description is too thin. It leaves the target object implicit, does not explain the modifier naming behavior, and fails to cover render/type distinctions, making it insufficient 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 only 20%, so the description must compensate. It does add meaning to 'levels' with the face-multiplication rule and the low-level recommendation, but the required 'name' parameter is unexplained, and modifier_name, render_levels, and subdivision_type receive no semantic guidance.

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 action and resource: 'Add a Subdivision Surface modifier.' This is not a tautology and clearly distinguishes the tool from generic add_modifier and other modifier-specific siblings like add_bevel and add_mirror.

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 guidance is 'keep levels low for game assets,' which is a parameter-level caution. The description does not state when to prefer this tool over alternatives like add_modifier or other specialized modifier tools, nor does it give any 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.

add_weighted_normalA

Add a Weighted Normal modifier.

Put this last in the stack, after a bevel with harden_normals, to get clean hard-surface shading that survives export.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoFACE_AREA
nameYes
weightNo
keep_sharpNo
modifier_nameNo

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does add some behavioral context: the modifier must be placed last in the stack and affects export output ('survives export'). However, it does not disclose whether the operation is non-destructive, what object is affected, or any side effects on the existing modifier stack — gaps for a mutation tool with zero annotation coverage.

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

Conciseness5/5

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

Two sentences with no wasted words. The verb and resource are front-loaded, and the ordering guidance follows immediately. Every sentence earns its place and the guidance is actionable.

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 5-parameter tool with no output schema and no annotations, this description is incomplete. It explains the 'why' (hard-surface shading that survives export) but omits the 'how' — parameter meaning, required object context, and behavior of the modifier in the stack. An agent would struggle to invoke it with correct parameter values.

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 compensate for undocumented parameters. It provides no explanation of mode, weight, keep_sharp, name, or modifier_name semantics. The five parameters are entirely unsupported by the description, leaving an agent to guess the meaning and appropriate values for each.

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: 'Add a Weighted Normal modifier.' The modifier type is named precisely, which distinguishes it from the generic add_modifier sibling and the other specialized modifier tools (add_bevel, add_decimate, etc.). The purpose is immediately clear to an agent deciding which modifier tool to use.

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 description gives explicit placement guidance: 'Put this last in the stack, after a bevel with harden_normals, to get clean hard-surface shading that survives export.' This is clear contextual instruction about when/how to use the tool. However, it does not explicitly exclude alternatives or explain when one would NOT use this tool versus other modifier tools.

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

analyze_game_assetA

Read-only report on an asset: object and mesh counts, vertices, triangles (base and after modifiers), materials, referenced textures, bounding dimensions, and a list of issues -- missing UVs, unapplied transforms, non-manifold geometry, objects with no material.

Modifies nothing. Pair it with a render: statistics catch budget problems, renders catch everything else.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectsNoObjects to analyse; omit for the selection, else the whole scene
check_topologyNoRun the bmesh topology pass (non-manifold edges, n-gons, degenerate faces). Slower on heavy meshes.
include_childrenNoInclude child objects

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations supplied, the description carries the full behavioral burden, and it opens with 'Read-only' and ends with 'Modifies nothing'—an explicit side-effect guarantee. It also discloses what is computed and which issue categories are reported, so an agent knows exactly what behavior to expect.

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?

Everything in the description earns its place: a dense but ordered output list, the safety statement, and the render-pairing guidance. It is front-loaded with the key read-only fact, and the usage advice is delivered in one tight sentence.

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 tool with no output schema and no annotations, the description tells the agent what fields will appear in the report and how to interpret the results ('statistics catch budget problems'). Parameters are fully documented in the schema, so nothing needed to invoke the tool correctly is missing.

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 100%, so the schema already documents all three parameters clearly. The tool description adds useful output context but no additional semantics for `objects`, `check_topology`, or `include_children` beyond what the schema provides.

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 (an asset) and enumerates exact report contents, so the tool's function is unambiguous. It does not explicitly contrast itself with the similar sibling validate_game_asset, and 'read-only report' only separates it from mutating/export tools.

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?

It explicitly says to pair with a render and that statistics catch budget problems, giving a concrete usage pattern. It doesn't name alternative tools or exclusions (e.g., validate_game_asset for pass/fail, get_mesh_data for raw data), so it falls short of full routing guidance.

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

apply_all_modifiersA

Bake the whole modifier stack, in order. IRREVERSIBLE -- checkpoint first.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
force_multi_userNo

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the safety burden and discharges it well by flagging the operation as IRREVERSIBLE and advising a checkpoint. It also notes ordering behavior. It does not spell out that baked modifiers are removed from the stack, but the warning is sufficient context for a destructive operation.

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 terse sentences front-load the operation and the critical danger. Every word contributes, with no repetition of schema or annotation data.

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?

The destructive nature is flagged, but an irreversible tool with no output schema and an undocumented 'force_multi_user' parameter needs more context about what object is affected, what baking entails, and what the result is. The description is not complete enough for safe autonomous use.

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%, and the description adds nothing about the two parameters. 'name' is not identified as the target object, and 'force_multi_user' is entirely unexplained.

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 uses a specific verb ('bake') and a specific resource ('the whole modifier stack, in order'), which clearly distinguishes it from the single-modifier sibling apply_modifier and the modifier management tools. The scope 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 Guidelines4/5

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

The phrase 'whole modifier stack' implies use when all modifiers should be applied; the IRREVERSIBLE warning and 'checkpoint first' instruction give actionable preconditions. It stops short of explicitly contrasting with apply_modifier or saying 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.

apply_modifierB

Bake a modifier into the mesh. IRREVERSIBLE without undo or a checkpoint.

Returns before/after geometry counts so you can see what it cost.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
modifierYes
force_multi_userNoMake shared mesh data single-user first

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly warns that the operation is "IRREVERSIBLE without undo or a checkpoint" and explains the return value (before/after geometry counts). This meaningfully reveals destructive behavior and output semantics, though it could go further by noting exactly what state changes occur.

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 two well-structured sentences with no filler. The action and warning are front-loaded, and the return-value note earns its place. Every word contributes.

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?

Despite being concise, the description is not complete enough for a destructive tool with no annotations, no output schema, and low parameter coverage. The agent still lacks clarity about the required parameters and any prerequisites or error conditions. The irreversibility warning and return-count note are helpful, but the definition leaves too much unspecified.

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 low at 33%, so the description must compensate for the undocumented `name` and `modifier` parameters. It does not; it never clarifies whether `name` is the object name, modifier name, or something else, nor what format `modifier` expects. Only `force_multi_user` is described in the schema. This is a significant gap 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 uses a specific verb and resource: "Bake a modifier into the mesh." It clearly names the operation and target, and the singular "a modifier" implicitly distinguishes it from `apply_all_modifiers`. It does not explicitly name a sibling, so it falls short of a 5, but there is no real ambiguity about what the tool does.

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

Usage Guidelines3/5

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

The description implies when to use the tool: when you want to permanently bake a modifier into a mesh. However, it does not explain when not to use it or how it relates to alternatives like `add_modifier`, `apply_all_modifiers`, `undo`, or checkpoints. The irreversible warning is useful context but not explicit routing guidance.

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

apply_transformsA

Bake rotation and scale into the mesh data.

Game engines generally expect assets with applied rotation and scale and a scale of exactly 1. This modifies the mesh -- checkpoint first.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesNoObject names. Omit to use the current selection.
scaleNo
locationNoBake location too (moves the origin to the world origin)
rotationNo
force_multi_userNoMake shared mesh data single-user first instead of refusing

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden of disclosing side effects and explicitly warns that the mesh is modified and a checkpoint should be created first. It could add more detail about multi-user data refusal or transform reset, but the core destructive 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.

Conciseness5/5

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

Three short sentences lead with the action, provide the use-case rationale, and end with a necessary warning. There is no filler or redundant restatement.

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 mutating mesh tool with no output schema, the description supplies purpose, domain rationale, and a destructive-operation warning. It relies on the schema for parameter details, which is acceptable because force_multi_user and location behaviors are already documented there.

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 only 60%, so the description must help with the undocumented scale and rotation booleans; it does clarify that scale ends at exactly 1. However, it doesn't mention the location option or add much beyond what the schema already provides for names and force_multi_user.

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 exactly what the tool does: bakes rotation and scale into mesh data. This clearly distinguishes it from transform-setter siblings like set_transform, rotate_object, and scale_object by focusing on mesh data mutation.

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 description provides clear context ('Game engines generally expect...') that tells an agent when this preparation step is appropriate. It also warns the user to checkpoint first, but it does not name alternatives or give explicit 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.

assign_materialA

Assign a material to objects.

By default this replaces every existing slot, which is what a single-material game prop wants. Pass replace=false to add a second material slot instead -- each extra slot is an extra draw call in most engines.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesNoObject names. Omit to use the current selection.
replaceNoClear existing slots first; False appends a slot
materialYesMaterial name
slot_indexNoWrite into this existing slot instead

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries full responsibility, and it discloses the destructive default (replaces every existing slot), the append mode, and a performance consequence (extra draw calls). It does not state whether the material must already exist or whether assignment creates a new material, which is a meaningful behavior gap. Overall it provides substantive behavioral context beyond a bare verb.

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 paragraphs, front-loaded with the purpose sentence and immediately followed by the most important default behavior. Each sentence earns its place; no filler or repetition of schema details.

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

Completeness3/5

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

Covers the main operation, default behavior, and the primary parameter choice, which is enough for many calls. Missing are the material-existence requirement and how slot_index interacts with replace, which could trip up an agent without other context. Since there are no annotations and no output schema, these gaps lower completeness below the top tier.

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 100%, so the baseline is 3; the description adds real value by explaining the replace=true behavior and the performance trade-off of appending slots. It does not clarify how slot_index relates to replace, but the schema already describes each parameter. The draw-call insight elevates the semantics beyond the schema.

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 action ('Assign a material to objects') with a clear resource. The description goes beyond the name by explaining the default replacement behavior, which distinguishes this from related material tools like set_material_properties. It is unambiguous about the operation.

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

Usage Guidelines4/5

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

Provides explicit guidance: default replaces all slots and is suited to single-material game props, while replace=false appends a slot and incurs extra draw calls. It does not explicitly name alternative tools, but it does give a clear decision rule for the key parameter. However, it does not explain when to use slot_index instead of replace=false, leaving some usage ambiguity.

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

begin_operationA

Open a named operation: an undo boundary plus a checkpoint.

Wrap multi-step asset work in begin_operation / end_operation so it reads as one task in Blender's history and can be abandoned in one call.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoReplace an operation that is already open
labelYesWhat this group of commands is doing, e.g. 'build wooden crate'
checkpointNoSave a checkpoint now. This is what makes cancel_operation reliable.
require_checkpointNoFail if the checkpoint cannot be written, instead of continuing without one

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It clearly discloses that the tool creates an undo boundary and a checkpoint, and that the wrapper can be cancelled as one unit. It doesn't detail failure modes or the need for force when another operation is open, but the schema covers those.

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 concise sentences, with the core definition front-loaded and the practical usage immediately following. Every sentence earns its place and there is no wasted text.

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?

The description explains the lifecycle well: begin opens, end_operation closes, and the operation can be abandoned in one call. It doesn't explicitly name cancel_operation, but the reference to abandonment combined with the sibling list makes the flow recoverable. For a stateful tool with no output schema, this is strong but not fully exhaustive.

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 100%, so the schema already documents all four parameters. The description adds general conceptual framing about operations and checkpoints but does not add parameter-specific meaning beyond the schema. The baseline of 3 is appropriate.

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: 'Open a named operation.' It then clarifies the two key effects: an undo boundary and a checkpoint, which distinguishes it from related siblings like push_undo, create_checkpoint, end_operation, and cancel_operation. The purpose is immediately identifiable.

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 second sentence gives clear usage context: wrap multi-step asset work in begin_operation / end_operation so it appears as one history task and can be abandoned in one call. It does not explicitly enumerate when not to use it or name alternatives such as create_checkpoint, but it gives enough context for an agent to decide.

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

cancel_operationA

Abandon the open operation and roll back.

With a checkpoint this reloads it, which DISCARDS everything done since begin_operation -- including any of the user's own edits in that window. Without one it falls back to stepping the undo stack, which is best effort; the response says which path was taken.

ParametersJSON Schema
NameRequiredDescriptionDefault
undo_stepsNoUndo steps to try when there is no checkpoint
restore_checkpointNoRestore from the operation's checkpoint. Defaults to true when one exists -- the only reliable rollback.

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description fully carries the behavioral disclosure burden. It explicitly warns that checkpoint reload 'DISCARDS everything done since begin_operation — including any of the user's own edits,' and accurately labels the undo-stack fallback as 'best effort' while noting the response reveals which path was taken. This is excellent disclosure of destructive, partial-recovery 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?

Three short sentences front-load the core action and the destructive warning, then cover the fallback path and response signal. There is no wasted wording, and the description does not repeat schema content unnecessarily.

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 destructive tool with no annotations and no output schema, the description covers the important decision paths: with a checkpoint, without a checkpoint, and what the response will indicate. It does not specify behavior when no operation is open or when the undo stack is exhausted, but the essential calling context is well covered.

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?

Both parameters are already fully described in the input schema (100% coverage), so the description does not need to re-document them. It adds only minimal parameter-level meaning beyond echoing the checkpoint-versus-undo distinction, so the baseline 3 is appropriate.

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 object: 'Abandon the open operation and roll back.' It then explains the two rollback paths, which distinguishes it from siblings like undo, redo, and restore_checkpoint by tying the behavior to the open-operation lifecycle.

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 description gives clear context for when cancel_operation applies: it abandons the open operation, uses a checkpoint when available, and falls back to undo-stack stepping otherwise. It does not explicitly name sibling alternatives or state when not to use this tool, so it stops short of fully explicit routing guidance.

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

connect_nodesA

Link one node's output to another node's input.

Socket names come from get_material_nodes; a numeric string selects by index.

ParametersJSON Schema
NameRequiredDescriptionDefault
replaceNoDrop any existing link into that input
to_nodeYes
materialYes
from_nodeYes
to_socketNoInput socket name, e.g. 'Base Color'0
from_socketNoOutput socket name, e.g. 'Color'0

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only says 'Link' which implies a mutation, but it doesn't mention side effects like overwriting existing links (though the replace parameter hints at this in the schema), reversibility, or prerequisites. The description doesn't state whether the operation is destructive or if it modifies the material permanently. This is a significant gap for a mutation tool.

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

Conciseness5/5

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

The description is concise and front-loaded: the first sentence states the core purpose, and the second sentence adds a critical detail about socket name resolution. There is no redundancy or fluff. Every sentence earns its place.

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 main purpose and gives a key hint about socket names, but it lacks important context: it doesn't mention that this operates on material node graphs (though 'material' parameter implies it), doesn't describe the replace behavior (though the schema does), doesn't specify what happens on invalid inputs, and doesn't differentiate it from similar tools like set_node_inputs or disconnect_node_input. For a tool with 6 parameters and no annotations, more context is needed.

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

Parameters3/5

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

Schema coverage is 50% with three parameters (replace, to_socket, from_socket) having descriptions. The description adds value by explaining that socket names can come from get_material_nodes and that numeric strings select by index, which clarifies the from_socket and to_socket parameters. However, it doesn't explain material, from_node, or to_node, which are required and lack schema descriptions. The description partially compensates for the coverage gap but not fully.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb and resource: 'Link one node's output to another node's input.' This distinguishes it from sibling tools like disconnect_node_input or create_node. It's immediately clear what action is performed.

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 gives a useful hint that socket names come from get_material_nodes and numeric strings select by index, which guides parameter usage. However, it doesn't explicitly state when to use this tool versus alternatives like set_node_inputs or disconnect_node_input, nor does it mention conditions to avoid using it. The guidance is implied but not explicit.

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

create_box_collisionA

Create a UCX_ box collider matching an object's bounding box.

Built in the object's local space, so a rotated asset gets a tight oriented box. Named UCX__01, displayed as wireframe and excluded from renders -- the convention Unreal expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesMesh object to build a collider for
paddingNoExtra margin around the bounding box
collectionNo
collision_nameNoOverride the automatic UCX_<name>_01 name
parent_to_sourceNo

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral burden. It discloses meaningful behavior beyond the schema: local-space construction, tight oriented boxes for rotated assets, automatic UCX_<object>_01 naming, wireframe display, and exclusion from renders. This gives the agent a clear model of side effects.

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

Conciseness5/5

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

Three concise sentences front-load the primary purpose, then add high-value technical details. There is no filler, repetition, or unnecessary context.

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 creation tool with no output schema or annotations, the description covers core behavior, coordinate space, naming, and rendering implications. It does not explicitly address return values or the collection/parent_to_source parameters, but the essential invocation context 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 description coverage is 60%, and the description adds useful semantics for the key behavior ('matching an object's bounding box', local space, automatic naming). However, collection and parent_to_source have no description in either the schema or the tool description, leaving part of the parameter surface unexplained.

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: 'Create a UCX_ box collider matching an object's bounding box.' It clearly differentiates this from the sibling create_convex_collision by specifying 'box collider' and gives the exact naming convention. An agent can confidently identify what this 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 Guidelines3/5

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

The description implies usage through the phrase 'the convention Unreal expects,' but it never explicitly says when to choose this tool over create_convex_collision or when not to use it. With a close sibling present, the lack of explicit routing is a notable gap.

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

create_cameraA

Create a camera.

To point it at something, give look_at/look_at_object here, or use frame_objects_with_camera which also works out the distance.

ParametersJSON Schema
NameRequiredDescriptionDefault
fovNoField of view in degrees; overrides lens
lensNoFocal length in mm; 50 is neutral, 35 wider, 85 flatters a hero prop
nameNoCamera
typeNoPERSP
look_atNo[x, y, z] in Blender units
clip_endNo
locationNo[x, y, z] in Blender units
rotationNo[x, y, z] euler rotation in DEGREES
clip_startNo
collectionNo
set_activeNoMake it the scene's render camera
ortho_scaleNo
look_at_objectNoAim at this object's centre

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions aiming behavior but does not state side effects such as the camera becoming active by default, collection placement, or what happens to any existing camera. This is a meaningful gap for a creation tool.

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

Conciseness5/5

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

Two short sentences, front-loaded with the core purpose and followed by a targeted usage note about aiming. Every sentence earns its place and there is no redundant or filler content.

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

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 basic camera creation and aiming, but it omits context around important defaults and side effects, such as set_active defaulting to true and making the camera the render camera. Given 13 optional parameters and no output schema or annotations, a bit more contextual guidance would improve completeness.

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 54%, so the description is not required to fully compensate, and it does add useful context for look_at and look_at_object by explaining their role in pointing the camera. However, it adds no meaning for the many other parameters such as clip_start, clip_end, collection, or ortho_scale.

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 camera.' It also distinguishes itself from the related sibling frame_objects_with_camera by explaining that camera aiming can be done here or via that alternative, which also computes distance.

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 description gives clear guidance for aiming: pass look_at/look_at_object for pointing, or choose frame_objects_with_camera when distance should be computed. It does not cover exclusions for other siblings like look_at or set_camera_transform, but the context for this tool is clearly stated.

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

create_checkpointA

Save a timestamped checkpoint copy before risky work.

Writes _.blend into workspace/checkpoints. The user's own .blend file is never touched or re-targeted. Do this before applying modifiers, deleting objects, or any multi-step change you might need to back out of. begin_operation makes one automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNoShort description of what you are about to do, e.g. 'before boolean cuts'checkpoint

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden, and it does so well by disclosing the write location, filename format, and the key safety guarantee that the user's own .blend file is not modified or re-targeted. It doesn't discuss overwrite or disk cleanup behavior, but the main behavioral risk is covered.

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 every sentence earns its place: purpose, mechanics, safety, usage timing, and automatic alternative. The most important information is front-loaded and there is no filler.

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 tool with one optional parameter and no output schema, this description is nearly complete: it explains what happens, where, why, and when to use it. It could mention how to verify or restore a checkpoint, but that is reasonably handled by sibling tools like list_checkpoints and restore_checkpoint.

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 100% for the single label parameter, but the description adds real meaning by showing the label is embedded into the checkpoint filename as <timestamp>_<label>.blend. This connects the parameter to the observable artifact beyond the schema's generic 'Short description' wording.

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 clear verb and resource: save a timestamped checkpoint copy into workspace/checkpoints. It also distinguishes itself from save/save_as by explicitly saying the user's .blend file is never touched or re-targeted, so an agent can tell what this tool is and is not for.

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?

It gives explicit when-to-use guidance: before applying modifiers, deleting objects, or any multi-step change you might need to back out of. It also names an alternative/automatic path, 'begin_operation makes one automatically', which helps the agent avoid redundant checkpoints.

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

create_collectionB

Create a collection, optionally nested inside another.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
parentNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations exist, so the description bears the full burden of disclosing behavior. It states the core creation action and nesting, but does not say what happens when parent does not exist, whether duplicate names are rejected, or whether creation is otherwise validated. This is minimal transparency for a mutating tool.

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

Conciseness5/5

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

One sentence, eight words, action front-loaded and every phrase adds value. No redundant restatement of the schema.

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 two-parameter creation tool this is mostly sufficient, but with no annotations and no output schema it remains thin on error cases, prerequisites (parent must exist), and behavior on duplicate names. The core operation is clear, yet an agent is left guessing at failure behavior.

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 clarify the parent behavior ('optionally nested inside another'), which maps to the parent parameter, but leaves name semantics and any constraints entirely to inference from the schema.

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 action ('Create') on a specific resource ('collection') and adds the optional nesting scope. This clearly separates it from siblings like list_collections (listing) and move_to_collection (moving existing objects/collections).

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?

Gives no guidance on when to use this tool instead of alternatives such as move_to_collection or list_collections, and no prerequisites are mentioned. The only hint is that nesting is optional, but no if/then routing is provided.

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

create_convex_collisionA

Create a UCX_ convex hull collider.

Builds a convex hull and decimates it toward max_vertices, re-hulling afterwards so the result stays convex. Use this for shapes a box cannot approximate; use create_box_collision when a box will do, since it is cheaper at runtime.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesMesh object to build a collider for
collectionNo
max_verticesNoHull budget; engines prefer well under 32
collision_nameNo
parent_to_sourceNo

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It does disclose the decimation/re-hulling behavior, but does not explain side effects: whether the source mesh is modified, what the UCX_ prefix means, whether a new object is created, or how collision_name relates to the result. This is a meaningful but incomplete disclosure.

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 tightly written sentences carry all the necessary high-level information. The core action and algorithm are front-loaded, and the usage guidance appears in the final sentence without waste. Every clause earns its place.

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?

The description leaves out important operational details: what the tool returns, whether the original mesh is preserved, what collision_name does, and what parent_to_source means. Given no output schema and no annotations, these gaps make the definition incomplete for an agent that must invoke 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 40% (only name and max_vertices have descriptions). The description adds context for max_vertices (decimation target) but says nothing about collection, collision_name, or parent_to_source. With low coverage, the description was expected to compensate for the other parameters and did not.

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?

Description opens with a specific verb+resource: "Create a UCX_ convex hull collider." It explains the core algorithm (build hull, decimate, re-hull) and explicitly distinguishes it from create_box_collision. An agent can clearly understand what the tool does and why it differs from its closest sibling.

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?

Provides explicit when-to-use and when-not-to-use guidance: "Use this for shapes a box cannot approximate; use create_box_collision when a box will do, since it is cheaper at runtime." This is direct and names the alternative tool, leaving no room for inference.

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

create_cubeB

Create a cube at (x, y, z).

Kept for compatibility with the original bridge; create_primitive is the general tool and takes rotation, scale and collection too.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
zNo
nameNoAI_Cube
sizeNo

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states 'Create a cube' without mentioning side effects, required scene state, default behaviors (e.g., which collection the cube lands in), or any limitations. As a mutation tool, this is a notable gap in transparency.

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

Conciseness4/5

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

The description is two sentences with no wasted words. The primary purpose is front-loaded, and the compatibility note is concise. 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.

Completeness2/5

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

With no output schema and no annotations, the description should cover the tool's full behavior and parameter meaning. It covers purpose and gives a hint at the alternative, but omits parameter details for size and name, and lacks behavioral context (e.g., what the cube is, where it appears, any prerequisites). This is insufficient for an agent to invoke it confidently.

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 explains x, y, z as position coordinates but says nothing about the 'size' or 'name' parameters. Since half the parameters are unexplained, the description adds only partial value beyond the schema.

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: 'Create a cube at (x, y, z).' It clearly differentiates from the sibling create_primitive by noting it is kept for compatibility and that create_primitive is the general tool with rotation, scale, and collection. This allows an agent to distinguish the two without inspecting schemas.

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?

It names the alternative (create_primitive) and explains why create_cube exists (compatibility), implying create_cube is for simple cube creation without extra options. While not an explicit 'use this when...' statement, it provides enough context to route appropriately. It lacks a direct exclusion of other tools like create_mesh.

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

create_emptyA

Create an Empty. Useful as a parent, a pivot, or the offset target of an Array modifier.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoEmpty
locationNo[x, y, z] in Blender units
rotationNo[x, y, z] euler rotation in DEGREES
collectionNo
display_sizeNo
display_typeNoPLAIN_AXES

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose the core side effect: creating a new Empty object. However, it does not mention what happens after creation, such as whether the new Empty becomes the active object, how collection placement behaves, or whether any selection state changes. The fundamental behavior is clear, but some 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.

Conciseness5/5

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

The description is only two sentences, front-loads the core action, and every sentence contributes meaning. There is no filler, repetition, or unnecessary detail.

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?

This is a creation tool with six optional parameters, no annotations, and no output schema. The description does not tell the agent what the tool returns, how the created Empty is referenced afterward, or what scene/collection behavior to expect. An agent would need to infer too much about the result of calling this tool successfully.

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 only 33%, so the description must compensate for the four undocumented parameters: name, collection, display_size, and display_type. It does not. The phrase about being an 'offset target of an Array modifier' hints at spatial use, but it does not explain any of the parameters or their practical meaning beyond what the schema already provides.

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 exactly what the tool does: 'Create an Empty.' The use cases 'parent, a pivot, or the offset target of an Array modifier' make the unique role of an Empty clear and distinguish it from sibling creation tools like create_cube or create_mesh. The verb and resource are specific and the intent is immediately understandable.

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 description gives clear guidance on when to use this tool by naming concrete use cases: parent, pivot, or Array modifier offset target. It does not explicitly list alternatives or say when not to use it, but for a simple creation tool the intended context is clear enough.

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

create_imageC

Create a blank generated image, for example as a bake target.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
alphaNo
colorNo[r, g, b] or [r, g, b, a], each 0..1 (linear)
widthNo
heightNo
colorspaceNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that a blank image is created but does not explain side effects, whether the image is registered in the scene's image list, persistence, defaults, or any constraints around 'generated.' This is a meaningful gap for a creation tool.

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

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 gives the verb, object, and a purpose example efficiently. It is appropriately concise, though the content is sparse; that sparsity is penalized in other dimensions rather than here.

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 six parameters, no annotations, and no output schema, the description is too thin for correct invocation. It omits how the created image is returned or referenced, what defaults apply beyond the schema, and what nullable fields like height and colorspace mean. The high-level purpose alone is not enough.

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 only 17%, and the description names none of the six parameters. It adds no meaning beyond 'blank image,' leaving the agent without guidance on name, alpha, color format, width/height bounds, or colorspace values.

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 action and resource: 'Create a blank generated image' with a concrete example ('as a bake target'). It is clear, but it does not explicitly distinguish this tool from siblings like load_image or create_image_texture_node, so it falls just short of full differentiation.

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

Usage Guidelines3/5

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

The phrase 'for example as a bake target' implies a use case, suggesting when creating a blank image is appropriate. However, the description does not state when to use this tool instead of alternative image-related tools, nor does it provide exclusions or when-not-to-use guidance.

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

create_image_texture_nodeB

Add an Image Texture node and wire it into the material.

Give either image (already loaded) or filepath. With role='normal' the image is set to Non-Color and routed through a Normal Map node, which is what game normal maps need.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
roleNoDetermines the Principled input it is wired to and the colour space. 'normal' inserts a Normal Map node automatically.
imageNoName of an already loaded image
connectNoWire it into the Principled BSDF
filepathNoLoad this file instead (same path rules as load_image)
locationNo
materialYesMaterial to add the node to
extensionNo
connect_toNoOverride the target socket, e.g. 'Base Color'
interpolationNo

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description must disclose all behavioral traits. It does reveal a key behavior: for role='normal', the image is set to Non-Color and routed through a Normal Map node. However, it omits other important behaviors such as whether existing connections are overridden, whether the material must already contain a Principled BSDF, what happens if both image and filepath are supplied, or what the function returns. The provided detail adds some value beyond the schema, but significant gaps remain.

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 well-structured, leading with the core purpose in the first sentence, then providing the most critical usage details (image vs filepath, role='normal') in a brief second paragraph. Every sentence carries information without waste, making it easy for an agent to parse quickly.

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

Completeness2/5

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

Given the tool's complexity (10 parameters, no output schema), the description is far too sparse. It does not cover the meaning or effect of several parameters, does not describe error conditions, preconditions (e.g., material existence), or post-conditions (e.g., where the node is placed in the node tree). The description provides only a fraction of what an agent would need to use the tool correctly across its full parameter space.

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 60%, so the description should compensate for undocumented parameters. It does add meaningful semantics for the image/filepath choice (mutual exclusivity) and the role='normal' effect on color space and node routing. However, it does not elaborate on parameters like name, location, extension, or interpolation, which remain undocumented in both schema and description. The added value is real but partial, falling short of compensating for the coverage gap.

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

Purpose5/5

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

The description clearly states the action ('Add an Image Texture node') and the resource ('wire it into the material'), making the tool's purpose unambiguous. It also distinguishes itself from generic sibling tools like create_node by specifying the node type and the special handling for normal maps, so an agent can immediately tell when this tool is the right choice.

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 does not explicitly state when to use this tool versus alternatives such as create_node, set_node_inputs, or load_image. It only provides guidance on parameter choices (image vs filepath) and the role='normal' special case, but no exclusions or alternative routing. An agent is left to infer the tool's applicability from its purpose, which is insufficient given the many related siblings.

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

create_lightA

Create a light.

For a quick, even setup to inspect an asset, use create_preview_lighting instead of placing lights one at a time.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
sizeNoAREA light size; bigger means softer shadows
typeNoLight typePOINT
angleNoSUN angular diameter in degrees; larger softens shadows
colorNo[r, g, b] or [r, g, b, a], each 0..1 (linear)
energyNoWatts for POINT/SPOT/AREA (100-1000 is typical a few metres away); irradiance for SUN (1-5 is daylight)
look_atNo[x, y, z] in Blender units
locationNo[x, y, z] in Blender units
rotationNo[x, y, z] in DEGREES. Only matters for SUN, SPOT and AREA.
spot_sizeNoSPOT cone angle in degrees
collectionNo
spot_blendNo
look_at_objectNo
shadow_soft_sizeNoPOINT/SPOT radius; bigger means softer shadows

TDQS

A3.7/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden of behavioral disclosure. It only repeats the creation intent without mentioning side effects, prerequisites, return behavior, or interactions with the scene. For a mutation tool, this is a notable gap.

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

Conciseness5/5

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

The description is extremely concise, using only two sentences. The core purpose is front-loaded in the first sentence, and the alternative guidance is clearly separated. Every word earns its place.

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 14 parameters星的, no output schema, and no annotations, this tool is complex, yet the description provides almost no contextual overlay. It does not explain typical use cases (e.g., which parameters matter for which light type), what the tool returns, or what conditions must be met. The schema gives some per-parameter meaning, but the overall call context is under-specified.

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 description adds no parameter-level meaning; it only says 'Create a light.' The input schema covers 10 of 14 parameters with descriptions (71% coverage), leaving 4 parameters (name, collection, spot_blend, look_at_object) undocumented in both schema and description. The description fails to compensate for the missing 29%.

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 clear verb and resource: 'Create a light.' It also explicitly names the sibling tool create_preview_lighting as an alternative for a different use case, which distinguishes it from that sibling and makes its purpose unambiguous.

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

Usage Guidelines5/5

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

The description explicitly says when not to use this tool: 'For a quick, even setup to inspect an asset, use create_preview_lighting instead of placing lights one at a time.' This names the alternative and provides a specific condition, giving the agent a clear when-to/when-not-to decision.

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

create_lodA

Generate an LOD chain by duplicating and decimating.

Creates _LOD0, _LOD1, ... and NEVER modifies the source object. Returns the triangle count of each level so you can see what each step actually saved.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSource mesh object
applyNoBake the decimation. False leaves live Decimate modifiers you can still tune.
ratiosNoFace-keep ratio per level; the first is normally 1.0 for an untouched LOD0
x_offsetNoSpread the levels along X so you can render them side by side
base_nameNoBase for the LOD names; defaults to the source object's name
collectionNo
triangulateNo

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It explicitly promises that the source object is NEVER modified, states that new named objects are created, and explains the output as per-level triangle counts. It does not cover overwrite/conflict behavior, but the core side-effect profile is clear.

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 efficiently structured: action first, then safety guarantee, then return value. Every sentence provides useful information without filler.

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 7-parameter tool with no output schema and no annotations, the description is largely complete: it names outputs, states safety behavior, and summarizes the return value. Minor gaps remain around collection behavior and triangulation, but those are partly inferable from parameter names.

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 71%, and the description adds the <base>_LOD0 naming convention plus the return value meaning. However, it does not explain the undocumented collection or triangulate parameters, nor does it add significant semantics beyond the schema for parameters like ratios or apply.

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 uses a specific verb and resource: 'Generate an LOD chain by duplicating and decimating.' It names the exact output objects (<base>_LOD0, <base>_LOD1, ...) and clearly distinguishes itself from related tools like add_decimate by describing a multi-level chain workflow.

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 intended use is implied: create LOD levels from a source mesh. However, it does not explicitly contrast with alternatives such as add_decimate, duplicate_object, or manual modifier workflows, nor does it state when NOT to use this tool.

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

create_materialA

Create a Principled BSDF material.

Colors are [r, g, b] or [r, g, b, a] floats in 0..1 LINEAR space -- not 0-255 and not sRGB hex. Returns the material's resulting properties.

ParametersJSON Schema
NameRequiredDescriptionDefault
iorNoIndex of refraction; 1.45 glass, 1.5 plastic
nameYesMaterial name
alphaNoBelow 1 also needs blend_method='BLENDED'
metallicNo0 for non-metals, 1 for bare metal. Values in between are physically wrong for game PBR.
assign_toNoObjects to assign the new material to immediately
roughnessNo
base_colorNo[r, g, b] or [r, g, b, a], each 0..1 (linear)
blend_methodNoTransparency handling in EEVEE
emission_colorNo[r, g, b] or [r, g, b, a], each 0..1 (linear)
reuse_existingNoReuse a material of this name instead of failing
emission_strengthNo
use_backface_cullingNo

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral disclosure. It usefully warns about linear color space and states that the material's properties are returned, which adds value. However, it does not mention what happens when a material name already exists, whether it overwrites, or what side effects occur beyond creation.

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 deliver the main purpose first, then the critical usage caveat about color encoding. There is no filler or redundant restatement of the schema.

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 most error-prone detail (color space) and the return value, but for a 12-parameter material creation tool with no annotations, it omits duplicate-name behavior and the optional assignment behavior. Much of the parameter context is already in the schema, so the description is adequate but not 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?

The description adds meaningful color-format semantics beyond the schema by explicitly defining linear [r,g,b]/[r,g,b,a] floats and warning against 0-255 or sRGB hex. Schema coverage is already 75%, so the color-format clarification is a valuable supplement rather than a compensation for missing schema.

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 Principled BSDF material.' This clearly separates it from material inspection and assignment siblings like list_materials, get_material, and assign_material, which have different actions.

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

Usage Guidelines2/5

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

No guidance is given for when to use create_material versus alternatives; there is no mention of when to prefer set_material_properties or assign_material instead. The intended context is implied by the name and the creation verb, but exclusions and alternatives are not stated.

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

create_meshA

Build a mesh from explicit geometry.

Indices are validated before anything is created, so a bad face index is a clean error rather than a broken mesh. Keep it to a few thousand vertices; for anything procedural and large, use execute_blender_python with bmesh.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the new object
edgesNo[[i, j], ...] for standalone edges; faces create their own edges
facesNo[[i, j, k, ...], ...] indices into vertices, counter-clockwise seen from outside
scaleNo[x, y, z] in Blender units
locationNo[x, y, z] in Blender units
rotationNo[x, y, z] euler rotation in DEGREES
verticesYes[[x, y, z], ...] in local space
collectionNo
shade_smoothNo
recalculate_normalsNoMake face normals consistent afterwards

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds valuable context: indices are validated before creation, resulting in a clean error rather than a broken mesh, and a practical scale limit. This goes beyond what the schema reveals and helps the agent anticipate failure modes.

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 two short paragraphs, front-loaded with the core purpose, followed by two high-value behavioral notes. Every sentence earns its place; there is no filler or redundancy.

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

Completeness4/5

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

Given the tool has 10 parameters and no output schema, the description covers the essential context: what it builds, when to avoid it, and how errors are handled. It doesn't explain the return value or whether it selects the new object, but the schema covers parameter semantics and the description fills the most important operational gaps.

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 schema already covers most parameters (80% coverage), so the baseline is 3. The description adds meaning to indices and vertices by explaining that bad face indices produce clean errors and that the tool is suited for a few thousand vertices. This enriches the semantics of the faces/edges and vertices parameters beyond their type definitions.

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

Purpose4/5

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

The description clearly states the tool builds a mesh from explicit geometry, which sets it apart from parametric primitive creation tools like create_primitive or create_cube. It doesn't name siblings explicitly, but 'explicit geometry' is a meaningful distinction among the mesh-creation tools.

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

Usage Guidelines5/5

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

The description gives an explicit when-to-use and when-not-to-use: 'Keep it to a few thousand vertices; for anything procedural and large, use execute_blender_python with bmesh.' This directly names the alternative and the condition, making the decision unambiguous.

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

create_nodeC

Add a shader node to a material.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the node; used to reference it in connect_nodes
inputsNoDefault values for unlinked inputs, keyed by socket name, e.g. {"Scale": 12.0}
locationNo[x, y] position in the shader editor
materialYes
node_typeYesWhich shader node to add

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action ('Add') with no mention of side effects, reversibility, required permissions, or what happens if the node_type is invalid. It also doesn't describe the return value or whether the node is automatically linked to the material's output.

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, efficient sentence with zero waste. The core action and target are front-loaded, making it immediately scannable.

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

Completeness2/5

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

Given the tool has 5 parameters (2 required), a 23-option enum, and no output schema or annotations, the description is far too minimal. It doesn't explain how name, inputs, or location affect the node, nor does it provide context on node relationships or typical workflows. An agent would need to infer too much from the schema alone.

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 description adds no parameter-specific meaning beyond what the input schema already provides. Since schema coverage is 80% (4 of 5 parameters have descriptions), and the description doesn't compensate for the missing material parameter description or clarify the enum values, it fails to add value beyond 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?

The description clearly states the action (Add) and the target (a shader node to a material). It is specific enough to distinguish from siblings like create_material (creates the material itself) and create_image_texture_node (adds a specific node type), though it doesn't explicitly mention the node_type parameter that selects the kind of node.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like set_node_inputs, connect_nodes, or delete_node. It doesn't mention prerequisites, such as whether a material must already exist, or when to prefer this over more specific node-creation tools.

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

create_preview_lightingA

Build a neutral three-point studio rig sized to the subject.

Creates AI_Key, AI_Fill and AI_Rim area lights in an AI_PreviewLighting collection, with power scaled to the asset's size. Safe to re-run: it replaces the previous rig. Use this before render_preview when the scene has no lighting of its own.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectsNoSubject to light; omit to use all scene geometry
replaceNoRebuild the rig instead of stacking another one
strengthNoOverall brightness multiplier
world_colorNo[r, g, b] or [r, g, b, a], each 0..1 (linear)
world_strengthNoAlso set the world background strength for ambient fill; 0.2-0.5 keeps shadows from going black

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses two key behaviors: 'Safe to re-run: it replaces the previous rig' and 'power scaled to the asset's size.' These go beyond a simple 'creates lights' and give the agent confidence about side effects. It does not detail all possible effects (e.g., optional world settings), but for a creation tool this is adequate.

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

Conciseness5/5

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

Two concise paragraphs: the first is a clear one-line summary, the second elaborates on specifics (light names, collection, scaling, re-run safety, usage context). No filler or redundancy; every sentence contributes.

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

Completeness4/5

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

Given the tool's complexity (5 params, all documented) and no output schema, the description is fairly complete. It covers what it creates, how it behaves on re-run, and when to use it. It does not mention error conditions or return values, but these are not expected for a creation tool. The optional world settings are described in the schema, so no gap.

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 100% – every parameter (objects, replace, strength, world_color, world_strength) has a description. The tool description adds no parameter-specific meaning beyond the schema; the phrase 'power scaled to the asset's size' is not tied to any parameter. Per calibration, baseline 3 is correct when schema does the heavy lifting.

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 'Build a neutral three-point studio rig sized to the subject' – a specific verb, resource, and qualifiers. It names the exact lights created (AI_Key, AI_Fill, AI_Rim) and the collection (AI_PreviewLighting), which distinguishes it from siblings like create_light (single light) and delete_preview_lighting (removal).

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?

It explicitly states when to use: 'Use this before render_preview when the scene has no lighting of its own.' That is a clear condition. It does not name alternatives like create_light or set_world_background, but the condition implies when not to use (scene already lit). The re-run safety note is more behavioral than usage guidance.

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

create_primitiveA

Add a primitive mesh object to the scene.

Rotation is in DEGREES. Sizes are radius/size/depth in Blender units; the primitive-specific options are ignored by primitives that do not have them. Returns the created object's full record.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the new object
sizeNoEdge length for cube/plane/grid
depthNoHeight for cylinder/cone
scaleNo[x, y, z] in Blender units
radiusNo
locationNo[x, y, z] in Blender units
rotationNo[x, y, z] euler rotation in DEGREES
segmentsNoUV sphere longitude segments
verticesNoRadial segments for cylinder/cone/circle
primitiveYesWhich primitive to add
collectionNoCollection to put it in; created if missing
ring_countNoUV sphere latitude rings
shade_smoothNo
subdivisionsNoIco sphere subdivisions

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries full behavioral burden. It discloses that rotation is in degrees, sizes are in Blender units, and that primitive-specific options are ignored for incompatible primitives. It also states the return value (full record). This goes beyond the schema and gives the agent essential behavioral expectations, though it doesn't detail side effects like collection creation (though that is in the 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?

The description is three concise sentences, front-loaded with the primary purpose. It packs essential behavioral details without redundancy. Every sentence contributes to understanding how to use the tool correctly, with 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?

For a tool with 14 parameters and no output schema, the description covers key behaviors: it returns the full record, explains units, and clarifies parameter applicability. It does not cover every parameter detail, but the schema descriptions handle most (86%). It lacks explicit mention of side effects like collection creation, but that is documented in the schema. Overall, it provides sufficient context for an agent to use the tool correctly.

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 high at 86%, so baseline is 3. The description adds meaningful semantics by clarifying units (Blender units) for size/depth/radius, which are not fully specified in the schema (radius has no description), and by explaining that primitive-specific options are ignored when not applicable. This adds value beyond the schema, justifying a 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 states the tool adds a primitive mesh object to the scene, with a specific verb and resource. It does not explicitly differentiate from sibling tools like create_cube, but the general nature is evident. The mention of rotation, sizes, and return value adds specificity, though it doesn't distinguish from alternatives.

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

Usage Guidelines3/5

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

The description provides clear guidance on parameter units (degrees, Blender units) and that primitive-specific options are ignored by primitives lacking them, which is useful for parameter usage. However, it does not mention when to use this tool versus alternatives like create_cube or create_empty, nor any exclusions or conditions for use.

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

create_uv_layerB

Add a UV map. A mesh can hold at most 8 (a second one is the usual place for a lightmap).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesMesh object name
uv_nameNoName for the UV mapUVMap
make_activeNo

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It usefully reveals the 8-layer limit and the lightmap convention, but it does not disclose side effects such as whether the new layer becomes active (related to make_active) or what happens if the limit is exceeded.

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 two brief sentences, front-loading the core action and adding only the most relevant additional fact. Every sentence earns its place with no redundancy.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is thin. It omits prerequisites, side effects, failure behavior at the 8-layer cap, and explanation of make_active, leaving an agent with incomplete information for a correct 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 coverage is 67%, with make_active lacking a description. The tool description adds no parameter-level meaning, leaving the behavior of make_active ambiguous and not compensating 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: 'Add a UV map.' This clearly distinguishes it from sibling tools like list_uv_layers, set_active_uv_layer, and delete_uv_layer. It does not explicitly contrast with projection/unwrap tools, but the operation is concrete and understandable.

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?

There is no explicit 'use this when' or comparison to alternatives. However, the note that a second UV map is the usual place for a lightmap implies a common use case, providing some contextual guidance without naming or excluding sibling tools.

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

delete_lightC

Delete a light object and its data.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states that the tool deletes a light object and its data, which implies irreversibility, but it doesn't mention whether deletion is permanent, whether it affects scene references, or whether any confirmation is needed. The description adds minimal context beyond the obvious destructive action.

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

Conciseness4/5

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

The description is a single, short sentence that is easy to parse and front-loads the action. It is concise, though it could earn a 5 by adding a brief usage note without becoming verbose.

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 destructive tool with no annotations, no output schema, and a single undocumented parameter, the description is too thin. An agent needs to know what 'name' refers to, whether the action is reversible, and what happens to the light's data. The sibling list shows many related deletion tools, but the description doesn't help an agent distinguish this one.

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 the undocumented 'name' parameter. It does not explain what 'name' refers to (e.g., the light object's name in the scene) or how to find valid names. The description adds no parameter-level meaning beyond the schema's bare property 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?

The description states a specific verb ('Delete') and resource ('a light object and its data'), which clearly identifies the operation. It is distinguishable from sibling tools like delete_object and delete_objects because it targets lights specifically, though it doesn't explicitly name those alternatives.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives like delete_object or delete_objects. The description implies it is for lights, but it doesn't state exclusions or provide context for choosing it over similar deletion tools.

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

delete_nodeA

Delete a shader node. Refuses the Material Output node unless forced.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYes
forceNo
materialYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It discloses a valuable, non-obvious safeguard: deletion of the Material Output node is refused unless force=true. It does not mention side effects on connected links or whether deletion is reversible, but the explicit refusal behavior is meaningful transparency.

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 with no filler. The main action is front-loaded and the important exception is stated immediately after, making the behavior quickly scannable for an agent.

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 deletion tool, the description covers the essential calling context: the shader-node domain and the Material Output special case. It does not describe return values, but no output schema exists and the operation is likely fire-and-forget. Sibling tools like get_material_nodes provide the discovery mechanism for node identities.

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 clarifies that 'node' is a shader node and that 'force' overrides the Material Output protection, which adds real meaning. However, the 'material' parameter is left implicit, and no identifier/format guidance is given for either required parameter.

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 action ('Delete') on a specific resource ('shader node'), which clearly distinguishes it from sibling tools like delete_object and delete_light. The extra clause about the Material Output node makes the tool's scope even more precise.

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 description gives clear context: use this tool for shader nodes rather than scene objects, materials, or UV layers. It also provides a when-not condition by noting that the Material Output node is refused unless forced. It does not name alternative tools explicitly, but the domain is clear enough.

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

delete_objectA

Delete one object. DESTRUCTIVE -- make a checkpoint first if it matters.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesObject to delete
delete_childrenNo

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It explicitly warns of destructiveness and advises checkpointing, which is the critical behavior. It does not mention reversibility via undo or specifics about children, but the destructive warning is prominent and sufficient for a basic deletion 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?

Two short sentences with zero wasted words. The core action is front-loaded, and the destructive warning immediately follows. Highly concise and structured for quick comprehension.

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 core destructive nature and checkpoint advice, but omits the meaning of delete_children and any note about undo or return values. For a two-parameter destructive tool, the missing parameter explanation is a notable gap, though the tool is simple.

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 50%: only 'name' has a description ('Object to delete'); 'delete_children' has no description. The tool description adds no parameter details at all, leaving the behavior of delete_children (e.g., whether it recursively deletes) unexplained. This is a significant gap for a destructive operation.

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 'Delete one object' clearly states the action (delete) and the resource (object), and the singular 'one' differentiates it from the sibling delete_objects. 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 Guidelines4/5

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

The description provides a clear usage caution: 'DESTRUCTIVE -- make a checkpoint first if it matters.' This tells the agent when to take a precautionary step. It implicitly distinguishes from delete_objects by the singular scope, though it does not explicitly name the alternative or conditions for using the plural version.

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

delete_objectsB

Delete several objects. DESTRUCTIVE -- make a checkpoint first.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYesObjects to delete
delete_childrenNo

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does warn 'DESTRUCTIVE' and advises creating a checkpoint first, which is useful. However, it doesn't explain what happens to child objects when delete_children is set, nor whether the deletion is permanent or undoable (given undo/redo tools exist). This is partial transparency.

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 extremely concise—two short sentences with no filler. The primary action is front-loaded ('Delete several objects'), and the critical warning is placed immediately after. Every word earns its place.

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 2-parameter tool with no output schema, the description is mostly sufficient: it states the action, warns about destructiveness, and the schema covers the parameters. However, it lacks usage guidance (when to use vs delete_object) and doesn't clarify the effect of delete_children. The checkpoint advice hints at a workflow but doesn't reference the create_checkpoint tool. Overall, adequate but with notable 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?

The description adds no information about the parameters beyond the schema. The schema has 50% coverage (names is described, delete_children is not), but the description doesn't compensate for the missing delete_children semantics. The parameter names are self-explanatory, but the description itself contributes nothing to parameter understanding.

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

Purpose4/5

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

The description clearly states the action ('Delete') and resource ('several objects'), which distinguishes it from the sibling delete_object by implying multiple items. However, it doesn't explicitly name the alternative or elaborate on the plural nature beyond the word 'several', so it's clear but not maximally differentiated.

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 tool versus delete_object or other deletion/undo tools. The description only includes a destructive warning and checkpoint advice, which is behavioral rather than usage direction. An agent might be uncertain whether to choose this for a single object or multiple.

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

delete_preview_lightingA

Remove the AI_PreviewLighting rig and its collection.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It does disclose the key destructive side-effect (the collection is removed along with the rig), but it does not address reversibility, contained objects, or behavior when the preview lighting rig does not 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?

A single front-loaded sentence contains the verb and a precise object with no wasted words; every element 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?

For a zero-parameter destructive tool, the description provides the critical context: what will be removed and that a collection is included. It does not cover return/error behavior, but none is required for correct 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?

The input schema has zero properties, so there are no parameter semantics to document. The zero-parameter baseline is 4; the description correctly requires no arguments.

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 uses a specific verb, 'Remove', and names the exact resource, 'AI_PreviewLighting rig and its collection'. This is unambiguous and clearly distinguishes it from general-purpose delete_light or delete_object 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?

The intended use is inferable from the resource name, but there is no explicit statement of when to choose this tool over alternatives, no mention that it is the inverse of create_preview_lighting, and no exclusions.

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

delete_uv_layerA

Delete a UV map from a mesh.

Textures bound to that map will lose their coordinates, so check list_uv_layers first if the mesh has more than one.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
uv_nameYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description discloses the key non-obvious side effect: textures bound to the deleted map lose their coordinates. It also warns about multi-layer meshes. It doesn't mention irreversibility, but the warning is the critical behavioral fact.

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, entirely on-topic. The action is front-loaded, and the side-effect warning earns its place. 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?

For a two-parameter delete with no output schema or annotations, the description covers the action and the most important consequence. The missing parameter semantics is a gap, but the warning to check first compensates for common failure modes.

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 explain what 'name' and 'uv_name' mean, but it does not. Their roles are inferable from context, yet the description adds no parameter-level meaning beyond the schema's field titles.

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?

Clearly states the action (delete) and resource (a UV map on a mesh). The verb + target make it distinct from siblings like create_uv_layer and set_active_uv_layer without requiring schema inspection.

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 advises checking list_uv_layers first when there are multiple layers, giving a concrete precondition and naming the relevant sibling. It doesn't describe exclusions, but the caution is strong usage guidance for a destructive operation.

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

deselect_allA

Clear the selection.

Worth doing before export or a tool that falls back to "the selection", so a stale selection cannot pull in objects you did not mean to touch.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral burden. It clearly discloses the operation and its intended effect on subsequent tools. It stops short of stating whether the action is undoable or whether it affects only the selection state, but 'clear the selection' is a minimal, non-destructive operation and the rationale adds useful behavioral context.

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

Conciseness5/5

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

The description is two short sentences with no filler. The operation is front-loaded and the second sentence' usage rationale earns its place by explaining why the tool matters.

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 zero-parameter, no-output action, the description fully covers what the tool does and when to call it. There is no missing information required for correct 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?

The input schema has zero properties, so there are no parameter semantics to document. The baseline of 4 for no-parameter tools applies here.

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 single precise operation, 'Clear the selection', which is a specific verb+resource and clearly distinct from sibling tools like select_objects or get_selected_objects. It also reinforces scope by explaining that a stale selection must not pull in unintended objects.

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 description gives an explicit invocation context: use it before export or before any tool that falls back to 'the selection', with the reason being to avoid stale selections affecting output. It does not name alternatives or exclusions, but for a zero-parameter utility there is no real alternative to route between.

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

disconnect_node_inputB

Remove every link feeding one input socket.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYes
socketYes
materialYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must carry the behavioral burden. It does state the core action ('remove every link'), but it omits important behavioral details such as reversibility (despite an undo sibling), whether the operation fails if the socket is already disconnected, and any side effects on the node graph or material state. This is a significant gap for a mutating tool.

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

Conciseness5/5

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

The description is a single, well-formed sentence with no wasted words. It front-loads the primary action and is appropriately sized for a simple 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?

For a tool with three required parameters and no output schema, the description is too sparse. It does not explain how to identify the socket, what 'material' scope means, or what happens after disconnection. The agent would need to consult sibling tool names or guess, making the definition incomplete for reliable invocation.

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

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 the bare parameter names. It does not explain what 'node', 'socket', or 'material' refer to, nor how to format them (e.g., socket names vs indices). This leaves the agent to infer parameter semantics from the tool name and context alone.

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

Purpose5/5

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

The description clearly states a specific verb ('remove'), resource ('every link'), and target ('one input socket'). It is distinct from siblings like connect_nodes (which adds links) and delete_node (which removes a node), making the tool's purpose immediately 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 is provided about when to use this tool versus alternatives such as connect_nodes or set_node_inputs. The agent receives no context about prerequisites (e.g., whether the node must be selected) or when it would be inappropriate to use this tool.

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

duplicate_objectA

Duplicate an object, optionally moving the copy.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesObject to copy
scaleNo[x, y, z] in Blender units
linkedNoShare mesh data with the original (edits affect both)
offsetNo[x, y, z] added to the source location
locationNo[x, y, z] in Blender units
new_nameNo
rotationNo[x, y, z] euler rotation in DEGREES
collectionNo

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that a copy is created and that it can optionally be moved, but it does not mention side effects such as whether the original is affected, whether the copy shares data (though 'linked' param exists in schema), or any undo behavior. The description is not misleading but is minimal 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.

Conciseness5/5

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

A single sentence that is front-loaded with the core action and includes the key optional behavior. Zero filler, efficient and to the point.

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 8 parameters, no output schema, and no annotations, the description is too sparse. It does not explain what the tool returns (e.g., the new object's name), nor does it clarify the two undocumented parameters (new_name, collection) or the exact semantics of 'moving the copy' beyond the schema. An agent calling this tool would have to rely on schema alone for most details, which is inadequate for a multi-parameter operation.

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 75% (6 of 8 parameters have descriptions). The description adds no extra semantic detail beyond the schema; 'optionally moving the copy' hints at offset/location but these are already documented. With high coverage, the baseline is 3, and the description does not elevate it.

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 ('Duplicate') and a resource ('an object'), and the optional moving of the copy adds a clear scope. It is immediately distinguishable from sibling tools like delete_object, translate_object, or create_cube. The action 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 Guidelines4/5

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

The description provides clear context for when to use the tool: to duplicate an object. It does not explicitly name alternatives or exclusions, but the purpose is self-evident enough that an agent can infer usage without confusion. No misleading guidance is present.

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

end_operationA

Close the open operation and summarise what changed.

Returns which objects were created and removed, and how long it took.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses that the tool closes the operation and returns created/removed objects plus duration, which is meaningful behavior. However, it does not clarify whether the operation is final/committed, whether it creates an undo point, or what happens if no operation is open.

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 two short sentences: the first states the primary action, the second states the return value. Every sentence earns its place, with no filler or redundant schema 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 zero-parameter tool with no output schema, the description covers what the call does and what it returns, which is enough for a basic correct invocation. It could be more complete by placing end_operation in the begin_operation/cancel_operation lifecycle, but the core usage is still clear.

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 the schema is trivially complete and there is no parameter detail the description needs to add. The baseline of 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 clearly states the action ('Close the open operation') and the resource it operates on, and 'summarise what changed' plus the return description helps distinguish it from cancel_operation and undo. However, it does not explicitly name or contrast a sibling tool, so it stops just short of full differentiation.

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

Usage Guidelines2/5

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

No explicit guidance is given about when to use this tool versus cancel_operation or get_operation_status. The phrase 'the open operation' implies it requires an active operation, but the description does not state lifecycle prerequisites or exclusions, leaving the agent to infer usage from the tool name and sibling set.

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

evaluate_blender_expressionA

Evaluate one Python expression in Blender and return its repr.

A quick lookup that does not need a whole script.

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesA single Python expression, e.g. len(bpy.data.objects)

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It clearly says the result is the repr of the evaluated expression, but it does not warn that evaluating a Python expression in Blender can have side effects or mutate the scene, nor does it mention 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 tight, front-loaded sentences with no filler. The first sentence states the action and output; the second gives the usage context.

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 one-parameter tool with no output schema, the description covers the essential behavior and return format. It is slightly incomplete around side-effect risk and Blender context availability, but adequate for the intended quick-lookup use case.

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

Parameters3/5

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

The schema already fully documents the only parameter, expression, with a concrete example. The description adds little param-specific meaning beyond confirming the repr return, so the baseline of 3 applies.

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: evaluate one Python expression in Blender and return its repr. This clearly distinguishes it from script-execution tools like execute_blender_python.

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?

Describes itself as a quick lookup that does not need a whole script, implicitly guiding the agent to use it for lightweight one-off expressions rather than full Python scripts. It does not explicitly name the alternative or exclusion conditions, so it stops short of a 5.

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

execute_blender_pythonA

Run Python inside Blender on the main thread. The escape hatch.

Use this when the structured tools cannot express what you need: bmesh surgery, geometry nodes, uncommon operators, bulk edits. Prefer the structured tools when they fit -- they validate inputs and return tidy results.

Captures stdout and stderr, returns the traceback on failure, and reports which objects appeared or disappeared. Assign to a variable named result (or pass return_expression) to send a value back.

This is TRUSTED LOCAL EXECUTION: the code has the same reach as Blender's own scripting console, in the user's live session. There is no shell tool, no subprocess and no outbound network in this bridge -- do not try to add them here.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesPython source. bpy, bmesh, mathutils, math, random, Vector, Matrix, Euler, Quaternion, C (context) and D (data) are already in scope.
ignore_errorsNoReport an exception in the result instead of failing the call
return_expressionNoExpression evaluated after the code runs; its value is returned as result_repr

TDQS

A4.9/5.0
Behavior5/5

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

No annotations exist, so the description carries the full disclosure burden — and it delivers extensively. It reveals main-thread execution, stdout/stderr capture, traceback-on-failure, appeared/disappeared object reporting, the result-return mechanism, and a stark security note that this is TRUSTED LOCAL EXECUTION with the reach of the scripting console, explicitly warning against trying to add shell, subprocess, or network capabilities. Exceptional for a high-risk 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?

Four short paragraphs, each with a distinct job: core purpose, usage routing, behavioral details, and security boundary. The most important information (what it is, when to use it) is front-loaded. Every sentence earns its place — the security warning is essential for a trusted-execution tool, and the structure keeps it scannable.

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?

Despite having no output schema, the description fully explains return semantics (result_repr via return_expression, traceback on failure, captured stdout/stderr). For the most complex and powerful tool in the set, an agent has everything needed to call it safely and correctly: what it does, when to prefer it, how to return values, and what the security constraints are.

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 100%, so parameters are already documented. The description adds genuine value by connecting the mechanism: 'Assign to a variable named result (or pass return_expression) to send a value back,' which clarifies how code and return_expression interact to produce the return value — beyond what the bare schema states. Slightly above the baseline 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 and resource — 'Run Python inside Blender on the main thread' — and immediately positions itself as 'the escape hatch' for when structured tools fall short. This clearly differentiates it from the dozens of structured sibling tools by establishing it as the general-purpose fallback rather than a narrow operation.

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 when-to-use and when-not-to-use guidance: 'Use this when the structured tools cannot express what you need' with concrete examples (bmesh surgery, geometry nodes, uncommon operators, bulk edits), and 'Prefer the structured tools when they fit' because they validate inputs and return tidy results. This is textbook routing guidance.

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

export_fbxA

Export to .fbx for Unreal or Unity pipelines.

Defaults to meshes/empties/armatures with modifiers applied. Returns the absolute path, file size and the triangle count that was exported.

ParametersJSON Schema
NameRequiredDescriptionDefault
scaleNo
axis_upNoY
objectsNoObject names. Omit to use the current selection.
filenameYesFilename stem; .fbx is added
overwriteNo
path_modeNoCOPY places texture files next to the .fbxCOPY
triangulateNo
axis_forwardNo-Z
object_typesNoDefaults to MESH, EMPTY and ARMATURE
selected_onlyNo
embed_texturesNo
apply_modifiersNo
export_tangentsNo
mesh_smooth_typeNoFACE suits Unreal; EDGE suits UnityFACE
export_animationsNo

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It mentions defaults ('Defaults to meshes/empties/armatures with modifiers applied') and return values ('Returns the absolute path, file size and the triangle count'). However, it does not explicitly state that the tool writes a file to disk, potential overwriting behavior (though the overwrite parameter exists in schema), or any side effects on the scene. This is adequate but not rich.

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

Conciseness5/5

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

The description is concise and well-structured, consisting of two sentences. The first sentence states the primary purpose, and the second provides key defaults and return information. There is no redundancy or extraneous detail, and the most critical information is 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?

Given 15 parameters, no output schema, and no annotations, the description is moderately complete. It provides purpose, defaults, and return values, but does not explain all parameters or the file-writing process. Some parameters have schema descriptions (objects, path_mode, etc.), which helps, but the overall guidance for an agent to confidently call the tool is still incomplete, especially for nuances like axis orientation and smooth type.

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 only 33%, so the description must compensate. It adds value by clarifying defaults for object_types and apply_modifiers ('Defaults to meshes/empties/armatures with modifiers applied'). However, it does not explain the meaning of many other parameters like axis_up, axis_forward, or mesh_smooth_type, relying on the schema's enum names and defaults. The description partially bridges the coverage gap but leaves significant parameters unexplained.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Export to .fbx for Unreal or Unity pipelines.' It specifies the exact output format (.fbx) and target engine pipelines, which distinguishes it from sibling export tools like export_glb, export_gltf, and export_obj. The verb 'Export' is specific, and 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 Guidelines4/5

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

The description provides a clear usage context by stating it is for Unreal or Unity pipelines, which tells an agent when to prefer this tool over other exporters. However, it does not explicitly mention alternatives or when not to use it, such as for web or other engines. This is a useful but not exhaustive guideline.

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

export_glbA

Export to a single self-contained .glb file.

The usual choice for game engines and web viewers: geometry, materials and textures in one file. Returns the absolute path and file size.

ParametersJSON Schema
NameRequiredDescriptionDefault
y_upNoConvert Blender's Z-up to glTF's Y-up. Keep true unless you know the target wants Z-up.
dracoNoDraco mesh compression
objectsNoObject names. Omit to use the current selection.
filenameYesFilename stem; .glb is added for you
overwriteNo
export_uvsNo
selected_onlyNoWhen `objects` is omitted: export the selection rather than the whole scene
export_normalsNo
apply_modifiersNo
export_tangentsNoNeeded by some engines for normal maps
export_materialsNo
export_animationsNo

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It does disclose the return value ('Returns the absolute path and file size') and the self-contained packaging, which is useful. But it does not disclose side effects on the Blender scene, overwrite behavior, failure modes (e.g., no objects/selection), or prerequisites such as needing a selection or existing objects. Adds some value but leaves 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?

Three tight sentences with zero filler: the core function is front-loaded, followed by the use-case rationale and the return value. Every sentence earns its place.

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?

This is a 12-parameter export tool with no annotations and no output schema, so the description should carry substantial guidance. It covers the return format but does not explain parameter tradeoffs, prerequisites (objects must exist or be selected), or failure cases. A one-line format summary is thin for a tool this complex.

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 50%, leaving overwrite, export_uvs, export_normals, apply_modifiers, export_materials, and export_animations undocumented. The tool description contributes no parameter guidance at all — it never mentions any of the 12 parameters or their tradeoffs (draco compression, tangents for normal maps, animations). At half coverage the description should compensate but instead adds zero parameter semantics.

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 ('Export to a single self-contained .glb file') and grounds the format in a concrete use case ('usual choice for game engines and web viewers'), which differentiates it from the sibling exporters (export_gltf, export_fbx, export_obj) without naming them. An agent can tell what it does and when it is the right format.

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 'usual choice for game engines and web viewers' line is an implicit usage cue, implying use when targeting those consumers and implying GLB's self-contained nature over GLTF's potentially external files. However, it never names an alternative explicitly, states when NOT to use it, or contrasts with export_gltf, the closest sibling. Guidance is implied, not stated.

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

export_gltfA

Export to .gltf with separate .bin and texture files.

Use export_glb unless you specifically need the textures as loose files.

ParametersJSON Schema
NameRequiredDescriptionDefault
y_upNo
objectsNoObject names. Omit to use the current selection.
filenameYesFilename stem; .gltf is added
overwriteNo
export_uvsNo
selected_onlyNo
export_normalsNo
apply_modifiersNo
export_tangentsNo
export_materialsNo
export_animationsNo

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the output format (separate .bin and texture files), which is useful, but it does not mention side effects like file overwriting, whether the export is non-destructive to the scene, or what happens on failure. The overwrite parameter defaults to true, but the description doesn't warn about that 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. The core purpose is front-loaded, and the routing guidance is a single clear sentence. Every word 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?

For an export tool with 11 parameters but no output schema, the description is mostly complete: it states the format, the file layout, and the key selection rule. It doesn't explain return values or error behavior, but those are less critical for an export command, and the parameter names are largely self-documenting.

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 only 18%, so the description should compensate, but it only clarifies the filename stem and the loose-file behavior. Most of the 11 parameters (y_up, export_uvs, selected_only, etc.) are self-explanatory from their names and defaults, so the schema plus names carry the meaning. The description adds minimal value beyond the schema.

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 ('Export') and resource ('.gltf' with separate .bin and texture files), and explicitly distinguishes it from the sibling export_glb. An agent can tell exactly what this tool produces and how it differs from the closest alternative.

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

Usage Guidelines5/5

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

The description explicitly says 'Use export_glb unless you specifically need the textures as loose files.' This gives a clear when-to-use rule and names the alternative, leaving no ambiguity about tool selection.

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

export_objB

Export to .obj. Simple static geometry only -- no animation, no PBR.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectsNoObject names. Omit to use the current selection.
filenameYesFilename stem; .obj is added
export_uvsNo
triangulateNo
selected_onlyNo
export_normalsNo
apply_modifiersNo
export_materialsNo

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose the key limitation (static geometry only), but it says nothing about file overwriting, whether it modifies the scene, required permissions, or the output file location. This is a modest level of transparency.

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 two short sentences with no filler. The core purpose and a key limitation are front-loaded, making it efficient and easy to scan.

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

Completeness2/5

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

Given the tool has 8 parameters, no output schema, and no annotations, the description is far too thin. It does not explain how to specify objects, how selection interacts with the selected_only flag, or what happens to the output file. An agent would struggle to use this tool correctly without opening the schema and guessing.

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 only 25%, yet the description mentions none of the parameters. It does not explain what 'objects', 'filename', 'triangulate', or other options do. The schema itself is largely undocumented, and the description provides no compensation, leaving the agent to infer parameter meaning from titles and defaults alone.

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

Purpose4/5

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

The description clearly states the action 'Export to .obj' and adds a scope limitation ('Simple static geometry only'), which distinguishes it from more capable export formats like glTF or FBX. However, it does not explicitly mention sibling tools or the export target (selection, scene, etc.), so it is clear but not fully differentiating.

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 description provides a clear usage condition: use this tool only for simple static geometry without animation or PBR. This implicitly tells the agent when to choose another format, but it does not name specific alternatives like export_glb or export_fbx, so the guidance is implicit rather than explicit.

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

frame_objects_with_cameraA

Position a camera so the given objects exactly fill the frame.

Distance is computed from the render aspect ratio and the camera's field of view, and the clipping range is widened to suit. Use this before render_preview when you want to control the angle.

ParametersJSON Schema
NameRequiredDescriptionDefault
cameraNoCamera to move; omit for the active one
createNoCreate an AI_PreviewCam if the scene has no camera
marginNoPadding factor; 1.0 fills the frame exactly
objectsNoObjects to fit in frame; omit for the selection, else all geometry
directionNoNamed viewing angle. 'three_quarter' reads best for inspecting a prop; 'front'/'left'/'top' are for checking proportions.
set_activeNo

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the disclosure burden. It states non-obvious behavior: distance is computed from render aspect ratio and FOV, and the clipping range is widened to suit. It could be more explicit that the camera transform is overwritten or that a camera may be created, but the core mutation and side effects are disclosed.

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

Conciseness5/5

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

Three sentences, all useful and front-loaded. The first sentence states the purpose, the second explains the computed behavior, and the third gives usage context. No filler or 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?

For a tool with six optional parameters and no output schema, the description is complete enough: it explains the operation, the computation, the side effect on clipping, and the intended workflow position. It does not discuss error cases or return values, but those are not essential for this camera-framing 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 83%, so the baseline is 3. The description adds a general angle-control rationale but does not meaningfully elaborate parameter semantics beyond what the schema already provides. The undocumented set_active parameter is not compensated for, though its name makes it reasonably self-explanatory.

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: 'Position a camera so the given objects exactly fill the frame.' This clearly distinguishes the tool from generic camera movement or look-at behaviors, and the mention of using it before render_preview situates it in a concrete workflow.

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 description gives clear context for when to use it: 'Use this before render_preview when you want to control the angle.' It does not explicitly name exclusions or alternatives such as look_at, but the sequencing and framing intent are clear enough for an agent to select it appropriately.

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

get_active_objectA

The active object in full detail, or null when nothing is active.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It reveals the null-return behavior when nothing is active, which is useful. However, it does not mention whether this is read-only (likely safe), what 'full detail' includes, or any side effects. The behavior is mostly predictable, but the description is minimal.

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

Conciseness5/5

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

The description is one short sentence, front-loaded with the primary purpose. Every word earns its place, and it efficiently communicates the key behavior including the null case. No fluff or repetition.

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 tool is simple with no parameters and no output schema, so little is needed. The description is complete for basic usage: retrieving the active object. However, it does not clarify what 'full detail' includes (e.g., transform, mesh data) or how it differs from get_object, which could be helpful in this large sibling context. Minor gaps, but acceptable for such a simple tool.

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 and the schema is fully covered (100%), so there are no parameters to describe. The description adds meaning by explaining the output (full detail or null), which is beyond the schema's empty properties. Since there are no params, a baseline of 4 is appropriate.

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 (active object) and the verb (get), and specifies that it returns 'full detail' or null when nothing is active. It differentiates from sibling tools like get_object and get_selected_objects by focusing on the active object specifically, though it does not explicitly name those alternatives.

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

Usage Guidelines3/5

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

The description implies usage: use when you need the active object's full detail, but it does not explicitly state when to use it over get_object or get_selected_objects. It mentions the null return case which hints at when it might be unhelpful, but lacks explicit routing guidance.

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

get_blender_versionA

Blender version, build and Python version of the running instance.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It implies a read-only operation but does not explicitly state it. It also does not disclose any side effects, error conditions, or prerequisites. The description is minimal and does not add context beyond the return values.

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

Conciseness5/5

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

The description is a single, concise sentence that gets straight to the point. It is front-loaded with the key information and contains no filler. Ideal for a simple 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?

For a trivial getter with no parameters and no output schema, the description is mostly complete. It states what data is returned but does not describe the format or structure (e.g., string vs object). Since there is no output schema, this is a minor gap, but the tool is simple enough that an agent can infer.

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 the schema covers all (100%). The description correctly avoids parameter details. Baseline for 0 params is 4, and there is nothing to add.

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

Purpose4/5

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

The description clearly states the tool returns Blender version, build, and Python version. It is a noun phrase but unambiguous. It distinguishes itself from other getters like get_bridge_status or get_scene_info by specifying exactly what data is returned. No ambiguity.

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 explicit guidance is given on when to use this tool versus alternatives. There is no mention of conditions, exclusions, or related tools. Usage is implied by the name and description but not articulated, leaving the agent to infer.

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

get_bridge_statusA

Bridge health: version, host/port, scene name, open .blend path, workspace directories, command counters and the last error.

Use this to diagnose connection problems or to find out where previews, checkpoints and exports are written.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It explains the returned contents but does not explicitly state that the tool is read-only, whether it requires an active Blender connection, or whether it can be safely called mid-operation. The 'get' prefix implies non-mutating behavior, but this is not stated.

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, front-loaded with the field list and followed by direct usage guidance. Every phrase earns its place; there is no filler or redundancy.

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 status getter with no output schema, the description covers the essential information: what fields are returned and why an agent would call it. It could be slightly more complete by naming sibling tools like ping_blender or get_workspace_info as alternatives, but the guidance is sufficient.

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?

There are zero parameters, so the baseline is 4. The description adds relevant context about what the status report covers, even though no parameters need explaining.

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 bridge health and enumerates the exact fields returned (version, host/port, scene name, open .blend path, workspace directories, command counters, last error). It lacks an explicit verb like 'retrieves' but the resource is unambiguous and the field list helps distinguish it from siblings like ping_blender or get_workspace_info.

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 description explicitly says when to use the tool: 'diagnose connection problems' or 'find out where previews, checkpoints and exports are written.' It does not name alternatives or state when not to use it, though the contexts are clear enough for an agent to choose this over a simple ping.

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

get_cameraC

A camera's transform and lens settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoCamera name; omit for the active scene camera

TDQS

C2.6/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden. It says nothing about whether this is a read-only operation, whether it can fail, what the return structure looks like, or any side effects. The name 'get' implies read-only, but the description itself is silent, providing no behavioral transparency beyond the resource content.

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 extremely brief and free of redundancy, but it is just a fragment without a verb. It is concise in size, though the front-loaded resource name is the only substantive content. No filler words, so it earns a 4 for conciseness, but the lack of a verb hurts structure.

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 no output schema and no annotations, the description should compensate by explaining what the returned data contains. 'Transform and lens settings' gives a high-level hint, but not the structure, units, or how the active scene camera resolution works. For a simple getter this is barely adequate; significant details are left to the agent's inference.

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

Parameters3/5

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

The input schema has 100% description coverage – the 'name' parameter is fully documented with 'Camera name; omit for the active scene camera'. The tool description adds no additional parameter semantics, so the baseline 3 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 is a noun phrase – 'A camera's transform and lens settings' – that identifies the resource and the two aspects returned, but it doesn't explicitly state the action (get/retrieve). It doesn't distinguish from list_cameras or get_object, though the 'transform and lens settings' hint narrows it. This is clear but not a fully explicit verb+resource statement.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool instead of list_cameras, get_object, or set_camera_transform. The description doesn't mention prerequisites like needing a camera name or the active-scene-camera fallback. There is no when/when-not or alternative tool named.

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

get_imageB

Metadata for one image datablock: resolution, depth, colour space, path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

B3.3/5.0
Behavior3/5

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

The description discloses the core behavior by listing the specific metadata fields returned. With no annotations provided, it does not explicitly state that the operation is read-only, nor does it describe behavior for missing or invalid image names.

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 sentence with the resource front-loaded and the returned attributes presented as a clear colon-delimited list. There is no filler or redundant wording.

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 getter, the description covers the key output fields and resource scope, and since no output schema exists, the field list is valuable. It still lacks parameter detail and explicit usage context, making it adequate but not robust.

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's 'name' parameter has no description (0% coverage), and the description only loosely ties the parameter to an image datablock. It does not clarify what format the name should take or how to reference an image in the datablock.

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 the resource as 'one image datablock' and enumerates the returned metadata fields (resolution, depth, colour space, path), making the tool's purpose clear. It does not use an explicit verb like 'retrieves' and does not name a sibling, so it stops short of the strongest differentiation.

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 singular 'one image datablock' implies this tool is for per-image metadata rather than listing all images, which gives some usage context. However, there is no explicit guidance about when to use this versus siblings like list_images or load_image, and no exclusions or prerequisites are stated.

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

get_materialC

A material's Principled BSDF values, render settings and users.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
include_nodesNoInclude the full node graph

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description states what data is returned but says nothing about side effects, permissions, or whether the operation is read-only. For a retrieval tool this is a notable omission, as the agent cannot confirm the operation is safe without annotations or explicit wording.

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?

The description is extremely short—a single noun phrase. It is concise but structurally incomplete as a conventional sentence. It does front-load the key returned data, but the lack of a verb and any additional context makes it feel underspecified rather than efficiently complete.

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 no output schema and no annotations, the description should provide enough context for correct invocation. It lists return contents but omits purpose of each parameter, behavioral guarantees, and any relation to sibling tools. Given the tool's simple getter nature and two parameters, the description is insufficient for an agent to use it confidently in varied contexts.

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 50% (only include_nodes has a description). The description adds no parameter-level meaning; it does not mention 'name' or 'include_nodes' at all. Since coverage is not high, the description should compensate, but it fails to do so, leaving the agent to rely on parameter names alone.

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 (a material) and the specific data returned (Principled BSDF values, render settings, users). Although it lacks an explicit verb, the tool name 'get_material' combined with this noun-phrase description leaves little ambiguity. It also differentiates from siblings like get_material_nodes (which focuses on the node graph) and list_materials (which only lists materials).

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 like get_material_nodes or list_materials. No conditions, prerequisites, or exclusions are provided. The intended use must be inferred entirely from the tool name and description.

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

get_material_nodesA

The material's full shader node graph: nodes, their socket values and every link. Read this before rewiring anything.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden. It discloses that the tool returns the complete graph and implies a read-only operation, but it does not describe response shape, potential errors, or material-not-found 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 short sentences, front-loaded with the payload definition and followed by a single clear usage directive. Every word 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?

For a simple one-parameter read tool, the description adequately defines what will be returned and hints at the intended workflow. It is slightly incomplete only in not spelling out error cases or the exact interpretation of 'name'.

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

Parameters3/5

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

The single parameter 'name' is only 'Name' in the schema, with 0% schema description coverage. The description indirectly ties it to a material via 'The material's full shader node graph', which adds minimal meaning, but it does not specify required format, namespace, or behavior for missing materials.

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 the resource ('the material's full shader node graph') and enumerates its contents (nodes, socket values, links), so an agent knows this is the graph-fetching tool. However, it lacks an explicit verb and does not contrast with sibling tools like get_material or list_materials.

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 instruction 'Read this before rewiring anything' gives a clear when-to-use signal and aligns with the mutating sibling tools. It does not name alternatives or explicitly say when not to use it, which would make it a 5.

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

get_mesh_dataA

Raw vertex/edge/face arrays for a mesh.

Only for small meshes you need to reason about vertex by vertex; it refuses meshes above limit. For size, topology and material information use get_object or analyze_game_asset instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesMesh object name
limitNoRefuse if the mesh has more vertices than this

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the key behavior of refusing meshes above `limit`, which is valuable, but it does not explicitly state that the operation is read-only or describe error handling (e.g., what happens if the mesh is not found or the limit is exceeded). It also does not mention if the operation has side effects, though it is implied to be a pure data fetch. This partial disclosure is adequate but not thorough.

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 very concise, with two short sentences covering purpose and usage guidance. It is front-loaded with the core purpose, then adds the crucial limit behavior and alternatives. There is no filler or redundant information, making it highly efficient for an agent to parse.

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

Completeness4/5

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

Given the tool's simplicity and the fact that there is no output schema, the description covers the essential aspects: what it returns (raw arrays), when to use it, and the limit restriction. It does not describe the exact structure of the arrays or error scenarios, but for a small data retrieval tool, this is largely sufficient. It could be slightly more complete by stating read-only nature or error behavior, but overall it provides enough context for an agent to use it 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?

The input schema already describes both parameters (name and limit) with 100% coverage. The description mentions `limit` in the behavioral context but does not add any new semantic meaning beyond what the schema provides. Since the schema does the heavy lifting, a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool provides 'Raw vertex/edge/face arrays for a mesh' and explicitly distinguishes it from get_object and analyze_game_asset, which handle size, topology, and material info. The verb 'get' is implied by the name, and the scope (mesh data) is unambiguous, making it easy for an agent to select this tool over siblings.

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

Usage Guidelines5/5

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

The description explicitly says to use this tool only for small meshes when vertex-by-vertex reasoning is needed, and it refuses meshes above `limit`. It also names the exact alternatives (get_object, analyze_game_asset) for other use cases, giving clear when-to-use and when-not-to-use guidance with no ambiguity.

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

get_objectA

Everything about one object: transform (rotation in degrees), dimensions, visibility, collections, parent and children, material slots, world bounds, and for meshes the geometry statistics, UV layers and modifier stack.

Returns statistics, not raw mesh arrays -- use get_mesh_data for those.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesExact object name
include_mesh_statsNoInclude vertex/edge/face/triangle counts, UV layers, materials and modifiers for mesh objects

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the return scope (statistics not raw arrays) and details the types of data included. It does not mention side effects, but as a getter, the read-only nature is implied. The description is sufficiently transparent about what it returns and what it omits.

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 concise and front-loaded. It opens with a clear summary ('Everything about one object') and then lists specific attributes, followed by a crucial clarification and pointer to the alternative. No wasted words; every sentence adds value.

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?

The description enumerates the categories of returned data, which is helpful given no output schema. It also distinguishes from get_mesh_data. However, it does not mention error conditions (e.g., nonexistent object) or provide a return format example, which is a minor gap for a tool without an output schema.

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 100%, so both parameters are already documented. The tool description adds minimal extra meaning beyond the schema—it only mentions that include_mesh_stats controls mesh statistics, which is already stated in the schema. Baseline 3 is appropriate.

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 clear purpose: retrieving comprehensive object metadata (transform, dimensions, visibility, collections, parenting, material slots, bounds, and mesh-specific stats). It explicitly differentiates itself from get_mesh_data by clarifying it returns statistics rather than raw mesh arrays, which prevents confusion among siblings.

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 description provides explicit guidance on when NOT to use this tool ('use get_mesh_data for those') and names the alternative. While it doesn't explicitly say when to use it, the context makes it obvious that it's for general object inspection, and the exclusion is clear.

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

get_operation_statusB

Whether an operation is open, its label, elapsed time and checkpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does disclose the expected result fields (open, label, elapsed time, checkpoint), which gives a useful contract, but it does not explicitly state that the call is read-only, nor does it describe behavior when no operation 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 description is very short and front-loaded with the key output fields, containing no filler. It loses a point because it is a sentence fragment and is terse enough to leave ambiguity about the exact operation being queried.

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 tool this is minimally usable: the agent knows it receives status fields and has no required inputs. However, with no output schema, the description is the only contract, and it does not clarify what 'operation' refers to, what 'checkpoint' means, or what units/format elapsed time uses.

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 input schema is empty and schema description coverage is 100%, so there are no parameters to document. This matches the baseline for a zero-parameter tool; the description's only subtle gap is not clarifying whether it refers to the current operation, but that is a completeness concern rather than a parameter semantics issue.

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 the resource (operation status) and enumerates the specific fields returned: open flag, label, elapsed time, and checkpoint. It is not a tautology, but it is a fragment rather than an explicit verb+resource statement, and it does not directly distinguish itself from sibling tools like list_checkpoints or begin_operation.

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 tool or how it relates to begin_operation, end_operation, cancel_operation, or list_checkpoints. The agent is left to infer that this is a status read, with no exclusions or alternatives mentioned.

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

get_render_settingsA

Current render engine, resolution, samples and output format.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations and no output schema, the description carries the full burden. 'Current render settings' implies a read-only state query, but the description doesn't explicitly state that nothing is modified, nor does it describe the response shape or failure conditions. This is acceptable for a simple getter but leaves assumptions implicit.

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 compact fragment that contains exactly the information an agent needs for a no-argument getter. It is front-loaded and contains no filler.

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

Completeness4/5

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

For a no-parameter getter, the description is nearly complete: it states the subject (render settings) and the fields returned. It would be slightly stronger with an explicit return-format note, but the tool is simple enough that the missing output schema is not a major gap.

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 document. The description's enumerated fields (engine, resolution, samples, output format) serve as useful context for what the returned data will contain, which is all that is needed 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?

The description identifies the tool as exposing current render engine, resolution, samples, and output format; the 'get' in the name makes the retrieval intent clear. It is specific enough to be distinguished from set_render_settings, though it never uses an explicit verb like 'returns'.

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

Usage Guidelines2/5

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

No guidance is given about when to call this versus alternatives such as set_render_settings, render_preview, or get_workspace_info. The only hint is the word 'Current', which implies a read operation, but no explicit exclusions or sibling references are provided.

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

get_scene_infoA

Overview of the current Blender scene: every object with its type and location, counts by type, total vertices/triangles, active camera, selection, collections, materials, render settings and world bounds.

Call this before modelling so you know what is already there.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It describes what is returned and implies a non-mutating, read-only snapshot, but it never explicitly states that nothing is modified or warns about potential cost on large, complex 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?

The description is two sentences with no filler: the first fronts the scope and contents, the second gives the practical usage cue. Every sentence earns its place.

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 zero-parameter, no-output-schema tool, the description sufficiently explains the return value contents and the context in which to call it. An agent can decide to invoke this tool correctly without further information.

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 no parameter burden. Per the baseline for zero-parameter tools, the description does not need to compensate for undocumented inputs, and it does not attempt to invent any.

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 ('get') and resource ('scene info'), then enumerates exactly what the overview contains: objects with type and location, counts, vertex/triangle totals, active camera, selection, collections, materials, render settings, and world bounds. This clearly distinguishes it from narrower sibling tools like list_objects or list_cameras.

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 description gives an explicit trigger: 'Call this before modelling so you know what is already there.' It does not list when not to use it or name alternatives like list_objects for detailed queries, but the primary use case is clearly communicated.

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

get_selected_objectsB

The current selection and the active object.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden for behavioral disclosure. It states what is returned but does not disclose behavior such as whether an empty selection returns an empty list or null, whether the active object may be included in the selection list, or whether any errors occur for missing state. This is minimal information for a state getter.

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 extremely short and to the point, with no filler words. However, it is a fragment rather than a full sentence, which makes it slightly less polished. The structure is acceptable for a zero-parameter getter, but a complete sentence like 'Returns the currently selected objects and the active object.' would 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?

With no output schema, the description must explain the return value and any relevant context. It mentions both the selection and the active object, which is the core content. However, it lacks detail on the format (e.g., object names, IDs), edge cases (no selection, no active object), and how this differs from get_active_object. This is adequate but not 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?

The tool has zero parameters and the schema confirms this with 100% coverage. Per the baseline rule for 0 params, the description does not need to explain parameter semantics. It still correctly indicates the tool operates on the current scene state without requiring input.

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 phrase 'The current selection and the active object.' clearly identifies the resource and scope of the tool: it returns both the current selection and the active object. This differentiates it from the sibling get_active_object, which presumably returns only the active object. However, it is a noun phrase rather than an explicit verb+resource statement, which is a minor clarity gap.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like get_active_object, get_object, or list_objects. There is no mention of preferred contexts, exclusions, or conditions that would route an agent to this tool. The only implied usage is that it is a read operation, which is insufficient.

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

get_workspace_infoB

Where the bridge writes previews, checkpoints, exports and logs, plus the currently open .blend file and whether it has unsaved changes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden for behavioral disclosure. It never explicitly states that this is a read-only inspection call or that it does not modify Blender state; it only describes what workspace information is exposed. Error behavior and the no-open-file case are also not addressed.

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 sentence with no filler and front-loads the output-path information before the file-state details. It could be improved by starting with an explicit verb like 'Returns', but it is appropriately sized for a simple 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?

For a zero-parameter getter with no output schema, the description covers the main payload: output paths plus open-file and unsaved-changes state. It does not specify exact return keys or data types, but the low complexity means an agent can invoke the tool without missing critical instructions.

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 input schema has zero properties, so there are no parameter semantics to clarify. The '0 params = baseline 4' rule applies directly, and the description appropriately does not waste space on 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 enumerates the exact workspace facts returned: where previews, checkpoints, exports, and logs are written, the current .blend file, and unsaved-changes state. That is specific enough to distinguish it from siblings like get_bridge_status or get_blender_version, though it lacks an explicit verb such as 'returns'.

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?

No explicit when-to-use or alternative routing is provided; the intended use is only implied by the enumerated content. With such a long sibling list, guidance against get_bridge_status or get_scene_info would help, but the zero-parameter design keeps ambiguity low.

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

hide_objectA

Hide an object. Hidden objects are skipped by render_preview's auto framing.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
renderNoHide in renders too
viewportNoHide in the viewport

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden and does provide a non-obvious side effect: hidden objects are skipped by render_preview auto framing. It does not mention lifecycle details like reversibility via show_object, but the most relevant behavioral consequence is disclosed and nothing contradicts 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.

Conciseness5/5

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

Two short sentences with no filler. The first states the action and the second adds a valuable consequence; every word 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?

For a simple state-change tool with three parameters, no output schema, and no annotations, the description covers the core action and a key downstream effect. It would be slightly stronger with an explicit note that hiding is reversible via show_object, but nothing essential is missing for invoking it 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?

The description adds no parameter-specific meaning, but the schema already documents the render and viewport booleans with defaults and descriptions. The only undocumented parameter, name, is self-explanatory from the tool name, so the 67% schema coverage is sufficient and the description does not need to compensate.

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 clear verb and resource ('Hide an object') and adds a meaningful behavioral detail: hidden objects are skipped by render_preview's auto framing. This distinguishes it from delete_object and implies the inverse relationship with show_object, though it does not explicitly name any sibling.

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 statement about render_preview's auto framing gives an implied use case: hide an object when it should remain in the scene but be excluded from auto framing. However, there is no explicit comparison to alternatives like show_object or delete_object, or guidance about when not to use this tool.

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

join_objectsA

Join mesh objects into one. The others are consumed. DESTRUCTIVE.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYesMesh objects to merge
targetNoWhich one survives; defaults to the first

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of safety disclosure. It explicitly warns that the other objects are consumed and labels the operation DESTRUCTIVE, which is the most critical behavioral trait. It does not mention undoability or material/origin behavior, but the destructive warning covers the core risk.

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 each carry weight: the action, the side effect, and the destructive warning. The wording is front-loaded and free of filler, with no unnecessary explanation.

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 two-parameter destructive operation with no output schema, the description is nearly complete. It discloses the essential risk and the schema covers parameter semantics. Minor gaps like whether the operation is undoable or how the target behaves after joining do not seriously hinder correct use.

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

Parameters3/5

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

The schema already describes both parameters well, including that names are the mesh objects to merge and that target defaults to the first object. With 100% schema coverage, the description adds no parameter-level detail, so it stays at the baseline.

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 uses a specific verb and resource: 'Join mesh objects into one.' The consumption warning reinforces exactly what the operation does, and no sibling tool covers the same joining behavior, so an agent can identify it unambiguously.

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, what preconditions apply, or how to avoid accidental data loss. An agent must infer when joining is appropriate and is not directed to safer alternatives like duplicating objects first.

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

list_bridge_actionsA

List every action the Blender bridge accepts.

Useful when a structured tool is missing: the action may still exist, and execute_blender_python can always fill the gap.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It implies a read-only operation through the verb 'List' and hints that the list may include actions not exposed as structured tools, but it does not explicitly state side-effect-freeness or the output shape. This is minimally adequate but not deeply transparent.

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 concise sentences with the core purpose front-loaded and a brief, useful usage note second. No redundant or filler content.

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 simple, zero-parameter enumeration tool, the description covers what the tool does and when to use it. The lack of an explicit return-type statement is minor because the name and verb already imply a list of action names.

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 schema coverage is trivially 100% and no parameter guidance is needed. The description correctly omits parameter details, matching the baseline for a no-parameter tool.

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 ('List') and resource ('every action the Blender bridge accepts'), making the tool's function immediately clear. It also positions itself in contrast to execution tools by noting the action may exist even when a structured tool is missing.

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?

Explicitly says this tool is useful when a structured tool is missing, and names the alternative (execute_blender_python) that can fill the gap. This gives an agent a clear decision rule for when to call this tool versus other siblings.

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

list_camerasB

Every camera with transform, lens, field of view and clipping range.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what data is returned but does not explicitly say the operation is read-only, describe the return format, or mention behavior on empty scenes or errors.

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 short, front-loaded phrase with no filler. It names the resource and the exact data fields the agent should expect.

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 listing tool, the description is adequate: it names the resource and output fields, and an agent can call it without ambiguity. It is slightly incomplete because there is no output schema and no mention of the result shape or empty-state behavior, but the low complexity keeps this from being a major gap.

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 no parameters and schema coverage is 100%, so the baseline is 4. The description adds no parameter detail, but none is needed because the input schema is empty.

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 (cameras) and the included properties (transform, lens, field of view, clipping range), and 'Every camera' signals a listing operation that covers all cameras, distinguishing it from get_camera. It lacks an explicit verb, but the tool name and phrase make the intent 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 tool versus alternatives such as get_camera or list_checkpoints. No exclusions, prerequisites, or selection criteria are provided.

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

list_checkpointsC

Checkpoints on disk, newest first.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only reveals location and ordering, and does not state that the operation is read-only or side-effect free, what the returned entries look like, or how limit affects the result. For a listing tool this leaves the return semantics ambiguous.

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?

The text is very short with no filler and places the key ordering detail at the end. However, it is a noun fragment rather than a complete instruction, and the brevity shades into 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?

For a tool with no output schema and no annotations, the description should clarify what the returned checkpoint list contains and whether its entries can be passed to restore_checkpoint. The current text only says the items are on disk and newest first, leaving the payload shape and downstream usage to inference.

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 does not mention the limit parameter at all. Although the schema provides type, default, minimum, and maximum, the description should compensate for the low coverage by noting that limit controls how many checkpoints are returned; it does not.

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 the resource (checkpoints on disk) and the ordering (newest first), so an agent can tell this is a listing operation. It lacks an explicit verb, but the tool name 'list_checkpoints' supplies it. It does not distinguish itself from restore_checkpoint or create_checkpoint, but the resource and ordering are specific enough.

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

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 like restore_checkpoint, create_checkpoint, or undo/redo. The phrase 'on disk' hints at persistent checkpoints, but the description never explains that this tool should be used to discover available restore points or how it fits into a checkpoint workflow.

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

list_collectionsB

Collection tree with object membership and visibility flags.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does communicate that the result is a tree and that visibility flags and object membership are included, but it does not specify the exact return structure, whether all collections are included, or how the flags are represented—especially important given there is no 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?

The description is a single, tightly packed phrase that names the object, the structure, and the relevant fields. It is front-loaded with the most identifying term and contains 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?

For a zero-parameter listing tool this is adequate at a high level, but with no output schema the agent must infer the concrete result format—nested nodes, flat list, field names—from 'tree' alone. One additional sentence describing the return shape would make it 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?

This tool has zero parameters, so there is nothing for the description to explain; the empty schema and 100% coverage leave no ambiguity. The zero-parameter baseline of 4 is appropriate.

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 the resource ('collection tree') and the key data it exposes ('object membership and visibility flags'), and the 'list' name implies read-only enumeration. It does not explicitly contrast with sibling tools, but its collection focus clearly separates it from list_objects and list_materials.

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

Usage Guidelines2/5

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

No explicit when-to-use or alternative routing is provided. The zero-parameter signature and sibling list tools imply it is the collection-hierarchy counterpart to tools like list_objects, but the agent must infer when to choose this over alternatives.

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

list_collision_objectsA

Every UCX_ collision object in the scene with its complexity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states that it returns every UCX_ collision object with complexity, implying a read-only list operation, but does not disclose whether the result includes hidden objects, sorting, or any side effects. The mention of 'complexity' adds some behavioral context, but details are sparse.

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 efficiently conveys the tool's scope and output in minimal 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?

For a parameterless list operation with no output schema, the description is reasonably complete. It states what is listed and includes the 'complexity' attribute. However, it does not clarify the return format (e.g., array, mapping) or what 'complexity' means, which could be ambiguous without further context. Still, for such a simple tool, it is adequate.

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 and the schema description coverage is 100% (trivially, as the schema is empty). No parameter explanation is needed, so the baseline of 4 applies; the description adds no parameter details because none exist.

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

Purpose5/5

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

The description clearly states the action (list), the resource (UCX_ collision objects), and an attribute (complexity). It distinguishes from the generic list_objects by specifying collision objects, so an agent can select it for collision-specific queries.

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 for retrieving collision objects but does not explicitly contrast with list_objects or other list tools. No when-to-use or when-not-to-use guidance is given, leaving the agent to infer the appropriate context from the name.

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

list_exportsA

Files in the workspace exports directory, newest first.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses the scope (workspace exports directory) and ordering (newest first), but does not mention whether it returns file names, full paths, or includes subdirectories. It is honest but incomplete for a tool with no 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?

The description is a single, concise sentence that immediately states the resource and ordering. There is no filler or redundancy, making it highly efficient.

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 listing tool with no parameters and no output schema, the description is largely sufficient. It communicates the core purpose and ordering, though it could be more explicit about the return format (e.g., file names vs paths) to be 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?

The tool has zero parameters, so the baseline is 4. There is no parameter information to add beyond the empty schema, and the description does not need to elaborate on parameters.

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

Purpose5/5

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

The description clearly states the tool lists files in the workspace exports directory with a specific ordering (newest first). This distinguishes it from sibling tools like list_checkpoints or list_objects, making its purpose unambiguous.

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

Usage Guidelines3/5

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

The description does not explicitly mention when to use this tool versus alternatives like list_checkpoints or the export tools. The intended usage is implied by the resource named (exports directory), but no explicit guidance or exclusions are provided.

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

list_imagesA

Every image datablock: path, resolution, colour space and usage.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral disclosure. It does reveal what output fields will be present, which is useful, and the 'every image datablock' phrasing implies a read-only enumeration. However, it does not explicitly state that this is non-destructive, how results are structured, or whether packed/external images are handled differently.

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 concise sentence that communicates the resource and the data fields without wasted words. It is front-loaded and easy to parse.

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 list tool with no output schema, the description covers the core need: the tool returns every image datablock with the specified attributes. The term 'usage' is slightly vague, and there is no explicit statement of the return shape, but the definition is otherwise sufficient for a simple listing operation.

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 the description does not need to explain parameter syntax or semantics. The baseline of 4 applies because the schema is empty and there is nothing else required from the 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?

The description identifies the resource ('image datablock') and the relevant fields (path, resolution, colour space, usage), making it clear this is an enumeration of all image datablocks. However, it lacks an explicit verb like 'list' or 'returns', and it does not distinguish itself from sibling tools like get_image or load_image.

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 no guidance on when to use list_images versus alternatives such as get_image, create_image, or load_image. There is no mention of exclusions, prerequisites, or the appropriate context for requesting all images.

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

list_lightsB

Every light with type, energy, colour and type-specific settings.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes what data is returned but never explicitly states that the operation is read-only, what the return structure looks like, or what happens when no lights exist. This is minimal disclosure for a simple list tool.

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

Conciseness4/5

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

The description is a single compact sentence with no filler or redundancy, and it front-loads the core information about lights and their attributes. The structure is slightly awkward because it is a noun phrase fragment rather than a complete imperative sentence, but it remains concise and 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?

For a zero-parameter tool with no output schema, the description gives a reasonable summary of what is returned, but it could be more complete by explicitly stating 'Returns a list of...' and clarifying that it reflects the current scene. The absence of an explicit verb leaves slight ambiguity about the exact return value.

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, and the schema already reflects this with 100% coverage. The description adds no parameter detail, which is appropriate since there is nothing to document. This matches the baseline for a no-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 identifies the resource ('lights') and the specific attributes returned (type, energy, colour, type-specific settings), which distinguishes it from other light-related tools like create_light or set_light_properties. However, it lacks an explicit verb such as 'lists' or 'returns', making it a sentence fragment rather than a complete statement of action.

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?

There is no explicit guidance on when to use this tool or how it compares to alternatives. Since there are no other light-listing sibling tools and it takes zero parameters, the usage is implied: call it to retrieve all lights in the current scene. This is adequate but left entirely to inference.

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

list_materialsA

Every material in the blend file with its users and blend settings.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral burden. It discloses the scope ('every material in the blend file') and the included output data ('users and blend settings'), which is enough for a list-style read operation, though it does not explicitly state that it is non-mutating or describe the exact return structure.

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. Every phrase contributes meaning: scope, resource, and output contents.

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 list tool with no output schema, this description provides the essential context: it lists all materials and mentions the included data. It could be slightly more explicit about the return format, but the tool is simple enough that the description is largely 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?

The tool has zero parameters, so there is no parameter semantics for the description to add. Schema coverage is effectively complete, making the baseline 4 appropriate.

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 exactly what the tool covers: every material in the blend file, along with its users and blend settings. This clearly distinguishes it from siblings like get_material or create_material, which target a single material or create a new one.

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 that this tool is for getting a complete inventory of materials, but it does not explicitly say when to prefer it over get_material or other material-specific tools. Usage context is inferable, not stated.

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

list_modifiersC

The object's modifier stack with each modifier's key settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only states what the object has rather than what the tool does. It does not explicitly say the operation is read-only, what happens when the named object does not exist, or how the modifier stack is ordered.

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 filler and the core content is front-loaded. It is concise, though the brevity contributes to 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?

For a tool with no output schema and no annotations, the description omits important context: what 'name' refers to, what modifiers and settings are included, and what the return shape is. An agent would need to guess or infer several details before invoking the tool confidently.

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 provides 0% coverage for the required 'name' parameter, and the description does not explicitly state that 'name' identifies the target object. The possessive 'object's' weakly implies this connection, but the agent is left to infer the parameter's role.

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 ('the object's modifier stack') and hints at the content ('each modifier's key settings'), so an agent can roughly infer the tool's purpose. However, it is a noun phrase with no explicit action verb, and it does not clearly differentiate list_modifiers from the many sibling modifier tools beyond the tool's own name.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives like add_modifier, set_modifier, remove_modifier, apply_modifier, or list_checkpoints. There are no prerequisites, exclusions, or context notes to help an agent choose correctly.

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

list_objectsA

List scene objects with name, type, location, size and visibility.

Lighter than get_scene_info when you only need names of one kind.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo
collectionNoLimit to one collection
name_containsNoCase-insensitive substring filter

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It partially meets this by describing return fields and noting it is a lightweight alternative. However, it does not explicitly state that the operation is read-only, what the default scope is (e.g., all objects vs current selection), or how filtering behaves beyond what the schema already shows.

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 with no filler. The core listing behavior and returned fields appear first, and the comparative usage note is kept to a single concise second sentence. Every sentence earns its place.

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 tool has no annotation or output schema, and the description gives only a minimal return-field hint plus a single usage contrast. It is enough for a basic agent to attempt the call, but it leaves out default scope, ordering, and clearer guidance on choosing between list_objects and more specialized listing 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 coverage is 67%, and collection and name_contains already have descriptions. The description adds some context by hinting that the type filter is useful when one only needs 'names of one kind', but it does not add significant meaning beyond the schema's parameter definitions.

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

Purpose4/5

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

The description clearly states the action ('List scene objects') and the returned attributes ('name, type, location, size and visibility'). It also begins to differentiate the tool from get_scene_info with 'Lighter than get_scene_info'. However, it does not fully distinguish list_objects from other scene-listing siblings like list_collections, list_cameras, or list_lights.

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?

'Lighter than get_scene_info when you only need names of one kind' gives a clear usage context and names a specific alternative. It does not explicitly say when not to use other listing tools or when to prefer more targeted siblings, but the guidance is more than merely implied.

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

list_previewsB

Most recent preview renders on disk, newest first.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It discloses that previews are 'on disk' and sorted 'newest first,' which is useful. However, it does not mention that this is a read-only operation (though implied by 'list'), the return format, or any pagination or limitation behavior beyond the implicit limit parameter. The absence of an output schema makes this more significant.

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 sentence with zero waste. It front-loads the core purpose ('Most recent preview renders on disk') and immediately clarifies ordering. Every word contributes value.

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 list tool, the description is sparse. There is no output schema and no annotations, so the description must clarify what the returned items contain (e.g., paths, metadata) and any limitations. It only states the source and ordering, leaving the agent uncertain about the structure of the results and how to use them with sibling tools like read_preview_image.

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 does not mention the 'limit' parameter at all. The schema provides type, default, and constraints, but the description adds no meaning about what the limit controls (e.g., number of previews returned). Since coverage is low, the description should compensate, but it does not.

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

Purpose5/5

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

The description clearly states the tool lists 'most recent preview renders on disk, newest first.' It identifies the specific resource (preview renders) and the ordering, distinguishing it from list_exports (exports) and read_preview_image (reads a preview). The verb 'list' is 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention list_exports or other related tools, nor any conditions that would make this the preferred choice. There are no exclusions or prerequisites stated.

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

list_uv_layersD

UV layers on a mesh, and which is active.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

D1.8/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits, but it does not. It does not state whether the operation is read-only, what happens if the mesh has no UV layers, whether it errors on invalid names, or the return format. The only implicit behavior is that it queries UV layer info, but no consequences or side effects are disclosed.

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

Conciseness2/5

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

The description is extremely short, but this is under-specification rather than conciseness. It is a fragment, not a complete sentence, and it does not front-load actionable information. While it is brief, every word is vague, and it lacks the structure needed to be useful.

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

Completeness1/5

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

Given there is no output schema and no annotations, the description carries the full burden of explaining the tool. It fails to explain the return value, error handling, edge cases, or even the exact input semantics. An agent cannot reliably call this tool based solely on the description and schema.

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 schema has 0% description coverage for the single required parameter 'name'. The description mentions 'on a mesh' but does not explicitly state that 'name' refers to the mesh object name. No format, type, or meaning is added beyond the bare parameter name. The description fails to compensate for the lack of schema documentation.

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 noun phrase ('UV layers on a mesh, and which is active') rather than a statement with a verb. It implies the tool returns UV layers and the active one, but does not explicitly state the action (list, get, etc.). It partially distinguishes from siblings like create_uv_layer or set_active_uv_layer by indicating a read operation, but the lack of a verb leaves the purpose ambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as get_mesh_data or list_objects. There is no mention of prerequisites, context, or exclusions. The description does not help an agent decide between this and other list operations.

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

load_imageB

Load an image file into Blender and report its metadata.

Paths are validated: reads outside the workspace (or the open .blend file's folder) are refused unless the user enables it in the add-on preferences.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoRename the image datablock
packNoEmbed the image in the blend file
roleNoWhat the map is for; data maps (normal, roughness, metallic, ao) are set to Non-Color automatically
filepathYesPath to the image. Must be inside the workspace directory or next to the open .blend file.
colorspaceNoExplicit colour space, e.g. 'sRGB' or 'Non-Color'

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It does disclose the path validation rule, which is a significant behavioral constraint, and it mentions that it 'reports metadata', hinting at the return. However, it does not mention side effects like creating a datablock, whether it overwrites existing images, or any undo behavior. This is a moderate level of transparency.

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

Conciseness4/5

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

The description is concise at two sentences, with the primary action stated first and the path constraint second. It is front-loaded and has no fluff. It could be improved with a clearer structure, but it is efficient and to the point.

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 explains the core purpose and a key constraint, but it does not specify the exact return format (only says 'report its metadata') and lacks guidance on when to use it versus siblings. Given the tool has 5 parameters and no output schema, a bit more detail on expected outcomes would improve completeness.

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 100%, so each parameter already has a clear description in the input schema. The tool description adds no extra parameter semantics beyond what the schema provides. The path validation note in the description is essentially a rephrasing of the filepath schema description, so no additional value is added.

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

Purpose4/5

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

The description clearly states the action: 'Load an image file into Blender' – a specific verb and resource. It distinguishes from sibling tools like get_image or create_image by the act of loading from disk, though it does not explicitly name any alternative. The purpose is unambiguous and easy to grasp.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus other image-related tools (e.g., get_image, create_image). It mentions path validation but that is a constraint, not a usage condition. There is no explicit 'when to use' or 'when not to use' guidance.

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

look_atA

Rotate an object so its -Z axis points at a target.

Cameras and lights look down -Z, so this aims them. Give either target coordinates or target_object.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesObject to aim -- usually a camera or a spot light
targetNo[x, y, z] in Blender units
target_objectNoAim at this object's bounding-box centre

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the burden of explaining behavior. It clearly discloses the core rotation behavior and the -Z axis alignment, and also clarifies how the target can be specified. It does not cover edge cases like what happens if both targets are null or how the object origin affects the rotation, but the primary behavior is transparent.

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

Conciseness5/5

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

The description is concise and front-loaded: the first sentence states what the tool does, and the second provides necessary context and parameter guidance. Every sentence earns its place with no filler.

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 relatively simple 3-parameter tool with no output schema, the description covers the essential information: the action, the target options, and the intended use case. It could mention the behavior when neither target is provided or which target takes precedence, but for typical usage it is complete enough.

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 100%, so the parameters are already well described. The description adds useful meaning by framing the two target parameters as mutually exclusive alternatives ('Give either'), which is helpful, but it does not substantially go beyond the schema's own descriptions.

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

Purpose4/5

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

The description clearly states the action ('Rotate an object so its -Z axis points at a target') and identifies the intended use case for cameras and lights. It does not explicitly name or differentiate from sibling tools like rotate_object or set_camera_transform, so it falls just short of full sibling differentiation.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool: for aiming cameras and lights that look down -Z. It explains the two valid target modes ('either `target` coordinates or `target_object`'), but does not explicitly describe when not to use it or mention alternatives.

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

mark_seams_by_angleA

Mark UV seams on sharp edges -- a decent preparation step before unwrap_selected on hard-surface models.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
angleNoMark edges sharper than this as seams

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are present, so the description must disclose behavioral traits itself. It states that seams are marked, but doesn't say whether existing seams are overwritten or preserved, which object is affected, whether the operation is reversible, or what the result looks like. The 'preparation step' hint implies intent but doesn't disclose side effects.

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

Conciseness5/5

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

The description is a single action-first sentence that communicates purpose and usage context without filler. The mention of unwrap_selected earns its place by helping the agent understand where this tool fits in a workflow.

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 tool with no annotations and no output schema, the description needs to carry more weight. It leaves the required 'name' parameter ambiguous, doesn't explain what happens to existing seams, and omits any indication of success or failure behavior. The purpose is clear, but an agent still lacks enough information to invoke it confidently on the right object.

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 describes the angle parameter well but leaves the required 'name' parameter undocumented. The description doesn't clarify that 'name' refers to an object name or how it selects the target, and with only 50% schema description coverage, this is a notable gap. 'Sharp edges' loosely maps to angle but adds no new parameter-level meaning.

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

Purpose5/5

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

The description clearly states a specific action ('Mark UV seams') and resource ('sharp edges'), and distinguishes it from sibling unwrap tools by framing it as a preparation step before unwrap_selected. An agent can immediately tell this tool is for seam marking, not unwrapping.

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 description gives a clear usage context: use it before unwrap_selected on hard-surface models. It doesn't explicitly name when not to use it or alternative seam-marking approaches, but the 'preparation step' framing is enough to guide correct sequencing.

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

mesh_cleanupA

Conservative mesh hygiene: merge coincident vertices and drop loose geometry. Modifies the mesh -- checkpoint first.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
delete_looseNoRemove vertices and edges not attached to any face
merge_distanceNo
merge_by_distanceNo

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It explicitly states 'Modifies the mesh -- checkpoint first', warning of destructive action and suggesting a safety measure. However, it omits details about scope (e.g., whether it affects selection or entire scene) and potential side effects on UVs or materials.

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 two short sentences with no fluff. The core purpose is front-loaded, followed by a crucial safety warning. Every word adds value.

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 tool with 4 parameters and no output schema, the description is incomplete. It does not clarify which object(s) are affected, the units for merge_distance, or the exact behavior of merge_by_distance. The safety warning is helpful but does not address the missing operational 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 only 25%, and the description itself does not mention any parameters. It fails to compensate for the low schema coverage by explaining merge_distance, merge_by_distance, or delete_loose semantics. The only parameter with a description in the schema is delete_loose, leaving the others ambiguous.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'merge coincident vertices and drop loose geometry'. It uses specific verbs and identifies the resource (mesh), making it unambiguous. It also hints at a conservative approach, which distinguishes it from more aggressive cleanup tools.

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 for mesh hygiene but does not explicitly contrast with sibling tools like recalculate_normals or triangulate_mesh. It mentions checkpointing, which is a safety guideline, but lacks explicit when-to-use/alternatives guidance.

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

move_to_collectionA

Move objects into a collection, unlinking them from their current ones.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYes
createNoCreate the collection if missing
collectionYesTarget collection name

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It does reveal the key side effect — unlinking objects from their current collections — but does not mention reversibility, failure modes, or what happens to collection membership when the target already contains the object.

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 redundant wording. Every part contributes to explaining the operation: the action, the target, and the side effect.

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 three-parameter operation without an output schema, the description plus schema is arguably enough to attempt a call. However, with no annotations and no usage guidance, the agent still lacks clarity on edge cases like missing objects, duplicate membership, or whether collection creation is attempted by default.

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 67%, with 'create' and 'collection' already described in the schema. The description adds no parameter-level meaning, and the 'names' parameter is only documented by title and type, leaving an agent to infer that these are object names.

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: 'Move objects into a collection'. The additional phrase 'unlinking them from their current ones' differentiates this from copying/adding behavior and from sibling tools like create_collection or list_collections.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives, nor any exclusions or prerequisites. An agent must infer that this is for re-organizing existing objects between collections without help from the description.

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

pingA

Check that this MCP server process is alive. Does not contact Blender.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently states the tool is a liveness check with no Blender contact, which is sufficient for a zero-parameter ping-style tool. It does not describe response format, but no output schema exists and the expected behavior is minimal.

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

Conciseness5/5

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

Two short sentences deliver all necessary information with no filler. The primary purpose is front-loaded, and the non-Blender clarification is placed immediately after. Every sentence earns its place.

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 zero-parameter liveness check, the description is complete. It explains what is checked, what is not contacted, and thereby differentiates from the closely named sibling ping_blender. No additional context is needed.

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 the baseline is 4. The description appropriately does not invent parameter documentation, and no parameter meaning is missing.

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: it checks that the MCP server process is alive. It also distinguishes itself from the sibling ping_blender by explicitly stating it does not contact Blender, so an agent can tell them apart immediately.

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 description makes it clear that this tool is for verifying server-process liveness, not Blender connectivity. It does not explicitly name ping_blender as the alternative, but the 'Does not contact Blender' exclusion provides enough routing context for an agent.

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

ping_blenderA

Check that Blender is running with the AI Bridge started.

Call this first if any other Blender tool fails to connect.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. 'Check' implies non-mutating behavior and 'Call this first' implies it is safe, but it doesn't describe what a successful or failed ping returns or explicitly confirm there are no side effects.

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

Conciseness5/5

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

Two sentences with no filler. The core check is front-loaded and the second sentence adds practical usage context that 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?

For a zero-parameter health-check tool, the description covers what it does and when to call it. It is slightly incomplete on return/failure semantics and does not distinguish itself from get_bridge_status, but these are minor gaps for a ping tool.

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 the schema is trivially complete and the baseline is 4. The description adds no parameter detail, but none is needed for a parameterless ping 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?

States a clear verb ('Check') and resource ('Blender running with AI Bridge started'), and the diagnostic intent is obvious. It doesn't explicitly differentiate from sibling tools like 'ping' or 'get_bridge_status', 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?

Explicitly says to call this first if any other Blender tool fails to connect, giving a concrete trigger for use. It doesn't mention when not to use it or name alternatives like get_bridge_status, so it lacks full exclusion guidance.

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

push_undoA

Insert a named undo checkpoint so the user can step back to here.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNoName for this undo stepAI Bridge

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states what the tool does (inserts a checkpoint) but does not mention side effects, whether it modifies the scene, if it is reversible, or any safety considerations. For a tool that alters undo state, this is a significant gap.

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

Conciseness5/5

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

The description is a single sentence, front-loaded with the core action and purpose. It contains no unnecessary words and conveys the essential information efficiently.

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 one-parameter tool with no output schema, the description covers the basic function but omits contextual details such as how many checkpoints can exist, whether existing checkpoints are affected, or whether the operation is non-destructive. It is adequate but leaves room for more guidance.

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 100%, so the label parameter is fully documented in the schema. The description's reference to 'named' aligns with the schema but adds no new detail about parameter usage or constraints. Baseline 3 is appropriate given the high schema coverage.

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

Purpose5/5

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

The description clearly states the action (insert) and the resource (named undo checkpoint), and implies the purpose (stepping back to this point). It distinguishes itself from sibling tools like undo/redo and restore_checkpoint by focusing on creating a checkpoint rather than performing or reverting an undo action.

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 (create a checkpoint to allow stepping back) but does not explicitly state when to use this tool versus alternatives like undo/redo or restore_checkpoint. There is no guidance on prerequisites, timing, or exclusion scenarios, leaving the agent to infer.

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

read_preview_imageA

Return a rendered preview as an image so it can be looked at directly.

Use this when you cannot read the PNG from disk yourself; otherwise reading image_path with your own file tool is cheaper. Only reads from the workspace previews directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
image_pathYesAbsolute path returned by render_preview, or just the filename of a file in workspace/previews

TDQS

A4.4/5.0
Behavior4/5

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

Annotations are absent, so the description carries the full behavioral burden. It clearly states the operation is read-only and restricted to the workspace previews directory. It stops short of describing output format or error behavior for missing files, but the safety profile is clear.

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 primary purpose front-loaded and the guidance immediately following. Every sentence adds value; there is no repetition or filler.

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 one-parameter read-only tool, the description covers purpose, when to use it, an alternative, and directory constraints. With no output schema, the return format is implied ('as an image') but not fully specified, which keeps this from being a perfect 5.

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 100%, so the schema already explains image_path's accepted forms. The description adds usage context and path restrictions but no new parameter-level semantics beyond what the schema provides.

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 ('Return'), resource ('rendered preview'), and output form ('as an image'). The phrase 'Only reads from the workspace previews directory' scopes the tool and helps distinguish it from generic image/file-reading tools.

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

Usage Guidelines5/5

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

Gives an explicit when-to-use condition ('when you cannot read the PNG from disk yourself') and names the alternative approach ('reading image_path with your own file tool') with a cost comparison. This is direct routing guidance with no ambiguity.

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

recalculate_normalsA

Make face normals consistent and outward-facing.

Run this when a render shows black or inside-out shading.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesNoObject names. Omit to use the current selection.
insideNoPoint normals inward instead

TDQS

A4/5.0
Behavior3/5

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

There are no annotations, so the description carries the behavioral burden. It does disclose the core effect and the symptom it addresses, but it does not mention side effects such as overwriting custom normals, selection scope, or reversibility. This is adequate but not rich.

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

Conciseness5/5

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

Two short, purposeful sentences with no filler. The primary function is front-loaded, and the usage trigger follows immediately. Every sentence 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?

For a simple mutation tool with two optional parameters and a fully documented schema, the description is reasonably complete. It explains what the tool does and when to apply it; only minor details like side effects and selection scope are left to the schema.

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 100%, and the schema already documents both `names` and `inside` clearly. The description adds no parameter-level meaning beyond the schema, so the baseline score of 3 is appropriate.

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: 'Make face normals consistent and outward-facing.' This clearly differentiates it from mesh cleanup, shading, and material tools, and the purpose is unmistakable without opening the schema.

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

Usage Guidelines4/5

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

It gives an explicit trigger: 'Run this when a render shows black or inside-out shading.' This tells the agent when to use the tool, though it does not name alternative tools or conditions when recalculating normals would be inappropriate.

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

redoB

Step forward through Blender's undo history.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states only the forward direction of movement but does not mention what happens when the end of the undo history is reached, whether it modifies the undo stack, or whether prior undo operations are required. This is minimal behavioral context.

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

Conciseness4/5

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

The description is a single, well-structured sentence with no filler or repetition. It is appropriately concise for a simple tool, though it leans slightly terse and could have included a bit more contextual detail without becoming bloated.

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 single-parameter, no-output-schema tool, the description combined with the schema's min/max constraints provides enough to invoke the tool correctly. However, the lack of any behavior notes, annotations, or output/error expectations leaves the description minimal but adequate for this simple case.

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, and the description does not explicitly explain that the 'steps' parameter represents the number of undo-history steps to advance. The wording 'step forward' strongly implies it, but the description adds no direct parameter-level meaning beyond what the schema's title and constraints already show.

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 uses a specific verb ('step forward') and names the exact resource ('Blender's undo history'), so the tool's purpose is immediately clear. It also inherently distinguishes itself from the sibling 'undo' tool by direction, leaving no ambiguity about what redo does.

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 the tool should be used when the agent needs to advance through Blender's undo history, which is a clear usage context. However, it does not explicitly mention when not to use it, nor does it reference alternatives like 'undo' or 'restore_checkpoint' to help the agent choose between them.

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

remove_materialB

Unassign a material from an object, or delete the material datablock.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectNoRemove the material from this object's slots
materialYes
delete_datablockNoDelete the material from the blend file entirely

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden, yet it only states the top-level operations. It fails to disclose that deleting a datablock can affect other objects still using that material, that the delete action is destructive/irreversible, or what happens when object is null (the unassign branch likely becomes a no-op).

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 zero filler. It front-loads the core action and communicates both modes compactly.

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

Completeness2/5

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

For a 3-parameter mutation with no annotations and no output schema, the description is too thin. It omits the interaction between object=null and delete_datablock=false, lacks side-effect warnings, and does not state prerequisites (e.g., that the material must exist). Schema defaults help, but the description does not tie the pieces together.

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 descriptions cover object and delete_datablock, but material—the only required parameter—has no schema description. The tool description adds some context by mapping unassign to object slots and delete to the datablock, but it does not fully compensate for the unspecified material parameter.

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 names a specific verb+resource: 'Unassign a material from an object, or delete the material datablock.' It clearly distinguishes the tool from siblings like assign_material, get_material, and list_materials by stating both operations a material can undergo.

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—use this when you want to unassign or delete a material—but provides no explicit when/when-not guidance and does not mention alternatives such as assign_material. It also does not explain when an agent should set delete_datablock to true versus simply unassigning.

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

remove_modifierA

Remove a modifier without applying it.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
modifierYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations present, the description carries the full burden of behavioral disclosure. It states a key behavioral trait—the modifier is removed without being applied—but does not mention reversibility, what happens to dependent geometry, or any state/permission considerations.

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 sentence with no filler, front-loads the action verb, and delivers the key distinction in six words. Every word earns its place.

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 core action is clear and the tool has only two simple parameters, but the absence of an output schema and parameter clarification leaves gaps: the agent does not know what success looks like or which exact identifiers to pass. Adequate for a simple tool, but not fully 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%, and the description does not clarify what 'name' refers to (likely an object name) or how 'modifier' should be identified (by name, type, or index). The agent must infer parameter meanings from bare labels, which is risky.

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 names a specific verb ('Remove') and resource ('modifier'), and the qualifier 'without applying it' clearly separates it from apply_modifier and apply_all_modifiers. It leaves no ambiguity about what the tool does.

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

Usage Guidelines4/5

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

The phrase 'without applying it' gives clear contextual guidance for when to use this tool, implicitly contrasting with applying a modifier. However, it does not explicitly name alternatives or state when not to use it, so it stops short of full routing guidance.

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

rename_objectA

Rename an object. Blender appends .001 if the name is taken.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
new_nameYes
rename_dataNoRename the mesh datablock too

TDQS

A3.5/5.0
Behavior3/5

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

The description discloses a specific behavioral trait: Blender appends .001 if the name is taken. However, with no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention the optional rename_data parameter or its effect on the data block, nor any side effects, reversibility, or permissions. This is limited transparency beyond the single conflict-resolution detail.

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 concise sentence that front-loads the primary purpose and adds a relevant behavioral note. There is no wasted wording, and the structure is efficient for an agent to parse quickly.

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

Completeness2/5

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

For a simple rename tool, the description is minimal. It omits the optional rename_data parameter and its implications, and with no output schema or annotations, there is no additional context to fill the gap. An agent might not realize that renaming can also affect the mesh datablock, which is significant for a Blender context. The description is incomplete for a tool with no safety annotations.

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 description coverage is only 33% (only rename_data has a description). The tool description does not explain the 'name' or 'new_name' parameters, leaving the agent to rely on parameter names alone. Given the low schema coverage, the description should compensate by clarifying these parameters, but it does not, resulting in weak parameter semantics.

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

Purpose5/5

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

The description clearly states the tool's purpose: renaming an object. It uses a specific verb (rename) and resource (object), and the additional note about Blender appending .001 provides useful context that distinguishes it from any potential confusion. Among the sibling tools, there is no other rename operation, so 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 Guidelines3/5

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

The description implies the tool is for renaming objects, but it does not explicitly state when to use it versus alternatives or provide any conditions or exclusions. While there are no direct alternatives in the sibling list, the lack of explicit usage guidance leaves the agent to infer the appropriate context. This is a minor gap given the simplicity of the operation.

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

render_previewA

Render a preview image and return its absolute path.

THEN OPEN THAT IMAGE AND LOOK AT IT. Read the returned image_path with your file reading tool, or call read_preview_image. Geometry statistics cannot tell you whether an asset has the right shape, sensible proportions, correct normals or a material that reads properly -- only the picture can.

Auto-frames the given objects, creates an AI_PreviewCam if the scene has no camera, renders with EEVEE at 512x512 by default, and restores the scene's render settings afterwards. Images land in workspace/previews.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoSquare resolution. 512 is the fast default; go to 1024 only for a final check.
labelNoShort label used in the filename, e.g. 'crate_v2'
cameraNoRender from this camera instead of the active one
engineNo
marginNo
objectsNoObjects to frame automatically. Omit and set frame_all=true to fit everything visible.
samplesNoMore samples means less noise and a slower render
filenameNoExact filename stem; overrides label
directionNoViewing angle when auto-framing
frame_allNoFrame every visible object when `objects` is omitted
transparentNoTransparent background
resolution_xNo
resolution_yNo
restore_cameraNoPut an existing camera back where it was after framing. A camera the bridge created stays put.
view_transformNoColour management for this render. 'Standard' (the default here) shows the colours the materials actually specify; Blender's usual 'AgX' desaturates heavily and makes materials hard to judge. The scene's own setting is restored afterwards.Standard

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden, and it delivers. It discloses auto-framing, AI_PreviewCam creation when no camera exists, EEVEE rendering at 512x512 by default, restoration of render settings, and output location (workspace/previews). It also clarifies camera restore behavior. This is thorough and transparent.

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 front-loaded with the purpose and a clear imperative to inspect the image, then details the workflow and side effects. Every sentence adds value—auto-framing, camera handling, default engine and size, restore behavior, and output location. It's efficient and well-structured without redundant text.

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 tool with 15 parameters and no output schema, the description covers the essential workflow and side effects. It mentions the return path, output location, and restoration behavior. It doesn't explain all enum options (direction, engine) but those are self-explanatory or documented in the schema. It lacks explicit info about return structure beyond the path, but that's minor given the tool's nature.

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 73%, so the schema already documents most parameters. The description adds some context (e.g., the view_transform note about 'Standard' vs 'AgX'), but it doesn't systematically explain parameters beyond what the schema provides. Given high schema coverage, the baseline of 3 is appropriate; the description doesn't significantly compensate for the 27% gap.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Render a preview image and return its absolute path.' This is a specific verb+resource pairing. It doesn't explicitly differentiate from sibling render_turntable, but the name and context make the distinction clear, so it's not fully distinguishing.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when and how to use the tool: 'THEN OPEN THAT IMAGE AND LOOK AT IT. Read the returned image_path with your file reading tool, or call read_preview_image.' It also explains that geometry statistics are insufficient, and names an alternative tool (read_preview_image). This is strong usage guidance with clear context.

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

render_turntableA

Render the same subject from several angles at once.

The fastest way to catch problems a single view hides -- a front view will not show that the back is hollow. Returns one image path per view; look at all of them.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNo
labelNoturntable
viewsNoAngles to render
engineNo
objectsNo
samplesNo

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It usefully discloses that it returns one image path per view and instructs the agent to inspect all of them. However, it is silent about side effects, blocking behavior, output file management, or whether existing renders are overwritten.

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

Conciseness5/5

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

Three short sentences with no wasted words. The purpose is front-loaded, the rationale is useful, and the output instruction is placed last. Every sentence contributes to correct use.

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 six schema parameters, no annotations, and no output schema, the description is too thin to fully support correct invocation. It explains one use case and the output format, but leaves parameter semantics and tool selection guidance uncovered. An agent would still need to guess at several optional parameters' meanings.

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 very low (17%), with only 'views' described as 'Angles to render'. The description reinforces the views concept but does not explain 'label', 'objects', 'engine', or 'samples', several of which are not self-evident. With such low schema coverage, the description needed to compensate and did not.

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?

Uses a concrete verb ('Render') and a clear resource ('the same subject') with an explicit multi-angle scope ('several angles at once'). It also states the output shape ('one image path per view'), making the core function unmistakable. The emphasis on multiple views distinguishes it from the sibling render_preview without needing to name it.

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 use case: catching problems that a single view would hide, with a concrete example ('a front view will not show that the back is hollow'). It does not explicitly name when to prefer render_preview over this tool, so it stops short of a full when-to-use/when-not-to-use statement.

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

restore_checkpointA

Load a checkpoint, replacing the current session.

DESTRUCTIVE: everything unsaved in Blender right now is lost. Confirm with the user before calling this with confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoMust be true; restoring discards unsaved work
checkpointYesCheckpoint filename from list_checkpoints

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It clearly discloses the destructive behavior (replaces current session, unsaved work lost) and the confirmation requirement. It could add more detail about what happens to the current session state or whether the checkpoint is validated, but the core behavioral risk is well covered.

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: the action and destructive consequence appear in the first sentence, and the confirmation requirement is stated in a short second sentence. Every word 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?

For a destructive tool with no annotations and no output schema, the description covers the essential context: what it does, what is lost, and the confirmation gate. It doesn't mention what happens after loading (e.g., scene refresh) or error cases, but those are less critical than the destructive warning, which 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?

Schema coverage is 100%, so the schema already documents both parameters. The description adds value by explaining the confirm parameter's role ('Must be true; restoring discards unsaved work') and tying checkpoint to list_checkpoints, which helps the agent understand provenance. This exceeds the baseline 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?

The description states a specific verb ('Load') and resource ('a checkpoint'), and clearly distinguishes it from siblings like list_checkpoints, undo, redo, and push_undo by emphasizing it replaces the current session. The destructive nature is front-loaded, making the tool's purpose unmistakable.

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 description explicitly warns that everything unsaved is lost and instructs to confirm with the user before calling with confirm=true. It doesn't explicitly name alternatives like undo/redo, but the destructive warning and checkpoint-specific language imply when it should be used versus lighter-weight session tools.

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

rotate_objectB

Rotate an object by a delta in degrees (relative).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
rotationYes[x, y, z] delta in DEGREES, added to the current rotation

TDQS

B3.3/5.0
Behavior3/5

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

Annotations are absent, so the description carries the behavioral burden. It correctly communicates that rotation is relative and incremental, which is important. It does not disclose details like whether prior rotation is preserved, Euler order, or coordinate space, but for a simple rotation tool these are less critical.

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 states the operation, the input type, and the key modifier ('relative') efficiently.

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 two-parameter rotation operation, the description plus schema are mostly sufficient. However, with no annotations, no output schema, and no usage guidance, the agent is left to infer naming conventions from sibling tools and the un-described name parameter.

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 only 50%: the rotation parameter is well documented, but the required name parameter has no description. The tool description merely restates 'delta in degrees' from the schema and does not clarify what 'name' refers to or how to specify the object.

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 ('Rotate'), a clear resource ('an object'), and the key semantic ('by a delta in degrees (relative)'). This distinguishes it from absolute transforms like set_transform, though it does not explicitly name or contrast sibling tools.

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 'delta' and 'relative' imply this tool is for incremental rotation rather than absolute transform setting. However, there is no explicit guidance about when to use this tool versus set_transform, translate_object, or scale_object.

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

save_blendA

Save the user's open .blend file in place.

Only do this when the user asks. Fails if the file has never been saved -- use save_blend_as then.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses the core effect (save in place, implying overwrite of the current file), a guardrail (only on user request), and an important failure mode (unsaved files fail). It could be slightly more explicit about overwriting behavior, but "in place" communicates it.

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, purposeful sentences with no filler. The core action is front-loaded, followed by usage guardrails and the fallback tool, all in minimal space.

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, no-output-schema tool with no annotations, this description is complete: it defines the action, the precondition, the failure case, and the alternative tool. An agent has everything needed to invoke it correctly.

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 no parameter documentation gap to compensate for. The description correctly focuses on the tool's behavior rather than inventing parameter details.

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: "Save the user's open .blend file in place." It clearly distinguishes itself from the sibling save_blend_as by emphasizing in-place saving, so an agent can tell the two apart immediately.

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?

It explicitly says when to act ("Only do this when the user asks") and when not to ("Fails if the file has never been saved"), and it names the alternative: "use save_blend_as then." This is clear routing guidance.

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

save_blend_asA

Save a copy of the scene into the workspace.

Never writes outside the workspace and, by default, never changes which file Blender considers open.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoWorkspace subdirectory to save intocheckpoints
compressNo
filenameYesFilename stem, no path
overwriteNo
switch_to_newNoMake Blender adopt the new file as the open document. Off by default, so this saves a copy and leaves the user's file active.

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It usefully discloses two key side effects: never writing outside the workspace and not changing the open file by default. However, it does not explain behavior when overwrite=false and a file already exists, nor what the operation returns, leaving some behavioral uncertainty for a 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.

Conciseness5/5

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

Two short sentences with no filler. The core purpose is front-loaded, and the second sentence earns its place by stating critical safety and side-effect boundaries.

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 safety and scope statements are sufficient for an agent to select the tool correctly, and the schema fills in most parameter details. However, since this is a mutating save operation with no output schema, the absence of any statement about overwrite conflicts or result/return behavior leaves some context missing.

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 60%, with descriptions already present for category, filename, and switch_to_new. The description adds little parameter-level meaning beyond that, mostly restating the switch_to_new default. Compress and overwrite remain undocumented in both the schema and description, though their names and defaults are fairly self-explanatory.

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: 'Save a copy of the scene into the workspace.' The word 'copy' clearly distinguishes this from in-place save tools like save_blend, and 'workspace' separates it from export_* siblings. The tool's identity is unmistakable.

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 description provides clear context for use: it is the tool for writing a .blend copy into the workspace without changing Blender's active document by default. It does not explicitly name alternatives such as save_blend or create_checkpoint, nor state when not to use them, so it stops short of full routing guidance.

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

scale_objectB

Scale an object. By default scale multiplies the current scale.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
scaleYes[x, y, z] in Blender units
absoluteNoSet the scale outright instead of multiplying the current one

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It does disclose the key behavior: scaling multiplies the current scale by default, and the absolute flag can set it outright. However, it omits other behavioral aspects such as effects on local vs world space, whether the operation is reversible, or what happens if the object does not exist. It provides the most essential behavior but not full transparency.

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 that front-loads the purpose and then clarifies the default behavior. It is efficient and free of fluff, appropriate for a simple transformation tool. However, it is so brief that it may under-specify edge cases, but for the given tool complexity it is suitably concise.

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 tool with three parameters and no output schema, the description covers the essential behavior (scale with default multiplicative vs absolute) and the schema covers the parameter details. It does not mention error handling or object selection nuances, but these are not critical for basic usage. Given the lack of annotations and the presence of many sibling tools, it is minimally complete but could benefit from a note on when to use absolute vs relative.

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 67%, covering the scale and absolute parameters. The description adds value by explaining the default multiplicative behavior of the scale array, which is not fully explicit in the schema. The name parameter is left undescribed, but its purpose is obvious from context. This aligns with the baseline for high schema coverage, with a slight boost from the added semantic detail.

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

Purpose4/5

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

The description clearly states the action ('Scale an object') and identifies the resource (an object via name). It also clarifies the default multiplicative behavior, which distinguishes it from absolute setting. However, it does not explicitly contrast with sibling transformation tools like set_transform or translate_object, so it falls short of fully distinguishing its scope.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of conditions that favor scale_object over set_transform, apply_transforms, or other transform tools, nor any exclusions or prerequisites. The description only explains the default behavior, not usage context.

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

select_objectsC

Set the selection. Tools that default to "the selection" use this.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYesObjects to select
activeNoWhich of them becomes active
extendNoAdd to the selection instead of replacing it

TDQS

C2.9/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure. It only says 'Set the selection' with no mention of side effects, such as whether the selection is replaced or extended by default, or what happens to the active object. The extend parameter is documented only in the schema, not in the description.

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 extremely concise, consisting of two short sentences. The key purpose is stated first, and there is no fluff. It is appropriately sized for a simple setter tool, though it could afford a bit more detail without becoming verbose.

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 selection tool with three parameters fully described in the schema, the description provides the minimal context needed: what the tool does and its role in the broader workflow. It does not explain the default behavior (replace vs. extend) or what 'active' means beyond the schema, which an agent might need to know for correct invocation.

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 100%, so all three parameters (names, active, extend) are documented in the schema. The description adds no additional meaning beyond the schema, so it meets the baseline for a tool with high schema coverage.

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

Purpose3/5

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

The description states a clear verb ('Set') and resource ('the selection'), so the core action is identifiable. However, it is vague about what kind of selection (objects) and does not distinguish itself from related tools like get_selected_objects or set_active_object, which are 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?

The phrase 'Tools that default to \

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

separate_objectC

Split one mesh object into several.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoLOOSE splits disconnected shells; MATERIAL splits by material slotLOOSE
nameYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'split', implying a destructive modification of the mesh, but does not clarify whether the original object is removed, how resulting objects are named, whether the operation is undoable, or any prerequisites. The schema's mode descriptions add some behavior context, but the description itself is very sparse.

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 that is efficient and easy to parse. It earns its place by stating the core action, but it sacrifices necessary detail about behavior and parameters, making it concise but not sufficiently 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?

For a mesh mutation tool with no annotations, no output schema, and two parameters, the description is incomplete. It does not explain the implications of the mode parameter, the side effects on the original object, or the expected outcome, leaving the agent to guess or inspect the schema for critical details needed to invoke 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 description adds no parameter-related meaning. The schema provides a description for the 'mode' parameter, but the 'name' parameter is only given a title with no explanation. Since schema description coverage is only 50%, the description should compensate for the missing 'name' semantics, but it does not.

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

Purpose4/5

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

The description clearly states the action ('Split') and resource ('one mesh object') with an implied result ('several'). It is distinguishable from siblings like join_objects, which is the inverse operation. However, it does not mention the mode parameter or the specific types of splitting, so it is clear but not fully comprehensive.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool, how to choose between LOOSE and MATERIAL modes, or how it relates to alternatives like join_objects or other mesh operations. The agent must infer usage solely from the tool name and the mode descriptions in the schema.

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

set_active_cameraC

Choose which camera the scene renders from.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the action but does not disclose side effects (e.g., whether the viewport updates, whether the previous active camera is affected) or any error conditions. This is minimal disclosure for a mutation-like 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, succinct sentence with no extraneous words. It is front-loaded with the core action and resource, making it easy to scan.

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 setter with one parameter and no annotations or output schema, the description should at least clarify the parameter and mention any requirements (e.g., camera must exist). It lacks these details, leaving the tool under-specified for reliable 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 description coverage is 0%, so the description must explain the 'name' parameter. It does not explicitly state that 'name' refers to a camera name, nor does it clarify the expected format or source (e.g., from list_cameras). The parameter is left to inference.

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

Purpose4/5

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

The description clearly states the action ('Choose which camera') and the resource ('camera'), making the tool's purpose unambiguous. However, it does not differentiate from siblings like list_cameras or set_camera_transform, so it earns a 4 rather than a 5.

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

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. It does not mention prerequisites, such as the camera needing to exist, or scenarios where a different camera-related tool would be more appropriate.

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

set_active_objectC

Make an object active. Many operators act on the active object.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
selectNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the core action and does not mention side effects such as whether the object is also selected (despite the 'select' parameter), what happens to the previously active object, or any error conditions. This is a significant gap for a tool that changes global state.

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

Conciseness4/5

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

The description is two short sentences with no redundant phrasing. It front-loads the core action and then adds a purpose note. It is appropriately concise, though it sacrifices necessary detail for brevity.

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 that this tool affects global state and has a 'select' parameter, the description should clarify how selection is handled and how it interacts with other object operations. It also lacks any mention of prerequisites or error handling. The description is minimal and leaves an agent guessing about important behavioral details.

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 schema description coverage is 0%, meaning the description provides no explanation of the 'name' or 'select' parameters. The description does not mention what 'name' refers to or how 'select' affects behavior. Since the schema itself gives only types and defaults, the agent gets no additional semantic guidance.

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

Purpose4/5

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

The description clearly states the action 'Make an object active' with a specific resource ('object'), and adds context that many operators act on the active object. It does not explicitly distinguish from siblings like set_active_camera, but the resource is unambiguous. This is a clear, non-tautological statement.

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 that this tool is used to set the target for operators that act on the active object ('Many operators act on the active object'). However, it does not explicitly say 'use this before such operators' or provide any alternatives or exclusions. The guidance is implicit rather than explicit.

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

set_active_uv_layerC

Choose which UV map is active.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
uv_nameYes
active_renderNoAlso make it the layer used at render time

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not state any side effects (e.g., that setting active UV layer does not alter geometry) or requirements (e.g., that the object must exist and have the specified UV layer). It also doesn't mention what happens if the UV layer does not exist, or whether the operation is reversible. The description is overly terse for a tool that modifies state.

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

Conciseness4/5

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

The description is a single, concise sentence that is appropriately front-loaded. However, it is so short it may be under-specified rather than efficiently concise. It earns a 4 because it is direct and free of fluff, but it sacrifices necessary detail for brevity.

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 that this is a state-changing operation with no output schema and only partial parameter documentation, the description is incomplete. It does not specify the object context (which object's UV layer is being set), nor does it clarify the meaning of 'name' (likely the object name), nor the relationship between 'uv_name' and existing UV layers. It also lacks error handling or prerequisite information. This falls short of what's needed for an agent to call it correctly without diving into the schema (which itself is sparse).

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 only 33% (only the 'active_render' parameter has a description). The 'name' and 'uv_name' parameters have no description in the schema, and the tool description does not explain their meaning or relationship. 'name' likely refers to the object name, but this is not clarified. 'uv_name' is clear from the tool name, but 'name' is ambiguous. The description adds no parameter-specific value beyond what the schema provides for 'active_render'.

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

Purpose4/5

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

The description clearly states the action ('Choose') and the resource ('UV map'), and it implicitly targets which UV map is active. It is distinct from siblings like list_uv_layers, create_uv_layer, and delete_uv_layer, which perform different operations on UV maps. However, it could be more explicit about the resource being an object's UV layer.

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 provides no explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives. Context suggests it is used to set the active UV layer for a given object, but this is not stated. It doesn't differentiate from similar operations like creating or deleting UV layers, nor does it mention that 'active_render' might be optional for render-time selection.

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

set_camera_transformC

Move a camera and adjust its lens in one call.

ParametersJSON Schema
NameRequiredDescriptionDefault
fovNo
lensNo
nameNoOmit for the active camera
look_atNo[x, y, z] in Blender units
clip_endNo
locationNo[x, y, z] in Blender units
rotationNo[x, y, z] euler rotation in DEGREES
clip_startNo
ortho_scaleNo
look_at_objectNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description must carry the full burden of behavioral disclosure, but it only states the high-level effect. It does not disclose whether omitted parameters remain unchanged, whether the operation mutates the scene, what return value is produced, or any side effects like invalidating view state.

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

Conciseness4/5

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

The description is one short sentence with no filler or redundancy, and it front-loads the core purpose. It is concise, though perhaps too concise given the tool's complexity.

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 tool with 10 optional parameters, no annotations, and no output schema, this description is insufficient. It lacks usage context, behavior details, and enough parameter explanation for an agent to reliably invoke the tool for non-trivial camera setup.

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 only 40%, so the description should compensate, but it adds almost nothing about parameter meaning. It mentions 'lens' generically but does not explain fov, clip planes, ortho_scale, look_at_object, or the interplay between location, rotation, and look_at.

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+resource ('Move a camera and adjust its lens') and clearly identifies the tool as a combined transform/lens operation. It does not explicitly distinguish itself from sibling tools like set_transform or look_at, but the camera-specific wording is enough for basic identification.

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 such as set_transform, look_at, or set_active_camera. It does not mention prerequisites, exclusions, or the active-camera fallback beyond the schema's brief 'Omit for the active camera' note.

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

set_light_propertiesC

Update a light's settings. Angles are DEGREES.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLight object name
sizeNo
typeNo
angleNo
colorNo[r, g, b] or [r, g, b, a], each 0..1 (linear)
energyNo
spot_sizeNo
spot_blendNo
use_shadowNo
diffuse_factorNo
specular_factorNo
shadow_soft_sizeNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It adds one useful unit convention ('Angles are DEGREES') but fails to disclose whether unspecified settings remain unchanged, what null values do, whether the operation is destructive, or whether certain parameters apply only to specific light types.

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 very short and front-loaded, with no filler. However, the brevity comes at the expense of substance, leaving important behavioral and parameter information unstated.

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?

This is a 12-parameter mutation tool with no annotations and no output schema, yet the description provides almost no context about parameter relationships, null semantics, or side effects. The single unit clarification is helpful but far from sufficient for an agent to call this tool 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 only 17% and most of the 12 parameters lack meaningful descriptions. The description adds only the degrees clarification, which helps angle and spot_size, but does not compensate for the many undocumented parameters like spot_blend, diffuse_factor, specular_factor, or shadow_soft_size.

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: 'Update a light's settings.' It differentiates from siblings like create_light, delete_light, and list_lights, though 'settings' is a bit generic and doesn't enumerate which properties can be changed.

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 explicit guidance on when to use this tool versus alternatives, no prerequisites, and no mention of when not to use it. The 'update' phrasing implies modifying an existing light, but it does not direct the agent to list lights first or explain how this differs from create_light.

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

set_material_propertiesB

Update Principled BSDF properties on an existing material.

Fails clearly if a property is driven by a texture node -- edit that node instead, or disconnect it first.

ParametersJSON Schema
NameRequiredDescriptionDefault
iorNo
nameYesMaterial to change
alphaNo
metallicNo
roughnessNo
base_colorNo[r, g, b] or [r, g, b, a], each 0..1 (linear)
coat_weightNo
blend_methodNo
sheen_weightNo
transmissionNo
emission_colorNo[r, g, b] or [r, g, b, a], each 0..1 (linear)
emission_strengthNo
specular_ior_levelNo
use_backface_cullingNo

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully discloses that the tool 'fails clearly' on texture-driven properties and suggests a remedy, but it does not explain key behaviors such as what happens when a material name does not exist, whether null/omitted parameters leave existing values unchanged, or what the return/error shape is.

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 two sentences with no filler: the action is stated first, and the behavior note adds genuinely useful information. It is well front-loaded and every sentence earns its place.

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 14 parameters, no annotations, and no output schema, the description is incomplete. It covers one edge case but omits crucial operational details such as whether the target material must already use Principled BSDF, whether omitted properties are preserved, and how errors are reported. An agent would likely need to rely on trial and error.

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

Parameters2/5

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

Schema description coverage is only 21%, and the description does not compensate by explaining any of the 14 parameters. It neither clarifies that unset/null properties are left unchanged nor gives guidance on how values like base_color or emission_color should be formatted beyond what the schema already states. The schema's names and ranges must do all the work.

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 ('Update') on a specific resource ('existing material') and narrows the scope to 'Principled BSDF properties.' This distinguishes it from siblings like create_material, assign_material, and get_material, though it does not explicitly name or contrast those alternatives.

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

Usage Guidelines4/5

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

The description gives explicit guidance for one important case: if a property is driven by a texture node, edit the node instead or disconnect it first. This provides a clear exclusion and remediation path, but it does not broadly explain when to choose this tool over related node-editing tools like set_node_inputs.

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

set_modifierC

Change settings on an existing modifier. Angles are DEGREES.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
modifierYes
settingsYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only notes that angles are in degrees, providing minimal value. It does not mention whether the operation is destructive, what happens if the modifier doesn't exist, or any side effects.

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

Conciseness4/5

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

The description is a single sentence plus a note, with no wasted words. It front-loads the purpose. However, it is so terse that it borders on under-specification rather than concise clarity.

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

Completeness1/5

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

For a tool with a generic settings object, three required parameters, no schema descriptions, no output schema, and no annotations, the description is far too minimal. It fails to explain parameter meanings, accepted settings, or behavioral expectations, making it incomplete for safe and correct invocation.

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 parameters, but it does not. It only hints that angles are in degrees, which likely relates to the settings object, but it does not clarify what 'name', 'modifier', or 'settings' mean, leaving the agent without sufficient information to populate them correctly.

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 action ('Change settings') on a specific resource ('existing modifier'), clearly differentiating it from sibling tools like add_modifier or remove_modifier. It also adds a useful unit convention for angles, reinforcing its purpose.

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 'existing' implies the tool is for modifying already-added modifiers, but there is no explicit guidance on when to use it versus alternatives like add_modifier or specific modifier tools. No exclusions or conditions are given.

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

set_node_imageB

Point an existing Image Texture node at a different image.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYes
imageYes
materialYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the core action (pointing a node at a different image) but does not disclose side effects, error conditions (e.g., node not found, invalid image), or whether the operation is reversible. For a mutation tool with zero annotation coverage, this is a significant gap.

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

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 immediately states the action and the object being modified. Perfectly concise and well-structured.

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

Completeness2/5

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

Given the tool has three required parameters and no output schema or annotations, the one-sentence description is insufficient. It does not explain return values, error handling, or preconditions (e.g., whether the node must already be an Image Texture node). For a mutation tool with zero schema coverage, an agent lacks the information needed to call it correctly without additional investigation.

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 explain the parameters. It mentions 'node' and 'image' implicitly, but the 'material' parameter is never addressed. The description does not clarify which node type is expected, what format the image identifier takes, or how the material parameter is used. It fails to compensate for the schema's lack of detail.

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 uses a specific verb ('point') and resource ('existing Image Texture node') to clearly state the operation. It distinguishes itself from siblings like create_image_texture_node (which creates a new node) and set_node_inputs (which generically sets inputs). An agent can immediately understand what this tool does without opening the schema.

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

Usage Guidelines3/5

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

The description implies the tool is for modifying an existing node, contrasting with creation tools, but it does not explicitly name alternatives or state when-not to use it. There is no guidance about prerequisites (e.g., the node must already exist) or when to choose this over set_node_inputs. The context is clear but lacks explicit routing.

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

set_node_inputsA

Set default values on a node's unlinked input sockets, keyed by socket name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYes
inputsYes
materialYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It states the core effect and the 'unlinked' scope, but it does not say whether existing default values are overwritten, whether the operation is reversible, what errors may occur, or what the response looks like.

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 concise, front-loaded sentence that clearly conveys the action, target, and keying structure without fluff. Every word earns its place.

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 output schema, no annotations, and a nested 'inputs' object, the description is minimal but arguably sufficient for a straightforward setter. It explains what is being set and how the inputs map is keyed, but it does not cover error handling, prerequisites, or what happens to linked sockets.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaning to 'inputs' by specifying they are keyed by socket name, but it says nothing about the value types or how 'material' and 'node' identifiers should be resolved. This is partial compensation, not 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?

The description uses a specific verb and resource: 'Set default values on a node's unlinked input sockets, keyed by socket name.' This clearly distinguishes it from sibling tools like connect_nodes, which create wiring, and set_node_image, which sets a specific image input.

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 'unlinked input sockets' implies that this tool is for assigning defaults to disconnected inputs, which provides some usage context. However, it does not explicitly contrast this with alternatives such as connect_nodes or mention what happens if a socket is already linked, so the guidance is mostly implied rather than explicit.

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

set_originB

Move an object's origin without moving its geometry.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoBASE puts the origin at the centre of the footprint on the lowest Z -- the usual choice for props that stand on the groundORIGIN_GEOMETRY
nameYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description must carry the burden of behavioral disclosure. It clearly states that geometry is not moved, which is a key non-destructive behavior. However, it doesn't disclose any side effects, such as whether the operation is undoable, how it interacts with parenting or modifiers, or whether it affects the object's local axes. The description is better than a tautology but lacks depth on what happens to the object's transforms.

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 that communicates the core purpose clearly and efficiently. It front-loads the action and the resource, and immediately clarifies that geometry is unaffected. There is no wasted wording. It could have been improved by adding a couple of usage hints, but as is, it is appropriately concise.

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

Completeness2/5

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

Given the tool has 2 parameters, no output schema, and no annotations, the description is thin. It explains what it does but not why an agent would call it over alternatives like set_transform or when to choose specific modes. The mode parameter description provides some context, but the overall description leaves gaps: it doesn't mention that the name is the object to modify, nor does it give examples of when each mode is appropriate (beyond BASE). For a tool that modifies objects, more guidance is needed for correct invocation.

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 50% (only the mode parameter has an extended description; name has no description beyond its title). The description itself doesn't elaborate on parameters—it doesn't explain how to use the mode or what name refers to. However, the mode parameter's description in the schema does add context (e.g., BASE puts origin at footprint), which helps compensate. But for names, the agent gets almost no guidance beyond 'Name', so the description adds limited value beyond 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?

The description uses a specific verb ('Move') and resource ('object's origin'), clearly distinguishing this from sibling tools like set_transform which deal with object transforms. It also clarifies that geometry is not affected, which adds precision. However, it doesn't mention the `mode` parameter or the alternatives, which slightly limits purpose clarity for agents unfamiliar with Blender origin semantics.

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

Usage Guidelines3/5

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

The description implies usage when an object's origin needs to be repositioned without moving its geometry, and the mode parameter description clarifies one specific use case (BASE for props standing on ground). However, it doesn't explicitly state when not to use this tool (e.g., if you want to move geometry, use set_transform) or when to use a particular mode over another. No explicit alternatives are pointed out.

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

set_parentA

Parent one object to another (or clear its parent).

ParametersJSON Schema
NameRequiredDescriptionDefault
childYes
parentNoParent object name; omit to unparent
keep_transformNoPreserve the child's world transform

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the core behavior (parenting or unparenting) but does not mention side effects like transform implications (unless keep_transform is set, which is in the schema), requirements for existing objects, or potential errors. It adds minimal context beyond the action itself, so it is adequate but not rich.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the primary action and includes the secondary behavior (clearing) without unnecessary words. It is optimally sized and structured for quick comprehension.

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 tool with three parameters and no output schema, the description provides the essential action but omits important contextual details such as prerequisites (both objects must exist), error handling, or the effect on world transforms (though keep_transform is in the schema). The agent can likely infer enough to call it correctly, but the description does not fully cover the operation's context.

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

Parameters3/5

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

The schema description coverage is 67% (parent and keep_transform have descriptions; child does not). The tool description does not elaborate on parameters; it only restates the general action. Since the schema already covers two of three parameters, the description adds little extra value, but the child parameter's purpose is clear from the name and the tool description.

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

Purpose5/5

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

The description clearly states the action: 'Parent one object to another (or clear its parent).' This specifies the verb (parent), the resource (object), and the alternative behavior (clearing). It distinguishes itself from sibling tools like set_transform or set_origin by focusing on hierarchy rather than transform values, so an agent can easily identify when to use it.

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

Usage Guidelines3/5

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

The description implies usage (when you need to establish or remove a parent-child relationship) but does not explicitly mention when not to use it or compare to alternatives. There are no exclusions or alternative tool suggestions, leaving the agent to infer the appropriate context from the tool name and description.

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

set_render_settingsA

Change the scene's persistent render settings.

render_preview already overrides resolution, samples and format for its own render and restores them afterwards -- use this only when you want the change to stick.

ParametersJSON Schema
NameRequiredDescriptionDefault
cameraNo
engineNoBLENDER_EEVEE is fast and fine for previews; CYCLES is slower and more accurate
samplesNoRender samples for the active engine
exposureNo
file_formatNo
resolution_xNo
resolution_yNo
view_transformNoColour management, e.g. 'AgX', 'Filmic', 'Standard'. 'Standard' shows raw material colours.
film_transparentNoRender the background as alpha
resolution_percentageNo

TDQS

A3.7/5.0
Behavior3/5

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

There are no annotations, so the description carries the burden of behavioral disclosure. It mentions 'persistent' and contrasts with render_preview's temporary override, which is helpful. However, it doesn't disclose side effects (e.g., whether the change is applied immediately, whether it requires saving the scene, or if it affects all future renders). More transparency would be expected for a mutation tool with no annotations.

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 extremely concise—two sentences—and well-structured. It front-loads the purpose and then provides usage guidance, with zero fluff. Every sentence earns its place, making it efficient for an agent to parse.

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?

The tool has 10 parameters, all optional, no output schema, and no annotations. The description gives almost no context beyond the persistent-vs-temporary distinction. It doesn't explain what the settings affect, typical use cases, or relationships to other tools like get_render_settings. For such a parameter-heavy tool, this is insufficient.

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 only 40% (4 of 10 parameters have descriptions). The description adds no parameter-specific meaning—it only references 'resolution, samples and format' in the context of render_preview, not for this tool. Since coverage is low, the description should compensate by explaining parameters, but it doesn't, so this is a significant gap.

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

Purpose5/5

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

The description clearly states the tool's purpose: changing the scene's persistent render settings. It uses a specific verb 'change' and a clear resource 'scene's persistent render settings', and explicitly contrasts with the sibling tool render_preview, which makes the distinction obvious.

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

Usage Guidelines5/5

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

The description gives explicit usage guidance: it explains that render_preview overrides and restores settings, and that this tool should only be used when a persistent change is desired. It names the alternative (render_preview) and the condition, leaving no ambiguity about when to choose this tool.

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

set_transformA

Set an object's ABSOLUTE location, rotation (degrees) and/or scale.

Omitted components are left alone. Use translate/rotate/scale_object for relative changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesObject to transform
scaleNo[x, y, z] in Blender units
locationNo[x, y, z] in Blender units
rotationNo[x, y, z] euler rotation in DEGREES

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description must carry the behavioral burden. It clearly indicates this is an absolute, potentially overwriting operation and clarifies that only specified components are changed. It could go further by mentioning undoability or side effects, but the absolute-vs-relative distinction and partial-update behavior are valuable beyond what the schema provides.

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 two short, front-loaded sentences. The core purpose is stated first, and the key caveat and alternative routing follow immediately. No filler or redundant restatement exists.

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 four-parameter transform tool with a fully documented schema)Skip. It covers behavior, partial updates, and the relevant siblings, which is complete enough for correct invocation. It does not need to explain return values since there is no output schema, and any additional safety notes would be marginal for this straightforward mutation.

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 100%, so the schema already documents all parameters in detail, including units and array shapes. The description reinforces that rotation is in degrees and that components are independent, but it does not add substantial new meaning beyond the schema.

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 clear verb (Set), a specific resource (object), and the exact properties affected (absolute location, rotation in degrees, scale). It also contrasts with the relative transform siblings by emphasizing ABSOLUTE, making it easy for an agent to distinguish this from translate_object, rotate_object, and scale_object.

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

Usage Guidelines5/5

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

The description explicitly says to use translate/rotate/scale_object for relative changes, directly naming the alternative tools and the condition that selects them. It also explains that omitted components are left alone, which is critical usage guidance for partial updates.

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

set_world_backgroundA

Set the world background colour and strength.

The world lights the scene: a strength of 0 makes shadows pitch black.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNo[r, g, b] or [r, g, b, a], each 0..1 (linear)
strengthNoAmbient strength

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description takes on the behavioral burden and adds a useful non-obvious fact: strength of 0 makes shadows pitch black, i.e., the world is a light source. It does not disclose every edge case such as what a null color means, but it goes beyond a bare setter.

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 with the core action front-loaded and no filler. The behavioral explainer is earned because it clarifies what strength actually does.

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 two-optional-parameter tool with a complete input schema, this description is nearly sufficient. The only notable gap is not describing what passing color=null means and not mentioning the output/return behavior, but neither is critical for basic use.

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 schema already covers both parameters thoroughly (100% coverage), so the baseline is 3. The description adds real semantic value for strength by explaining its visual effect on shadows, though it does not add anything about the color parameter or its null default.

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: it sets the world background's colour and strength, which clearly distinguishes it from object/light/render tools. It does not explicitly contrast with siblings like set_render_settings or create_light, so it misses the strongest possible differentiation.

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 note that 'the world lights the scene' implies this tool controls ambient/global lighting, giving the agent some situational cue about when it matters. However, there is no explicit when-to-use, when-not-to-use, or mention of alternatives such as set_light_properties or set_render_settings.

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

shade_flatA

Switch objects to flat (faceted) shading.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesNoObject names. Omit to use the current selection.

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full behavioral disclosure. It states the action but does not mention side effects (e.g., how it affects object materials/visibility), whether the change is reversible, or what happens if object names are invalid. It also does not contrast with `shade_smooth`, leaving the agent to infer behavioral differences.

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, concise sentence with no wasted words. The primary purpose is front-loaded and immediately understandable.

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 mutation tool with no output schema and no annotations, the description covers the core action but lacks context on return values, error handling, or what objects are affected beyond the schema. It is minimally adequate but does not go further.

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

Parameters3/5

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

The schema description coverage is 100% for the single `names` parameter, which already explains the optional array and the default to selection. The description does not add additional meaning to the parameter, so the baseline of 3 applies.

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 ('Switch'), a resource ('objects'), and the target state ('flat (faceted) shading'). It clearly distinguishes from the sibling tool `shade_smooth` by the explicit state change.

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 usage is implied: it's used to switch objects to flat shading. However, it does not explicitly mention when to choose this over `shade_smooth` or provide exclusions or prerequisites. The sibling exists but no comparison is made.

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

shade_smoothC

Switch objects to smooth shading, optionally with an auto-smooth angle.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesNoObject names. Omit to use the current selection.
auto_smooth_angleNoDegrees. Adds Blender's Smooth by Angle modifier so edges sharper than this stay faceted -- 30 is a good default for hard-surface props

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only states the action without explaining side effects, reversibility, or the fact that adding an auto-smooth angle introduces a modifier. It does mention the modifier in the schema parameter, but the description itself offers no such context, leaving the agent unaware of potential state changes.

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 that conveys the core action efficiently. It avoids fluff and is appropriately concise for a simple operation, though it could include a bit more usage context without losing efficiency.

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 tool is simple (2 optional params, no output schema), and the schema covers parameter details well. However, the description does not address how it differs from shade_flat or when to prefer it, and it omits the fact that it operates on selection when names are omitted (though that is in the schema). It is adequate for basic invocation but not fully complete for an agent deciding between shading 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 coverage is 100% and both parameters are well described in the schema (names default to selection, auto_smooth_angle explains degrees and the modifier behavior). The description adds little beyond restating the optional angle, so the baseline of 3 applies since the schema carries the parameter meaning.

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

Purpose4/5

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

The description clearly states the action ('Switch objects to smooth shading') and mentions the optional auto-smooth angle. It is specific about the resource and the effect, but it does not explicitly contrast with the sibling tool shade_flat, so it earns a 4 rather than a 5.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like shade_flat or recalculate_normals. There is no mention of typical use cases or conditions that would favor this tool, 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.

show_objectA

Unhide an object in the viewport and (by default) in renders.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
renderNo

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description must carry the behavioral burden. It clearly states the mutation affects the viewport and, by default, renders, and the phrasing reveals how the render parameter changes behavior. It omits idempotency/error behavior, but for a simple visibility toggle this is acceptable.

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 contains the action, target, and scoping nuance with no filler. The most important information is front-loaded.

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

Completeness4/5

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

For a two-parameter, no-output-schema visibility command, the description plus input schema gives an agent enough to invoke it correctly, including how to limit the effect to the viewport. It would be marginally improved by noting behavior when the object is already visible, but nothing essential is missing.

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

Parameters4/5

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

With 0% schema description coverage, the description compensates by clarifying the render parameter's default behavior ('by default in renders'). The name parameter is self-evident from its title and the tool's object-oriented phrasing, so no extra explanation is needed.

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 verb 'Unhide' plus resource 'object' and scope 'viewport and renders' make the action unmistakable. It also contrasts with the sibling hide_object, so an agent can pick the inverse 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?

The description implies the obvious use case—turning on visibility for a hidden object—but it does not explicitly say when to prefer this over hide_object or what conditions should hold. No alternative tools are named.

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

smart_uv_projectA

Automatically unwrap meshes. The right first choice for a prop with no seams marked.

Creates a UV map if the mesh has none.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesNoObject names. Omit to use the current selection.
angle_limitNoDegrees; lower makes more, flatter islands
island_marginNoPadding between islands; 0.02 is a safe default for textured game assets
correct_aspectNo
scale_to_boundsNo

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It is transparent about the core behavior and even adds a useful side-effect detail: 'Creates a UV map if the mesh has none.' However, it does not disclose that existing UV maps may be overwritten, nor does it mention undoability or other mutation side effects.

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

Conciseness5/5

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

Three short sentences with no fluff. The action verb and resource are front-loaded, and both the usage context and a behavioral detail earn their place in the description.

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 adequately covers what the tool does and when to use it, given that parameter details live in the schema. It is less complete on behavior beyond UV creation, such as overwriting behavior and whether the operation is safe/undoable – especially important because there are no annotations and no output schema.

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

Parameters3/5

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

The schema already describes names, angle_limit, and island_margin clearly, covering 60% of parameters. The description itself adds no parameter-level meaning, and the undocumented booleans (correct_aspect, scale_to_bounds) are left to their titles, which is a moderate gap but not severe.

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: 'Automatically unwrap meshes.' It also distinguishes itself by framing the tool as the first choice for props with no marked seams, which separates it from seam-dependent unwrapping siblings like unwrap_selected and mark_seams_by_angle.

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?

It gives clear usage context: 'The right first choice for a prop with no seams marked.' This tells the agent when to select this tool, though it does not explicitly name alternatives or say 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.

translate_objectB

Move an object by a delta (relative).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
localNoMove along the object's own axes instead of world axes
translationYes[x, y, z] in Blender units

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic action without explaining side effects (e.g., whether the object's location is updated permanently), how the 'name' parameter identifies the target object, or the effect of the 'local' flag. The description does not clarify what happens to the object's transform 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?

The description is a single, efficient sentence that states the core functionality without extraneous detail. Every word earns its place, making it highly scannable and front-loaded.

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

Completeness2/5

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

Given the tool has 3 parameters (2 required), no output schema, and no annotations, the description is insufficient. It does not explain how to specify the target object (name), what the 'local' parameter does in practice, or what the return value is. An agent would need to infer these from the schema alone, which is inadequate for a transformation operation.

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 67% (local and translation have descriptions, name does not). The description itself adds no parameter information—it merely restates the purpose. Since the schema already documents local and translation, the description's contribution is minimal, but it does not contradict the schema. Baseline 3 is appropriate because the schema does the heavy lifting.

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 ('Move') and resource ('an object'), and specifies the nature of the move as 'by a delta (relative)'. This clearly distinguishes it from sibling tools like set_transform (absolute) and rotate_object/scale_object, which handle other transformation types.

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 the tool is for relative movement but does not explicitly state when to choose it over alternatives like set_transform or absolute positioning. It lacks any exclusionary or comparative guidance, leaving the agent to infer from the 'relative' wording. No alternatives are named.

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

triangulate_meshA

Convert every face to triangles, permanently.

Usually unnecessary: exporters triangulate on the way out. Use this only when the triangulated topology itself must live in the blend file.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. It discloses the permanent, irreversible nature of the operation ('permanently'), which is a key behavioral trait. It doesn't mention whether it modifies the object in place or other side effects, but for a simple mesh operation, this is adequate. The permanence disclosure goes beyond the schema and is valuable context.

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 two sentences, front-loads the core action first, then adds usage guidance. Every sentence earns its place, with zero fluff. It is concise and well-structured.

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 one-parameter tool, the description covers the main action and usage guidance. However, it leaves the 'name' parameter unexplained and does not mention any prerequisites (e.g., the object must be a mesh). Given no annotations or output schema, this is a notable gap that prevents full self-sufficiency for the agent.

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 a single parameter 'name' with zero description coverage. The description does not explain what 'name' refers to (presumably the mesh object name). While the tool name implies it, the agent gets no explicit guidance on what this parameter expects. Since the schema provides no description, the description must compensate, and it fails to do so.

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

Purpose5/5

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

The description clearly states the action: 'Convert every face to triangles, permanently.' It specifies the resource (every face of a mesh) and the operation (conversion to triangles). It also distinguishes itself from the broader mesh modification siblings by focusing on triangulation, making its purpose unambiguous.

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

Usage Guidelines5/5

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

Excellent usage guidance. It explicitly warns 'Usually unnecessary: exporters triangulate on the way out' and gives the specific condition for use: 'Use this only when the triangulated topology itself must live in the blend file.' This tells the agent exactly when to choose this tool over simply relying on export settings, and implicitly mentions the alternative (exporters).

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

undoA

Step back through Blender's undo history.

Undo reflects Blender's UI history, so it reverses whatever happened last -- including the user's own edits. For rolling back your own work reliably, prefer checkpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsNo

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It explains that undo is tied to Blender's UI history, that it reverses whatever happened last including the user's own edits, and that checkpoints are safer for rollbacks. This is useful behavioral context, though it doesn't cover edge cases like exhausting undo history.

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 concise, front-loaded with the action, and every sentence earns its place. It communicates the core behavior, a key caveat, and guidance to an alternative without unnecessary detail.

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 simple tool with one optional parameter and no output schema, the description is complete enough for an agent to select and invoke it correctly. It explains the key behavioral nuance and points to a safer alternative for reliable rollbacks.

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

Parameters3/5

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

The single parameter 'steps' is self-descriptive and the schema provides default, minimum, and maximum constraints. However, the description does not explicitly explain how steps relates to the undo operation, and schema description coverage is 0%, so it doesn't add meaning beyond the structured schema.

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 uses a specific verb and resource: 'Step back through Blender's undo history.' It clearly distinguishes the tool from checkpoints by explicitly noting that undo reflects UI history and reverses whatever happened last, which distinguishes it from reliable rollback via checkpoints.

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

Usage Guidelines5/5

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

The description provides explicit guidance: use undo for stepping back through Blender's UI history, and prefer checkpoints for reliably rolling back your own work. This names the alternative and gives a clear condition for when not to rely on undo.

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

unwrap_selectedA

Unwrap along marked seams.

Only useful once seams exist -- use mark_seams_by_angle first, or smart_uv_project for a seamless automatic result.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesNoObject names. Omit to use the current selection.
marginNo
methodNoANGLE_BASED
fill_holesNo
correct_aspectNo

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It communicates the seam dependency and the existence of alternatives, but it does not state whether existing UV maps are overwritten, what happens if no seams are present, or any other side effects. Some behavior is implied, but not fully disclosed.

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 concise sentences, front-loaded with the core action and followed by the key usage caveat. Every clause adds value and there is no redundancy.

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?

The definition tells the agent when to use the tool but leaves significant gaps: no parameter explanations, no side-effect disclosure, no output/result description, and no annotations. For a tool with 5 parameters and low schema coverage, this is 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 only 20%, and the description adds no meaning for margin, method, fill_holes, or correct_aspect. The schema provides defaults and enums but no explanation, and the description does not compensate for the low coverage.

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 uses a specific verb and resource ('Unwrap along marked seams') and immediately distinguishes itself from smart_uv_project. An agent can tell this tool is for seam-based unwrapping, not automatic projection.

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

Usage Guidelines5/5

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

The description explicitly states the precondition ('Only useful once seams exist'), names the prerequisite tool ('use mark_seams_by_angle first'), and offers the alternative ('smart_uv_project for a seamless automatic result'). This is explicit when-to-use and when-not-to-use guidance.

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

validate_game_assetB

Check an asset against explicit budgets and conventions.

Returns passed/errors/warnings. Constraints you do not set are reported as warnings rather than failures, so a plain call is still a useful health check. Read-only: it never modifies the asset, so fix anything it finds with the relevant tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectsNo
max_objectsNo
require_uvsNoFail if any mesh has no UV map
forbid_ngonsNoFail on faces with more than 4 sides
max_verticesNo
max_dimensionNoLargest allowed bounding-box dimension in units
max_materialsNoMaterial slots drive draw calls; engines usually want few
max_trianglesNoTriangle budget, counted after modifiers
check_topologyNo
require_materialsNo
forbid_non_manifoldNo
require_applied_transformsNoFail on unapplied rotation or scale

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It explicitly states the tool is read-only, never modifies the asset, returns passed/errors/warnings, and reports unset constraints as warnings. It omits details like how the target asset is resolved, but the disclosed safety and output behavior is strong.

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 compact sentences front-load the core purpose, then cover return shape and read-only behavior. There is no fluff and every sentence contributes useful information.

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 12-parameter tool with no output schema and no annotations, the description is too thin. It explains safety and return categories but does not say which asset or objects are validated, how the objects parameter interacts with selection, or when to prefer this over the similar analyze_game_asset sibling.

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 covers only about half of the parameters, and the description adds no parameter-level meaning. Parameters like objects, max_objects, check_topology, require_materials, and forbid_non_manifold remain undocumented in both schema and description, so the description 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?

The description states a specific verb and resource: 'Check an asset against explicit budgets and conventions.' It is clear about what the tool does, but it does not distinguish itself from the sibling tool analyze_game_asset, so it misses the top score.

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 'a plain call is still a useful health check' implies a default use case even with no constraints set. However, there is no explicit guidance about when to choose this tool over analyze_game_asset or other related validation/analysis tools.

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. 126 tool updatesv1.0.0
    • First observedadd_array
    • First observedadd_bevel
    • First observedadd_boolean
    • First observedadd_decimate
    • First observedadd_mirror
    • First observedadd_modifier
    • First observedadd_solidify
    • First observedadd_subdivision
    • First observedadd_weighted_normal
    • First observedanalyze_game_asset
    • First observedapply_all_modifiers
    • First observedapply_modifier
    • First observedapply_transforms
    • First observedassign_material
    • First observedbegin_operation
    • First observedcancel_operation
    • First observedconnect_nodes
    • First observedcreate_box_collision
    • First observedcreate_camera
    • First observedcreate_checkpoint
    • First observedcreate_collection
    • First observedcreate_convex_collision
    • First observedcreate_cube
    • First observedcreate_empty
    • First observedcreate_image
    • First observedcreate_image_texture_node
    • First observedcreate_light
    • First observedcreate_lod
    • First observedcreate_material
    • First observedcreate_mesh
    • First observedcreate_node
    • First observedcreate_preview_lighting
    • First observedcreate_primitive
    • First observedcreate_uv_layer
    • First observeddelete_light
    • First observeddelete_node
    • First observeddelete_object
    • First observeddelete_objects
    • First observeddelete_preview_lighting
    • First observeddelete_uv_layer
    • First observeddeselect_all
    • First observeddisconnect_node_input
    • First observedduplicate_object
    • First observedend_operation
    • First observedevaluate_blender_expression
    • First observedexecute_blender_python
    • First observedexport_fbx
    • First observedexport_glb
    • First observedexport_gltf
    • First observedexport_obj
    • First observedframe_objects_with_camera
    • First observedget_active_object
    • First observedget_blender_version
    • First observedget_bridge_status
    • First observedget_camera
    • First observedget_image
    • First observedget_material
    • First observedget_material_nodes
    • First observedget_mesh_data
    • First observedget_object
    • First observedget_operation_status
    • First observedget_render_settings
    • First observedget_scene_info
    • First observedget_selected_objects
    • First observedget_workspace_info
    • First observedhide_object
    • First observedjoin_objects
    • First observedlist_bridge_actions
    • First observedlist_cameras
    • First observedlist_checkpoints
    • First observedlist_collections
    • First observedlist_collision_objects
    • First observedlist_exports
    • First observedlist_images
    • First observedlist_lights
    • First observedlist_materials
    • First observedlist_modifiers
    • First observedlist_objects
    • First observedlist_previews
    • First observedlist_uv_layers
    • First observedload_image
    • First observedlook_at
    • First observedmark_seams_by_angle
    • First observedmesh_cleanup
    • First observedmove_to_collection
    • First observedping
    • First observedping_blender
    • First observedpush_undo
    • First observedread_preview_image
    • First observedrecalculate_normals
    • First observedredo
    • First observedremove_material
    • First observedremove_modifier
    • First observedrename_object
    • First observedrender_preview
    • First observedrender_turntable
    • First observedrestore_checkpoint
    • First observedrotate_object
    • First observedsave_blend
    • First observedsave_blend_as
    • First observedscale_object
    • First observedselect_objects
    • First observedseparate_object
    • First observedset_active_camera
    • First observedset_active_object
    • First observedset_active_uv_layer
    • First observedset_camera_transform
    • First observedset_light_properties
    • First observedset_material_properties
    • First observedset_modifier
    • First observedset_node_image
    • First observedset_node_inputs
    • First observedset_origin
    • First observedset_parent
    • First observedset_render_settings
    • First observedset_transform
    • First observedset_world_background
    • First observedshade_flat
    • First observedshade_smooth
    • First observedshow_object
    • First observedsmart_uv_project
    • First observedtranslate_object
    • First observedtriangulate_mesh
    • First observedundo
    • First observedunwrap_selected
    • First observedvalidate_game_asset

TDQS

C2.9/5.0

Scored across 126 tools

Disambiguation3/5

Most tools target a specific resource and action, and the descriptions are unusually clear, but several pairs overlap purposefully: add_modifier duplicates the specialized add_bevel/add_subdivision/... wrappers, create_primitive duplicates create_cube, and analyze_game_asset/validate_game_asset plus execute_blender_python/evaluate_blender_expression sit close together. An agent can usually disambiguate by reading descriptions, but the boundaries are not always crisp.

Naming Consistency4/5

Names overwhelmingly follow a snake_case verb_noun pattern (list_objects, create_material, apply_modifier), which makes the set predictable. The pattern breaks in spots: bare verbs (undo, redo, ping), noun-first or adjective-first names (mesh_cleanup, smart_uv_project), and inconsistent singular/plural pairs (delete_object vs delete_objects, connect_nodes vs disconnect_node_input) keep it from being perfect.

Tool Count1/5

At 126 tools this is far beyond the 3-15 well-scoped range and above any reasonable surface for an agent to consider; many are convenience wrappers that could be consolidated (8+ add_<modifier> tools, 7 export/read/render variants). Even if Blender is a wide domain, this tool count is an extreme mismatch and will hurt selection reliability.

Completeness4/5

The surface covers the full game-asset pipeline: scene/object CRUD, mesh editing, modifiers, materials/nodes, UVs, cameras/lights, rendering/previews, exports, checkpoints, validation, collisions, and LODs. Gaps like structured armature/rigging and animation tools, collection/image deletion, and a singular collection getter remain, though execute_blender_python acts as an escape hatch.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI-driven 3D modeling in Blender by providing tools to create primitives, apply modifiers and materials, set up lighting and cameras, capture viewport snapshots, export assets, inspect scenes, and execute Python commands via natural language.
    10
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to control Blender through 150+ tools across 24 modules, including modeling, materials, lighting, animation, rendering, mesh quality analysis, and visual feedback, plus expert prompts and goal-first workflow management.
    MIT