Skip to main content
Glama

BlenderMCP — Blender Model Context Protocol Integration

BlenderMCP connects Blender to AI assistants through the Model Context Protocol (MCP), letting Claude directly control Blender for prompt-assisted 3D modelling, scene creation, rendering, and automation.

This is an extended fork of ahujasid/blender-mcp with 92 tools, full Blender 4.x compatibility, and telemetry removed.


What's new in this fork

  • 92 tools across 26 categories (up from the original ~20)

  • Blender 4.x compatibility — fixes for BMesh layer API changes, EEVEE engine name, temp_override region requirement, compositor node ordering

  • No telemetry — all analytics code removed

  • Auto-restart on addon reload — server restarts automatically when the addon is cycled in Preferences; no manual click needed

  • img_to_3d_server.py — local image-to-3D inference via TripoSR (optional, loads/unloads on demand to free VRAM)

  • TOOLS.md — full reference for all 92 tools with parameters


Related MCP server: BlenderMCP

Tool categories (92 tools)

Category

Tools

Process management

start_blender, close_blender, get_blender_status

Scene & object info

get_scene_info, get_object_info, find_objects_by_type, measure_distance

Primitives & object mgmt

add_primitive, delete_object, duplicate_object, rename_object, join_objects, separate_mesh, set_origin, snap_to_ground, set_smooth_shading, parent_object, select_objects, align_objects

Transforms

move_object, scale_object, rotate_object

Mesh editing

get_mesh_stats, subdivide_mesh, apply_modifier, set_vertex_position

Vertex operations

get_vertex_positions, set_vertex_positions

Edge operations

get_edges, mark_sharp_edges, set_edge_crease, set_edge_bevel_weight

Face operations

get_faces, extrude_faces, inset_faces, flip_normals, merge_vertices, triangulate_mesh, set_face_material_index

Curve control points

get_control_points, set_control_point

Camera

create_camera, set_active_camera

Lighting

add_light, set_world_background, add_3point_lighting

Materials

create_material, assign_material, set_object_material_color, load_texture, set_texture

Modifiers

add_modifier, boolean_operation

Rendering

set_render_settings, render_from_camera, render_all_cameras

Viewport capture

get_viewport_screenshot, capture_viewport_angle, capture_contact_sheet, render_depth_map

Reference images

store_reference_image, compare_reference_image, diff_images

Animation

add_keyframe, set_frame

Collections

create_collection, move_to_collection

Export / import

export_object, import_file, save_blend, load_blend

Scripting

execute_blender_code

PolyHaven

get_polyhaven_status, get_polyhaven_categories, search_polyhaven_assets, download_polyhaven_asset

Sketchfab

get_sketchfab_status, search_sketchfab_models, get_sketchfab_model_preview, download_sketchfab_model

Hyper3D / Rodin

get_hyper3d_status, generate_hyper3d_model_via_text, generate_hyper3d_model_via_images, poll_rodin_job_status, import_generated_asset

Hunyuan3D

get_hunyuan3d_status, generate_hunyuan3d_model, poll_hunyuan_job_status, import_generated_asset_hunyuan

Image-to-3D (TripoSR)

load_img_to_3d_model, generate_3d_from_image, unload_img_to_3d_model

See TOOLS.md for full parameter documentation.


Requirements

  • Blender 4.0 or newer (Blender 4.3 recommended)

  • Python 3.10+

  • uv package manager


Installation

1. Install the MCP server

git clone https://github.com/naab007/blender_mcp
cd blender_mcp
uv venv .venv
uv pip install -e .

2. Install the Blender addon

  1. Download addon.py from this repo

  2. Open Blender → Edit → Preferences → Add-ons → Install...

  3. Select addon.py and enable Interface: Blender MCP

  4. In the 3D View sidebar (N), open the BlenderMCP tab and click Start MCP Server

To update after the first install, copy the new addon.py over the installed one (<Blender config>/scripts/addons/addon.py) and cycle the add-on off/on in Preferences — the MCP server restarts automatically.

3. Configure your AI client

Claude Code — create .mcp.json in your working directory:

{
  "mcpServers": {
    "blender": {
      "type": "stdio",
      "command": "/path/to/blender_mcp/.venv/Scripts/blender-mcp.exe"
    }
  }
}

Claude Desktop — add to claude_desktop_config.json:

{
  "mcpServers": {
    "blender": {
      "command": "uvx",
      "args": ["blender-mcp"]
    }
  }
}

Cursor — add to .cursor/mcp.json:

{
  "mcpServers": {
    "blender": {
      "command": "uvx",
      "args": ["blender-mcp"]
    }
  }
}

Usage

Once the addon is running and the MCP server is configured, ask Claude to:

  • "Create a low-poly dungeon scene with a dragon guarding a pot of gold"

  • "Set up 3-point studio lighting and render from the active camera"

  • "Add a Subdivision Surface modifier to the selected object and apply a PBR material"

  • "Capture viewport angles from front, side, and top and give me a contact sheet"

  • "Boolean-subtract the sphere from the cube"

  • "Download a rock model from PolyHaven and place it at the origin"

  • "Generate a 3D model of a garden gnome via Hyper3D"

  • "Render depth map of the current scene"

  • "Keyframe this object moving from (0,0,0) to (5,0,0) over 60 frames"

  • "Compare these two renders and show me exactly what changed" → diff_images(path_a, path_b)


Environment variables

Variable

Default

Description

BLENDER_HOST

localhost

Host for the Blender TCP socket

BLENDER_PORT

9876

Port for the Blender TCP socket

IMG_TO_3D_PORT

7862

Port for the local TripoSR server

IMG_TO_3D_MODEL_DIR

stabilityai/TripoSR

Local weights path or HuggingFace hub ID

IMG_TO_3D_DEVICE

auto

cuda or cpu

Dependencies

Package

Version

Purpose

mcp[cli]

≥1.3.0

MCP server framework

pillow

≥10.0.0

Image processing (viewport capture, contact sheets, diff)

numpy

≥1.24.0

Pixel math for diff_images

flask

≥3.0.0

Local TripoSR inference server

requests

≥2.31.0

PolyHaven / Sketchfab / Hyper3D API calls


Architecture

Claude / AI client
      │  MCP (stdio)
      ▼
server.py  (FastMCP, @mcp.tool functions)
      │  JSON over TCP :9876
      ▼
addon.py   (Blender Python addon, bpy.app.timers dispatch)
      │
      ▼
Blender scene
  • All addon handlers run on Blender's main thread via bpy.app.timers.register() — no threading issues

  • Commands are JSON { "type": "...", "params": {...} }, responses are { "status": "success"|"error", "result": ... }


Troubleshooting

  • "context is incorrect" on view3d operators — requires Blender 4.x temp_override(area=area, region=region). Already fixed in this fork.

  • BLENDER_EEVEE enum not found — use BLENDER_EEVEE_NEXT in Blender 4.x. Already normalized in this fork.

  • Render writes nothing after depth map — compositor state corruption from empty node tree. Fixed in this fork via full snapshot/restore in render_depth_map.

  • execute_blender_code runs arbitrary Python in Blender — powerful but irreversible. Save your work first.

  • Connection issues — ensure the addon server is running (green dot in the BlenderMCP sidebar tab) before sending commands.


License

MIT — see LICENSE.

Based on ahujasid/blender-mcp by Siddharth Ahuja.

Available Tools

92 tools
add_3point_lightingA

Add a classic 3-point lighting rig (key, fill, back/rim) centred on a subject.

Parameters:

  • subject_name: Object to light (uses scene origin if omitted)

  • key_energy: Key light power in watts (default 1500)

  • fill_energy: Fill light power in watts (default 500)

  • back_energy: Back/rim light power in watts (default 800)

ParametersJSON Schema
NameRequiredDescriptionDefault
key_energyNo
back_energyNo
fill_energyNo
subject_nameNo

TDQS

A4/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 behavioral details. It states it adds a rig but does not mention side effects (e.g., whether existing lights are affected, what light types are created, or how they are positioned). This is insufficient for a mutation tool.

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

Conciseness5/5

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

The description is extremely concise: one sentence stating the purpose followed by a clean parameter list. Every sentence adds value, and the structure is well 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?

The description covers the purpose and parameters adequately but omits details about the created lights (e.g., type, distance from subject, arrangement). For a simple tool this is acceptable, but more completeness would improve agent understanding.

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

Parameters5/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. It does so thoroughly: subject_name details default behavior, and all energy parameters include units (watts) and defaults, adding significant meaning beyond the schema's raw 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?

The description clearly states 'Add a classic 3-point lighting rig' with specific components (key, fill, back/rim), distinguishing it from sibling 'add_light' which adds a single light. The verb 'add' and resource 'lighting rig' are well-defined.

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 indicates when to use this tool (for a 3-point lighting setup centered on a subject) but does not explicitly state when not to use it or compare with alternatives like 'add_light'. The context is clear but lacks exclusions.

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

add_keyframeA

Insert an animation keyframe on an object property.

Parameters:

  • name: Object name

  • data_path: Property to key — 'location', 'rotation_euler', 'scale', or any animatable path like 'data.energy'

  • frame: Frame number (uses current frame if omitted)

  • value: Value(s) to set before keying: "1,2,3" for a vector property such as location, or a single number such as "500" for a scalar like data.energy. Rotation values are in degrees and converted automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
frameNo
valueNo
data_pathNolocation

TDQS

A3.7/5.0
Behavior3/5

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

The parameter list mentions 'Value(s) to set before keying', which indicates the tool modifies the property value and then inserts a keyframe. However, there is no disclosure of potential side effects, such as handling invalid data paths, overriding existing keyframes, or any error behavior. Since no annotations are present, the description carries the full burden but only partially reveals 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?

The description is concise, with a clear one-sentence purpose followed by a structured parameter list. It avoids unnecessary detail and is well-organized for quick parsing.

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 tool is a straightforward action with no output schema, so not describing return values is acceptable. The parameter list provides enough context for typical usage. However, it omits any mention of prerequisites (e.g., object existence) or constraints on property paths, which could be useful but are not critical.

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

Parameters5/5

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

Even though the schema has no parameter descriptions, the tool description explicitly explains each parameter: 'Object name', 'Property to key', 'Frame number', and 'Value(s) to set before keying', including the rotation degrees conversion note. This fully covers the semantics of all four 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 clearly states the action ('Insert an animation keyframe') and the target ('an object property'), using a specific verb and resource. While it doesn't explicitly differentiate from siblings like 'set_frame' or transform tools, the verb 'insert keyframe' is distinct enough for an agent to identify the purpose.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention that this is for animating properties over time or that direct value changes without keyframing might be done via other tools. This leaves the agent without explicit usage conditions.

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

add_lightB

Add a light to the Blender scene.

Parameters:

  • light_type: POINT, SUN, SPOT, or AREA

  • name: Name for the light object (optional)

  • location: Comma-separated x,y,z (default "0,0,5")

  • energy: Light power in watts (default 1000)

  • color: Comma-separated r,g,b in 0..1 range (default "1,1,1")

  • radius: Shadow soft radius (default 0.1)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
colorNo1,1,1
energyNo
radiusNo
locationNo0,0,5
light_typeNoPOINT

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 full burden but fails to disclose side effects, behavior on invalid inputs, or whether it modifies existing lights vs adds new ones.

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 efficiently structured with a brief statement and parameter list, no unnecessary text, though it could be slightly more compact.

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 all 6 parameters with defaults and types, but lacks information about the output or side effects in the scene; adequate but not comprehensive.

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?

Despite 0% schema coverage, the description adds meaningful format details for parameters like location ('Comma-separated x,y,z') and color ('Comma-separated r,g,b in 0..1 range'), though it does not explain all parameters in depth.

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 'Add a light to the Blender scene' with a list of parameters, distinguishing it from siblings like 'add_3point_lighting' which adds multiple lights.

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 alternatives like 'add_3point_lighting', no prerequisites or when-not-to-use conditions are provided.

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

add_modifierA

Add a modifier to an object with optional parameters.

Parameters:

  • name: Object name

  • modifier_type: MIRROR, BEVEL, ARRAY, SOLIDIFY, SUBSURF, DECIMATE, DISPLACE, SHRINKWRAP, WIREFRAME, SKIN, LATTICE, CAST, etc.

  • modifier_name: Display name for the modifier (auto-generated if omitted)

  • params: JSON string of modifier properties, e.g.: MIRROR: '{"use_axis": [true, false, false], "use_clip": true}' BEVEL: '{"width": 0.1, "segments": 3}' ARRAY: '{"count": 4, "relative_offset_displace": [1, 0, 0]}' SOLIDIFY: '{"thickness": 0.05}' SUBSURF: '{"levels": 2, "render_levels": 3}'

Returns the modifier name so you can reference it later with apply_modifier.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
paramsNo
modifier_nameNo
modifier_typeYes

TDQS

A3.7/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 discloses the additive nature but lacks details on side effects, prerequisites (e.g., object must exist), error handling, or what happens to existing modifiers. The return value is mentioned, but behavior under failure is absent.

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 relatively concise and well-structured with a bullet list of parameters. However, the list of modifier types could be shortened or referenced externally, but it remains informative and easy to parse.

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

Completeness3/5

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

Given the tool's complexity (4 parameters, no output schema, no annotations), the description covers parameters and return value but lacks preconditions (object existence, selection state), error scenarios, and potential conflicts with existing modifiers. It provides a functional understanding but misses important context for robust usage.

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

Parameters5/5

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

The description provides extensive parameter semantics beyond the schema: it explains 'modifier_type' with a list of options, 'modifier_name' as auto-generated if omitted, and gives detailed JSON examples for 'params' across multiple modifier types. This greatly aids an agent in constructing correct inputs.

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

Purpose5/5

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

The description clearly states the action ('Add a modifier to an object') and resource, with specific modifier type examples. It also distinguishes from the sibling 'apply_modifier' by noting the return value is used for later application.

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

Usage Guidelines3/5

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

The description implies usage by mentioning 'Returns the modifier name so you can reference it later with apply_modifier', but does not explicitly state when to use this tool versus alternatives or provide 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_primitiveA

Add a standard mesh primitive to the Blender scene.

Parameters:

  • primitive_type: cube, plane, circle, sphere, ico_sphere, cylinder, cone, torus, monkey

  • location: Comma-separated x,y,z (default "0,0,0")

  • size: Overall size in Blender units (default 2.0)

  • name: Optional name for the new object

  • rotation: Comma-separated x,y,z rotation in degrees (default "0,0,0")

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
sizeNo
locationNo0,0,0
rotationNo0,0,0
primitive_typeNocube

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 full burden. It states the tool adds a primitive but does not disclose behavioral traits such as whether the new object becomes active, whether it works in specific modes, or if any existing objects are affected. The description is minimally adequate but lacks depth.

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. It starts with a clear purpose sentence, then lists parameters in a readable format. Every part adds value, with no wasted words. The parameter list is organized and easy to scan.

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, but the description lacks mention of the return value (e.g., object name or success status) and prerequisites (e.g., Blender must be running). With no output schema, the agent might need to infer what happens after execution. It is adequate for a basic tool but could be more complete.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining that location and rotation are comma-separated x,y,z values and lists the primitive types. However, it does not specify units (e.g., degrees for rotation) or constraints (e.g., size must be positive). Overall, it provides useful format guidance 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 clearly states that the tool adds a standard mesh primitive to the Blender scene and lists the specific types available (cube, plane, circle, etc.). This distinguishes it from sibling tools that add lights, modifiers, or perform other 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?

The description provides no guidance on when to use this tool versus alternatives. For example, it does not mention prerequisites (e.g., Blender must be open) or scenarios where importing a model might be preferred. There is no explicit when-to-use or when-not-to-use information.

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

align_objectsA

Align multiple objects' origins along one axis.

Parameters:

  • names: Comma-separated object names

  • axis: X, Y, or Z

  • align_to: FIRST, LAST, MIN, MAX, AVERAGE

ParametersJSON Schema
NameRequiredDescriptionDefault
axisNoX
namesYes
align_toNoFIRST

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided. Description does not reveal behavioral details such as whether objects are modified permanently, if selection is required, or what happens after alignment. Carries full burden but only repeats parameter info.

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?

Extremely concise and efficient. Three lines for parameters with clear formatting. No wasted words.

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

Completeness3/5

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

For a simple tool with 3 parameters and no output schema, description covers all parameters with enum values. Missing behavioral context (e.g., prerequisites, side effects). Moderate completeness.

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

Parameters4/5

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

Schema coverage is 0% (no descriptions in schema). Description adds meaningful information: comma-separated names, axis values (X, Y, Z), and alignment options (FIRST, LAST, MIN, MAX, AVERAGE). This compensates for missing schema descriptions.

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 'align' and resource 'multiple objects' origins' clearly. It distinguishes from sibling tools like 'set_origin' (single object) and 'move_object' (move position).

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 alternatives like 'set_origin' or 'move_object'. No when-not or context provided.

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

apply_modifierA

Apply a named modifier on a mesh object, collapsing it into the mesh data.

Parameters:

  • name: Object name

  • modifier_name: Exact modifier name as shown in Blender's Properties panel

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
modifier_nameYes

TDQS

A4.1/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 mentions 'collapsing it into the mesh data,' implying a destructive operation, but does not explicitly warn about irreversibility or side effects on the modifier stack.

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 with two sentences and a bullet list, front-loading the main action. No unnecessary information is present.

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 adequately explains the action and parameters. It mentions the outcome ('collapsing it into the mesh data') but does not specify what happens after application (e.g., feedback, modifier removal from stack). For a simple mutation, this is mostly complete.

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

Parameters5/5

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

Schema description coverage is 0%, but the description adds full context: 'name: Object name' and 'modifier_name: Exact modifier name as shown in Blender's Properties panel.' This provides necessary guidance 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 clearly states that the tool applies a named modifier on a mesh object and collapses it into the mesh data. The verb 'Apply' and resource 'modifier on mesh object' are specific, and it distinguishes from sibling tools like '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 description implies when to use (to apply a modifier) but does not explicitly state when not to use or mention alternatives like 'add_modifier'. No guidance on prerequisites or exclusions is provided.

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

assign_materialC

Assign an existing material to an object's material slot.

Parameters:

  • object_name: Target object

  • material_name: Material to assign (must already exist)

  • slot: Material slot index (default 0)

ParametersJSON Schema
NameRequiredDescriptionDefault
slotNo
object_nameYes
material_nameYes

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 must carry the burden. It does not disclose important behavioral traits such as what happens if the material doesn't exist, if the slot index is out of range, if the operation is destructive (overwrites existing material), or any error conditions. The description only mentions the prerequisite that material must already exist.

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

Conciseness4/5

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

The description is concise with one clear purpose sentence followed by a brief parameter list. It is front-loaded and contains no unnecessary information. Could be slightly more structured, but overall 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?

For a simple assignment tool, the description lacks completeness. It does not mention return values, side effects, or prerequisites such as the object needing material slots. Given many sibling tools and no output schema, more context is needed to ensure correct usage, especially regarding when to use this versus other material-related 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?

The description adds value beyond the schema titles by providing brief explanations: 'Target object', 'Material to assign (must already exist)', and 'Material slot index (default 0)'. However, it does not specify constraints like slot must be non-negative or that material_name must match an existing material exactly. Given 0% schema description coverage, the description partially compensates but is not detailed enough for 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 action: assign an existing material to an object's material slot. It uses a specific verb and resource, and the purpose is distinguishable from siblings like create_material or set_object_material_color, though it does not explicitly name alternatives.

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

Usage 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. It mentions the material must already exist, but does not provide context such as 'Use after create_material' or 'For changing color, use set_object_material_color instead.' Lacks when-not-to-use or exclusions.

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

boolean_operationA

Perform a boolean operation between two mesh objects.

Parameters:

  • target_name: Object to modify (the base mesh)

  • cutter_name: Object used as the cutting/joining tool

  • operation: DIFFERENCE (subtract), UNION (merge), INTERSECT (keep overlap)

  • solver: EXACT (better quality) or FAST (faster but less reliable)

  • apply: If True (default), applies the modifier and deletes the cutter object

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
solverNoEXACT
operationNoDIFFERENCE
cutter_nameYes
target_nameYes

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description bears full burden. It discloses that applying deletes the cutter, and distinguishes solver quality/speed. However, it omits that the operation creates a modifier (unless applied) and potential error cases.

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 concise summary followed by a bullet-point parameter list. It is front-loaded with the action and wastes no words.

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

Completeness3/5

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

No output schema or annotations exist, so description must cover behavior. It partially explains effects and types but misses key practical details like the modifier nature, required object types, and return value.

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

Parameters5/5

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

Schema description coverage is 0%, but the description explicitly explains all 5 parameters with their roles, defaults, and semantics (e.g., solver quality vs speed). This adds significant 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 clearly states it performs a boolean operation between two mesh objects, listing operation types (DIFFERENCE, UNION, INTERSECT) and distinguishing roles of target and cutter. This distinguishes it from sibling tools like join_objects or separate_mesh.

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 explains the parameters and their effects but does not explicitly state when to use this tool over alternatives, nor does it mention prerequisites like mesh type or non-manifold issues.

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

capture_contact_sheetA

Capture multiple viewport angles and stitch them into a single contact sheet image.

Parameters:

  • angles: Comma-separated list of angle names (default: front,right,top,iso_front_right)

  • max_size: Pixel size for each individual tile (default 512)

Returns a single composited image with all requested angles labelled.

ParametersJSON Schema
NameRequiredDescriptionDefault
anglesNofront,right,top,iso_front_right
max_sizeNo

TDQS

A4.3/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 full burden. It explains the process (capture and stitch) and return value, but doesn't clarify if the tool is read-only or modifies the scene. Given it's a capture tool, the omission is minor but keeps the score at 3.

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 short, front-loading the main purpose in the first line. Every sentence is informative and free of 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 there is no output schema, the description appropriately states the return is a single composited image. It covers the key aspects for a capture tool, but could optionally mention image format or resolution.

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

Parameters5/5

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

The description explains both parameters in meaningful terms: 'angles' as a comma-separated list of angle names with a default, and 'max_size' as pixel size per tile. This adds essential context beyond the schema, which only provides types and defaults.

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 captures multiple viewport angles and stitches them into a contact sheet. This distinguishes it from sibling tools like capture_viewport_angle (single angle) and get_viewport_screenshot (single image).

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 usage is implied: use when you need a composite of multiple angles in one image. It doesn't explicitly state when not to use it or mention alternatives, but the context from sibling tools helps.

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

capture_viewport_angleA

Capture the Blender 3D viewport from a named angle and return it as an image.

Parameters:

  • angle: View direction. One of: front, back, left, right, top, bottom, iso_front_right, iso_front_left

  • max_size: Maximum pixel dimension (default 800)

ParametersJSON Schema
NameRequiredDescriptionDefault
angleNofront
max_sizeNo

TDQS

A4/5.0
Behavior3/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. It mentions returning an image but does not disclose whether the tool is read-only, affects the scene, or any prerequisites. Basic transparency but lacking 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 concise with two sentences and a parameter list. No unnecessary information, well-structured, and 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 tool is simple and the description covers the core purpose and parameters. Lacks details about image format, error handling, or behavior for invalid angles, but overall sufficient given the tool's simplicity.

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 meaning beyond the schema: it provides an explicit list of valid angles (front, back, left, etc.) that the schema does not specify, and clarifies max_size as 'Maximum pixel dimension'. With 0% schema coverage, this compensation is effective.

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 verb (capture), resource (viewport from a named angle), and output (image). It distinguishes from siblings like get_viewport_screenshot and render_from_camera by specifying the named angle parameter.

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 capturing a specific angle but does not explicitly state when to use this tool versus alternatives like get_viewport_screenshot or render_from_camera. No when-not or alternative guidance is provided.

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

close_blenderA

Close Blender. Works for an instance started with start_blender() and, via the addon socket, for one the user launched by hand.

Parameters:

  • force: If True, kills the managed process immediately instead of asking Blender to quit gracefully via its Python API (default False).

  • save: If True, save the current .blend (if it has a path) before quitting. Unsaved changes are otherwise discarded without a prompt.

ParametersJSON Schema
NameRequiredDescriptionDefault
saveNo
forceNo

TDQS

A4.8/5.0
Behavior5/5

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

The description explains the behavior of both parameters: force (kill vs graceful quit) and save (save changes vs discard without prompt). This gives clear expectations of side effects, especially regarding unsaved changes.

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, using only a few sentences to convey purpose, scope, and parameter behavior. No redundant or extraneous information is present.

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 no output schema, the description provides sufficient context: it explains what it does, when it works, and the effects of each parameter. No additional information is needed for correct usage.

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

Parameters5/5

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

Both parameters (force and save) are fully described in the description, matching the schema. The explanations clarify their boolean meanings and consequences, covering all 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's function: closing Blender. It also specifies the types of instances it operates on (those started with start_blender() and user-launched via the addon socket), leaving no ambiguity about 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 Guidelines4/5

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

The description provides context on when the tool is applicable by distinguishing between managed and user-launched instances. It does not explicitly compare to alternatives, but the scope clarification effectively guides usage.

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

compare_reference_imageA

Capture the current viewport from a named angle and composite it side-by-side with a previously stored reference image. Both tiles keep their aspect ratio.

Parameters:

  • reference_name: Name given to store_reference_image earlier

  • angle: Viewport angle to capture for comparison

  • max_size: Tile size for each image in the composite

ParametersJSON Schema
NameRequiredDescriptionDefault
angleNofront
max_sizeNo
reference_nameYes

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 burden of behavioral disclosure. It explains the capture-and-composite behavior and the aspect-ratio constraint, which adds useful context. But it does not disclose the output format, whether the operation mutates scene state, or what happens when the reference_name 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 compact and front-loaded with the core behavior, followed by a tight parameter list. Every sentence and bullet earns its place with no redundant 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 covers the core invocation and the relationship to a stored reference, which is helpful. However, there is no output schema and the description does not state what the tool returns, what valid angle values are, or how failures are reported, leaving notable gaps for an agent relying solely on this description.

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

Parameters5/5

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

The schema has 0% descriptive coverage, but the description explains all three parameters meaningfully: reference_name ties to store_reference_image, angle specifies the capture viewpoint, and max_size controls tile size. This fully compensates for the empty schema and gives an agent everything needed to fill the arguments 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 verb and resource: it captures the current viewport from a named angle and composites it with a previously stored reference image. This clearly differentiates it from generic capture tools and diff tools by describing the side-by-side composite output.

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

Usage Guidelines3/5

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

The description implies usage by referencing a name from store_reference_image and mentioning a previously stored reference, so an agent can infer the prerequisite. However, it does not explicitly state when to prefer this over sibling tools like diff_images or capture_viewport_angle, nor does it give exclusions.

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

create_cameraB

Add a new camera to the Blender scene.

Parameters:

  • name: Name for the camera object

  • location: Comma-separated x,y,z position (default "0,-5,3")

  • look_at: Comma-separated x,y,z target point (default "0,0,0")

  • lens: Focal length in mm (default 50.0)

  • cam_type: PERSP or ORTHO (default PERSP)

ParametersJSON Schema
NameRequiredDescriptionDefault
lensNo
nameNoCamera
look_atNo0,0,0
cam_typeNoPERSP
locationNo0,-5,3

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavioral traits. It fails to mention side effects (e.g., whether the camera is automatically set as active), prerequisites, or constraints.

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?

Description is concise with the main action first, followed by a parameter list. No wasted words, though the parameter list could be integrated more smoothly.

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 no output schema and no annotations, the description is incomplete. It does not explain return value, scene requirements, or post-creation behavior.

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

Parameters4/5

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

Schema coverage is 0%, so description compensates by explaining all 5 parameters with defaults and types (e.g., 'Comma-separated x,y,z position' for location). However, format details could be clearer (e.g., string vs number).

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 adds a new camera to the Blender scene with a specific verb ('Add') and resource ('camera'). It distinguishes from siblings like add_light or set_active_camera.

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 alternatives like set_active_camera or render_from_camera. The description only lists parameters without context.

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

create_collectionA

Create a new collection for scene organisation.

Parameters:

  • name: Collection name

  • parent_collection: Optional parent collection name (nests inside it)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
parent_collectionNo

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 carries full burden but only states the basic action. It fails to disclose what happens if the collection already exists, whether it's idempotent, or any side effects on the scene.

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 with a single purpose sentence followed by a clear parameter list, containing no unnecessary 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 simple tool with two parameters and no output schema, the description covers the basic action and parameter meanings, but lacks information about return values, error handling, or what happens upon duplicate 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?

Despite 0% schema coverage, the description adds value by explaining the name parameter as 'collection name' and the parent_collection as optional with 'nests inside it' behavior, which the schema alone does not convey.

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 verb 'create' and the resource 'collection for scene organisation', which is specific and distinguishes it from sibling tools like move_to_collection.

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 (e.g., when to create a new collection vs. move objects to existing ones), nor any prerequisites or exclusions.

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

create_materialA

Create (or replace) a PBR material using Principled BSDF.

Parameters:

  • name: Material name

  • base_color: Comma-separated r,g,b in 0..1 (default "0.8,0.8,0.8")

  • metallic: 0.0 (dielectric) to 1.0 (fully metallic)

  • roughness: 0.0 (mirror) to 1.0 (fully rough)

  • emission_color: Comma-separated r,g,b to enable glow (e.g. "1,0.5,0")

  • emission_strength: Emission multiplier (default 1.0)

  • alpha: Opacity 0..1 (values < 1 enable alpha blending)

  • assign_to: Object name to auto-assign this material to (slot 0)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
alphaNo
metallicNo
assign_toNo
roughnessNo
base_colorNo0.8,0.8,0.8
emission_colorNo
emission_strengthNo

TDQS

A3.7/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 mentions 'or replace' hinting at upsert behavior, and 'auto-assign this material to (slot 0)' giving some context, but it does not explain side effects of replacing existing materials, error conditions, or permissions needed. The behavioral 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.

Conciseness4/5

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

The description is one clear sentence followed by a well-structured list of parameters. It is front-loaded with the purpose. Slightly verbose but efficient overall.

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 8 parameters and no output schema, the description covers parameters well but lacks information about return values, error handling, or what happens on replacement. It does not explain the 'assign_to' behavior in depth. Adequate but not complete.

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

Parameters5/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 is the sole source of parameter semantics. It provides detailed information for all 8 parameters, including ranges, defaults, and format (e.g., 'Comma-separated r,g,b in 0..1'). This adds significant value beyond the input schema's titles and defaults.

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 starts with 'Create (or replace) a PBR material using Principled BSDF', clearly stating the verb (create/replace) and resource (PBR material). This distinguishes it from sibling tools like 'assign_material' (which applies existing materials) and 'set_object_material_color' (which only changes color).

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 creating or replacing materials, but it does not explicitly state when to use it vs alternatives like 'assign_material' or when to set material properties directly. No when-not-to-use guidance is provided.

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

delete_objectA

Delete an object from the scene and purge orphaned mesh/material data.

Parameters:

  • name: Object name to delete

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 full burden. It discloses the non-obvious side effect of purging orphaned mesh/material data, which is good transparency. However, it does not mention other traits like undoability or permissions.

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: one sentence for the purpose and one line for the parameter. Every word is necessary, and there is no 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 simple tool with one parameter and no output schema, the description covers the main action and parameter. However, it does not indicate what the tool returns on success or failure, which is a minor 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?

Schema description coverage is 0%, so the description must compensate. It adds the parameter 'name: Object name to delete', which clarifies the parameter's purpose beyond the schema. This is sufficient for a simple tool, though additional format details could be helpful.

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 verb 'delete' and the resource 'object from the scene', and adds the specific detail of purging orphaned mesh/material data. This distinguishes it from other object manipulation tools like rename or duplicate.

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 (to delete objects) but provides no explicit guidance on when not to use it or alternatives. Among siblings, there are many object operations, but no direct comparison or exclusion criteria.

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

diff_imagesA

Compare two images and produce a 3-panel composite: [Image A] | [Image B] | [Diff]. The diff panel desaturates the base image and paints changed regions in bright red, making differences immediately obvious. Image B is scaled to A's size for the pixel diff; panels keep A's aspect ratio.

Parameters:

  • image_path_a: Path to the first image (treated as the reference/baseline)

  • image_path_b: Path to the second image (treated as the new/changed version)

  • threshold: Pixel difference (0-255) below which changes are ignored (default 15, filters noise)

  • tile_size: Longest side of each panel in the composite (default 512)

ParametersJSON Schema
NameRequiredDescriptionDefault
thresholdNo
tile_sizeNo
image_path_aYes
image_path_bYes

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 of behavioral disclosure. It does explain the diff visualization (desaturation, red highlights) and scaling behavior, but it omits what happens to the composite output—where it is saved, whether it is returned, or any side effects. 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 compact and well-structured, with two clear sentences explaining the behavior followed by a concise parameter list. Every sentence adds meaningful information, and there is no redundancy or extraneous detail.

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 input handling and processing behavior, but it lacks information about the output format, destination, or return value. Since there is no output schema and no annotations, this missing context leaves an agent uncertain about what to do with the result.

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

Parameters5/5

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

Although the JSON schema provides no parameter descriptions, the tool description explicitly defines each parameter: image_path_a and image_path_b as input paths, threshold as the pixel-difference cutoff (0-255), and tile_size as the longest panel side. This fully compensates for the schema's lack of descriptions.

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

Purpose5/5

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

The description states a specific verb ('Compare') and resource ('two images') and clearly distinguishes the tool by detailing the 3-panel composite output with A, B, and Diff panels. This makes the tool's purpose unambiguous and differentiates it from siblings like compare_reference_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 explains how the diff is computed and how images are scaled, but it does not state when to use this tool versus alternatives such as compare_reference_image or get_viewport_screenshot. There is no explicit guidance on appropriate use cases or prerequisites.

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

download_polyhaven_assetA

Download and import a Polyhaven asset into Blender.

Parameters:

  • asset_id: The ID of the asset to download

  • asset_type: The type of asset (hdris, textures, models)

  • resolution: The resolution to download (e.g., 1k, 2k, 4k)

  • file_format: Optional file format (e.g., hdr, exr for HDRIs; jpg, png for textures; gltf, fbx for models)

Returns a message indicating success or failure.

ParametersJSON Schema
NameRequiredDescriptionDefault
asset_idYes
asset_typeYes
resolutionNo1k
file_formatNo

TDQS

A3.8/5.0
Behavior3/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 does state that the tool downloads and imports into Blender and returns a success/failure message. However, it does not disclose side effects like modifying the current Blender scene, network requirements, or whether the operation could overwrite existing objects. This is adequate but leaves gaps.

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 well-structured: a one-sentence purpose, a concise parameter block with examples, and a return-value note. It is front-loaded and every line adds value given the schema has no descriptions. The parameter list is slightly long but justified by the lack of schema documentation.

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?

All parameters are covered and the return behavior is stated, which is good for a tool with no output schema. However, the description omits useful context such as where asset_id comes from, whether the import modifies the existing scene, and any dependency on Blender being open. Given no annotations and no output schema, this is a clear 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 input schema has 0% description coverage, so the parameter list in the description is the primary source of semantic information. It provides meaningful examples and allowed values for asset_type, resolution, and file_format, including asset-type-specific formats. Asset_id is under-specified (only 'The ID of the asset to download'), but the overall parameter documentation compensates well for the bare 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: 'Download and import a Polyhaven asset into Blender.' This clearly distinguishes the tool from siblings like search_polyhaven_assets (searching) and download_sketchfab_model (different source platform). No ambiguity about 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 makes it clear this is for Polyhaven assets, which implies when to use it versus Sketchfab or Hunyuan tools. However, it does not explicitly state when to prefer this over search_polyhaven_assets or set_texture, nor does it mention preconditions such as needing an asset_id from a prior search. Usage context is present but only implied.

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

download_sketchfab_modelA

Download and import a Sketchfab model by its UID. The model will be scaled so its largest dimension equals target_size.

Parameters:

  • uid: The unique identifier of the Sketchfab model

  • target_size: REQUIRED. The target size in Blender units/meters for the largest dimension. You must specify the desired size for the model. Examples: - Chair: target_size=1.0 (1 meter tall) - Table: target_size=0.75 (75cm tall) - Car: target_size=4.5 (4.5 meters long) - Person: target_size=1.7 (1.7 meters tall) - Small object (cup, phone): target_size=0.1 to 0.3

Returns a message with import details including object names, dimensions, and bounding box. The model must be downloadable and you must have proper access rights.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes
target_sizeYes

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 carries the full behavioral burden and it does a good job: it discloses the scaling behavior, the requirement to provide a target size, the return message with import details, and access prerequisites. It does not mention edge cases or failure behavior, but the core side effects are transparent.

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 front-loaded with purpose and scaling behavior, then provides a focused parameter list with useful examples. It is slightly repetitive about target_size being required, but no sentence feels unnecessary.

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 tool is simple (two parameters, no output schema), and the description covers the input semantics, the scaling behavior, prerequisites, and what the return message contains. It could add failure/edge-case behavior, but for its complexity it is reasonably complete.

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

Parameters4/5

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

Schema description coverage is 0%, but the description compensates well for target_size with units, requirement status, and concrete examples. The uid parameter is only described as 'the unique identifier,' which is thin but sufficient given the tool name and context. This is strong compensation for an otherwise bare 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 starts with a specific action ('Download and import a Sketchfab model by its UID') and clearly identifies the resource and key behavior. This distinguishes it from sibling Sketchfab tools like search_sketchfab_models and get_sketchfab_model_preview, which do not import.

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 explains that the tool requires a UID and target_size and that the model must be downloadable with proper access rights, which gives some context. However, it never explicitly says when to prefer this tool over alternatives such as search_sketchfab_models or import_generated_asset, so usage guidance is only implied.

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.

Parameters:

  • name: Source object name

  • new_name: Name for the duplicate (auto-assigned if omitted)

  • offset: Comma-separated x,y,z displacement from original (default "0.5,0.5,0")

  • linked: If True, shares mesh data with original (instance); False = full copy

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
linkedNo
offsetNo0.5,0.5,0
new_nameNo

TDQS

A4.2/5.0
Behavior4/5

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

Without annotations, the description takes full responsibility. It explains that the linked parameter controls whether the duplicate shares mesh data (instance) or is a full copy, and it specifies the default offset. However, it does not mention what happens when new_name is omitted (auto-assigned) or the return value.

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 with a clear structure: a short introductory sentence followed by a bullet list of parameters. It is front-loaded with the core purpose but could be slightly more compact.

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 4 parameters and no output schema, the description covers parameter behavior well, but it omits any mention of return values or side effects, which would be useful for completeness.

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

Parameters5/5

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

The input schema provides only titles and types (0% coverage), but the description adds critical meaning: explains each parameter's role, default values, and the effect of 'linked' (instance vs copy), which significantly aids correct usage.

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 'Duplicate an object.' with a specific verb and resource, and it distinguishes itself from sibling tools like delete_object, rename_object, etc., which have different purposes.

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 guidance on when to use this tool versus alternatives. The parameter descriptions hint at different use cases (e.g., linked=True for instances), but there is no direct comparison or exclusion criteria.

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

execute_blender_codeB

Execute arbitrary Python code in Blender. Make sure to do it step-by-step by breaking it into smaller chunks.

Parameters:

  • code: The Python code to execute

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the burden falls on the description. It does disclose that the tool can run arbitrary Python code, which implies broad power and risk, and the 'step-by-step' warning hints that long or complex executions need caution. However, it does not mention possible destructive scene mutations, absence of undo, execution limits, or error behavior, so the disclosure is only partially complete.

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 short and front-loaded with the core purpose. The step-by-step instruction is useful, and the parameter note is simple. The phrase 'step-by-step by breaking it into smaller chunks' is slightly redundant, but overall the text is 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?

For an arbitrary code execution tool with no annotations and no output schema, the description leaves important gaps: there is no indication of what the tool returns, how failures surface, what Python objects are available in scope, or whether the execution mutates the Blender scene permanently. The minimal description does not give an agent enough context to safely and correctly invoke this powerful tool in varied situations.

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. The line 'code: The Python code to execute' adds only marginally more than the schema property title 'Code' and the tool name itself. It does not explain expected code environment details such as whether Blender's bpy module is pre-imported, how results or errors are returned, or whether there are execution limits.

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 and resource: 'Execute arbitrary Python code in Blender.' The word 'arbitrary' signals this is a general-purpose escape hatch, and no sibling tool has the same role, so an agent can immediately distinguish it from the other scene, asset, and model-generation tools.

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

Usage Guidelines2/5

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

There is no guidance on when to prefer this tool over the many specialized sibling tools. The instruction to break work into smaller chunks is about how to structure execution, not about choosing this tool over alternatives. The only implied guidance is that 'arbitrary' means it can be used for tasks the other tools don't cover, but that is not made explicit.

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

export_objectA

Export an object (or the full scene) to a 3D file.

Parameters:

  • name: Object to export; exports entire scene if omitted

  • filepath: Output file path (auto-generated in temp dir if omitted)

  • file_format: glb, gltf, fbx, obj, stl, ply (default glb)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
filepathNo
file_formatNoglb

TDQS

A3.7/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavior. It states the action but does not mention side effects (e.g., file overwrite, performance, or permissions). The auto-generation of filepath is noted, but overall transparency 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 concise: a one-line summary followed by a clear parameter list. Every sentence is useful, no redundant info, and it is well-structured for quick parsing.

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 action and parameters adequately for a simple tool, but lacks information on return values or error states. Given no output schema, mentioning the output file path would improve completeness.

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 explaining each parameter's effect (e.g., name omission exports entire scene, filepath defaults to temp, file_format lists options). This adds significant value beyond the bare 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 clearly states the tool exports an object or full scene to a 3D file, with specific formats. It uniquely serves this purpose among siblings, differentiating from save, render, or import 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 lists parameter options but provides no guidance on when to use this tool versus alternatives, nor any prerequisites or conditions (e.g., scene must be loaded). It implies usage for 3D file output but lacks explicit direction.

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

extrude_facesA

Extrude faces outward along their individual normals.

Parameters:

  • name: Mesh object name

  • face_indices: Comma-separated face indices to extrude

  • amount: Extrusion distance in Blender units (negative = inward, default 0.2)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
amountNo
face_indicesYes

TDQS

A3.6/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 explains the extrusion direction and that negative amount indents, but does not disclose side effects like whether the modification is permanent or if selections are changed.

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 brief and to the point, with a clear purpose statement followed by parameter details. It is front-loaded and efficient, though minor formatting (bold) is present.

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 no output schema, the description covers core functionality. However, it omits context like prerequisites (object must be a mesh) and results (e.g., memory usage, selection state). Adequate but not exhaustive.

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 adds significant value by explaining each parameter: name (mesh object), face_indices (comma-separated indices), and amount (extrusion distance, negative for inward, default 0.2). This goes beyond the schema's bare types and defaults.

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 explicitly states the action ('Extrude faces') and the method ('along their individual normals'), which clearly distinguishes it from siblings like inset_faces or flip_normals.

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 such as inset or flip normals. The description implies its purpose but does not provide criteria for selection or exclusion.

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

find_objects_by_typeB

List all objects in the scene that match the given type.

Parameters:

  • obj_type: Blender object type: MESH, CURVE, CAMERA, LIGHT, EMPTY, ARMATURE, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
obj_typeNoMESH

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so the description must disclose behavioral traits. It fails to state that this is a read-only operation, nor does it describe any side effects or requirements like permissions. 'List' implies no mutations, but this is not explicitly 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?

The description is extremely concise with no fluff. It front-loads the purpose in the first sentence and then explains the parameter. Every word adds value for a single-parameter tool.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema/annotations, the description covers the basic action and parameter. However, it lacks explanation of the output format (what does 'list' return?), leaving some uncertainty for an AI agent.

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

Parameters4/5

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

Schema description coverage is 0%, but the description adds meaningful parameter semantics by listing example Blender object types (MESH, CURVE, etc.) and indicating the expected values. This helps the agent understand valid inputs, though the list could be more exhaustive.

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

Purpose4/5

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

The description clearly states the tool lists objects by type, using specific verb 'List' and resource 'objects in the scene'. It is distinguishable from siblings like 'select_objects' or 'get_object_info', but could be more explicit about the output format.

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. The description implies usage for filtering objects by type, but does not mention when not to use or provide comparisons to sibling tools.

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

flip_normalsA

Flip face normals on a mesh (reverses which side is the outside).

Parameters:

  • name: Mesh object name

  • face_indices: Comma-separated face indices (flips ALL faces if omitted)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
face_indicesNo

TDQS

A4/5.0
Behavior4/5

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

The description explains the core behavior: it flips normals and the optional parameter defaults to flipping all faces. However, it does not state that the mesh is modified in-place, whether the operation is undoable, or any potential side effects. With no annotations, the description carries full burden and partially meets 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?

The description is extremely concise with two sentences plus a parameter list. Every sentence adds value, and there is no redundant information. It is well-structured and easy to parse.

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

Completeness3/5

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

The description is adequate for a simple operation but lacks important details: no mention of return values (success/failure), error conditions (invalid name, indices out of range), or feedback. In the context of a 2-parameter tool with no output schema, more completeness would be helpful.

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

Parameters5/5

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

The description adds significant meaning beyond the schema: 'name' is clarified as 'Mesh object name', and 'face_indices' is explained as 'Comma-separated face indices (flips ALL faces if omitted)'. Given 0% schema coverage, the description fully compensates.

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 it flips face normals on a mesh and explains the effect: 'reverses which side is the outside'. This is a specific verb+resource, and it distinguishes this tool from sibling mesh operations like extrude, inset, or triangulate.

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, such as recomputing normals or using other mesh editing tools. It does not mention prerequisites (e.g., the mesh must have faces), nor does it provide examples of typical use cases.

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

generate_3d_from_imageA

Generate a 3D mesh (.glb) from a single image using the local TripoSR model. You must call load_img_to_3d_model() first.

Parameters:

  • image_path: Absolute path to the input image

  • output_path: Where to save the .glb file (auto-generated if omitted)

  • foreground_ratio: Foreground crop ratio for background removal (default 0.85)

  • mc_resolution: Marching-cubes resolution; higher = more detail but slower (default 256)

  • no_remove_bg: Skip background removal if the image already has a clean background

ParametersJSON Schema
NameRequiredDescriptionDefault
image_pathYes
output_pathNo
no_remove_bgNo
mc_resolutionNo
foreground_ratioNo

TDQS

A4.3/5.0
Behavior3/5

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

No annotations provided. The description details parameters and their effects (e.g., background removal, resolution trade-off) but does not disclose potential side effects (e.g., file overwriting), permissions, or error conditions. It adds value beyond the schema but lacks full behavioral 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?

Description is efficient: a short purpose statement, a prerequisite sentence, and a bulleted parameter list. No redundant information; all sentences add value. Well-structured for quick parsing.

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 absence of an output schema and moderate complexity (5 params, 1 required), the description covers purpose, prerequisites, and all parameters. It does not explicitly describe the return behavior (e.g., path to generated file), but generating a .glb file is implied. Slightly more detail on output would improve completeness.

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

Parameters5/5

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

Schema description coverage is 0%, so the description fully compensates by explaining each parameter (image_path, output_path, foreground_ratio, mc_resolution, no_remove_bg) with meanings, defaults, and optionality. This is highly informative for an agent.

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 tool generates a 3D mesh (.glb) from a single image using the local TripoSR model. This specific verb+resource combination distinguishes it from sibling tools for other 3D generation methods (e.g., generate_hunyuan3d_model, generate_hyper3d_model_via_images).

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 states a prerequisite: 'You must call load_img_to_3d_model() first.' This provides clear when-to-use guidance. However, it does not mention alternatives or when not to use this tool, though the prerequisite effectively implies the required context.

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

generate_hunyuan3d_modelA

Generate 3D asset using Hunyuan3D by providing either text description, image reference, or both for the desired asset, and import the asset into Blender. The 3D asset has built-in materials.

Parameters:

  • text_prompt: (Optional) A short description of the desired model in English/Chinese.

  • input_image_url: (Optional) The local or remote url of the input image. Accepts None if only using text prompt.

Returns:

  • When successful, returns a JSON with job_id (format: "job_xxx") indicating the task is in progress

  • When the job completes, the status will change to "DONE" indicating the model has been imported

  • Returns error message if the operation fails

ParametersJSON Schema
NameRequiredDescriptionDefault
text_promptNo
input_image_urlNo

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 full behavioral burden and does well: it discloses asynchronous job submission via job_id, eventual DONE status meaning the model has been imported, error returns, and built-in materials. Could mention scene impact, but key behavior 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?

Well-structured with front-loaded purpose, a compact Parameters section, and a Returns section. Every sentence adds value with 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?

Provides enough context for a generation-and-import workflow: inputs, async behavior, success condition, and error handling. It does not explicitly point to poll_hunyuan_job_status for status checking, but the job_id and DONE status make the flow inferable.

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

Parameters5/5

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

Schema coverage is 0%, but the description fully compensates by defining text_prompt as an optional short English/Chinese description and input_image_url as an optional local/remote URL that accepts None. It also clarifies the relationship between the two: either text, image, or both.

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, resource, and method: generate a 3D asset using Hunyuan3D from text, image, or both, and import it into Blender. This distinguishes it from sibling generation tools like generate_hyper3d_model_via_text/images and from standalone import 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?

Clearly indicates when to use the tool (Hunyuan3D generation with auto-import) and how to choose inputs (text, image, or both). It does not explicitly name sibling alternatives or state when-not-to-use, but the context is clear enough for selection.

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

generate_hyper3d_model_via_imagesA

Generate 3D asset using Hyper3D by giving images of the wanted asset, and import the generated asset into Blender. The 3D asset has built-in materials. The generated model has a normalized size, so re-scaling after generation can be useful.

Parameters:

  • input_image_paths: The absolute paths of input images. Even if only one image is provided, wrap it into a list. Required if Hyper3D Rodin in MAIN_SITE mode.

  • input_image_urls: The URLs of input images. Even if only one image is provided, wrap it into a list. Required if Hyper3D Rodin in FAL_AI mode.

  • bbox_condition: Optional. If given, it has to be a list of ints of length 3. Controls the ratio between [Length, Width, Height] of the model.

Only one of {input_image_paths, input_image_urls} should be given at a time, depending on the Hyper3D Rodin's current mode. Returns a message indicating success or failure.

ParametersJSON Schema
NameRequiredDescriptionDefault
bbox_conditionNo
input_image_urlsNo
input_image_pathsNo

TDQS

A4.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 disclosure burden. It usefully mentions built-in materials, normalized sizing that may require re-scaling, that the asset is imported into Blender, and that a success/failure message is returned. However, it does not disclose whether generation is asynchronous, whether a job ID is produced, or what side effects occur beyond the import, which could be significant for an agent deciding how to proceed.

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: a clear one-line purpose, a few meaningful behavioral notes, and a bullet-like parameter section. Every sentence adds value without redundancy, and the most important invocation constraints are placed prominently.

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 key parameters and gives relevant behavioral context, but it does not explain how an agent can determine the current Hyper3D Rodin mode, what image requirements exist, or what the success/failure message contains. Since there is no output schema and sibling polling tools exist, the lack of async/job details leaves some ambiguity for correct invocation.

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

Parameters5/5

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

The input schema has 0% description coverage, so the description fully compensates. It explains that input_image_paths must be absolute paths, that single values must still be wrapped in a list, that the three-element bbox_condition controls Length/Width/Height ratio, and that the two input parameters are mutually exclusive based on the current mode. This is strong parameter-level 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 states a specific verb and resource: 'Generate 3D asset using Hyper3D by giving images' and 'import the generated asset into Blender.' It clearly distinguishes itself from the sibling text-based generation tool by emphasizing image input, so an agent can identify when this tool is relevant.

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 concrete guidance on parameter selection: input_image_paths is for MAIN_SITE mode, input_image_urls is for FAL_AI mode, and exactly one must be provided. It does not explicitly name alternative generation tools or state when not to use this tool, but the image-vs-text distinction is clear enough to infer the primary use case.

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

generate_hyper3d_model_via_textA

Generate 3D asset using Hyper3D by giving description of the desired asset, and import the asset into Blender. The 3D asset has built-in materials. The generated model has a normalized size, so re-scaling after generation can be useful.

Parameters:

  • text_prompt: A short description of the desired model in English.

  • bbox_condition: Optional. If given, it has to be a list of floats of length 3. Controls the ratio between [Length, Width, Height] of the model.

Returns a message indicating success or failure.

ParametersJSON Schema
NameRequiredDescriptionDefault
text_promptYes
bbox_conditionNo

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 full burden of behavioral disclosure. It does well by disclosing that the tool imports the asset into Blender, that materials are built-in, that the model size is normalized and may need rescaling, and that it returns a success/failure message. It does not mention whether generation is asynchronous, whether it blocks, or how the imported object can be referenced afterward, but it provides substantial useful behavior 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 compact and well-structured: purpose and side effect first, then relevant model characteristics, then parameter details, then return value. Every sentence adds information, and there is no redundant restatement of schema fields 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 two-parameter tool with no annotations and no output schema, the description is nearly complete. It covers input semantics, generated asset characteristics, the Blender import side effect, and the return message. Minor gaps are lack of clarification about asynchronous behavior and how the agent can locate or reference the imported asset after success.

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

Parameters4/5

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

Schema description coverage is 0%, so the description's parameter notes are essential. It explains that text_prompt must be a short English description, and that bbox_condition is optional, must be a list of floats of length 3, and controls the Length/Width/Height ratio. This adds meaningful semantic detail beyond the raw schema, though ranges or a more precise ratio explanation would strengthen it further.

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 ('Generate'), the specific service (Hyper3D), the input mode (description/text), and the side effect (import into Blender). It also adds useful purpose details: built-in materials and normalized size. This clearly distinguishes it from image-based generation like generate_hyper3d_model_via_images, even though that sibling is not named.

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 have a textual description of a 3D asset and want it generated and imported into Blender. However, it does not explicitly contrast with generate_hyper3d_model_via_images, import_generated_asset, or the other generation tools. No when-not-to-use guidance or alternative 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.

get_blender_statusA

Report whether Blender is running, and whether the MCP addon is reachable.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, but the description fully discloses the tool's behavior: it reports two boolean statuses. No side effects or hidden traits.

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?

Single sentence with no wasted words. Perfectly concise.

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?

Tool is simple with no parameters, no output schema. Description adequately conveys purpose and output.

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?

No parameters exist, so the description adds no parameter info, but schema coverage is 100% and baseline 4 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 clearly states the tool reports whether Blender is running and whether the MCP addon is reachable. This is specific and distinguishes it from sibling tools that perform actions or modify 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?

Usage is implied: it's a status check. No explicit when-not or alternatives, but the context is clear for a simple status tool.

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

get_control_pointsA

Read the control points of a curve (BEZIER, POLY, or NURBS) object.

For BEZIER curves returns: co, handle_left, handle_right, handle types. For POLY/NURBS curves returns: co (and weight for NURBS).

Parameters:

  • name: Curve object name

  • spline_index: Which spline within the curve (default 0)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
spline_indexNo

TDQS

A4.3/5.0
Behavior4/5

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

The description discloses that it is a read operation returning different control point data per curve type and details parameters. However, it does not mention error conditions (e.g., if the object is not a curve) or performance 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 very concise with a clear structure: main purpose in the first sentence, then return types, then parameter list. No extraneous 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?

The description covers the tool's purpose, parameters, and return types per curve type. Without an output schema, it provides valuable context. It could be more complete by mentioning that the object must exist and be a curve.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by explaining each parameter: name as 'Curve object name' and spline_index as 'Which spline within the curve (default 0)', adding 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 clearly states the tool reads control points of curve objects (BEZIER, POLY, NURBS) and specifies the returned data per type, differentiating it from sibling tools like get_vertex_positions or set_control_point.

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 provide explicit guidance on when to use this tool versus alternatives. While the purpose is clear, there is no mention of exclusions or contexts where other tools might be more appropriate.

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

get_edgesA

Read edge data from a mesh: vertex pair, sharp flag, seam flag, crease, and bevel weight.

Parameters:

  • name: Mesh object name

  • indices: Comma-separated edge indices (returns all if omitted)

  • max_edges: Safety cap when retrieving all edges (default 5000)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
indicesNo
max_edgesNo

TDQS

A4.3/5.0
Behavior4/5

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

The description identifies the tool as read-only ('Read edge data') and mentions the safety cap (max_edges) with default. Without annotations, it adequately discloses the read nature and safety limit, though no further behavioral details are given.

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: one sentence defining purpose, one listing returned data, then a clear parameter list. Every word adds value, and key info 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?

The description covers purpose, parameters, and returned data fields. Without an output schema, it could provide more detail on the structure of 'vertex pair' (e.g., indices or coordinates), but it is sufficiently complete for a read operation on edges.

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

Parameters5/5

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

The description adds extensive meaning to all parameters: name (mesh object), indices (comma-separated, returns all if omitted), max_edges (safety cap, default 5000). This fully compensates for the 0% schema description 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 tool reads edge data from a mesh and lists the specific fields (vertex pair, sharp flag, etc.), distinguishing it from sibling tools like get_faces or get_vertex_positions.

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 tool's purpose is clear, but no explicit guidance on when to use it versus alternatives (e.g., get_mesh_stats) or when not to use it. The description lacks contextual usage cues.

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

get_facesA

Read face data from a mesh object.

Parameters:

  • name: Mesh object name

  • indices: Comma-separated face indices to retrieve (returns all if omitted)

  • world_space: True = world coordinates for normals and centers (default)

  • max_faces: Safety cap when retrieving all faces (default 2000)

Returns JSON with each face's vertex_indices, normal, center, material_index, and area.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
indicesNo
max_facesNo
world_spaceNo

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must cover behavioral traits. It mentions a safety cap for max_faces and that it returns data (read-only), which is adequate but does not discuss edge cases or permissions.

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 efficient: one sentence for purpose, bullet points for parameters, and a final sentence on return value. 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?

The description explains the return JSON structure (vertex_indices, normal, etc.) despite no output schema. All parameters are covered, making it complete for a read tool. However, it could mention if the tool modifies the mesh or requires any permissions.

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

Parameters4/5

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

Schema description coverage is 0%, so the description compensates by explaining each parameter: 'name' (mesh object), 'indices' (comma-separated, returns all if omitted), 'world_space' (default True), and 'max_faces' (safety cap, default 2000). This adds significant 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 starts with a clear verb and resource: 'Read face data from a mesh object.' This distinguishes it from sibling tools like get_edges or get_vertex_positions.

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 provide guidance on when to use this tool versus alternatives such as get_edges or get_mesh_stats. It lacks explicit context for selection.

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

get_hunyuan3d_statusA

Check if Hunyuan3D integration is enabled in Blender. Returns a message indicating whether Hunyuan3D features are available.

Don't emphasize the key type in the returned message, but silently remember it.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/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 does disclose that the tool returns a message about Hunyuan3D feature availability, but it does not explain the message format, the meaning of 'key type,' or any side effects/auth requirements. The instruction to 'silently remember it' is 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 description is short and the core purpose is front-loaded. However, the first two sentences are somewhat redundant ('Check if enabled' vs 'Returns message indicating whether available'), and the final sentence about not emphasizing the key type is unclear and may confuse rather than help.

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 check with no output schema, the description gives enough to invoke the tool correctly: it checks Hunyuan3D integration and returns an availability message. The incomplete area is the vague 'key type' mention, but the low complexity keeps the gap minor.

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 empty input schema covers 100% of the parameter space. With no params, the description does not need to add param semantics beyond 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 states a specific verb and resource: 'Check if Hunyuan3D integration is enabled in Blender.' It also specifies the return value as a message about feature availability. This clearly differentiates it from sibling status tools such as get_hyper3d_status and get_sketchfab_status by naming the Hunyuan3D integration.

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

Usage Guidelines3/5

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

The use case is implied from the description: call it when you need to know whether Hunyuan3D is enabled. However, it does not explicitly mention alternatives or provide when-not-to-use guidance, relying on sibling names to distinguish which status tool to pick.

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

get_hyper3d_statusA

Check if Hyper3D Rodin integration is enabled in Blender. Returns a message indicating whether Hyper3D Rodin features are available.

Don't emphasize the key type in the returned message, but sliently remember it.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 must carry the behavioral burden. It does disclose that the tool returns a status message and includes an unusual instruction about not emphasizing the 'key type' and silently remembering it. However, 'key type' is undefined, and the description does not explicitly confirm the operation is read-only or mention any prerequisites or 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.

Conciseness3/5

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

The first two sentences are concise and front-loaded with the core purpose and return behavior. The third sentence about the 'key type' is short but confusing, contains a typo ('sliently'), and is not clearly connected to the rest of the description, preventing a higher score.

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 status tool with no output schema, the description gives the essential high-level behavior: it checks integration availability and returns a message. Still, the meaning of 'key type' is unexplained and no guidance is offered about what the agent should do with that remembered information, leaving some context incomplete.

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 already provides complete parameter information. The description adds no parameter details, but none are needed; this matches the baseline of 4 for tools with no 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 states a specific action ('Check if Hyper3D Rodin integration is enabled'), a specific resource ('in Blender'), and the expected result ('Returns a message indicating whether Hyper3D Rodin features are available'). This clearly distinguishes it from sibling tools like get_sketchfab_status and get_hunyuan3d_status.

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 reasonably clear from the tool name and the phrase 'Hyper3D Rodin integration', and sibling tools imply alternatives for other services. However, there is no explicit guidance about when to prefer this tool over siblings or exclusions, so the usage guidance remains mostly implied rather than stated.

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

get_mesh_statsB

Return detailed topology statistics for a mesh object.

Parameters:

  • name: Mesh object name

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

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 must disclose behavioral traits. It only states 'Return...' without clarifying whether the tool is read-only, has side effects, requires permissions, or any other behavioral context. For a stats-gathering tool, this is insufficient.

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

Conciseness4/5

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

The description is very brief (two sentences plus a parameter list) and front-loaded with the main purpose. Every sentence is functional, but the structure could be improved by grouping related information (e.g., a separate usage note).

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 one parameter, no output schema, and no annotations. The description leaves 'detailed topology statistics' vague; the agent cannot infer the return format (e.g., counts, dictionaries) or understand edge cases. Given the lack of output schema, 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 0%, so the description must compensate. It notes that 'name' is a 'Mesh object name,' adding a type constraint beyond the schema's 'Name' title. However, this is minimal; the description does not explain the expected format or hint at validation rules.

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 returns 'detailed topology statistics for a mesh object,' using a specific verb-resource pair. This differentiates it from sibling tools that return specific mesh components (e.g., get_vertex_positions, get_faces, get_edges).

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 alternatives. For example, it does not explain that for individual component queries one should use other sibling tools, nor does it mention prerequisites or typical use cases.

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

get_object_infoB

Get detailed information about a specific object in the Blender scene.

Parameters:

  • object_name: The name of the object to get information about

ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameYes

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 is the only source for behavior. 'Get' implies a read-only operation, which is helpful, but there is no disclosure about errors, missing objects, or what 'detailed information' includes. This is adequate but leaves room for surprise.

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 short and front-loaded with the core purpose, and the parameter note earns its place given the schema's lack of documentation. The parameter list is slightly redundant with the schema, but it does not waste words.

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

Completeness3/5

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

For a one-parameter tool, the description provides the essential calling information and a clear purpose. However, with no output schema, it does not clarify what 'detailed information' returns, leaving an agent without expectations about the response contents.

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 provides only the parameter name with no description (0% coverage), but the tool description adds a functional definition: 'object_name: The name of the object to get information about'. This meaningfully clarifies the sole parameter, though it does not address exact-name matching or behavior for nonexistent objects.

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 verb 'Get', the resource 'detailed information', and the specific scope 'specific object in the Blender scene'. It distinguishes this from scene-level tools like get_scene_info, though it does not explicitly name or contrast siblings.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives. Sibling tools like execute_blender_code or get_scene_info could overlap, but the description provides no exclusions or contextual selection criteria.

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

get_polyhaven_categoriesA

Get a list of categories for a specific asset type on Polyhaven.

Parameters:

  • asset_type: The type of asset to get categories for (hdris, textures, models, all)

ParametersJSON Schema
NameRequiredDescriptionDefault
asset_typeNohdris

TDQS

A3.8/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 accurately signals a read-only operation ('Get a list'), but it does not disclose return format, network dependency, or error behavior. For a simple list operation 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.

Conciseness4/5

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

The description is compact, with the core action front-loaded and a structured parameter list. However, the parameter list partially duplicates the schema, even though it adds the allowed values.

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

Completeness4/5

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

With one optional parameter and no output schema, the description covers the main semantic need: what categories are for and the allowed asset types. It lacks an explicit return-format note, but 'list of categories' implies an array of names. Minor gap: no statement about the default when asset_type is omitted, though the schema covers this.

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

Parameters5/5

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

The description's Parameters section provides the accepted values for asset_type (hdris, textures, models, all), which the schema omits. This adds critical meaning beyond the schema's bare string type and default.

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 'Get a list of categories for a specific asset type on Polyhaven' – a precise verb+resource. This clearly distinguishes it from siblings like search_polyhaven_assets, download_polyhaven_asset, and get_polyhaven_status, which concern asset search, download, and service status.

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 alternatives. It does not specify a workflow (e.g., fetch categories before searching assets) or any exclusions. The parameter list is not usage guidance.

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

get_polyhaven_statusA

Check if PolyHaven integration is enabled in Blender. Returns a message indicating whether PolyHaven features are available.

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 carries the full burden. It states the tool 'returns a message' about feature availability, which implies a read-only status query, but it does not disclose whether it queries Blender state or makes network calls, nor possible errors. The non-mutating nature is inferred from 'Check' rather than 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 short sentences with no filler. The primary action is front-loaded, and the return behavior is separated in the second sentence.

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 check, the description provides the essential purpose and return information. It lacks an explicit statement of the message format or error behavior, and no output schema compensates, so it is not fully specified.

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

Parameters4/5

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

The tool has zero parameters, so there is nothing to document. The baseline of 4 applies because schema coverage is complete and the description correctly says nothing about 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 uses the specific verb 'Check' with the resource 'PolyHaven integration in Blender', making the operation immediately clear. It names PolyHaven, distinguishing it from sibling status tools like get_sketchfab_status and get_hyper3d_status.

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 a capability check but gives no explicit guidance on when to invoke it or when to prefer a sibling status tool. There is no mention of using it before PolyHaven asset operations or an alternative. This is acceptable but relies on inference.

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

get_scene_infoB

Get detailed information about the current Blender scene

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?

With no annotations, the description must carry the full behavioral burden. 'Get' weakly implies a read-only operation, but it does not disclose what 'detailed information' contains, whether it errors under certain conditions, or whether it requires a valid Blender context. It provides very little beyond the tool name itself.

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 clear sentence with no filler or redundancy. The key components—verb, resource, and scope—are all present and front-loaded. Nothing extra needs to be trimmed.

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 zero-parameter tool with no annotations and no output schema, so the description is the only source of behavioral and return-value information. Saying only 'detailed information' leaves the agent uncertain about what fields or values will be returned, making the definition incomplete for a tool that provides scene info.

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, so there are no parameters to document. With a parameter count of 0, the baseline of 4 is appropriate because no parameter meaning needs to be added by 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 states a clear verb ('Get') and resource ('current Blender scene'), making the basic purpose understandable. However, 'detailed information' is vague about exactly what scene data is included, and it does not explicitly differentiate from get_object_info, though scene vs. object is an implied distinction.

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

Usage Guidelines3/5

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

The context is implied: use this when you need detailed scene-level information. But there is no guidance on when not to use it, no mention of alternatives like get_object_info, and no prerequisites such as requiring an open Blender scene or active session.

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

get_sketchfab_model_previewA

Get a preview thumbnail of a Sketchfab model by its UID. Use this to visually confirm a model before downloading.

Parameters:

  • uid: The unique identifier of the Sketchfab model (obtained from search_sketchfab_models)

Returns the model's thumbnail as an Image for visual confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It does disclose the return value ('thumbnail as an Image') and implies a non-destructive preview via 'visually confirm'. However, it does not explicitly state that this is a read-only operation, whether it makes a network request, or how failures are surfaced. For a simple preview tool this is acceptable 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 compact and well-organized: one sentence for purpose, one for usage, one clear parameter line, and one for the return value. 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?

The tool has one required parameter, no output schema, and simple semantics. The description covers the purpose, the parameter source, and the return type. Missing details like error cases, licensing implications, or the fact that no model data is fetched are minor for a preview thumbnail tool, but would make it even stronger.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It adds crucial meaning to 'uid' by defining it as the unique Sketchfab model identifier and specifying its source (search_sketchfab_models). It stops short of giving format, example, or validation constraints, but for a single self-explanatory parameter this is solid.

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 ('preview thumbnail of a Sketchfab model'), and identifies the input (UID). It clearly distinguishes its role from sibling tools like download_sketchfab_model by framing it as visual confirmation before downloading.

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 instructs when to use the tool: 'Use this to visually confirm a model before downloading.' It also tells agents where the UID comes from (search_sketchfab_models), which is contextual guidance. It does not explicitly name alternatives or when-not-to-use cases, so it misses the top of the scale.

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

get_sketchfab_statusA

Check if Sketchfab integration is enabled in Blender. Returns a message indicating whether Sketchfab features are available.

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 carries the behavioral transparency burden. It does communicate a non-mutating status check and a message return, but it does not state whether the check is local-only or queries Sketchfab, nor any side-effect or error behavior. 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 sentences, front-loaded with the purpose and followed by the return behavior. No filler or duplication beyond a mild redundancy between 'enabled' and 'available'.

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 check with no output schema, the description covers the essential aspects: what is checked and what the caller receives. It could be more specific about the exact structure/form of the returned message, but nothing critical 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?

The tool has zero parameters, so there is nothing for the description to document. The schema already covers 100% of the empty parameter surface, earning the zero-parameter baseline of 4.

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 ('Check') and resource ('Sketchfab integration in Blender'), and clarifies the outcome ('Returns a message indicating whether Sketchfab features are available'). It is unambiguous and distinguishable from sibling status tools for other integrations by naming the exact integration.

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

Usage Guidelines3/5

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

Usage context is implied: an agent would call this when it needs to know whether Sketchfab is available in Blender. However, there is no explicit guidance about when not to use it, nor any comparison with sibling status tools like get_hyper3d_status or get_polyhaven_status.

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

get_vertex_positionsA

Read vertex positions from a mesh object.

Parameters:

  • name: Mesh object name

  • indices: Comma-separated vertex indices to retrieve (returns all if omitted)

  • world_space: True = world coordinates (default), False = local/object coordinates

  • max_verts: Safety cap when retrieving all vertices (default 2000)

Returns JSON with each vertex's index and [x, y, z] position.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
indicesNo
max_vertsNo
world_spaceNo

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 mentions 'Read' implying read-only, and includes a safety cap (max_verts), but does not explicitly state that no changes are made or other behavioral traits like permissions.

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: a short sentence explaining purpose, followed by parameter explanations in a list, and a return format note. No extraneous information; front-loads the key action.

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 4 parameters, no output schema, and no annotations, the description covers all parameters and the return format. It lacks error cases or coordinate system details, but overall is quite complete for a read 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 schema description coverage is 0%, and the description adds meaningful explanations for all four parameters: name, indices (comma-separated), world_space (default true), and max_verts (safety cap). This compensates for the missing schema descriptions.

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 'Read vertex positions from a mesh object,' specifying the action (read) and resource (mesh object). It distinguishes from siblings like set_vertex_positions by indicating a read 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 implicitly indicates the tool is for reading vertex positions, but does not provide explicit guidance on when to use it vs alternatives or when not to use it. No exclusions or context are given.

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

get_viewport_screenshotA

Capture a screenshot of the current Blender 3D viewport.

Parameters:

  • max_size: Maximum size in pixels for the largest dimension (default: 800)

Returns the screenshot as an Image.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_sizeNo

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 discloses the basic behavior (captures viewport, returns an Image) but does not mention whether the scene is modified, what image format is used, or any viewport/display requirements. For a screenshot tool this is 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?

The description is short and well-structured: a one-sentence purpose, a compact parameter definition, and a return note. Every part earns its place with no redundancy 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 simple tool with one optional parameter and no output schema, the description is nearly complete: it states what it captures, how max_size behaves, and that it returns an Image. Minor missing details like image format or whether overlays are included keep it from a 5.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate for the single parameter. It does so effectively by explaining that max_size is 'Maximum size in pixels for the largest dimension' and noting the default. This adds meaning beyond the bare schema property.

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, specific verb and resource: 'Capture a screenshot of the current Blender 3D viewport.' This unambiguously identifies the tool's function and distinguishes it from the generation/status/polyhaven/sketchfab siblings.

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

Usage Guidelines3/5

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

Usage is implied by the resource: use this when an image of the current Blender viewport is needed. However, there is no explicit guidance about when not to use it or how it relates to alternatives, though no sibling tool appears to provide the same screenshot capability.

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

import_fileB

Import a 3D file into the current Blender scene. Supports: .glb, .gltf, .fbx, .obj, .stl, .ply, .blend

Parameters:

  • filepath: Absolute path to the file to import

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided. The description only states the action and supported formats, omitting behavioral details like whether the file must exist, side effects on the scene, or error handling. The description does not compensate for the lack of 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 very concise: two sentences plus a list of formats. No wasted words, 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 simple import tool with one parameter, the description covers the essential points: action, supported formats, and parameter meaning. It does not describe return values, but no output schema exists. Adequate for the complexity.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It describes the parameter 'filepath' as 'Absolute path to the file to import', adding meaning beyond the schema. However, it lacks format validation details or examples.

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 verb 'Import' and the resource '3D file into the current Blender scene', and lists supported formats. It is distinct from export but does not explicitly differentiate from other import tools like import_generated_asset, though the format list helps.

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 alternatives (e.g., import_generated_asset, load_blend). No prerequisites or when-not-to-use context provided.

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

import_generated_assetA

Import the asset generated by Hyper3D Rodin after the generation task is completed.

Parameters:

  • name: The name of the object in scene

  • task_uuid: For Hyper3D Rodin mode MAIN_SITE: The task_uuid given in the generate model step.

  • request_id: For Hyper3D Rodin mode FAL_AI: The request_id given in the generate model step.

Only give one of {task_uuid, request_id} based on the Hyper3D Rodin Mode! Return if the asset has been imported successfully.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
task_uuidNo
request_idNo

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 does the work: it states the prerequisite ('after the generation task is completed'), the mode-dependent parameter behavior, and that it returns a success/failure indicator. However, it does not disclose side effects on the scene, such as whether importing with an existing name replaces or adds an object, nor does it describe error behavior.

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

Conciseness5/5

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

The description is tightly structured: one sentence of purpose, a bullet-style parameter list, a prominent mutual-exclusivity warning, and a return statement. Every line adds needed operational information 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 simple three-parameter tool with no output schema, it covers the prerequisite, parameter meaning, mode-based selection, and return status. Minor gaps remain: the exact return type is not specified ('Return if...' could be read as 'whether' versus 'the asset'), and behavior when neither/both ID fields are supplied is only partially covered by the instruction.

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

Parameters5/5

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

The schema has 0% coverage for parameter descriptions, but the tool description fully documents all three parameters: name as the scene object name, task_uuid for MAIN_SITE mode, request_id for FAL_AI mode, plus the critical rule that exactly one of the two IDs should be provided based on mode.

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 target: 'Import the asset generated by Hyper3D Rodin after the generation task is completed.' This clearly distinguishes the tool from the sibling import_generated_asset_hunyuan and from polling/status tools, so an agent knows exactly what this tool is for.

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 a clear usage context: call after the generation task is completed, and choose task_uuid or request_id according to the Hyper3D Rodin mode (MAIN_SITE vs FAL_AI). It stops short of explicitly contrasting with alternative tools such as import_generated_asset_hunyuan, so it does not quite earn a 5.

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

import_generated_asset_hunyuanA

Import the asset generated by Hunyuan3D after the generation task is completed.

Parameters:

  • name: The name of the object in scene

  • zip_file_url: The zip_file_url given in the generate model step.

Return if the asset has been imported successfully.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
zip_file_urlYes

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 transparency burden. It discloses the timing prerequisite and the return behavior ('Return if the asset has been imported successfully'), and the mutation is implied by 'import'. However, it does not mention failure modes, whether an existing object with the same name is overwritten, or any side effects on the current scene.

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 short, front-loaded with the main action, and uses a clear parameter list and return statement. Every sentence contributes; the only minor issue is slight redundancy between 'after the generation task is completed' and the parameter note about the generate step, but overall it is 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 two-parameter tool with no output schema or annotations, the description covers the core purpose, parameters, timing, and return value. It is missing explicit edge-case behavior (e.g., invalid zip_file_url, generation not finished, duplicate names) and does not clarify the exact return format, leaving moderate gaps for an agent.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must provide meaning for both parameters, and it does: 'name' is clarified as the scene object name, and 'zip_file_url' is explicitly tied to the generate model step. This adds practical semantics beyond the bare schema titles, though the URL format could be more precise.

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

Purpose4/5

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

The description uses a specific verb ('Import') and names the exact resource ('asset generated by Hunyuan3D after the generation task is completed'), which clearly distinguishes it from other generation/import tools. However, it does not explicitly contrast itself with the sibling 'import_generated_asset', leaving some ambiguity about which import variant 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?

It states a clear precondition ('after the generation task is completed') and references the 'generate model step' for obtaining zip_file_url, which gives an agent a concrete workflow. It does not explicitly name alternatives or when not to use this tool, but for a focused import tool this is adequate context.

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

inset_facesB

Inset faces, creating a border ring of new polygons inside each face.

Parameters:

  • name: Mesh object name

  • face_indices: Comma-separated face indices to inset

  • thickness: Inset distance from face edges (default 0.1)

  • depth: Push inset faces along their normals — 0 = flat, positive = raised

  • use_individual: Inset each face independently (default True)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
depthNo
thicknessNo
face_indicesYes
use_individualNo

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 full burden. It explains the effect but omits critical behavioral details: whether the operation is destructive, if it requires edit mode, what happens to selection, and error handling for invalid indices. The 'depth' parameter explanation is helpful but incomplete.

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?

Description is a single focused sentence followed by a clean parameter list. Every sentence adds value; no redundant or vague phrasing.

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 no output schema and moderate complexity, the description lacks details on return value, side effects, and error conditions. It assumes familiarity with Blender's inset operation, leaving gaps for an AI agent.

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

Parameters4/5

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

Schema coverage is 0%, so description must compensate. It adds default values and explanations for all parameters, notably clarifying 'depth' (0=flat, positive=raised) and face_indices format. However, it does not specify the indexing scheme (0-based) or expected format beyond comma-separation.

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 clearly states the action ('Inset faces') and the outcome ('creating a border ring of new polygons inside each face'). It distinguishes itself from siblings like 'extrude_faces' and 'subdivide_mesh' by specifying a unique geometric 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?

No guidance is provided on when to use this tool versus alternatives (e.g., extrude_faces, subdivide_mesh). There is no mention of prerequisites, mesh state, or scenarios where inset is inappropriate.

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

join_objectsB

Join multiple mesh objects into one.

Parameters:

  • names: Comma-separated list of object names to join

  • result_name: Name for the joined object (defaults to the first object's name)

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYes
result_nameNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. It does not state whether original objects are removed, if the operation is destructive, or what happens to materials/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 short and includes parameter details, but it could be more concise by integrating parameter info into the main sentence. It is not overly 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?

Given no output schema and a modeling context, the description lacks details about the result (e.g., is a new object created? old ones deleted?) and does not address potential errors or naming conflicts.

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 coverage, the description adds meaning by explaining that 'names' is a comma-separated list and 'result_name' defaults to the first object's name. This compensates for the sparse 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 clearly states the verb 'Join' and the resource 'multiple mesh objects into one,' which is specific and distinguishes from siblings like 'separate_mesh' and 'merge_vertices.'

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 alternatives like 'boolean_operation' or 'parent_object.' No prerequisites or exclusions mentioned.

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

load_blendA

Open a .blend file, replacing the current Blender scene. Unsaved changes to the current file will be lost — save first if needed.

Parameters:

  • filepath: Absolute path to the .blend file to open

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes

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 the full burden. It transparently discloses the destructive action (replacing the scene) and the loss of unsaved changes. However, it does not mention file existence requirements or loading dependencies, but for a simple load operation 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?

The description is concise: two sentences plus a parameter list. It front-loads the purpose and warning, with no unnecessary 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 simple one-parameter tool with no output schema, the description covers essential behavior (opening a file, replacing scene, warning about unsaved changes). It could mention that Blender must be running, but that is likely implicit. Overall, it is complete enough.

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

Parameters5/5

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

The schema has 0% coverage (no descriptions), so the description must compensate. It provides 'filepath: Absolute path to the .blend file to open', adding meaning (absolute path, file type) beyond the schema's title and type.

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 'Open a .blend file, replacing the current Blender scene.' It specifies the verb 'open' and the resource '.blend file', and distinguishes from siblings like import_file by noting the replacement behavior.

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 includes a warning about unsaved changes being lost and advises to save first, but does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternative tools like import_file for adding assets without replacement.

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

load_img_to_3d_modelA

Start the local image-to-3D inference server (TripoSR). The server process is kept running until unload_img_to_3d_model() is called. Frees VRAM when unloaded — load only when you need it.

Parameters:

  • model_dir: Path to TripoSR weights directory (uses IMG_TO_3D_MODEL_DIR env var if omitted)

  • timeout: Seconds to wait for the server to come up (default 600; the first run downloads the weights). Its console output goes to img_to_3d_server.log in the temp folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNo
model_dirNo

TDQS

A4.7/5.0
Behavior5/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, and it does so thoroughly: it mentions server persistence, VRAM deallocation on unload, first-run weight downloads, model_dir environment fallback, timeout semantics, and where console output goes. These are exactly the side effects an agent needs to predict before calling.

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 main action is front-loaded in one sentence, the lifecycle/VRAM caveat follows immediately, and the parameter explanations are compact and scannable. Every sentence contributes operational value 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 simple start-server tool with no annotations and no output schema, the description covers purpose, parameters, side effects, and cleanup. It could clarify what happens when called while the server is already running and what the function returns, but those are minor given the tool's clear role.

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

Parameters5/5

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

The input schema only provides parameter names, types, and defaults (0% schema description coverage). The description adds real meaning: model_dir points to TripoSR weights and falls back to an environment variable, timeout controls how long to wait for startup, and the first run downloads weights. This fully compensates for the bare 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: 'Start the local image-to-3D inference server (TripoSR).' It clarifies that 'load' means starting a server, not directly loading an image, and it references the paired unload sibling, which helps distinguish it from the many other image-to-3D 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 gives clear lifecycle context: the server stays running until unload_img_to_3d_model() is called, and the VRAM note tells the agent to invoke it only when needed. It does not explicitly compare against sibling generation tools like generate_hyper3d_model_via_images or generate_3d_from_image, so it stops short of full alternative routing.

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

load_textureB

Load an image file and wire it into a material's texture slot.

Parameters:

  • material_name: Target material (must have a Principled BSDF node)

  • image_path: Absolute path to the image file

  • texture_slot: 'Base Color', 'Roughness', 'Metallic', 'Normal', 'Emission Color'

  • uv_scale: Uniform UV tiling scale (default 1.0)

ParametersJSON Schema
NameRequiredDescriptionDefault
uv_scaleNo
image_pathYes
texture_slotNoBase Color
material_nameYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description carries full responsibility. It mentions the prerequisite of a Principled BSDF node, but does not disclose whether the tool replaces existing textures, what happens to image file errors, or any side effects on the material graph. This leaves significant behavioral unknowns.

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 with a one-line summary followed by a parameter list. No extraneous information, though the parameter descriptions could be integrated more tightly into the narrative. Still, it is efficient for an agent to parse.

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 tool's main action and parameter meanings, and notes the node prerequisite. However, it lacks details on return values, error conditions, and whether the operation is additive or replaces existing textures, leaving gaps in understanding for a complex 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 input schema has 0% description coverage, but the tool description compensates by explaining each parameter's role, providing allowed values for texture_slot, and clarifying the requirement for material_name. This adds substantial meaning beyond the schema's bare titles and defaults.

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 it loads an image and wires it into a material's texture slot, using specific verbs and resources. However, it does not explicitly distinguish from sibling tools like `set_texture`, which could be a similar operation, leaving some 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 guidance on when to use this tool versus alternatives. The description lists parameters but does not provide context for appropriate usage, such as when a texture needs to be newly loaded versus reassigned, or prerequisites beyond the node requirement.

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

mark_sharp_edgesA

Mark edges as sharp (hard) or soft, controlling auto-smooth and the Edge Split modifier.

Sharp edges appear as hard creases when smooth shading + auto-smooth is enabled. Soft (unsharp) edges blend smoothly with neighbouring faces.

Parameters:

  • name: Mesh object name

  • edge_indices: Comma-separated edge indices, or "all"

  • sharp: True = hard edge (default), False = soft/smooth edge

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
sharpNo
edge_indicesYes

TDQS

A4.3/5.0
Behavior3/5

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

Describes visual effect (hard crease vs smooth blend) but does not disclose whether operation is additive or overwrites existing sharpness, or any side effects on modifiers. With no annotations, description carries full burden, 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?

Concise one-paragraph structure with clear separation of purpose and parameter descriptions. No unnecessary 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?

Covers purpose, parameter details, and visual output. Missing notes on prerequisites (auto-smooth enabled, Edge Split modifier) and reversibility. Given complexity, adequate but not exhaustive.

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

Parameters5/5

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

Adds significant value beyond schema: explains edge_indices format ('comma-separated or all') and sharp parameter meaning (true=hard, false=soft). Schema coverage was 0%, so description compensates 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 function: marking edges as sharp or soft, and explicitly links it to auto-smooth and Edge Split modifier. It distinguishes from siblings like set_edge_crease by focusing on smooth shading behavior.

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 clear context: sharp edges create creases under smooth shading, soft edges blend. Implicitly tells when to use, but does not explicitly mention when not to use or alternatives.

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

measure_distanceA

Measure the Euclidean distance between the origins of two objects.

Parameters:

  • name_a: First object name

  • name_b: Second object name

ParametersJSON Schema
NameRequiredDescriptionDefault
name_aYes
name_bYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior fully. It states Euclidean distance but omits details like units, coordinate space, error handling (e.g., missing objects), and behavior for identical objects.

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?

Description is extremely concise: two sentences and a compact parameter list. Every word adds value, with no redundancy.

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 no output schema, description should explain return value. Missing details like return type (number?), units, and error behavior. Adequate for simple tool but incomplete for full agent understanding.

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

Parameters4/5

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

Schema coverage is 0%, so description carries full burden. It adds brief but essential definitions: 'First object name' and 'Second object name'. While simple, it provides meaning beyond the schema's type and title.

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 clearly states the verb 'measure' and resource 'Euclidean distance between the origins of two objects'. It is distinct from sibling tools, none of which measure distance.

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?

Description does not provide explicit guidance on when to use this tool versus alternatives. Context implies measurement, but no exclusions or comparisons to sibling tools like get_object_info.

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

merge_verticesA

Merge (weld) vertices that are within a distance threshold of each other. Equivalent to 'Merge by Distance' in Blender — useful for cleaning up imported meshes or fixing seams after boolean operations.

Parameters:

  • name: Mesh object name

  • distance: Maximum distance between vertices to merge (default 0.001)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
distanceNo

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It explains the core merging behavior and practical context, but does not mention potential side effects (e.g., irreversibility, object modification, or any prerequisites). A higher score would require more explicit details about the operation's impact.

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: three sentences plus a parameter list. The first sentence immediately states the purpose, followed by a helpful analogy and use cases. Every sentence adds value with no 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's moderate complexity and lack of output schema, the description adequately covers the operation, parameters, and context. It could mention the outcome or return value, but the functionality is well-explained for agent 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 has 0% description coverage, so the description compensates by explaining both parameters: 'Mesh object name' for name, and 'Maximum distance between vertices to merge (default 0.001)' for distance. This adds essential meaning beyond the schema's 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?

The description clearly states the action: 'Merge (weld) vertices' and specifies the resource and condition: 'within a distance threshold'. It uses the Blender analogy ('Merge by Distance') and provides use cases, effectively distinguishing it from sibling tools like join_objects or separate_mesh.

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 use cases ('cleaning up imported meshes or fixing seams after boolean operations'), which helps the agent understand when to use it. However, it does not state when not to use it or compare to alternatives, though for a single-purpose tool this is acceptable.

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

move_objectA

Move an object to an absolute world-space position.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
zNo
nameYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description correctly implies a write operation (moving an object). It specifies 'absolute world-space position', which tells the agent the coordinates are in world space. However, it doesn't clarify error handling (e.g., invalid object name) or whether it overwrites previous transforms.

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 of eight words, conveying the core purpose without any fluff. It is front-loaded and immediately actionable.

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 move tool, the description covers the essential purpose. It specifies absolute world positioning, which is a key detail. It does not address optional constraints (e.g., only mesh objects, or nested children), but the simplicity of the tool makes this acceptable.

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 add meaning. The phrase 'absolute world-space position' adds context to the x, y, z parameters, indicating they represent global coordinates. However, it does not explain the 'name' parameter (which object to move) beyond the implicit context of 'an object'.

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 ('move'), the resource ('an object'), and the specific nature ('absolute world-space position'). This differentiates it from sibling tools like '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 Guidelines3/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 (e.g., set_vertex_position for vertex-level movement, or set_transform). The term 'absolute' hints at usage for exact placement, but no when-not-to-use info is given.

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 (removes them from all other collections).

Parameters:

  • object_names: Comma-separated object names

  • collection_name: Target collection (must already exist)

ParametersJSON Schema
NameRequiredDescriptionDefault
object_namesYes
collection_nameYes

TDQS

A3.9/5.0
Behavior3/5

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

Discloses the main behavioral trait (removal from other collections), but with no annotations, does not address error handling, reversibility, or 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?

Efficient, front-loaded with the action, and no superfluous text; every sentence serves a purpose.

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 essential effect and prerequisite (collection existence), but lacks details on return values, error handling, or input validation, leaving some gaps for a non-trivial 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?

Adds meaning beyond schema by specifying 'comma-separated object names' and 'Target collection (must already exist)', compensating for 0% schema description 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?

Clearly states 'Move objects into a collection' with specific verb and resource, and explicitly mentions the side effect of removing from all other collections, distinguishing it from siblings like 'create_collection' or 'move_object'.

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?

Implies that collection must already exist ('must already exist'), but does not explicitly state when to use this tool vs alternatives or provide exclusion criteria.

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

parent_objectA

Parent one object to another, creating a hierarchy.

Parameters:

  • child_name: Object that becomes the child

  • parent_name: Object that becomes the parent

  • keep_transform: Preserve the child's world-space position (default True)

ParametersJSON Schema
NameRequiredDescriptionDefault
child_nameYes
parent_nameYes
keep_transformNo

TDQS

A3.8/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 explains the keep_transform parameter's behavior (preserving world-space position), which adds transparency. However, it does not disclose side effects, prerequisites (objects must exist), or what happens to existing parenting relationships.

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: one brief sentence followed by a parameter list. Every sentence serves a purpose with no redundancy. It is well-structured and easy to scan.

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 parenting tool with three parameters and no output schema, the description covers the core operation and parameter behavior adequately. It lacks error handling details or return value info, but these are less critical for such a straightforward action.

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 schema description coverage at 0%, the description must add meaning beyond titles. It explains each parameter's role: child_name becomes child, parent_name becomes parent, keep_transform controls transform preservation. This adds clear semantics, though more detail on constraints (e.g., valid object names) would improve 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 clearly states the verb 'parent' and the outcome 'creating a hierarchy'. It distinguishes from sibling tools like 'join_objects' or 'align_objects' by focusing on hierarchical parenting. The purpose is specific and unambiguous.

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

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 does not mention when not to use it or suggest other tools for different scenarios like position alignment or mesh joining.

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

poll_hunyuan_job_statusA

Check if the Hunyuan3D generation task is completed.

For Hunyuan3D: Parameters: - job_id: The job_id given in the generate model step.

Returns the generation task status. The task is done if status is "DONE".
The task is in progress if status is "RUN".
If status is "DONE", returns ResultFile3Ds, which is the generated ZIP model path
When the status is "DONE", the response includes a field named ResultFile3Ds that contains the generated ZIP file path of the 3D model in OBJ format.
This is a polling API, so only proceed if the status are finally determined ("DONE" or some failed state).
ParametersJSON Schema
NameRequiredDescriptionDefault
job_idNo

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 burden of explaining behavior. It discloses the status values DONE and RUN, the ResultFile3Ds field on success, and the generated ZIP/OBJ path. The polling nature and 'only proceed if final' guidance are also transparent, though failure statuses remain vaguely described.

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 mostly clear and front-loaded, but it repeats the same DONE-result detail twice in slightly different wording ('If status is DONE, returns...' and 'When the status is DONE, the response includes...'). This redundancy weakens an otherwise reasonably sized description.

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 polling tool with no output schema, the description covers the essential context: the source of job_id, meaningful statuses, and what the successful response contains. It does not enumerate all possible failed states, but 'some failed state' is sufficient for the agent to know when to stop polling.

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 provides no description coverage for job_id, so the description's explanation that job_id comes from the generate model step adds necessary semantic meaning. It could be stronger by stating whether the parameter is required, but the source and usage are clear enough for a single-parameter polling 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 clearly states the tool checks whether a Hunyuan3D generation task is completed and explains the relevant statuses. It does not explicitly differentiate itself from get_hunyuan3d_status, though the polling-focused wording and name provide some distinction.

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

Usage Guidelines3/5

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

It indicates this is a polling API and tells the agent to proceed only when the status is final, which gives useful context. However, it does not describe when to prefer this tool over get_hunyuan3d_status or other status-checking siblings, nor does it state explicit exclusions.

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

poll_rodin_job_statusA

Check if the Hyper3D Rodin generation task is completed.

For Hyper3D Rodin mode MAIN_SITE: Parameters: - subscription_key: The subscription_key given in the generate model step.

Returns a list of status. The task is done if all status are "Done".
If "Failed" showed up, the generating process failed.
This is a polling API, so only proceed if the status are finally determined ("Done" or "Canceled").

For Hyper3D Rodin mode FAL_AI: Parameters: - request_id: The request_id given in the generate model step.

Returns the generation task status. The task is done if status is "COMPLETED".
The task is in progress if status is "IN_PROGRESS".
If status other than "COMPLETED", "IN_PROGRESS", "IN_QUEUE" showed up, the generating process might be failed.
This is a polling API, so only proceed if the status are finally determined ("COMPLETED" or some failed state).
ParametersJSON Schema
NameRequiredDescriptionDefault
request_idNo
subscription_keyNo

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 carries the full burden. It discloses that this is a polling API, explains expected status values, final versus in-progress states, and failure conditions. It does not cover error handling or whether the call blocks, but it provides substantial 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 well organized with mode sections and bulleted parameters. The purpose is front-loaded, and each status and guideline is relevant. Minor redundancy in the polling warnings is acceptable given the two-mode structure.

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-mode polling tool with no output schema and no annotations, the description covers the main behavioral contract: statuses, final states, and mode-specific inputs. It does not explain how to determine which mode applies or how to handle API errors, but it is largely complete for normal usage.

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 description coverage, so the description compensates by explaining that subscription_key belongs to MAIN_SITE and request_id belongs to FAL_AI, and that both come from a previous generate step. It could add format or requiredness details, but it gives enough meaning to choose the right parameter per mode.

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 opens with a clear verb and resource: 'Check if the Hyper3D Rodin generation task is completed.' It also distinguishes the two Rodin modes, but does not explicitly differentiate this polling tool from the sibling get_hyper3d_status, so it stops short of a perfect score.

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

Usage Guidelines4/5

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

The description gives mode-specific instructions and explicitly states when to proceed based on final statuses ('Done', 'Canceled', 'COMPLETED', or failed states). It does not name alternative tools or when not to use this one, but the polling guidance is clear and actionable.

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

rename_objectB

Rename an object and its mesh data block.

Parameters:

  • old_name: Current object name

  • new_name: Desired new name

ParametersJSON Schema
NameRequiredDescriptionDefault
new_nameYes
old_nameYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided; the description does not disclose behavioral traits such as reversibility, effects on other objects, or permissions. It only states the action without further 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 very short and to the point, with a clear opening sentence and parameter list. Every word earns its place, though it could benefit from slightly more detail.

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?

No output schema, and the description does not explain return values or side effects. For a simple rename operation, the description is minimally adequate but lacks completeness about what happens to the object's mesh data block.

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 parameter descriptions ('Current object name', 'Desired new name') add some value over the bare schema, but they are minimal and do not provide additional constraints or examples.

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 'rename an object and its mesh data block', which is a specific verb+resource. It distinguishes itself from sibling tools like duplicate_object, delete_object, and move_object.

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 or when not to; no alternatives mentioned. The description simply states what it does without context for selection.

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

render_all_camerasA

Render a still from every camera in the scene and return a contact sheet with all results labelled by camera name.

Parameters:

  • width: Render width per camera in pixels (default 1920)

  • height: Render height per camera in pixels (default 1080)

  • samples: Sample count for Cycles and EEVEE (default 32)

  • output_dir: Directory to keep the individual full-resolution renders. If omitted they are rendered to the temp dir and deleted after the sheet is built.

Returns a composited contact sheet image.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNo
heightNo
samplesNo
output_dirNo

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 responsibility for disclosing behavior. It mentions the side effect that individual renders are deleted if output_dir is omitted, which is useful. However, it does not clarify what exactly the returned contact sheet is (e.g., file path, image data) or mention any potential scene modifications or error 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 concise and well-structured. It states the purpose in one sentence, then lists parameters with clear explanations. No redundant or tangential information is included.

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 multiple related siblings, the description lacks context about when to use it versus alternatives like 'render_from_camera' or 'capture_contact_sheet'. It also does not mention prerequisite conditions (e.g., cameras in the scene) or error handling, leaving some ambiguity in a broader workflow.

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

Parameters5/5

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

The schema contains only titles and defaults, so the description provides the sole explanations for all four parameters: width, height, samples, and output_dir. Each is described with enough context to understand its purpose, fully compensating for the lack of schema descriptions.

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 function: rendering a still from every camera in the scene and returning a contact sheet with labelled results. It uses a specific verb ('render') and specifies the resource ('every camera') and output ('contact sheet'), 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?

While the description implies usage when multiple camera renders are needed, it does not explicitly contrast this with similar sibling tools like 'render_from_camera' or 'capture_contact_sheet'. No conditions or prerequisites are mentioned, so guidance on when to choose this tool over alternatives is limited.

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

render_depth_mapA

Render a normalised depth map from the active camera using the Blender compositor Z-pass. Closer objects appear lighter. Rendered in a throw-away scene copy, so the current scene's compositor and render settings are untouched.

Parameters:

  • max_depth: Depth value (scene units) mapped to black (default 10.0)

ParametersJSON Schema
NameRequiredDescriptionDefault
max_depthNo

TDQS

A4.5/5.0
Behavior4/5

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

The description explicitly discloses that rendering occurs in a throw-away scene copy, meaning the current scene's compositor and render settings remain untouched, which is a key side-effect. It does not mention output format or return value, but this is a minor gap given the clear non-destructive 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?

The description is concise, consisting of two short sentences with no redundant information. Every clause contributes to understanding the tool's purpose and side-effect.

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?

While the parameter is well-explained, the description does not state what the function returns (e.g., image path, format), which is relevant for a render operation. Since no output schema is present, this missing detail leaves a small gap, but the core behavior is sufficiently specified.

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

Parameters5/5

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

The parameter max_depth is described as the depth value mapped to black, which gives meaningful semantic context beyond the schema's type and default. This fully clarifies the parameter's role.

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 specific action (rendering a normalised depth map) and the resource (active camera via Blender compositor Z-pass), distinguishing it from sibling render tools like render_from_camera and render_all_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?

It explains the purpose and normalization behavior (closer objects lighter) and notes that it uses a throw-away scene copy, which implies it is safe to call without affecting the current scene. However, it does not explicitly contrast with alternative render tools or mention when to prefer this over them.

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

render_from_cameraA

Render a still from the specified (or active) camera.

Parameters:

  • camera_name: Camera to render from (uses scene active camera if omitted)

  • width: Render width in pixels (default 1920)

  • height: Render height in pixels (default 1080)

  • samples: Sample count for Cycles and EEVEE (default 32)

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNo
heightNo
samplesNo
camera_nameNo

TDQS

A3.5/5.0
Behavior2/5

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

There are no annotations, so the description must carry the full behavioral disclosure burden. It does reveal that camera_name is optional and falls back to the active camera, and that samples applies to Cycles/EEVEE, but it omits critical behavior: whether the render is returned as an image, saved to disk, or yields no output value. It also doesn'ttate whether this is a blocking operation or whether it mutates Blender scene state.

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

Conciseness5/5

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

The description is compact and front-loaded: a one-sentence purpose statement followed by a clean parameter list. Every line carries useful information, and there is no fluff or redundant prose. It is likely about as short as it could be while still conveying the necessary parameter behavior.

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 render tool with no output schema and no annotations, the description does not specify what the caller receives after rendering: an image path, a base64 payload, a success flag, or nothing. It also doesn't mention whether Blender must already be running or whether the active camera must exist. The parameter list is solid, but the operational contract of the tool is incomplete.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate, and it does thoroughly. It explains all four parameters with meaningful semantics: camera_name's active-camera fallback, the pixel dimensions, and that samples controls both Cycles and EEVEE. These details go well beyond the raw schema types and defaults.

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: 'Render a still from the specified (or active) camera.' This clearly identifies the tool's singular purpose and distinguishes it from siblings like render_all_cameras and render_depth_map. The scope is unambiguous and immediately actionable.

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

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 alternatives such as render_all_cameras, render_depth_map, or get_viewport_srcreenshot. The description doesn't mention when-not-to-use scenarios or prerequisites like needing a camera in the scene or Blender running. The use case must be inferred entirely from the tool name and the terse statement.

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

rotate_objectA

Set the Euler rotation of an object (degrees).

Parameters:

  • name: Object name

  • x, y, z: Rotation in degrees around each axis

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
zNo
nameYes

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 does not specify whether the rotation is absolute or relative, or if it replaces existing rotation. This leaves ambiguity about side effects and interaction with other transformations.

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 with a one-line summary and a bullet list of parameters. Every sentence serves a purpose, and the 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?

The description adequately covers the tool's basic function and parameters, but omits details such as return value, prerequisite object existence, and whether the rotation is additive or absolute. Given the tool's simplicity, it is moderately 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 parameter list adds meaning beyond the schema: 'x, y, z: Rotation in degrees around each axis' clarifies units and axes. Since schema coverage is 0%, the description compensates well, though it could mention valid ranges or error cases.

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 action: 'Set the Euler rotation of an object (degrees).' This is a specific verb+resource combination, distinguishing it from sibling tools like move_object or 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 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 align_objects or set_vertex_positions. The description lacks context on prerequisites or scenarios where this tool is appropriate.

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 current Blender project as a .blend file.

Parameters:

  • filepath: Absolute path to save to (e.g. "C:/projects/my_scene.blend"). If omitted, saves over the currently open file. If the file has never been saved, a temporary path is used and returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathNo

TDQS

A4.3/5.0
Behavior4/5

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

The description discloses the behavior when filepath is omitted (saves over current file or uses temporary path and returns it). This adds value beyond a basic description, though it does not cover error cases or return success/failure.

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 short and well-structured: one purpose sentence followed by a parameter block. Every sentence adds necessary information without 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 single parameter, no output schema, and no annotations, the description covers the essential behaviors. It could be improved by mentioning overwrite behavior or error handling, but it is largely complete for its simplicity.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by explaining the filepath parameter's meaning, providing an example, and detailing the two possible behaviors (with path vs. omitted). This adds significant semantic value.

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 ('Save') and the resource ('the current Blender project as a .blend file'). It uses a specific verb and resource, and effectively distinguishes this tool from siblings like load_blend.

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 (to save a Blender file) but does not explicitly state when to use it versus alternatives. No exclusion or alternative tool is mentioned, although the sibling list contains load_blend which is complementary.

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

scale_objectC

Set the absolute scale of an object on each axis.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
zNo
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 must convey all behavioral traits. It states 'absolute scale' but omits details such as coordinate system, allowed value ranges, or what happens if the object does not exist. The description is insufficient for safe invocation.

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 a single concise sentence, but it sacrifices necessary detail. While not verbose, it is too sparse to be maximally helpful.

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 no output schema and 0% parameter coverage, the description is critically incomplete. It does not explain return values, error conditions, or provide any contextual information beyond the basic action.

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%, meaning the description must explain parameters. It only mentions 'each axis' without specifying that x, y, z are scale factors or that default 1 means no change. The parameter semantics are not effectively communicated.

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 'Set the absolute scale of an object on each axis,' clearly indicating the action (set), the resource (object scale), and that it operates per-axis. This distinguishes it from sibling tools like move_object or rotate_object.

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 context is provided on when to use this tool versus alternatives such as relative scaling operations or object transformations. There is no guidance on prerequisites or limitations.

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

search_polyhaven_assetsA

Search for assets on Polyhaven with optional filtering.

Parameters:

  • asset_type: Type of assets to search for (hdris, textures, models, all)

  • categories: Optional comma-separated list of categories to filter by

Returns a list of matching assets with basic information.

ParametersJSON Schema
NameRequiredDescriptionDefault
asset_typeNoall
categoriesNo

TDQS

A3.9/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 correctly conveys a read-only search operation and states that it 'Returns a list of matching assets with basic information', which is useful context. However, it does not mention pagination, result limits, required authentication, or that actual asset files are not downloaded by this 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 compact and front-loaded with the core purpose. The parameter list is minimal and useful, and the return statement is a single line. No redundant prose or filler exists.

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 search tool with only two optional parameters and no output schema, the description covers the basic call contract. However, 'basic information' is vague about the exact return fields, and it does not tell the agent that valid category values can be obtained from get_polyhaven_categories. These are notable gaps given there is no output schema.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It does so well by documenting asset_type with its allowed values (hdris, textures, models, all) and categories as an 'optional comma-separated list'. This adds real meaning beyond the bare schema property names and defaults.

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: 'Search for assets on Polyhaven'. Combined with the asset_type values (hdris, textures, models, all), it clearly distinguishes this tool from sibling search tools like search_sketchfab_models and from download/category 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 the tool should be used when the agent needs to discover Polyhaven assets, and it mentions optional filtering. However, it does not explicitly contrast with siblings such as get_polyhaven_categories or download_polyhaven_asset, 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.

search_sketchfab_modelsA

Search for models on Sketchfab with optional filtering.

Parameters:

  • query: Text to search for

  • categories: Optional comma-separated list of categories

  • count: Maximum number of results to return (default 20)

  • downloadable: Whether to include only downloadable models (default True)

Returns a formatted list of matching models.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNo
queryYes
categoriesNo
downloadableNo

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 burden of behavioral disclosure. It mentions that the tool returns a formatted list of matching models, which is helpful, but it does not disclose whether it calls an external API, potential rate limits, pagination behavior, or error conditions. The read-only nature is implied by 'search' but not made explicit.

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 with the core purpose, followed by a clean bullet-style parameter list. Every sentence adds value 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 parameter documentation is complete, but the return value is only described as a 'formatted list', which is vague given that no output schema exists. Missing details include what fields each model entry contains, how categories combine, and what happens on errors or empty results. It is adequate for a basic search tool, but not fully complete.

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

Parameters5/5

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

The schema description coverage is 0%, but the description compensates fully by explaining every parameter: query text, comma-separated categories, maximum result count, and downloadable filtering. This goes well beyond the bare schema definitions and gives the agent actionable 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 ('Search for models on Sketchfab') and the resource, making the tool's purpose immediately understandable. It does not explicitly contrast itself with sibling tools, but the verb 'search' naturally distinguishes it from download, preview, and status 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?

The opening sentence gives clear context for when to use the tool: to search Sketchfab for models. It does not provide explicit exclusions or alternatives, but the sibling tool names make it evident that this is the search step before downloading or previewing.

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

select_objectsA

Select or deselect objects by name list and/or type.

Parameters:

  • names: Comma-separated object names (if omitted, applies to all or filtered by type)

  • action: SELECT, DESELECT, TOGGLE

  • obj_type: Filter by type when names is omitted: MESH, CAMERA, LIGHT, CURVE, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesNo
actionNoSELECT
obj_typeNo

TDQS

A3.7/5.0
Behavior3/5

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

Without annotations, the description carries full burden. It explains the three actions and parameter interactions but does not disclose side effects like current selection clearing or undo behavior. 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 concise with a one-line summary followed by clear parameter bullet points. No fluff, every sentence adds value.

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 optional parameters, the description covers core functionality but lacks detail on edge cases like invalid names or combined use of names and obj_type. No output schema, so return behavior is omitted.

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

Parameters4/5

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

Schema coverage is 0%, so description must compensate. It explains each parameter's role, including defaults and special behaviors like omitting names to apply to all objects. This adds significant 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 clearly states the tool selects or deselects objects by name and/or type, using a specific verb and resource. It is unique among siblings as no other tool directly manages selection state.

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 find_objects_by_type or delete_object. It does not mention prerequisites or exclusion criteria.

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

separate_meshC

Separate a mesh object into multiple objects.

Parameters:

  • name: Mesh object name

  • method: LOOSE (by disconnected geometry), MATERIAL (by material slot), SELECTED (by face selection)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
methodNoLOOSE

TDQS

C2.9/5.0
Behavior2/5

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

Lacks annotations, so description must disclose side effects. It does not state whether the original object is deleted or modified, whether new objects are created, or any limitations on mesh type. This is a significant gap for a transformative operation.

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

Conciseness4/5

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

The description is short and front-loaded, with a clear header and bullet list. It avoids unnecessary text. However, it could include a bit more context (e.g., side effects) without losing conciseness.

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

Completeness3/5

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

Given the tool's simplicity (2 params, no output schema), the description covers the basic purpose and parameters. However, it omits behavioral details (what happens to original object, new object creation) and error conditions, leaving gaps for a complete understanding.

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%, but the description adds meaning by explaining the 'name' parameter as 'Mesh object name' and listing method options with brief meanings. However, it does not specify defaults, constraints, or valid values (e.g., case sensitivity). Provides some value beyond the bare 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 (separate) and resource (mesh object) and that it results in multiple objects. It is specific enough to distinguish from sibling tools like join_objects or subdivide_mesh, though it could explicitly differentiate from similar operations.

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 alternatives. It does not mention prerequisites (e.g., mesh must be selected) or scenarios where one method is preferred. Only parameter explanations are provided.

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

set_active_cameraC

Set the active render camera to an existing camera object.

Parameters:

  • name: Camera object name

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided. The description implies a mutation (changing active camera) but does not disclose side effects, error behavior if the camera name is missing or invalid, or any other consequences. The phrase 'to an existing camera object' is a precondition but not behavioral detail.

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 very short, but the parameter listing duplicates schema information. It is front-loaded with the main action, but the param section could be omitted or integrated more efficiently. Still, no extraneous content.

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 single-parameter, no-output-schema tool with no annotations, the description lacks completeness. It does not explain what happens if the camera name does not exist, whether the active camera is changed immediately, or any return value. More context would be beneficial for an 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?

Schema coverage is 0% (the schema has no description for the 'name' property). The description adds 'Camera object name' which is minimal and largely redundant with the property name. It provides no additional meaning beyond what is obvious 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?

The description explicitly states the tool's purpose: 'Set the active render camera to an existing camera object.' It uses a specific verb ('set') and resource ('active render camera'), clearly distinguishing it from siblings like 'create_camera' or 'render_from_camera'.

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 alternatives. Siblings such as 'render_from_camera' also involve cameras but without setting active. The description does not mention prerequisites or exclusions.

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

set_control_pointB

Move a curve control point and optionally adjust its bezier handles.

Parameters:

  • name: Curve object name

  • point_index: Zero-based control point index

  • co: Comma-separated x,y,z world-space position

  • handle_left: Comma-separated x,y,z for left handle (bezier only)

  • handle_right: Comma-separated x,y,z for right handle (bezier only)

  • handle_left_type: FREE, ALIGNED, VECTOR, or AUTO (bezier only)

  • handle_right_type: FREE, ALIGNED, VECTOR, or AUTO (bezier only)

  • spline_index: Spline index within the curve object (default 0)

ParametersJSON Schema
NameRequiredDescriptionDefault
coYes
nameYes
handle_leftNo
point_indexYes
handle_rightNo
spline_indexNo
handle_left_typeNo
handle_right_typeNo

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 must disclose all behavioral traits. It mentions optional handle adjustment but omits critical details: what happens with invalid point_index, behavior for non-bezier curves, whether changes are permanent, and any side effects on linked data. The description is vague about the tool's mutation characteristics.

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 well-structured in a bulleted parameter list, avoiding prose bloat. It is front-loaded with a clear action statement. However, it could be slightly more concise by grouping similar parameters (e.g., handle_left/handle_right types).

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 8 parameters and no output schema, the description covers parameter semantics but lacks context on return values, error handling, and prerequisites (e.g., curve object existence). It is adequate for basic usage but incomplete for robust agent decision-making.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the full burden. It adds meaningful explanations for all 8 parameters, including format hints (comma-separated x,y,z) and type constraints (FREE, ALIGNED, etc.). However, it could be more precise about the expected string format for coordinates.

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 action: 'Move a curve control point and optionally adjust its bezier handles.' This is a specific verb-resource combination that distinguishes it from sibling tools like set_vertex_position (for mesh vertices) or set_vertex_positions.

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 (e.g., set_vertex_position, get_control_points). There are no prerequisites or exclusion criteria mentioned, leaving the agent without context for appropriate invocation.

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

set_edge_bevel_weightA

Set bevel weight on edges, used with the Bevel modifier (limit_method=WEIGHT).

Only edges with weight > 0 will be bevelled when the modifier uses WEIGHT mode. This lets you selectively bevel specific edges without affecting the whole mesh.

Typical workflow:

  1. set_edge_bevel_weight("Cube", "4,5,6,7", weight=1.0) ← top edges only

  2. add_modifier("Cube", "BEVEL", params='{"width": 0.05, "limit_method": "WEIGHT"}')

Parameters:

  • name: Mesh object name

  • edge_indices: Comma-separated edge indices, or "all"

  • weight: 0.0 (no bevel) to 1.0 (full bevel)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
weightYes
edge_indicesYes

TDQS

A4.6/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 full burden. It explains the effect (edges with weight>0 are bevelled) and the typical workflow, but does not mention any destructive consequences or required permissions.

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 well-structured with a clear heading, explanatory paragraph, typical workflow example, and parameter list in a compact format. Every sentence adds value.

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?

Given the tool's simplicity and no output schema, the description is complete. It covers the purpose, usage, parameters, and typical workflow adequately for an AI agent to use it correctly.

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

Parameters5/5

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

The schema has 0% description coverage, but the description fully compensates by explaining 'edge_indices' as 'Comma-separated edge indices, or all' and 'weight' as a range 0.0-1.0. It adds significant 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 clearly states it sets bevel weight on edges for use with the Bevel modifier in WEIGHT mode. It distinguishes itself from sibling tools like 'set_edge_crease' by specifying the context.

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?

A typical workflow is provided, showing how to use this tool before adding the modifier. It explains the condition (only edges with weight > 0 are bevelled) but does not explicitly state when not to use it.

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

set_edge_creaseB

Set subdivision crease weight on edges.

Crease controls how the Subdivision Surface modifier handles edge sharpness: 0.0 = fully smooth (no crease), 1.0 = perfectly sharp crease. Values in between give progressively harder edges without going fully sharp.

Parameters:

  • name: Mesh object name

  • edge_indices: Comma-separated edge indices, or "all"

  • crease: Weight 0.0–1.0

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
creaseYes
edge_indicesYes

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 takes on the full burden. It explains the crease weight range and its effect on subdivision sharpness, which is moderately transparent. However, it does not mention whether it modifies existing creases, requires a Subdivision Surface modifier, or has 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 concise, with a clear two-part structure: an introductory sentence and a parameter list. Every sentence adds value with no redundancy.

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 no output schema and no annotations, the description covers the parameters and the effect but lacks mention of prerequisites (e.g., Subdivision Surface modifier), return behavior, or edge case handling.

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

Parameters4/5

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

Schema coverage is 0%, so the description must add meaning. It clarifies each parameter: 'name' as mesh object name, 'edge_indices' as comma-separated indices or 'all', and 'crease' with range 0.0–1.0. This significantly improves understanding beyond the bare types.

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 sets subdivision crease weight on edges, and explains what crease does in terms of sharpness. This is specific enough to distinguish from general edge operations, though it does not explicitly differentiate from sibling like set_edge_bevel_weight.

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

Usage Guidelines2/5

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

The description explains the effect of crease values but provides no guidance on when to use this tool versus alternatives like mark_sharp_edges or set_edge_bevel_weight. There is no mention of prerequisites 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.

set_face_material_indexA

Assign a material slot to specific faces (for multi-material objects).

Parameters:

  • name: Mesh object name

  • face_indices: Comma-separated face indices, or "all" for every face

  • material_index: Material slot number (0-based; material must already be in the object's slots)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
face_indicesYes
material_indexYes

TDQS

A4.1/5.0
Behavior2/5

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

No annotations provided, so the description must fully disclose behavior. It explains parameters but does not mention error behavior, reversibility, or whether the operation is destructive. Missing details like what happens if material_index 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?

The description is concise: one initial sentence followed by a clear parameter list. Every sentence adds value without 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 no output schema and no annotations, the description covers parameter semantics but lacks information about return values, error handling, or side effects. For a small tool, it is mostly complete but could include behavioral context.

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

Parameters5/5

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

The description adds significant detail beyond the schema: face_indices is explained as 'comma-separated face indices, or 'all'', and material_index is clarified as '0-based; material must already exist'. With 0% schema coverage, the description fully compensates.

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 'Assign a material slot to specific faces (for multi-material objects).' It uses a specific verb and resource, and distinguishes from sibling tools like assign_material which typically assign a whole material to an object.

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 includes 'for multi-material objects' which implies when to use, but does not explicitly state when not to use or provide alternatives. It gives clear context but lacks exclusions.

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

set_frameC

Set the current scene frame (scrubs the timeline).

Parameters:

  • frame: Target frame number

ParametersJSON Schema
NameRequiredDescriptionDefault
frameYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description bears full burden. It only states the operation; missing details on side effects, reversibility, or whether the scene must be loaded. Minimal behavioral disclosure.

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?

Very concise with no fluff: two lines plus a parameter list. Structured with a param description, though slightly too brief.

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 one parameter and no output schema, the description is adequate but lacks context about when to use (e.g., animation workflows) and whether it updates the viewport.

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 has 0% description coverage; description adds 'Target frame number,' which explains the parameter's role beyond its type and title. Could include valid range or starting point.

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 'Set the current scene frame (scrubs the timeline),' using a specific verb and resource. It distinguishes from siblings like 'add_keyframe,' though could be more precise about the timeline context.

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 alternatives like 'add_keyframe' or 'set_render_settings.' No prerequisites or common scenarios mentioned.

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

set_object_material_colorA

Set the Principled BSDF base colour of an object's material. Creates the material if one does not exist.

Parameters:

  • name: Object name

  • r, g, b, a: Colour channels in 0..1 range

  • material_index: Which material slot to update (default 0)

ParametersJSON Schema
NameRequiredDescriptionDefault
aNo
bNo
gNo
rNo
nameYes
material_indexNo

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 full burden. It discloses that it creates the material if needed, which is important. However, it does not mention potential side effects like overwriting existing color, error handling for invalid indices, or undo behavior. It is adequate but not exhaustive.

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: two sentences plus a parameter list. No unnecessary words. Front-loaded with the core action and key behavior. 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?

Given the simplicity of the tool and lack of output schema, the description covers purpose, parameter semantics, and the notable behavior of material creation. It lacks some edge-case details (e.g., out-of-range index) but is sufficient for a straightforward setter 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?

Schema coverage is 0%, so description must compensate. It explicitly states the range for r, g, b, a (0..1) and explains material_index as 'which material slot to update', adding meaning beyond the schema. It does not explain 'name' but it is clear from context.

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 verb 'Set' and the resource 'Principled BSDF base colour of an object's material', which is specific. It also mentions that it creates the material if one does not exist, differentiating it from siblings like 'assign_material' or 'set_face_material_index'.

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 setting material color, but does not provide explicit when-to-use or when-not-to-use guidance, nor does it compare with sibling tools. The context is clear but lacks exclusionary language.

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

set_originB

Set an object's origin point.

Parameters:

  • name: Object name

  • origin_type: ORIGIN_GEOMETRY (centre of mesh), ORIGIN_CURSOR (3D cursor position), ORIGIN_CENTER_OF_MASS, ORIGIN_CENTER_OF_VOLUME

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
origin_typeNoORIGIN_GEOMETRY

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as side effects (e.g., object modification), failure modes, or required permissions. For a mutation tool, more disclosure is needed.

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 with a clear list of parameters. However, it could be more structured (e.g., using a table or paragraphs). No waste, but front-loading the purpose is good.

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 basic purpose and parameter options, but lacks context about what happens after the operation (e.g., no side effects, no return value description). Given simplicity, it is adequate but not comprehensive.

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 has 0% description coverage, so the description must compensate. It explains the 'origin_type' enum values (e.g., ORIGIN_GEOMETRY) and their meanings, but the 'name' parameter is only vaguely described as 'Object name' (repeating the schema title). Partial improvement over 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 tool name 'set_origin' and description 'Set an object's origin point' clearly state the verb and resource. It distinguishes itself from sibling tools like 'move_object' and 'rotate_object' by focusing on origin manipulation.

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 alternatives. The description only lists parameters without context about prerequisites or scenarios where setting origin is appropriate.

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

set_render_settingsB

Configure scene render settings.

Parameters:

  • engine: CYCLES (ray-traced, photorealistic), BLENDER_EEVEE (real-time), BLENDER_WORKBENCH (solid view)

  • width / height: Render resolution in pixels

  • samples: Number of render samples (affects quality/noise)

  • output_path: File path for saved renders (e.g. "C:/renders/frame_####.png")

  • file_format: PNG, JPEG, EXR, TIFF

  • transparent_background: True to render with alpha instead of background colour

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNo
engineNo
heightNo
samplesNo
file_formatNo
output_pathNo
transparent_backgroundNo

TDQS

B3.4/5.0
Behavior2/5

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

No annotations exist, and the description does not disclose side effects (e.g., whether previous settings are overwritten, if it triggers a render, or any auth needs). It merely lists parameters without 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 structured as a bullet list and is appropriately sized. The introductory sentence is minimal but effective. No wasted words, though could be slightly more 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?

For a configuration tool with 7 parameters and no output schema or annotations, the description covers the parameters adequately but lacks completeness on behavioral aspects (e.g., immediate application, persistence). It's functional but not fully comprehensive.

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 parameter list in the description adds significant meaning, including engine options, resolution, samples, output path, file format, and transparent background. It compensates well for lack of schema descriptions.

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 'Configure scene render settings', which is a specific verb-resource pair. It distinguishes well from sibling render tools that perform actual rendering, as this tool is for configuration.

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 vs siblings like render_from_camera or set_frame. No prerequisites or exclusions provided, leaving the agent to infer usage context.

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

set_smooth_shadingA

Toggle smooth or flat shading on a mesh object.

Parameters:

  • name: Mesh object name

  • smooth: True for smooth shading, False for flat

  • auto_smooth: Enable auto-smooth (smooths only edges below angle threshold)

  • angle: Auto-smooth threshold in degrees (default 30°)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
angleNo
smoothNo
auto_smoothNo

TDQS

A4.3/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 fully disclose behavior. It clearly explains the toggle action, the effect of 'smooth', and the 'auto_smooth' and 'angle' parameters. It does not mention side effects (e.g., recalculating normals) but the core behavior 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 highly concise: one sentence for purpose then a clean parameter list. No redundant information or filler. It front-loads the action, making it easy to scan.

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 4 parameters and no output schema, the description adequately covers all parameters and the core operation. It could mention that the tool only works on mesh objects (already implied by 'mesh object') and what the result looks like, but overall it is sufficiently complete.

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

Parameters5/5

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

The input schema has 0% description coverage, so the description is the sole source of parameter meaning. It provides clear explanations: 'name: Mesh object name', 'smooth: True for smooth, False for flat', 'auto_smooth: Enable auto-smooth', and 'angle: threshold in degrees, default 30'. This adds essential value beyond the schema's type-only definitions.

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 begins with a clear, specific verb ('Toggle...smooth or flat shading') and identifies the target resource ('mesh object'). This differentiates it from sibling tools like 'flip_normals' or 'set_face_material_index', which address different aspects of mesh appearance.

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 states what the tool does but does not explicitly guide when to use it versus alternatives. It lacks context such as 'Use when you need to control shading appearance for rendering' or exclusions like 'Does not affect flat-shaded materials'. Usage is implied but not clarified.

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

set_textureA

Apply a previously downloaded Polyhaven texture to an object.

Parameters:

  • object_name: Name of the object to apply the texture to

  • texture_id: ID of the Polyhaven texture to apply (must be downloaded first)

Returns a message indicating success or failure.

ParametersJSON Schema
NameRequiredDescriptionDefault
texture_idYes
object_nameYes

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 must carry the behavioral burden. It discloses the prerequisite of a prior download and states that the tool returns a success/failure message. However, it does not explain what happens on failure, whether existing textures are replaced, or whether the object must exist, leaving moderate 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?

The description is compact, front-loaded with the main purpose, and structured cleanly into purpose, parameters, and return behavior. There is no filler or redundant content beyond what is needed given the 0% schema coverage.

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-string-parameter tool, the description covers the essential inputs, the prerequisite, and the return behavior. It could be slightly more complete by noting that the object must exist or that the operation may overwrite the object's current texture, but the core invocation context is present.

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

Parameters5/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 fully define the parameters. It does exactly that: object_name is the target object and texture_id is the already-downloaded Polyhaven texture ID. This adds the necessary meaning that the bare schema property names omit.

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 starts with a specific verb-plus-resource statement: 'Apply a previously downloaded Polyhaven texture to an object.' The 'previously downloaded' qualifier clearly distinguishes this from the sibling download_polyhaven_asset and makes the scope of the tool immediately clear.

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 condition: the texture 'must be downloaded first.' This implies the correct sequence with download_polyhaven_asset, but it does not explicitly name that sibling or state when not to use this tool, so it falls just short of full alternative routing guidance.

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

set_vertex_positionA

Move a single vertex of a mesh object to a world-space position.

Parameters:

  • name: Mesh object name

  • vertex_index: Zero-based vertex index

  • x, y, z: Target world-space position

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
zYes
nameYes
vertex_indexYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as error handling for invalid indices, whether changes are reversible, or if it modifies the original mesh. It only describes the basic action.

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

Conciseness5/5

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

The description is extremely concise: one sentence for purpose and a bullet list of parameters. Every part serves a clear function with no redundancy or 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 simple vertex move operation, the description covers the essential details. However, it lacks completeness regarding validation (e.g., invalid vertex_index), impact on mesh structure, and any prerequisites (e.g., object must be mesh).

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 clear meaning for all 5 parameters (name, vertex_index, x, y, z) beyond what the schema provides, as the schema has 0% description coverage. It explains each parameter's role (e.g., 'Zero-based vertex index', 'Target world-space position').

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 it moves a single vertex of a mesh object to a world-space position, using a specific verb and resource. This distinguishes it from siblings like 'set_vertex_positions' which sets multiple vertices.

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 (e.g., set_vertex_positions or other transform tools). It only states what the tool does without context for selection.

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

set_vertex_positionsA

Batch-update multiple vertex positions in a single call (much faster than calling set_vertex_position repeatedly for many vertices).

Parameters:

  • name: Mesh object name

  • vertices: JSON array of {"index": int, "co": [x, y, z]} objects. Example: '[{"index":0,"co":[0,0,1]},{"index":3,"co":[1,0,0]}]'

  • world_space: True = co values are world-space (default), False = local/object space

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
verticesYes
world_spaceNo

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 full burden. It explains that the tool modifies vertex positions and clarifies the world_space parameter. However, it does not disclose if changes are destructive, what happens on invalid input, or permissions needed. It is moderately 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, with a clear purpose statement followed by a structured list of parameters and example. Every sentence adds value, 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?

Given the tool has no output schema, the description covers the input parameters well and explains the core functionality. It does not mention return values or error handling, but for a batch mutation tool, the essential context is present.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It provides a full example for the 'vertices' parameter and explains world_space values. The 'name' parameter is only briefly described. Overall, it adds significant meaning beyond the schema for two of three 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 it batch-updates multiple vertex positions in a single call, and explicitly contrasts with the repeated single-vertex tool 'set_vertex_position'. This distinguishes it from its siblings effectively.

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 implies use when updating many vertices (much faster than repeated calls). However, it does not explicitly state when not to use it or mention alternatives beyond 'set_vertex_position'. The guidance is good but lacks exclusions.

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 scene world background to a solid colour or an HDRI environment map.

Parameters:

  • color: Comma-separated r,g,b in 0..1 range (used when hdri_path is not given)

  • strength: Background emission strength (default 1.0)

  • hdri_path: Absolute path to a .hdr or .exr file (overrides color)

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNo0.05,0.05,0.05
strengthNo
hdri_pathNo

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 fully discloses key behaviors: hdri_path overrides color, color format (comma-separated r,g,b in 0..1), and strength default. However, it does not mention potential errors (e.g., invalid hdri_path) or side effects, which would push it to 5.

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: a one-sentence purpose followed by a clear list of parameters. No redundant information. Every sentence serves a purpose.

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 few parameters and no output schema, the description covers the main functionality. However, it does not mention default behavior when neither parameter is given (though schema provides defaults) or whether changes are immediate. This leaves minor gaps for the agent.

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?

Since schema coverage is 0%, the description adds essential meaning: color format (comma-separated r,g,b 0..1), strength default, and that hdri_path overrides color. This compensates well for the schema's lack of descriptions, though could be more precise (e.g., inclusive range).

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 action ('Set the scene world background') and resource (world background), and specifies two distinct modes (solid colour or HDRI map). This sufficiently distinguishes it from sibling tools like lighting or other rendering tools.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. There is no mention of scenarios, prerequisites, or exclusions. The purpose is clear but the agent receives no help in deciding between this tool and others.

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

snap_to_groundA

Move an object so its lowest bounding-box point rests on the ground plane.

Parameters:

  • name: Object name

  • ground_z: Z value of the ground plane (default 0.0)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
ground_zNo

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. It states the behavior (snapping to ground plane) but does not disclose potential side effects (e.g., if rotation is affected, behavior for non-mesh objects, or what happens if already on ground). Basic but not exhaustive.

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: one sentence for purpose, then a bulleted list of parameters. No fluff or redundant information. Ideal for quick understanding.

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 no output schema, no annotations, and 0% schema coverage, the description covers the basics but lacks completeness. For instance, it doesn't address edge cases (empty objects, invalid names) or confirm return behavior. Adequate for a simple tool but could be more thorough.

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 adds meaning. It explains 'name' as 'Object name' and 'ground_z' as 'Z value of the ground plane (default 0.0)'. This is functional but minimal; could benefit from more context (e.g., format restrictions).

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: 'Move an object so its lowest bounding-box point rests on the ground plane.' It specifies the verb (move), resource (object), and the exact effect (snap to ground), distinguishing it from siblings like align_objects or move_object.

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 ground snapping but provides no explicit guidance on when to use this tool vs alternatives like align_objects or move_object. There are no exclusions or context on prerequisites.

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

start_blenderA

Launch Blender as a managed subprocess.

Parameters:

  • blend_file: Path to a .blend file to open on startup (optional)

  • blender_exe: Full path to the Blender executable. Auto-detected if omitted (checks BLENDER_EXE env var, PATH, then common install locations).

  • background: True = headless mode (--background), no UI. Useful for rendering.

  • wait_for_addon: Wait up to 30 s for the BlenderMCP addon socket to become reachable on port 9876 (default True). Set False for background jobs that don't use the addon.

  • python_expr: Optional Python expression passed to Blender via --python-expr, e.g. "import bpy; bpy.ops.wm.quit_blender()" for scripted batch runs.

Blender console output goes to blender_mcp_blender.log in the temp folder; it must never share this process stdio, which carries the MCP transport.

ParametersJSON Schema
NameRequiredDescriptionDefault
backgroundNo
blend_fileNo
blender_exeNo
python_exprNo
wait_for_addonNo

TDQS

A4.1/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 does disclose that console output goes to a log file and that stdio is not shared, which is useful, but it omits lifecycle behaviors such as repeated launches, cleanup, or 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 compact and well-structured with clear parameter labels and explanatory notes. No redundant or irrelevant content is present.

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 covers invocation, parameter semantics, and an important side effect (log file location). It does not mention return values, but no output schema exists, so that is acceptable. It could be slightly improved by referencing how to verify successful startup via sibling tools like get_blender_status.

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

Parameters5/5

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

Even though schema coverage is 0%, the description explains all five parameters with defaults and examples. This fully compensates for the missing schema descriptions.

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, 'Launch Blender as a managed subprocess', which clearly distinguishes it from sibling tools like close_blender and get_blender_status. It is concise and 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 Guidelines3/5

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

The usage is implied by the action verb and parameter hints, but there is no explicit guidance on when to choose this tool over alternatives or any stated exclusions. It could be improved by noting that this tool is the prerequisite for other Blender operations.

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

store_reference_imageA

Store a local image file as a named reference for later comparison tools.

Parameters:

  • name: Short identifier (e.g. "concept_art")

  • filepath: Absolute path to the image file on disk

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
filepathYes

TDQS

A3.5/5.0
Behavior2/5

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

Annotations are absent, so the description must disclose behavioral traits. It does not specify what happens if a reference with the same name already exists (overwrite, error), file format requirements, or path constraints.

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: one purpose sentence plus a parameter list. Every word adds value, and 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.

Completeness3/5

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

Given the simple tool (2 params, no output schema), the description covers basic purpose and parameters but lacks behavioral details like overwrite behavior or error handling, leaving the agent somewhat uncertain.

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 adds meaning to both parameters: 'name' as 'Short identifier (e.g. "concept_art")' and 'filepath' as 'Absolute path to the image file on disk', which goes beyond the schema's 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?

The description clearly states the verb 'store', the resource 'local image file as a named reference', and the purpose 'for later comparison tools'. It distinguishes itself from sibling tools like compare_reference_image and diff_images.

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. Siblings like load_texture or import_file could also involve images, but no demarcation or when-not-to-use advice is given.

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

subdivide_meshB

Subdivide all faces of a mesh (equivalent to Subdivide in Edit Mode).

Parameters:

  • name: Mesh object name

  • cuts: Number of cuts per edge (default 1)

  • smoothness: Smooth factor 0..1 (default 0.0 = flat)

ParametersJSON Schema
NameRequiredDescriptionDefault
cutsNo
nameYes
smoothnessNo

TDQS

B3.4/5.0
Behavior2/5

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

Without annotations, the description should disclose behavioral traits. It only mentions the operation is equivalent to Subdivide in Edit Mode, but does not specify whether it modifies the mesh in place, any side effects, or undo behavior.

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

Conciseness4/5

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

The description is brief and front-loaded, listing parameters clearly. It could be more structured (e.g., separate sections), but no unnecessary words.

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

Completeness3/5

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

Given no output schema and no annotations, the description is minimal. It explains what the tool does and parameters, but lacks context about return values or the effect on the scene. Adequate for a simple operation, but could be more 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?

Despite 0% schema description coverage, the description adds meaning: it explains 'cuts' as 'Number of cuts per edge' with default, and 'smoothness' has a range '0..1' and default. This compensates significantly for the sparse 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 clearly states the action ('Subdivide all faces of a mesh') and explicitly references the Blender Edit Mode equivalent, making it distinct from sibling tools like 'triangulate_mesh' and 'extrude_faces'.

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, nor any prerequisites or context. The description is purely operational.

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

triangulate_meshA

Triangulate all faces of a mesh (convert quads/ngons to triangles). Useful before export to game engines or 3D printing.

Parameters:

  • name: Mesh object name

  • method: BEAUTY (best quality, default), FIXED, FIXED_ALTERNATE, SHORTEST_DIAGONAL

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
methodNoBEAUTY

TDQS

A3.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 must fully disclose behavioral traits. It states the conversion of quads/ngons to triangles but does not mention whether the operation is destructive, if it preserves UVs or vertex normals, or any limitations (e.g., performance on high-poly meshes). The description provides only surface-level 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?

The description is two sentences followed by a parameter list. The first sentence concisely states the action, the second provides usage context. The parameter list is clearly formatted with values and defaults. No redundant or irrelevant 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?

Given the tool's simplicity (2 parameters, no output schema, no annotations), the description covers the core purpose and parameter meanings. However, it lacks behavioral details (e.g., what happens to existing triangles, undo support) and does not describe the return value (likely success/failure). It is minimally adequate but not comprehensive.

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 has 0% description coverage, so the description adds essential meaning: 'name: Mesh object name' and 'method: BEAUTY (best quality, default), FIXED, FIXED_ALTERNATE, SHORTEST_DIAGONAL'. It explains the purpose of 'name' and lists the allowed values for 'method'. However, it does not elaborate on what each method does (e.g., fixed vs beauty), which would help an agent choose 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 clearly states the tool's action: 'Triangulate all faces of a mesh (convert quads/ngons to triangles).' It also gives a specific use case: 'Useful before export to game engines or 3D printing.' This distinguishes it from sibling tools like subdivide_mesh or separate_mesh by focusing on converting face types.

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 context for when to use the tool: before export to game engines or 3D printing. However, it does not mention when not to use it or suggest alternative tools (e.g., using modifiers for non-destructive triangulation). The guidance is clear but lacks exclusions.

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

unload_img_to_3d_modelA

Stop the local image-to-3D server, freeing VRAM and memory.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Discloses the effect ('freeing VRAM and memory'), which is beyond the absence of annotations. Simple and clear, though lacks details on idempotency or error states.

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?

Single sentence with no wasted words. Efficient and directly informative.

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?

Given the tool's simplicity (no parameters, no output schema), the description fully captures its purpose and effect. No additional context 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?

No parameters exist; schema coverage is 100% by default. Baseline of 4 applies as description correctly reflects no 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?

Clearly states the action: 'Stop the local image-to-3D server'. Verb and resource are specific, and 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?

No explicit guidance on when to use this tool versus alternatives, such as the sibling 'load_img_to_3d_model'. Usage is implied but not articulated.

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. 2 tool updatesv1.6.0
    • Changedclose_blender1 field changed
      • addedInput schema / properties / save
        Added value: +{
        +  "default": false,
        +  "title": "Save",
        +  "type": "boolean"
        +}
    • Changedload_img_to_3d_model1 field changed
      • addedInput schema / properties / timeout
        Added value: +{
        +  "default": 600,
        +  "title": "Timeout",
        +  "type": "number"
        +}
  2. 92 tool updatesv1.5.5
    • First observedadd_3point_lighting
    • First observedadd_keyframe
    • First observedadd_light
    • First observedadd_modifier
    • First observedadd_primitive
    • First observedalign_objects
    • First observedapply_modifier
    • First observedassign_material
    • First observedboolean_operation
    • First observedcapture_contact_sheet
    • First observedcapture_viewport_angle
    • First observedclose_blender
    • First observedcompare_reference_image
    • First observedcreate_camera
    • First observedcreate_collection
    • First observedcreate_material
    • First observeddelete_object
    • First observeddiff_images
    • First observeddownload_polyhaven_asset
    • First observeddownload_sketchfab_model
    • First observedduplicate_object
    • First observedexecute_blender_code
    • First observedexport_object
    • First observedextrude_faces
    • First observedfind_objects_by_type
    • First observedflip_normals
    • First observedgenerate_3d_from_image
    • First observedgenerate_hunyuan3d_model
    • First observedgenerate_hyper3d_model_via_images
    • First observedgenerate_hyper3d_model_via_text
    • First observedget_blender_status
    • First observedget_control_points
    • First observedget_edges
    • First observedget_faces
    • First observedget_hunyuan3d_status
    • First observedget_hyper3d_status
    • First observedget_mesh_stats
    • First observedget_object_info
    • First observedget_polyhaven_categories
    • First observedget_polyhaven_status
    • First observedget_scene_info
    • First observedget_sketchfab_model_preview
    • First observedget_sketchfab_status
    • First observedget_vertex_positions
    • First observedget_viewport_screenshot
    • First observedimport_file
    • First observedimport_generated_asset
    • First observedimport_generated_asset_hunyuan
    • First observedinset_faces
    • First observedjoin_objects
    • First observedload_blend
    • First observedload_img_to_3d_model
    • First observedload_texture
    • First observedmark_sharp_edges
    • First observedmeasure_distance
    • First observedmerge_vertices
    • First observedmove_object
    • First observedmove_to_collection
    • First observedparent_object
    • First observedpoll_hunyuan_job_status
    • First observedpoll_rodin_job_status
    • First observedrename_object
    • First observedrender_all_cameras
    • First observedrender_depth_map
    • First observedrender_from_camera
    • First observedrotate_object
    • First observedsave_blend
    • First observedscale_object
    • First observedsearch_polyhaven_assets
    • First observedsearch_sketchfab_models
    • First observedselect_objects
    • First observedseparate_mesh
    • First observedset_active_camera
    • First observedset_control_point
    • First observedset_edge_bevel_weight
    • First observedset_edge_crease
    • First observedset_face_material_index
    • First observedset_frame
    • First observedset_object_material_color
    • First observedset_origin
    • First observedset_render_settings
    • First observedset_smooth_shading
    • First observedset_texture
    • First observedset_vertex_position
    • First observedset_vertex_positions
    • First observedset_world_background
    • First observedsnap_to_ground
    • First observedstart_blender
    • First observedstore_reference_image
    • First observedsubdivide_mesh
    • First observedtriangulate_mesh
    • First observedunload_img_to_3d_model

TDQS

B3.2/5.0

Scored across 92 tools

Disambiguation4/5

Most tools map to a distinct resource and action, and near-identical pairs like set_vertex_position vs set_vertex_positions are clearly split into single vs batch. A few clusters around viewport capture/comparison and material/texture assignment could still be confused, but the descriptions mostly resolve the boundaries.

Naming Consistency4/5

Tool names almost universally follow a snake_case verb_noun pattern, with get/set/create/add conventions generally predictable. Minor deviations like boolean_operation being a noun phrase and the interchangeable use of create_ vs add_ prevent a perfect score.

Tool Count1/5

At 92 tools, this is an extreme MCP surface even for a broad application like Blender. The sheer number creates context bloat and selection difficulty, and several status, capture, material, and AI-generation tools could be consolidated.

Completeness4/5

The set covers a remarkably wide range of Blender workflows: object/scene CRUD, mesh topology editing, curves, materials, lighting, cameras, rendering, animation basics, file I/O, asset libraries, and AI generation. Gaps such as collection deletion/renaming, material deletion, modifier removal, and deeper animation/rigging are left to execute_blender_code, so the curated surface is not fully complete.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Connects Blender to Claude AI through the Model Context Protocol, enabling AI-assisted 3D modeling, scene creation, and manipulation through natural language commands.
    17
    2
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Connects Blender to Claude AI through the Model Context Protocol (MCP), enabling prompt-assisted 3D modeling, scene creation, and manipulation.
    17
    MIT