blend-ai
blend-ai lets you control Blender entirely through an AI assistant using natural language, providing 164 tools across 24 modules covering all major 3D workflow domains:
Scene & Object Management: Create, list, delete, and switch scenes; set scene properties (FPS, frame range, render engine, gravity, units); create primitives and specialized geometry; duplicate, rename, parent, join, and convert objects; manage visibility and origins.
Transforms: Set location, rotation (Euler/Quaternion), and scale; apply/freeze transforms; snap to grid.
Modeling & Mesh Editing: Add/apply/configure modifiers (Subdivision, Mirror, Boolean, Array, Bevel, Solidify, Decimate, Remesh, etc.); subdivide, extrude, bevel, loop cut, merge vertices, separate meshes, and bridge edge loops.
Materials & Shaders: Create, assign, delete, and duplicate materials; configure Principled BSDF properties; build full shader node graphs (add, connect, disconnect nodes); manage ColorRamp nodes; generate complete procedural materials (fire, wood, marble, etc.) in one call; generate raster textures.
Lighting & Environment: Create point, sun, spot, and area lights; configure light properties; set world background (solid color or HDRI); create pre-built light rigs (three-point, studio, rim, outdoor).
Camera: Create and configure cameras; set active camera; point cameras at objects/locations; match camera to viewport.
Animation: Insert/delete keyframes; set frame range and interpolation types; create object animation paths; clear animation data.
Rendering: Set render engine (EEVEE, Cycles, Workbench), resolution, samples, and output format; render images or full animation sequences.
Curves & Text: Create Bezier, NURBS, and path curves; add control points; convert curves to meshes; create 3D text objects.
Viewport & Utilities: Capture viewport screenshots for visual feedback; execute sandboxed Python code inside Blender; suggest relevant Blender extensions for a given task. Runs locally with zero telemetry and sandboxed execution for security.
Provides a comprehensive suite of over 100 tools to control Blender's 3D creation pipeline, enabling modeling, scene setup, material management, lighting, animation, and rendering through natural language.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@blend-aiCreate a glossy red sphere on a plane with three-point lighting"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
blend-ai
The most intuitive and efficient MCP Server for Blender. Control Blender entirely through AI assistants like Claude — create 3D models, set up scenes, animate, render, and more, all through natural language.
blend-ai goes beyond tool exposure: it guides the LLM to produce professional 3D results through expert prompts, proven workflows, visual feedback, and mesh quality analysis.
This was created via Claude Code using the Haiku model and 20 random reference images. It took 5 minutes:

Fifteen procedural materials, each built by a single create_procedural_material call. The selected ball's node graph below was generated entirely by that one call — coordinates, mapping, noise, height mask, colour ramp, and Principled BSDF, laid out and wired:

Key Features
164 tools across 24 modules covering every major Blender domain: modeling, mesh editing, materials, shader nodes, lighting, camera, animation, rendering, sculpting, UV mapping, physics, geometry nodes, rigging, curves, annotations, collections, file I/O, Bool Tool, viewport control, mesh quality analysis, and extension suggestions
12 expert prompts — topology best practices, real-world scale references, lighting principles, studio setup, character basemesh workflow, PBR material guide, auto-critique feedback loop, and more
Visual feedback loop — fast viewport screenshots via OpenGL render (~ms, not seconds) with auto-critique prompts that guide the LLM to check its own work
Mesh quality analysis — structured reports covering non-manifold edges, loose vertices, zero-area faces, duplicate vertices, and wire edges
Extension suggestions — proactively recommends Bool Tool, LoopTools, and Node Wrangler when a task would benefit from them (skips already-installed extensions)
Sandboxed code execution —
execute_blender_codeblocks dangerous imports (os,subprocess,socket, etc.) and dangerous builtins (exec,eval,open) while allowing safe Blender operationsRender-aware — automatically detects when Blender is rendering and queues commands. Recovers from stuck render guards via
load_posthandler and reset commandBlender 4.2+ compatible — ships as a Blender Extension; tested against Blender 5.1 with EEVEE identifier, Annotation API, sculpt stroke_method, SLIM UV unwrap, Raycast shader node, and EEVEE light path intensity controls
Custom port — configure the server port from the N-panel UI (default: 9876, range: 1024–65535)
Zero telemetry — no usage tracking, no analytics, no data collection. Everything runs locally on
127.0.0.1Zero-dependency addon — the Blender addon uses only Python stdlib +
bpy. Nothing to pip install inside BlenderThread-safe architecture — background TCP server with queue-based main-thread execution, TCP keepalive for stale connection detection
1190 tests — comprehensive coverage across tools, handlers, validators, prompts, and the cross-platform installer (ubuntu/macos/windows × py3.11/3.13 in CI)
Related MCP server: BlenderMCP
Quickstart
1. Install the MCP server
git clone https://github.com/HoldMyBeer-gg/blend-ai.git
cd blend-ai
uv pip install -e .2. Install the Blender addon
Download the latest addon zip from GitHub Releases
Open Blender 4.2 or later
Go to Edit > Preferences > Get Extensions, click the dropdown (▾) top-right, and choose Install from Disk...
Select the downloaded
.zipfileEnable "blend-ai" in the extensions list
Blender 4.0 / 4.1 users: Not supported. blend-ai ships as a Blender Extension, which requires Blender 4.2 (LTS) or later. Please upgrade Blender from blender.org/download.
If you're developing on blend-ai, symlink the addon folder into Blender's user extensions directory instead. Replace <ver> with your Blender version (e.g. 4.2, 5.1).
# macOS
ln -s "$(pwd)/addon" ~/Library/Application\ Support/Blender/<ver>/extensions/user_default/blend_ai
# Linux
ln -s "$(pwd)/addon" ~/.config/blender/<ver>/extensions/user_default/blend_ai
# Windows (run as admin)
mklink /D "%APPDATA%\Blender Foundation\Blender\<ver>\extensions\user_default\blend_ai" "%cd%\addon"Then enable the extension in Blender preferences under Get Extensions > User.
blend-ai ships as a Blender Extension (blender_manifest.toml), installed under Edit > Preferences > Get Extensions. Python caches imported modules, so replacing files in-place without a restart can leave stale handlers registered.
If the server is running, open the N-panel blend-ai tab and click Stop Server.
In Blender, open Edit > Preferences > Get Extensions, find blend-ai, and click Uninstall.
Quit and restart Blender (this clears cached
blend_aimodules).Install the new
.zipvia the ▾ > Install from Disk... menu and enable it.
For the developer symlink install, upgrading is just git pull followed by a full Blender restart — do not rely on reloading scripts, because the background TCP server thread survives reloads.
3. Start the server in Blender
In Blender's 3D Viewport, open the N-panel (press N), find the blend-ai tab. Set your preferred port (default: 9876), then click Start Server.
4. Connect your AI assistant
claude mcp add blend-ai -- uv run --directory /path/to/blend-ai blend-aiReplace /path/to/blend-ai with the actual path to your clone. Make sure Blender is running with the addon server started before using the tools.
Usage:
$ claude
> Create a red metallic sphere on a white plane with three-point lighting
> Add a subdivision surface modifier to the sphere and set it to level 3
> Analyze the mesh quality of the sphere and fix any issues
> Set up a turntable animation and render it to /tmp/turntable/Add blend-ai to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"blend-ai": {
"command": "uv",
"args": ["run", "--directory", "/path/to/blend-ai", "blend-ai"]
}
}
}Replace /path/to/blend-ai with the actual path to your clone.
Restart Claude Desktop. The Blender tools will appear in the tool list.
blend-ai is a standard MCP server using stdio transport. Any MCP-compatible client can connect by running the server directly:
uv run --directory /path/to/blend-ai blend-ai
# or: python -m blend_ai.serverThe exact config location and format vary by client (typically JSON or TOML under ~/.<client>/). The command is uv and the args are ["run", "--directory", "/path/to/blend-ai", "blend-ai"].
The server communicates over stdin/stdout using the MCP protocol. It connects to Blender's addon over TCP on 127.0.0.1:9876 (or your configured port).
Expert Guidance
blend-ai includes 12 MCP prompts that guide the LLM toward professional-quality results:
Prompt | What It Teaches |
| Bool Tool preference, mesh editing patterns, modifier workflow |
| Quad topology, edge flow, poles, n-gon cleanup, face density |
| Real-world dimensions for 8 common objects, unit system setup |
| Three-point lighting, HDRI, EEVEE vs Cycles, color temperature |
| 6-step studio lighting workflow with specific energy values |
| 7-step character base mesh from cube with mirror + subdivision |
| PBR materials, Principled BSDF recipes, texture color spaces |
| Visual feedback loop — when to screenshot, what to check, token budget |
| Professional product shot setup guide |
| Character modeling guide |
| Scene organization workflow |
| Turntable animation setup |
Tool Domains
Domain | Tools | Highlights |
Scene | 6 | Get scene info, set frame range, manage scenes, suggest helpful extensions |
Objects | 14 | Create primitives, duplicate, parent, join, visibility, origin, convert, auto-smooth |
Transforms | 6 | Position, rotation (euler/quat), scale, apply, snap |
Modeling | 13 | Modifiers, booleans, subdivide, extrude, bevel, loop cut, bridge edge loops |
Mesh Editing | 16 | Inset, fill, grid fill, mark seam/sharp, normals, dissolve, knife project, spin, crease |
Mesh Quality | 1 | Analyze mesh defects: non-manifold, loose verts, zero-area faces, duplicates |
Bool Tool | 4 | Auto union, difference, intersect, slice (via Blender's Bool Tool addon) |
Materials | 15 | Principled BSDF, textures, blend modes, shader node graph (add/connect/remove nodes, including 5.1 Raycast node) |
Lighting | 7 | Point/sun/spot/area lights, HDRIs, light rigs, shadows |
Camera | 6 | Create, aim, DOF, viewport capture, active camera |
Animation | 8 | Keyframes, interpolation, frame range, follow path |
Rendering | 7 | Engine, resolution, samples, output format, render, EEVEE light path intensity |
Curves | 10 | Bezier/NURBS/path, 3D text, convert, reverse, handle types, cyclic, subdivide |
Sculpting | 8 | Brushes, remesh, multires, symmetry, dynamic topology, stroke_method |
UV Mapping | 4 | Smart project, unwrap (ANGLE_BASED, CONFORMAL, SLIM), projection, pack islands |
Physics | 9 | Rigid body, cloth, fluid, particles (velocity, rendering, delete), bake |
Geometry Nodes | 5 | Create node trees, add/connect nodes, set inputs |
Armature | 6 | Bones, constraints, auto weights, pose |
Annotations | 5 | Annotation layers and strokes (5.1 Annotation API) |
Collections | 4 | Create, move objects, visibility, delete |
File I/O | 5 | Import/export (FBX, OBJ, glTF, USD, STL...), save/open |
Viewport | 3 | Shading mode, overlays, focus on object |
Screenshot | 1 | Fast viewport capture (OpenGL) or full render, base64 output |
Code Exec | 1 | Sandboxed Python execution in Blender (dangerous imports blocked) |
Architecture
AI Assistant <--stdio/MCP--> blend-ai server <--TCP socket--> Blender addon <--bpy--> BlenderMCP Server (
src/blend_ai/): Python process using themcpSDK. Exposes tools, resources, and prompts over stdio. Validates all inputs before forwarding to Blender.Blender Addon (
addon/): Runs a TCP socket server inside Blender on a background thread. Commands are queued and executed on the main thread viabpy.app.timersto respect Blender's threading model.Render Guard: Tracks render state via
bpy.app.handlers. During renders, the server immediately returns a "busy" status. Automatically recovers from crashed renders viaload_posthandler. Can be force-reset via MCP command.Protocol: Length-prefixed JSON messages over TCP with SO_KEEPALIVE for stale connection detection. Each message is a 4-byte big-endian length header followed by a UTF-8 JSON payload.
Privacy & Security
Zero telemetry — blend-ai collects no usage data, sends no analytics, and makes no network requests beyond the local TCP connection to Blender.
Fully local — all communication stays on your machine. No cloud services, no external APIs, no phone-home behavior.
Open source — the entire codebase is auditable. What you see is what runs.
Localhost only: The TCP socket binds to
127.0.0.1— never exposed to the network.Sandboxed code execution:
execute_blender_codeblocks 25 dangerous imports (os,subprocess,socket,shutil,sys,ctypes,importlib,pathlib,signal,multiprocessing,pickle,shelve,tempfile,http,urllib,ftplib,smtplib,xmlrpc,code,codeop,compileall,webbrowser,antigravity,turtle,tkinter) and removes dangerous builtins (__import__,exec,eval,compile,open,globals,locals,vars,input,breakpoint,exit,quit,help,memoryview). Safe Blender imports (bpy,bmesh,mathutils,math,json) are allowed.Input validation: All inputs pass through validators before reaching Blender — name sanitization, path traversal prevention, numeric range checks, enum allowlists.
File safety: Import operations disable
use_scripts_auto_executeto prevent script injection from imported files. File extensions are checked against allowlists.Command allowlist: The addon dispatcher only processes explicitly registered commands. Unknown commands are rejected.
Shader node allowlist: Only 64 known shader node types can be created — prevents arbitrary type injection.
Limitations
Blender must be running: The MCP server communicates with Blender over TCP. Blender must be open with the addon enabled and server started.
Single connection: The addon accepts one client connection at a time. Multiple AI assistants cannot control the same Blender instance simultaneously.
Selection is all-or-nothing: Most mesh editing tools operate on all geometry. Fine-grained vertex/edge/face selection by index is not yet exposed, though
select_linkedis available.Sculpt strokes cannot be simulated: You can configure brushes, symmetry, dyntopo, and remeshing, but actual brush strokes are not yet exposed.
Node graphs require sequential calls: Both shader node trees and geometry node trees must be built one node/connection at a time.
No undo integration: Operations appear in Blender's undo history individually but there's no MCP-level undo/redo or transaction grouping.
Viewport capture requires a visible 3D viewport: Headless Blender may not support viewport screenshots.
No real-time feedback: The MCP protocol is request/response. There's no streaming of viewport updates or render progress.
Development
# Install with dev dependencies
uv pip install -e ".[dev]"
# Run tests (1190 tests)
uv run --extra dev pytest
# Run tests with coverage
uv run --extra dev pytest --cov=blend_ai
# Lint
ruff check src/ tests/
# Format
ruff format src/ tests/blend-ai/
├── src/blend_ai/ # MCP server
│ ├── server.py # FastMCP entry point
│ ├── connection.py # TCP client to Blender (with busy-retry)
│ ├── validators.py # Input validation
│ ├── tools/ # 24 tool modules (164 tools)
│ ├── resources/ # MCP resources (scene, objects, materials)
│ └── prompts/ # 12 expert prompt templates
├── addon/ # Blender addon (zero external deps)
│ ├── blender_manifest.toml # Blender 4.2+ Extension manifest
│ ├── __init__.py # bl_info (legacy fallback) + register/unregister
│ ├── server.py # TCP socket server (SO_KEEPALIVE)
│ ├── dispatcher.py # Command routing + allowlist
│ ├── thread_safety.py # Main-thread execution queue
│ ├── render_guard.py # Render state tracking + crash recovery
│ ├── ui_panel.py # N-panel UI (start/stop + port config)
│ └── handlers/ # 23 handler modules
└── tests/ # 1186 unit testsLicense
AGPL-3.0-or-later. See LICENSE.
Copyright © 2026 jabberwock.
Available Tools
175 toolsadd_annotation_layerA
Add a layer to an annotation.
Layers organize annotation strokes. Each layer can have its own blend mode, opacity, and color.
Args: annotation_name: Name of the annotation data block. layer_name: Name for the new layer.
Returns: Confirmation dict with annotation and layer names.
| Name | Required | Description | Default |
|---|---|---|---|
| layer_name | Yes | ||
| annotation_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral disclosure burden. It mentions the return type but lacks details on prerequisites (e.g., annotation must exist), side effects, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, includes structured Args and Returns sections, and front-loads the primary purpose without extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is fairly complete, covering purpose, parameters, and return value. However, it could mention that the annotation must exist before adding a layer, given the context of sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema coverage, the description adds clear parameter descriptions ('Name of the annotation data block', 'Name for the new layer'), compensating for the schema's lack of detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add a layer to an annotation') and the resource, distinguishing it from sibling tools like add_annotation_stroke and remove_annotation_layer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the role of layers but does not provide explicit guidance on when to use this tool versus alternatives, such as add_annotation_stroke.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_annotation_strokeA
Add a stroke to an annotation layer.
Creates a new stroke with the given points on the specified layer. Note: AnnotationStroke does not support per-point strength/opacity.
Args: annotation_name: Name of the annotation data block. layer_name: Name of the layer to add the stroke to. points: List of XYZ coordinates, e.g. [[0,0,0], [1,1,0], [2,0,0]]. Maximum 10000 points. pressure: Pen pressure for all points. Range: 0.0-1.0.
Returns: Confirmation dict with point count.
| Name | Required | Description | Default |
|---|---|---|---|
| points | Yes | ||
| pressure | No | ||
| layer_name | Yes | ||
| annotation_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries burden. Discloses new stroke creation, lack of per-point strength/opacity, max 10000 points, pressure range, and return type. Lacks mention of appending behavior or error handling, but sufficient for basic understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured: purpose statement, note, parameter list, return type. Each sentence serves a purpose, no fluff. Front-loaded with primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers parameters, return, and key behavioral notes. Lacks error conditions (e.g., missing layer or invalid points) and does not confirm append vs. overwrite behaviour. Output schema exists but not provided; still, description sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, description fully compensates by explaining each parameter: annotation_name (data block name), layer_name (target layer), points (XYZ list with example and limit), pressure (range). Adds essential meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it adds a stroke to an annotation layer, creating a new stroke with points. Distinguishes from siblings like add_annotation_layer (layer) and set_annotation_stroke_property (modify).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage from name and description, but no explicit when-to-use or alternatives guidance. Could mention when to use this vs. add_annotation_layer or set_annotation_stroke_property.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_boneA
Add a bone to an armature. Enters edit mode automatically.
Args: armature_name: Name of the armature object. bone_name: Name for the new bone. head: XYZ position of the bone head (root). Defaults to (0, 0, 0). tail: XYZ position of the bone tail (tip). Defaults to (0, 0, 1). parent_bone: Optional name of the parent bone for hierarchy.
Returns: Dict with the created bone's name, head, and tail positions.
| Name | Required | Description | Default |
|---|---|---|---|
| head | No | ||
| tail | No | ||
| bone_name | Yes | ||
| parent_bone | No | ||
| armature_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses automatic edit mode entry and return value format. No annotations exist, so description bears full burden; it provides key behavioral context beyond the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Opening sentence clearly states purpose. Args/Returns structure is efficient, though including default values inline adds slight verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all main aspects: action, parameters, automatic behavior, and return value. Could mention error cases (e.g., armature not found) but is adequate for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning beyond schema: describes armature_name, bone_name, head/tail as XYZ positions, and parent_bone as optional. Compensates for 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it adds a bone to an armature and automatically enters edit mode. This distinguishes it from other add_* tools (e.g., add_modifier, add_constraint) which operate on different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for adding bones to armatures but lacks explicit guidance on when to use versus alternatives, prerequisites (e.g., armature must exist), or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_cloth_simB
Add a cloth physics simulation to an object.
Args: object_name: Name of the mesh object. quality: Simulation quality steps (1-80). mass: Mass of the cloth in kg.
Returns: Confirmation dict with cloth settings.
| Name | Required | Description | Default |
|---|---|---|---|
| mass | No | ||
| quality | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral context. It only mentions adding simulation, with no details on side effects, prerequisites (e.g., object must be a mesh), or potential failures. The return type is vague ('confirmation dict').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is short and to the point: one sentence for purpose followed by parameter descriptions. No excess words, though structure could front-load the purpose more clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool performs a complex operation (cloth simulation) but lacks details on object requirements, behavior if conditions fail, or comprehensive return information. Output schema is present but not shown, and return description is minimal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description compensates by naming parameters and providing brief explanations: object_name as mesh object, quality with range (1-80), and mass in kg. This adds 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Add a cloth physics simulation to an object', using a specific verb and resource. It distinguishes from sibling tools like add_fluid_sim and add_rigid_body.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Siblings include many simulation and physics-related tools, but the description offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_color_ramp_elementA
Add a colour stop to a ColorRamp (ShaderNodeValToRGB) node.
A new ramp starts with two stops, black at 0.0 and white at 1.0. Add stops to shape a gradient: fire needs dark red, orange, yellow, white bunched toward the top; rust needs a hard break between metal and oxide.
Args: material_name: Name of the material. node_name: Name of the ColorRamp node. position: Stop position along the ramp, 0.0 to 1.0. color: RGB or RGBA color, components 0.0 to 1.0. RGB gains alpha 1.0.
Returns: Dict with the new element's index, position, and color.
| Name | Required | Description | Default |
|---|---|---|---|
| color | Yes | ||
| position | Yes | ||
| node_name | Yes | ||
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explains the default stops (black at 0.0, white at 1.0) and the bounds for position and color. It does not mention potential limits or side effects, but for a non-destructive add operation, the transparency is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured but slightly verbose with the fire and rust examples. However, these examples are illustrative and not wasteful. Parameters are clearly listed with their meanings, and the return type is specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description covers all necessary aspects: purpose, parameter details, usage context, and return value. No gaps remain for the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since schema description coverage is 0%, the description fully compensates by explaining all four parameters: material_name, node_name, position (range 0-1), and color (RGB or RGBA, components 0-1, RGBA gains alpha 1.0). This adds critical meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a colour stop to a ColorRamp node, uses specific verb 'Add', and distinguishes from sibling tools like remove_color_ramp_element and set_color_ramp_element by focusing on the addition action. Examples (fire, rust) reinforce the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (shaping gradients by adding stops) and gives practical examples. It does not explicitly mention when not to use or alternatives, but the purpose is clear enough that an agent can infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_constraintA
Add a constraint to an object or bone.
Args: object_name: Name of the object (armature for bone constraints). bone_name: Name of the bone (empty string for object-level constraints). constraint_type: Constraint type. One of: IK, COPY_ROTATION, COPY_LOCATION, COPY_SCALE, COPY_TRANSFORMS, TRACK_TO, DAMPED_TRACK, LOCKED_TRACK, LIMIT_ROTATION, LIMIT_LOCATION, LIMIT_SCALE, STRETCH_TO, FLOOR, CLAMP_TO, TRANSFORM, MAINTAIN_VOLUME, CHILD_OF, PIVOT, ARMATURE. properties: Optional dict of constraint properties to set (e.g., target, subtarget, chain_count, influence, etc.).
Returns: Dict with the created constraint's name and type.
| Name | Required | Description | Default |
|---|---|---|---|
| bone_name | No | ||
| properties | No | ||
| object_name | Yes | ||
| constraint_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should fully disclose behavioral traits. It does not mention side effects, required permissions, or failure modes. The return value is described, but the tool's impact on the scene is not clarified beyond creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise but includes a helpful list of constraint types. It front-loads the purpose and then details parameters. Minor redundancy in specifying 'empty string for object-level constraints' could be integrated more succinctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers core functionality and return value (output schema exists). However, it omits error handling, prerequisites (e.g., object must exist), or behavioral details like whether constraints can be added multiple times. For a tool with 4 parameters and no annotations, more context would improve usability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema coverage, the description thoroughly explains each parameter: object_name, bone_name, constraint_type with a list of valid values, and properties as an optional dict. This adds significant meaning beyond the schema property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Add') and identifies the resource ('constraint to an object or bone'). It lists constraint types and distinguishes between object-level and bone constraints, setting it apart from siblings like add_modifier or add_bone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use object_name vs bone_name (e.g., 'Name of the object (armature for bone constraints)') and notes the bone_name default. However, it does not explicitly state when not to use this tool or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_curve_pointA
Add a control point to an existing curve.
Args: curve_name: Name of the curve object to add a point to. location: 3D location for the new point as (x, y, z). handle_type: Handle type - AUTO, VECTOR, ALIGNED, or FREE.
Returns: Dict with curve name and new point count.
| Name | Required | Description | Default |
|---|---|---|---|
| location | No | ||
| curve_name | Yes | ||
| handle_type | No | AUTO |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully shoulders the burden of behavioral disclosure. It notes the return value (dict with curve name and point count) but fails to disclose crucial traits such as validation of location, effect on existing points, undo behavior, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph with clear 'Args:' and 'Returns:' sections. It is concise with no superfluous words, though a more structured format (e.g., bullet points) could enhance readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (context signals), the description need not detail return values. However, it omits prerequisites (curve must exist prior to calling) and potential side effects (e.g., modification of the curve object). This leaves gaps for an AI agent to safely invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds meaningful context: location is described as '3D location for the new point as (x, y, z)' and handle_type lists the options (AUTO, VECTOR, ALIGNED, FREE). This compensates for the barren schema, though defaults from the schema are not reiterated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Add a control point to an existing curve,' specifying the verb 'add' and the resource 'control point' on a curve. This distinguishes it from sibling tools like 'create_curve' (create new) and 'set_curve_property' (modify existing properties).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides parameter details but lacks explicit guidance on when to use this tool versus alternatives. For example, it does not mention prerequisites (curve must exist) or when not to use (e.g., for modifying existing points, use set_handle_type). 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.
add_fluid_simA
Add a fluid physics simulation to an object.
Args: object_name: Name of the object. type: Fluid type - DOMAIN (container), FLOW (emitter), or EFFECTOR (obstacle). domain_type: Domain simulation type - GAS (smoke/fire) or LIQUID. Only used when type is DOMAIN.
Returns: Confirmation dict with fluid settings.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | DOMAIN | |
| domain_type | No | GAS | |
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full burden. It does not disclose behavioral traits like whether it replaces existing fluid sim, the nature of side effects, or required permissions. The return value is vaguely described as a confirmation dict.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: one sentence upfront, followed by a bulleted parameter list. No wasted words; every sentence adds value. Front-loads the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters and no annotations, the description covers parameter semantics and return type. However, it lacks details on prerequisites (e.g., object must be a mesh) and expected results. The presence of an output schema reduces burden, but the confirmation dict is not elaborated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining all three parameters: object_name as the object name, type with enumerated fluid roles, and domain_type with optional logic. It clarifies conditional use of domain_type, adding meaning beyond the schema's bare defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a fluid physics simulation to an object. The verb 'add' and resource 'fluid physics simulation to an object' are specific. It distinguishes from siblings like add_cloth_sim or add_particle_system by targeting fluid simulation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No scenarios or prerequisites are mentioned, such as what object types are valid or effects of reapplication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_geometry_nodeA
Add a node to a geometry nodes modifier's node group.
Args: modifier_name: Name of the geometry nodes modifier (used to find the node group). node_type: Blender node type identifier, e.g. GeometryNodeMeshCube, GeometryNodeSetPosition, GeometryNodeTransform, ShaderNodeMath, GeometryNodeJoinGeometry, etc. location: XY position for the node in the node editor. Defaults to (0, 0).
Returns: Dict with the created node's name and type.
| Name | Required | Description | Default |
|---|---|---|---|
| location | No | ||
| node_type | Yes | ||
| modifier_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states the action (add) and return value but does not mention side effects, permissions, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear header, Args, and Returns sections. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple function (add a node) and an output schema. The description covers the return value (dict with name and type) and the parameters adequately, making it complete for this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 0%, so the description compensates by explaining each parameter: modifier_name finds the node group, node_type provides examples, location specifies XY position. Good detail for selecting and invoking.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Add' and the resource 'a node to a geometry nodes modifier's node group'. It distinguishes from sibling tools like add_shader_node and add_texture_node by specifying geometry nodes specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for geometry nodes modifiers but does not explicitly state when to use this tool over alternatives or any prerequisites. No exclusion criteria are given.
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 a mesh object (non-destructive workflow).
TIP: For BOOLEAN type, consider using booltool_auto_union/difference/intersect/slice instead — they apply the boolean immediately and handle cutter cleanup automatically. Only use add_modifier with BOOLEAN when you want a non-destructive modifier stack.
Args: object_name: Name of the object to add the modifier to. modifier_type: Type of modifier. Must be one of: SUBSURF, MIRROR, ARRAY, BEVEL, BOOLEAN, SOLIDIFY, DECIMATE, REMESH, WIREFRAME, SHRINKWRAP, SMOOTH, EDGE_SPLIT, TRIANGULATE, WEIGHTED_NORMAL, SIMPLE_DEFORM, LATTICE, CURVE, CAST, WAVE, DISPLACE, SCREW, SKIN, MASK, WELD, CORRECTIVE_SMOOTH, LAPLACIAN_SMOOTH, SURFACE_DEFORM, MESH_DEFORM, HOOK. name: Optional custom name for the modifier.
Returns: Confirmation dict with modifier details.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| object_name | Yes | ||
| modifier_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description states 'non-destructive workflow' and returns a confirmation dict, but does not detail side effects, prerequisites, or what happens on failure. It offers basic behavioral transparency 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-line summary, a TIP paragraph, parameter descriptions, and return info. Every sentence adds value, and the main purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and the presence of an output schema, the description covers key aspects: core function, parameters, return type, and usage guidance for a specific case. It could mention error handling or object existence prerequisites, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must add meaning. It describes object_name, modifier_type (with list of valid types), and name (optional custom name). This adds value beyond the schema, though it could specify formatting constraints for modifier_type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Add a modifier to a mesh object (non-destructive workflow).' It specifies the action (add), resource (modifier to mesh object), and differentiates from sibling tools like booltool_auto_* which handle boolean modifiers immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a TIP that guides when to use add_modifier vs booltool_auto_* for BOOLEAN type, explicitly stating 'Only use add_modifier with BOOLEAN when you want a non-destructive modifier stack.' This provides clear context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_multires_modifierB
Add a Multiresolution modifier for sculpting detail.
Args: object_name: Name of the mesh object. levels: Number of subdivision levels to add (1-6).
Returns: Dict with object name and modifier info.
| Name | Required | Description | Default |
|---|---|---|---|
| levels | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the tool's effect (adds multiresolution modifier for sculpting) but lacks disclosure of behavioral traits such as increased vertex count, potential performance impact, or that the operation is destructive. No annotations provided to offset this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise docstring with front-loaded purpose. Parameter section is succinct but adds little beyond schema. No wasted sentences, though could be more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing usage context (required mode, mesh requirement) and does not guide selection among sibling modifier tools. Output schema exists but return values are not elaborated; description is minimal for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must add meaning. The description provides range for 'levels' (1-6) but repeats schema info for 'object_name'. Fails to mention default value (2) or any validation beyond range.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (Add), resource (Multiresolution modifier), and purpose (for sculpting detail). The verb+resource combination distinguishes it from generic siblings 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.
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_modifier', or what prerequisites exist (e.g., must be in object mode, mesh must be selected). Missing exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_particle_systemA
Add a particle system to an object.
Args: object_name: Name of the mesh object. count: Number of particles (max 1000000). lifetime: Particle lifetime in frames. emit_from: Emission source - VERT, FACE, or VOLUME.
Returns: Confirmation dict with particle system settings.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| lifetime | No | ||
| emit_from | No | FACE | |
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the mutation (adds a system), return type, and some constraints (max count, emission source options). But it omits behavioral details like whether it overwrites existing systems, required object mode, or failure conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with no extraneous words. It uses a clear list format for parameters and a separate line for returns, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, no output schema), the description covers key aspects: add particle system to mesh, parameter explanations, return type. It lacks prerequisites (e.g., object mode) and does not clarify behavior if the object already has a particle system.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must define parameters. It explains object_name as 'mesh object', count with max 1000000, lifetime in frames, and emit_from with allowed values (VERT, FACE, VOLUME). This adds significant meaning beyond schema titles and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add') and the resource ('particle system to an object'), specifying the target object type ('mesh object'). It distinctly differentiates from siblings like delete_particle_system and set_particle_rendering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool (adding a particle system) and includes constraints like maximum count and emission source types. However, it does not explicitly state when not to use alternatives such as modification tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_rigid_bodyA
Add a rigid body physics simulation to an object.
Args: object_name: Name of the object. type: Rigid body type - ACTIVE (affected by physics) or PASSIVE (static collider). mass: Mass of the object in kg. friction: Surface friction coefficient (0.0-1.0). restitution: Bounciness (0.0-1.0).
Returns: Confirmation dict with rigid body settings.
| Name | Required | Description | Default |
|---|---|---|---|
| mass | No | ||
| type | No | ACTIVE | |
| friction | No | ||
| object_name | Yes | ||
| restitution | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description partially covers behavior by explaining ACTIVE vs PASSIVE types and parameter ranges, but fails to mention side effects like replacing existing physics, object type requirements, or performance implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with Args and Returns sections, each sentence is informative, and there is no redundant information. Could be slightly more concise by omitting the Return line if output schema is provided, but still effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers parameters and return intent, it lacks mention of prerequisites (e.g., object must exist and be selected), potential errors, or interaction with other physics systems. The return value is only vaguely described as a 'confirmation dict'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining each parameter with purpose, units (kg, coefficient), and valid range (0.0-1.0 for friction and restitution), adding significant value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Add' and the resource 'rigid body physics simulation to an object', making it distinct from sibling tools like add_cloth_sim or add_fluid_sim.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool over alternatives; the description does not mention prerequisites or scenarios, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_shader_nodeA
Add a shader node to a material's node tree.
Args: material_name: Name of the material. node_type: Blender shader node type (e.g. ShaderNodeBsdfPrincipled). location: Node location as [x, y], default [0, 0].
Returns: Dict with material, node_name, and node_type.
| Name | Required | Description | Default |
|---|---|---|---|
| location | No | ||
| node_type | Yes | ||
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the function and return value but does not disclose potential side effects, error conditions, or prerequisites (e.g., material must exist). With no annotations, the burden is on the description, and it 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a concise docstring with clear purpose, Args, and Returns sections. It is front-loaded and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers input parameters and return value, and there is an output schema. However, it does not mention prerequisites or connection to sibling tools, leaving minor gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description fully explains each parameter in the Args section, including type, default, and an example for node_type. This adds substantial meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Add a shader node to a material's node tree,' specifying the verb (add), resource (shader node), and target (material's node tree). This distinguishes it from siblings like add_geometry_node or add_texture_node.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives like connect_shader_nodes or set_material_property. It lacks explicit context for usage scenarios or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_texture_nodeA
Add an image texture node to a material and connect it to the Principled BSDF Base Color.
Args: material_name: Name of the material. image_path: Absolute path to the image file. Must exist on disk. label: Label for the texture node, default "Image Texture".
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Image Texture | |
| image_path | Yes | ||
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states that the node is added and connected, but does not disclose whether existing nodes are overwritten, if the material must already exist, or other side effects. Missing important behavioral context for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise: one sentence for the action, followed by a clear Args list. No redundant information, front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given tool simplicity and presence of output schema, the description covers the main points but lacks mention of prerequisites (e.g., material must exist) and behavior if node already exists. Adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds specific meaning to parameters beyond the schema: material_name is name of material, image_path must be absolute and exist on disk, label defaults to 'Image Texture'. Schema coverage is 0%, so description compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Add' and the resource 'image texture node', and specifies it connects to Principled BSDF Base Color. This distinguishes it from generic siblings like 'add_shader_node' and provides a specific action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you want to add an image texture node, but it does not explicitly state when to use this tool versus alternatives (e.g., add_shader_node for other node types). No guidance on prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_mesh_qualityA
Analyze mesh topology quality and return a structured defect report.
Checks for non-manifold edges, loose vertices, zero-area faces, duplicate vertices, and wire edges. Returns counts and sample indices (capped at 50 per category) for each defect type.
Args: object_name: Name of the mesh object to analyze.
Returns: Dict with vertex/edge/face counts, defect counts and sample indices, and an issues_found boolean.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully bears the burden. It lists the checks performed and mentions return details (counts, sample indices capped at 50). It does not explicitly state it is read-only or describe side effects, but the analysis nature is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with an intro, list of checks, return info, and Args. It is concise but could be slightly more streamlined without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema exists), the description adequately covers what it does and returns. It does not mention error conditions or performance, but overall is complete for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, object_name, is explained in the Args section as 'Name of the mesh object to analyze.' This adds clear meaning beyond the schema's title and type, compensating for 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it analyzes mesh topology quality and returns a structured defect report, listing specific defect types (non-manifold edges, loose vertices, etc.). This is specific and distinguishes it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for mesh quality checking but does not explicitly state when to use this tool versus alternatives or provide any exclusions. No alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_modifierC
Apply a modifier to an object, making its effect permanent.
Args: object_name: Name of the object. modifier_name: Name of the modifier to apply.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| modifier_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It mentions 'making its effect permanent', implying a destructive or irreversible action, but does not clarify side effects like whether the modifier is removed after application or if the original object data is altered permanently.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and efficiently conveys the core action, including a note on return type. However, it could be more concise by removing the docstring format, but overall it is well-structured with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, but the description does not provide enough context about error conditions, prerequisites (e.g., modifier and object must exist), or what happens if the modifier is already applied. The minimal description leaves many gaps for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 2 string parameters with no descriptions (0% coverage). The description only restates the parameter names without adding any meaning, constraints, or examples. It fails to compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'apply' and the resource 'modifier to an object' with the specific outcome 'making its effect permanent'. It distinguishes from sibling tools like 'add_modifier' which adds a modifier without applying it permanently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'add_modifier' or 'remove_modifier'. There is no mention of prerequisites or conditions for applying a modifier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_transformsA
Apply (freeze) transforms on an object, making current transforms the new basis.
Args: name: Name of the object. location: Apply location transform. Defaults to True. rotation: Apply rotation transform. Defaults to True. scale: Apply scale transform. Defaults to True.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| scale | No | ||
| location | No | ||
| rotation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the full burden. It only states that transforms are applied/frozen, without disclosing side effects like irreversibility, impact on child objects, constraints, or animation data. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a one-line summary followed by a clean parameter list. Every sentence is informative, with no redundancy or filler. It is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the core operation and parameters, and the output schema is noted. However, it lacks essential operational context such as required object mode, effect on animation, undo capability, and prerequisites. This makes it adequate but not fully complete for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, requiring the description to compensate. The docstring clearly explains each parameter's purpose (e.g., 'location: Apply location transform.') and defaults. This adds meaningful context beyond schema titles and default values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Apply (freeze) transforms on an object, making current transforms the new basis.' It uses a specific verb ('apply/freeze') and resource ('object transforms'), distinguishing it from sibling tools like 'set_location' or 'apply_modifier'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternatives such as 'set_location' or 'apply_modifier'. It does not mention prerequisites, modes, or typical use cases, leaving the agent without context for proper invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assign_materialC
Assign a material to an object.
Args: object_name: Name of the target object. material_name: Name of the material to assign.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It only mentions returning a confirmation dict, but does not clarify whether the material replaces existing ones, adds to a slot, or modifies the object's material list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, using a standard docstring format. However, for a simple tool it is acceptable but not highly informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (inferred from context signals), the description could rely on it, but still lacks details on prerequisites, side effects, or error scenarios. Many sibling tools exist but no comparative context is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only adds minimal phrasing ('Name of the target object', 'Name of the material to assign') which is already implied by the schema titles. Without compensation, the description fails to enrich parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('assign') and identifies both resource ('material') and target ('object'), clearly distinguishing it from sibling tools like 'create_material' or 'set_material_color'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on prerequisites, when to use vs alternatives, or conditions that might cause failure (e.g., material or object does not exist). The description simply states the action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bake_physicsB
Bake a physics simulation for an object.
Args: object_name: Name of the object with physics. physics_type: Optional physics type to bake. If empty, bakes all physics on the object.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| physics_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It does not mention if baking is destructive, whether it modifies the object permanently, or if prior physics setup is required. The return 'Confirmation dict' is vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the main action. Parameter descriptions follow a clear format. It could be more concise but is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a baking tool, the description lacks context about prerequisites (e.g., object must have a physics simulation), effects (e.g., creates keyframes), and error states. The output schema exists but the description doesn't leverage it. Overall, minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description adds meaning. It explains object_name as 'Name of the object with physics' and physics_type with default behavior ('if empty, bakes all physics'), providing context beyond the schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Bake a physics simulation for an object', which is a specific verb+resource. It distinguishes from sibling tools like set_physics_property or add_rigid_body by focusing on the bake action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description solely states what it does without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bevel_edgesA
Bevel all edges of a mesh.
Args: object_name: Name of the mesh object. width: Bevel width. segments: Number of bevel segments. Range: 1-100.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | ||
| segments | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it bevels all edges and returns a confirmation dict. Without annotations, it provides core behavior but lacks details about failure conditions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: one-line action followed by a bulleted list of parameters. No unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers parameters and return value. However, missing context such as whether the object must be in edit mode or if it works on multiple objects. Generally adequate for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning beyond schema by describing each parameter and providing a range for 'segments' (1-100). Schema coverage is 0%, so the description compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Bevel all edges of a mesh') and the resource (edges of a mesh), which is distinct from sibling tools like subdivide_mesh or dissolve_edges.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, nor any prerequisites or context (e.g., requires edit mode or existing mesh).
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 objects using a modifier.
NOTE: For destructive booleans, prefer the booltool_auto_* tools instead (booltool_auto_union, booltool_auto_difference, booltool_auto_intersect, booltool_auto_slice). They handle selection and cutter cleanup automatically. Use this tool only when you need a non-destructive boolean modifier workflow.
Args: object_name: Name of the object to apply the boolean to. target_name: Name of the target/cutter object. operation: Boolean operation type. One of: UNION, DIFFERENCE, INTERSECT.
Returns: Confirmation dict with operation details.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | No | DIFFERENCE | |
| object_name | Yes | ||
| target_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses non-destructive nature and that auto tools handle cleanup, but does not detail modifier stack behavior or selection implications. No annotations, so description carries burden; still informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two well-structured paragraphs: purpose and usage note first, then parameter list. No redundant sentences, front-loaded with key info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, when to use, parameters, and return type. Output schema exists, so return details are sufficient. Complete for a tool with 3 params and no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has no descriptions (0% coverage). Description adds full semantics for all 3 parameters: object_name, target_name, operation with valid values. Adds significant meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it performs a boolean operation using a modifier, specifying verb and resource. Differentiates from sibling booltool_auto_* tools by noting they handle destructive booleans.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use this tool (non-destructive modifier workflow) and when to use alternatives (destructive booleans: use booltool_auto_* tools). Provides clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
booltool_auto_differenceA
Auto boolean difference: subtract the target object from the main object.
The target object is used as a cutter and removed after the operation.
Uses Bool Tool extension if installed, otherwise falls back to native boolean modifier (a warning will be included in the response).
Args: object_name: Name of the object to cut from. target_name: Name of the cutter object (will be removed).
Returns: Confirmation dict with operation details. May include a 'warning' field if Bool Tool is not available and native fallback was used.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| target_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behaviors: the target object is removed after the operation, and it falls back to native boolean modifier if the Bool Tool extension is not installed, with a warning in the response. This adds context beyond the operation itself. However, it does not mention potential 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. It leads with the purpose, then explains fallback behavior, followed by parameter and return descriptions. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description adequately summarizes the return value. It covers the operation, fallback, and parameter meanings. However, it could mention prerequisites (e.g., objects must be mesh) or potential side effects for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains each parameter in the Args section: object_name is the object to cut from, target_name is the cutter object that will be removed. This adds meaning beyond the schema, which only has titles and types. The schema description coverage is 0%, so the description compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it performs a boolean difference by subtracting the target object from the main object. The name and description make the purpose evident, but it does not explicitly differentiate from sibling tools like booltool_auto_union or boolean_operation, which could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies it is for subtraction, but does not state when not to use it or mention alternatives like booltool_auto_intersect or the generic boolean_operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
booltool_auto_intersectA
Auto boolean intersect: keep only the overlapping volume of two objects.
The target object is removed after the operation.
Uses Bool Tool extension if installed, otherwise falls back to native boolean modifier (a warning will be included in the response).
Args: object_name: Name of the main object. target_name: Name of the intersecting object (will be removed).
Returns: Confirmation dict with operation details. May include a 'warning' field if Bool Tool is not available and native fallback was used.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| target_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description fully explains the operation: the target object is removed, and there is a fallback mechanism (Bool Tool extension vs native boolean modifier) with a warning in the response. This covers key behavioral traits beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, with a front-loaded purpose statement and structured bullet points for arguments and returns. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and the description detailing the return (confirmation dict with warning), the tool is well described. Minor omissions like prerequisites or error conditions are not critical given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description provides clear docstrings for both parameters: object_name is the main object, target_name is the intersecting object (and will be removed). This adds significant meaning beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'keep only the overlapping volume of two objects', providing a specific verb (intersect) and resource (two objects). The tool name and description distinguish it from siblings like booltool_auto_difference and booltool_auto_union.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use for intersection operations and notes that the target object is removed, which serves as a caution. However, it does not explicitly state when to use it over alternatives, but the context of sibling tools makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
booltool_auto_sliceA
Auto boolean slice: split the main object using the target as a cutter.
Creates two separate pieces from the intersection. The target object is removed after the operation.
Uses Bool Tool extension if installed, otherwise falls back to native boolean modifier (a warning will be included in the response).
Args: object_name: Name of the object to slice. target_name: Name of the cutter object (will be removed).
Returns: Confirmation dict with operation details. May include a 'warning' field if Bool Tool is not available and native fallback was used.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| target_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: target object is removed, fallback to native boolean with warning. This provides necessary transparency about destructive effects and dependency, though details like reversibility or material handling are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a title line, explanation, args, and returns. Every sentence adds value without redundancy, making it quick to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no output schema needed due to its presence), the description covers purpose, parameters, behavior, fallback, and return value. It is complete for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by defining both parameters: object_name as the object to slice and target_name as the cutter (noting it will be removed). This adds crucial meaning beyond the schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'split' and the resource 'main object using the target as a cutter', and distinguishes itself from sibling boolean operations (difference, intersect, union) by specifying it creates two pieces from the intersection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the tool's behavior (cutter removed, two pieces created) and fallback mechanism, but does not explicitly contrast with alternatives like booltool_auto_difference or boolean_operation. Usage context is clear but not directly compared to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
booltool_auto_unionA
Auto boolean union: merge two mesh objects into one.
The target object is consumed and joined into the main object. This is useful for permanently joining meshes so parts don't float away from their bodies.
Uses Bool Tool extension if installed, otherwise falls back to native boolean modifier (a warning will be included in the response).
Args: object_name: Name of the main object to keep. target_name: Name of the object to merge into the main object.
Returns: Confirmation dict with operation details. May include a 'warning' field if Bool Tool is not available and native fallback was used.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| target_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses that the target object is consumed (destructive), the fallback behavior to native boolean modifier if Bool Tool is missing, and that a warning may be included in the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with separate sections for usage, args, and returns, and each sentence is informative. It is concise but could be slightly tighter without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 string params, output schema exists), the description covers purpose, behavior, parameters, return value, and fallback mechanism, making it complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains both parameters: object_name is the main object to keep, target_name is the object to merge in, adding significant meaning beyond the bare schema titles. With 0% schema coverage, the description provides all parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs an auto boolean union to merge two mesh objects into one, specifying the target is consumed. This distinguishes it from sibling booltool variants (difference, intersect, slice) and other mesh operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the tool is useful for permanently joining meshes so parts don't float away, providing a clear use case. However, it does not explicitly contrast with alternatives like 'boolean_operation' or 'join_objects'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_edge_loopsA
Bridge two edge loops to create connecting geometry.
Select two edge loops on a mesh before calling this. The operation creates faces connecting the two loops, useful for connecting separate mesh parts, creating holes between surfaces, or building tube-like geometry.
Args: object_name: Name of the mesh object with selected edge loops. segments: Number of segments in the bridge. Range: 1-1000. profile_shape_factor: Shape of the bridge profile. Range: -1.0 to 1.0. 0.0 is straight, positive values bulge outward, negative inward.
Returns: Confirmation dict with bridge details.
| Name | Required | Description | Default |
|---|---|---|---|
| segments | No | ||
| object_name | Yes | ||
| profile_shape_factor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that faces are created, but lacks details on mutation, side effects, or error conditions. The prerequisite is mentioned, but not all behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a short summary followed by a docstring-style breakdown. It is informative without being overly verbose, though could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, no annotations, and an output schema (implied by Return description), the description covers prerequisites, parameter ranges, and return value. Use cases are listed. It lacks error conditions or detailed postconditions but is largely complete for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must explain parameters. It does so effectively: object_name (mesh object with selected loops), segments (range 1-1000), profile_shape_factor (range -1.0 to 1.0, with meaning of values). 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Bridge two edge loops to create connecting geometry.' It uses specific verbs ('bridge') and resources ('edge loops'), and distinguishes itself from sibling tools (e.g., grid_fill, fill_faces) by its unique operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit prerequisite: 'Select two edge loops on a mesh before calling this.' It also lists use cases: 'connecting separate mesh parts, creating holes between surfaces, or building tube-like geometry.' However, it does not mention when not to use or suggest alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_viewportB
Render the viewport to a file or return as base64.
Args: filepath: Optional absolute path for output image. If empty, returns base64-encoded image. width: Render width in pixels, default 1920. height: Render height in pixels, default 1080.
Returns: Dict with filepath or base64 image data.
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | ||
| height | No | ||
| filepath | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides some behavioral context: it explains the conditional output (file or base64) and default dimensions. However, it does not disclose whether the render is synchronous, if it requires the UI, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main action, followed by clear parameter descriptions. It avoids fluff, though it could be more structured (e.g., bullet points) for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and the presence of an output schema, the description covers the core functionality and return value. It is largely complete for a rendering tool, though it omits image format and edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description explains all three parameters: filepath (behavior when empty), width and height (defaults). This adds meaning beyond the schema's titles and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool renders the viewport to a file or base64, specifying the resource and verb. However, it does not explicitly differentiate from the sibling 'get_viewport_screenshot', which likely has similar functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., get_viewport_screenshot). There are no prerequisites, when-not-to-use, or context-specific instructions, leaving the agent without usage clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_animationB
Remove all animation data from an object.
Args: object_name: Name of the object.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It states the effect (remove all animation data) and confirms a return value, but does not specify whether this deletes keyframes, drivers, or actions, nor if the operation is reversible. The description is adequate but lacks depth for a destructive action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded with the purpose. It efficiently covers the argument and return value in two lines. However, for a one-parameter tool, it could be slightly more structured (e.g., separating args and returns clearly), but overall it is concise and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description is incomplete. It omits error scenarios, the exact scope of animation data cleared (e.g., f-curves vs. drivers), and the structure of the confirmation dict. For a destructive operation, more context on what is removed and any side effects is expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description adds no meaning beyond the schema: 'object_name: Name of the object.' is essentially a tautology of the parameter title. It does not clarify naming conventions, format, or source (e.g., Blender object name). This fails to compensate for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'remove' and clearly states the resource 'all animation data from an object'. This distinguishes it from sibling tools that deal with individual keyframes or animation paths, such as delete_keyframe or create_animation_path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like delete_keyframe for selective removal. It does not mention prerequisites (e.g., object must have animation) or when not to use it, leaving the agent to infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_geometry_nodesB
Connect two nodes in a geometry nodes modifier's node group.
Args: modifier_name: Name of the geometry nodes modifier. from_node: Name of the source node. from_socket: Index of the output socket on the source node. to_node: Name of the destination node. to_socket: Index of the input socket on the destination node.
Returns: Confirmation dict with connection details.
| Name | Required | Description | Default |
|---|---|---|---|
| to_node | Yes | ||
| from_node | Yes | ||
| to_socket | Yes | ||
| from_socket | Yes | ||
| modifier_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description must disclose effects; it only says 'connect two nodes' without detailing constraints (socket compatibility, overwriting existing connections, permanent modification).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus clean Args list; main purpose stated upfront, no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers basic purpose and parameter definitions; lacks context on valid values, error handling, and behavioral expectations despite having an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%; description clarifies that from_socket/to_socket are indices, but does not specify ranges or how to obtain them. Basic meaning added, but not rich.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('connect two nodes'), the specific resource ('in a geometry nodes modifier's node group'), and distinguishes from siblings like add_geometry_node (which adds nodes) and get_node_tree (which retrieves the tree).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use versus alternatives, prerequisites (e.g., existing node group, modifier), or conditions under which connection is valid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_shader_nodesC
Connect two shader nodes in a material's node tree.
Args: material_name: Name of the material. from_node: Name of the source node. from_socket: Name of the output socket on the source node. to_node: Name of the destination node. to_socket: Name of the input socket on the destination node.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| to_node | Yes | ||
| from_node | Yes | ||
| to_socket | Yes | ||
| from_socket | Yes | ||
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not disclose whether existing connections are overwritten, socket compatibility checks, error handling, or side effects. The return value is vaguely 'Confirmation dict' without structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and structured with a clear one-line summary and docstring arguments. However, the docstring is somewhat redundant with the initial sentence. Still, it is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 required parameters and no schema descriptions, the description is too brief. It lacks information on error conditions, return value details, and prerequisites. The tool's complexity is not fully addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0% description coverage. The docstring repeats parameter names (e.g., 'material_name: Name of the material.') but adds no meaningful detail about valid values, format, or constraints beyond the schema's title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Connect' and resource 'shader nodes in a material's node tree'. It distinguishes from siblings like 'add_shader_node' (adds nodes) and 'disconnect_shader_nodes' (disconnects).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Missing prerequisites such as nodes must exist, sockets must be compatible, or that the material must be created first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_curve_to_meshC
Convert a curve object to a mesh object.
Args: curve_name: Name of the curve object to convert.
Returns: Dict with the converted object name.
| Name | Required | Description | Default |
|---|---|---|---|
| curve_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are available, so the description must convey behavioral traits. It does not disclose whether the conversion is destructive, if the original curve remains, or any side effects. The return description is vague ('Dict with the converted object name').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded with the main action. However, it omits critical usage and behavioral details, so it is not fully earning its place despite its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a simple conversion with one parameter and an output schema, the description should cover what happens to the original object, selection state, or error conditions. It does not, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description for parameter 'curve_name' simply restates its name ('Name of the curve object to convert') with no additional meaning beyond the schema's title and type. With 0% schema coverage, it adds minimal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Convert a curve object to a mesh object,' which is a specific verb+resource pair. It distinguishes the tool from siblings like 'convert_object' by specifying the exact conversion type. This is a precise purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., 'convert_object') or what prerequisites are required (e.g., object must be a curve). The description lacks any contextual hints for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_objectA
Convert an object to a different type.
Args: object_name: Name of the object to convert. target: Target type. One of: MESH, CURVE, SURFACE, META, FONT, CURVES, POINTCLOUD, GPENCIL.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | MESH | |
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavioral traits. It states returns a confirmation dict but does not clarify whether the conversion alters the object in place or creates a new one, nor side effects (e.g., on materials or modifiers). Risk of unexpected behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description uses a structured docstring with Args and Returns sections, clearly separating parameter description from return info. It is slightly verbose for a simple conversion, but all information is relevant and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of object conversion (handling materials, data, scene hierarchy), the description is minimal. It mentions return type but not failure conditions or object selection method. With an output schema present, the return info is adequate, but behavioral details are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, so description compensates by listing valid target types (MESH, CURVE, etc.) beyond the schema's default. However, the object_name parameter lacks additional context (e.g., how to reference an existing object). The target list is explicit and helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Convert an object to a different type.' It specifies the action (convert), the resource (object), and the outcome (type change). The target parameter lists exact values (MESH, CURVE, etc.), making the tool's function distinct from siblings like 'convert_curve_to_mesh' which handle specific conversions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for general type conversion but provides no explicit guidance on when to prefer this over specific tools like 'convert_curve_to_mesh' or limitations (e.g., which object types are convertible). Lacks context on prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_animation_pathB
Make an object follow a path (curve) using a Follow Path constraint.
Args: object_name: Name of the object to animate along the path. path_object: Name of the curve object to use as the path.
Returns: Confirmation dict with constraint details.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| path_object | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It only states the tool creates a Follow Path constraint and returns a confirmation dict. It does not reveal potential side effects (e.g., whether keyframes are added, if existing constraints are affected, or if the object's transform changes).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: one sentence for purpose, followed by Args and Returns sections. No unnecessary words, and the main action is front-loaded. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool simplicity (2 params, no annotations) and that an output schema exists, the description is adequate but not thorough. It explains the core function but omits details like whether the path must be a curve type, or that the Follow Path constraint requires additional setup (e.g., keyframes for offset).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides brief explanations for both parameters in the Args section, adding meaning beyond the property names. Schema description coverage is 0%, so the description partly compensates. However, it lacks details on type validation (e.g., must be existing objects) or formatting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool makes an object follow a path using a Follow Path constraint. It specifies the action (Make an object follow a path) and the resource (object and path curve). This is distinct from sibling tools like 'add_constraint' or 'insert_keyframe', which are more general.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives like 'add_constraint' or other animation tools. No prerequisites, exclusions, or context for use are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_annotationA
Create a new annotation data block.
Annotations are viewport overlays used for drawing marks, notes, and guides. Unlike Grease Pencil objects, annotations are not positioned in 3D space.
Args: name: Optional name for the annotation. Auto-generated if empty.
Returns: Dict with the created annotation's name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the name is optional and auto-generated, and clarifies annotations are not 3D objects. However, it does not mention side effects, permissions, or limitations (e.g., maximum count, persistence). Adequate for a simple creation tool but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear structure: purpose sentence, explanatory paragraph, then Args/Returns sections. Every sentence adds value; no redundant or irrelevant information. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with an output schema, the description sufficiently covers purpose, parameter, and return value. It lacks details on how the annotation interacts with other tools (e.g., layers, strokes) but that may be handled by sibling tool descriptions. Slightly incomplete but adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, so the description must compensate. It explains the 'name' parameter: optional, auto-generated if empty. This adds meaningful context beyond the schema, helping the agent understand the parameter's purpose and behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates an annotation data block, explains it as viewport overlays for marks/notes/guides, and distinguishes it from Grease Pencil objects. This is a specific verb+resource with good context and differentiation from sibling tools like add_annotation_layer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what annotations are and how they differ from Grease Pencil, but it does not explicitly state when to use this tool versus alternatives like add_annotation_layer or add_annotation_stroke. No guidance on prerequisites or non-use cases. Adequate but lacks explicit differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_armatureA
Create a new armature object.
Args: name: Name for the armature. Defaults to "Armature". location: XYZ position for the armature. Defaults to origin.
Returns: Dict with the created armature's name and location.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Armature | |
| location | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description only states creation without disclosing behavioral traits such as scene context, naming conflicts, or side effects. This is minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences plus a structured Args/Returns block. Every sentence adds value, and the essential information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with an output schema mentioned, the description is largely complete. It explains parameters and return format, but could mention the scene context or default object behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the tool description provides parameter explanations (name and location) with defaults and meanings, adding significant 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new armature object', using a specific verb and resource. It distinguishes from sibling create_ tools by naming the object type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit when-to-use or when-not-to-use guidance. It implies usage only for creating armatures but lacks comparisons to alternatives like parent_mesh_to_armature.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cameraA
Create a new camera in the scene.
Args: name: Name for the camera, default "Camera". location: XYZ location as [x, y, z], default [0, 0, 0]. rotation: XYZ Euler rotation in radians as [x, y, z], default [0, 0, 0]. lens: Focal length in mm, default 50.
Returns: Confirmation dict with camera name and properties.
| Name | Required | Description | Default |
|---|---|---|---|
| lens | No | ||
| name | No | Camera | |
| location | No | ||
| rotation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral disclosure. It only states creation and parameter details, missing prerequisites, side effects (e.g., overwriting existing cameras), or return behavior beyond a confirmation dict.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with Args and Returns sections. However, the Args list partially duplicates parameter names from the schema, making it slightly verbose. Still clear and organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters and no annotations, the description covers parameter semantics and return type. Missing context includes which scene the camera is added to, potential errors, or updates to the active camera. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description compensates fully by explaining each parameter with defaults and units (e.g., 'XYZ Euler rotation in radians', 'Focal length in mm'). This adds significant meaning beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new camera in the scene' with a specific verb and resource. It distinguishes from sibling tools like create_light or create_object by specifying 'camera'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating cameras but provides no explicit when-to-use or when-not-to-use guidance, nor does it compare with alternatives like set_camera_property.
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, optionally nested under a parent collection.
Args: name: Name for the new collection. parent: Optional name of parent collection to nest under. Empty string uses the scene's root collection.
Returns: Dict with the created collection's name and parent.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden. It states the tool creates a collection and optionally nests it, but does not disclose potential side effects (e.g., behavior if parent doesn't exist) or permission requirements. Minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a one-sentence summary followed by structured Args and Returns sections. Every part earns its place, no superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description covers creation, nesting, parameters, and return value. The output schema is present, so return format is handled. Complete for an agent to use effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are explained: 'name' is the new collection's name, 'parent' is optional and defaults to root. This adds meaning beyond the schema, which only has types and defaults. Schema coverage is 0%, so description compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new collection, optionally nested under a parent collection.' It identifies the specific action (create) and resource (collection), and distinguishes from siblings like 'delete_collection' or '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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the optional nesting feature, providing clear context for when to use this tool. However, it does not explicitly mention when not to use it or name alternatives like 'move_to_collection' for existing collections.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_curveA
Create a new curve object.
Args: type: Curve type - BEZIER, NURBS, or PATH. name: Optional name for the curve object. location: 3D location as (x, y, z).
Returns: Dict with created curve name and type.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | No | BEZIER | |
| location | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral disclosure. It only says 'Create a new curve object' without explaining side effects (e.g., object is added to the active collection), permissions needed, or whether it can overwrite existing objects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences with no fluff: one main sentence, args listed concisely, and a returns line. It front-loads the core action and efficiently conveys parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers the basic purpose and parameters, it lacks context such as where the curve is created (e.g., active scene/collection) and does not mention the default type (BEZIER). The presence of an output schema is noted but not detailed in the description. With no annotations, more behavioral context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the tool description provides meaningful explanations for all three parameters: type (with enum list), name (optional), and location (3D coordinates). This adds significant value beyond the bare schema titles and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new curve object' and enumerates the supported curve types (BEZIER, NURBS, or PATH). This differentiates it from sibling tools like add_curve_point (which modifies existing curves) and create_object (generic object creation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly sets usage context by listing arguments and return type, but it does not explicitly state when to prefer this over alternatives (e.g., create_object) nor provide exclusion criteria (e.g., prerequisites like having an active scene).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_geometry_nodesA
Create a Geometry Nodes modifier on an object.
Args: object_name: Name of the object to add the modifier to. name: Name for the geometry nodes modifier. Defaults to "GeometryNodes".
Returns: Dict with modifier name and node group name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | GeometryNodes | |
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden but only states the basic action and return value. It does not disclose potential side effects (e.g., creating a new node tree), failure conditions (e.g., object not found), or whether it replaces an existing modifier.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using a one-sentence purpose and clear parameter explanations. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no annotations, includes return description), the description covers the core functionality and param meanings adequately. However, it lacks mention of prerequisites like object existence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains both parameters (object_name and name) with their purposes and default values, adding value beyond the schema which has 0% coverage. It compensates well for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a Geometry Nodes modifier on an object', specifying the verb and resource, which effectively distinguishes it from siblings like add_modifier (generic) and add_geometry_node (adds node to node tree).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as add_geometry_node for adding nodes to an existing tree, or set_geometry_node_input for modifying inputs. Neither context nor exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_lightA
Create a new light in the scene.
Args: type: Light type. One of: POINT, SUN, SPOT, AREA. name: Optional name for the light. location: XYZ location as [x, y, z], default [0, 0, 0]. energy: Light energy/power, default 1000. color: RGB color as [r, g, b], default [1.0, 1.0, 1.0].
Returns: Confirmation dict with light name and properties.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | Yes | ||
| color | No | ||
| energy | No | ||
| location | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool creates a light and returns a confirmation, but does not mention side effects like overwriting existing lights or required scene context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Args, Returns) and front-loaded purpose statement. Slightly verbose but effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers purpose, parameters, and return, it lacks details like coordinate system for location, color range, and energy unit. Given the output schema exists, the return description is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by listing each parameter, its type, default values, and format (e.g., 'type: Light type. One of: POINT, SUN, SPOT, AREA'). This adds crucial information beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new light in the scene') and identifies the resource (a light). It distinguishes from sibling tools like 'create_light_rig' by specifying it creates a single light, not a rig.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like 'set_light_property' or 'create_light_rig'. The context of use 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.
create_light_rigA
Create a pre-built lighting rig (multiple lights arranged for common setups).
Args: type: Rig type. One of: THREE_POINT, STUDIO, RIM, OUTDOOR. target: Optional name of the object the rig should point at. intensity: Overall intensity of the lights, default 1000.
Returns: Confirmation dict with names of all created lights.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| target | No | ||
| intensity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes basic behavior (creates multiple lights, intensity, target) but lacks specifics on side effects, default placement, or behavior when target is invalid. No annotations to offset.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences plus parameter list and return value description. Front-loaded, no redundancy, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers key aspects: creation of multiple lights, intensity, targeting. Lacks details on precise rig layout or return schema, but adequate for a straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds meaning by listing allowed values for type and explaining target and intensity. Could be more precise about 'point at' behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it creates a pre-built lighting rig with multiple lights, distinguishing it from singular light creation tools like create_light. The description specifies common setups and lists types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for standard lighting setups via the rig types, but does not explicitly state when or when not to use it, nor compare with alternatives like create_light or set_light_property.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_materialC
Create a new material with a Principled BSDF shader node.
Args: name: Name for the new material.
Returns: Confirmation dict with the created material name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only states it creates a material and returns a confirmation dict, but does not disclose what happens if the material name already exists, if it requires an active object, or any side effects. Since annotations are absent, the description should provide more behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear purpose sentence followed by a structured Args/Returns section. No unnecessary words, though the Args section is redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description lacks completeness for a creation tool. It does not mention duplicate handling, prerequisites, or impact on the scene, leaving significant gaps for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds minimal value beyond the parameter name: 'name: Name for the new material.' It does not provide constraints, format, or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new material with a Principled BSDF shader node', providing a specific verb and resource, and distinguishes it from siblings like 'create_principled_material' by specifying the shader node type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool vs alternatives like 'assign_material' or 'create_principled_material'. There are no prerequisites or context for when 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.
create_objectA
Create a primitive object in the scene.
Args: type: Primitive type. One of: CUBE, SPHERE, UV_SPHERE, ICO_SPHERE, CYLINDER, CONE, TORUS, PLANE, CIRCLE, MONKEY, EMPTY. name: Optional name for the object. Auto-generated if empty. location: XYZ position as a 3-element list/tuple. Defaults to origin. rotation: XYZ Euler rotation in radians as a 3-element list/tuple. scale: XYZ scale as a 3-element list/tuple. Defaults to (1,1,1).
Returns: Dict with the created object's name, type, and location.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | Yes | ||
| scale | No | ||
| location | No | ||
| rotation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes the creation action and return value, but lacks details on side effects (e.g., selection, collection placement, naming conflict 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured as a docstring with clear sections for args and returns. It is appropriately sized and front-loaded with the main purpose. Every sentence is relevant, though minor redundancy in listing types could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no annotations, and an output schema, the description covers the parameters and return value well. It could mention that the object is added to the active collection or scene, but overall it provides sufficient context for an AI agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, meaning the schema provides no descriptions. The description adds full parameter semantics: explains each parameter's purpose, defaults, and constraints (e.g., rotation in radians, scale defaults to (1,1,1)). This adds significant value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a primitive object in the scene' and lists specific primitive types, which distinguishes it from sibling tools like create_camera or create_light. However, it does not explicitly contrast with other creation tools, so it is very clear but not perfectly differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies it is for primitive objects, but given many sibling creation tools (e.g., create_camera, create_curve), it should provide more explicit when-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_polygon_prismA
Create an N-sided regular prism (polygon-based cylinder).
Useful for hex sockets, octagonal columns, triangular prisms, or any straight-sided geometry where a 32-sided round cylinder is the wrong primitive. For a hex socket cutter on an M3 button-head screw, use sides=6.
Args: sides: Number of sides for the polygon base. Range: 3-64. radius: Circumscribed radius (center to vertex). Must be > 0. depth: Height of the prism along its Z axis. Must be > 0. name: Optional name for the object. Auto-generated if empty. location: XYZ position as a 3-element list/tuple. Defaults to origin. rotation: XYZ Euler rotation in radians as a 3-element list/tuple. scale: XYZ scale as a 3-element list/tuple. Defaults to (1,1,1).
Returns: Dict with the created object's name, type, location, and sides.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| depth | No | ||
| scale | No | ||
| sides | Yes | ||
| radius | No | ||
| location | No | ||
| rotation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains the tool creates a prism with specified parameters and returns object info, but doesn't disclose side effects (e.g., whether it modifies existing objects) or permissions. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with clear sections for args and returns. Every sentence serves a purpose, including practical examples. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's 7 parameters and the presence of an output schema, the description covers the core functionality, parameter meanings, and return value. It lacks error conditions or constraints beyond ranges, but it is sufficiently complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining each parameter: sides (range 3-64), radius (>0), depth (>0), name (optional), location (XYZ), rotation (XYZ radians), scale (XYZ). This adds meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create an N-sided regular prism' and gives concrete examples like hex sockets and octagonal columns. It distinguishes from round cylinders, making the tool's purpose very specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage scenarios (e.g., 'for a hex socket cutter on an M3 button-head screw, use sides=6') and contrasts with round cylinders. However, it does not explicitly exclude alternative tools or describe when not to use it, leaving room for improvement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_principled_materialA
Create a fully configured Principled BSDF material in one call.
Args: name: Name for the new material. color: Base color as RGBA list, default [0.8, 0.8, 0.8, 1.0]. metallic: Metallic value 0.0-1.0, default 0.0. roughness: Roughness value 0.0-1.0, default 0.5. specular: Specular IOR level 0.0-1.0, default 0.5. emission_strength: Emission strength, default 0.0. emission_color: Emission color as RGBA list, default [1.0, 1.0, 1.0, 1.0]. alpha: Alpha value 0.0-1.0, default 1.0. transmission: Transmission weight 0.0-1.0, default 0.0. ior: Index of refraction, default 1.45.
Returns: Confirmation dict with material name and all set properties.
| Name | Required | Description | Default |
|---|---|---|---|
| ior | No | ||
| name | Yes | ||
| alpha | No | ||
| color | No | ||
| metallic | No | ||
| specular | No | ||
| roughness | No | ||
| transmission | No | ||
| emission_color | No | ||
| emission_strength | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses all parameters, defaults, and ranges, and states the return format. However, it does not mention side effects (e.g., whether it replaces an existing material, whether it is added to a specific object, or if it requires an active object). Basic transparency is present but missing behavioral context beyond the parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured as a concise docstring with first-line summary, Args section, and Returns section. While the Args list repeats parameter information already in the schema, it is justified given 0% schema coverage. The first sentence effectively front-loads the purpose. Minor redundancy with schema titles is acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 10 parameters, no annotations, but an output schema, the description explains all parameters and return format. However, it omits important context such as whether the material is automatically assigned to an object, whether it replaces existing materials, or if there are prerequisites like an active mesh object. This leaves the agent needing to infer missing usage requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It systematically lists each parameter with default values, ranges, and semantic explanations (e.g., 'metallic: Metallic value 0.0-1.0', 'transmission: Transmission weight'). This adds meaning beyond the schema titles and types, though could be slightly more explicit about the color list format (e.g., RGBA values between 0 and 1).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a fully configured Principled BSDF material in one call,' using a specific verb (create) and resource (Principled BSDF material). Among sibling tools like 'create_material', this distinguishes itself by specifying the shader model and the 'fully configured' aspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating a Principled BSDF material but does not explicitly state when to use this tool versus alternatives like 'create_material' or 'assign_material'. No when-not-to-use guidance or context about prerequisites (e.g., needing an active object with a material slot) is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_procedural_materialA
Build a complete procedural texture as a material, in one call.
Prefer this over hand-wiring texture nodes. It creates the full graph — coordinates, mapping, the pattern's texture nodes, a tuned colour ramp, and the Principled BSDF — and returns the node names so you can adjust anything afterwards with set_shader_node_input or the colour ramp tools.
Procedural beats image textures here: no files, no UV unwrap needed, and it stays sharp at any camera distance.
Call list_procedural_patterns() to see what each pattern looks like.
Args: name: Name for the new material. pattern: One of the supported patterns, e.g. 'fire', 'wood', 'veins'. scale: Feature size. Lower is bigger and broader, higher is finer and busier. 5.0 is a sensible default; try 1-3 for large forms and 20+ for fine detail. detail: Fractal octaves, 0-15. Higher adds finer sub-detail at the cost of render time. Applies to noise, cloud, wood, marble, plasma and fire. The cellular patterns (voronoi, veins, scales, sparks), stripes, weave and gradient have no detail socket and ignore it. distortion: Warps the pattern. Small values (0.5-2.0) make wood and marble look organic rather than machine-perfect. Applies to noise, cloud, stripes, wood, marble, plasma and fire. The cellular patterns, weave and gradient ignore it. roughness: Surface roughness 0-1 for the Principled BSDF. metallic: Metallic 0-1 for the Principled BSDF. colors: Optional list of RGB or RGBA colours for the ramp, in order. Omit to use the pattern's own tuned palette. banded: Use CONSTANT ramp interpolation, giving hard-edged bands instead of smooth blending. Turns noise into discrete regions: scale plates, cracked mud, cel shading. connect_to_bsdf: Wire the result into the Principled BSDF base colour so the material renders immediately. Set False to leave the pattern subtree unconnected for manual wiring.
Returns: Dict with the material name, the created node names, and ignored_params listing any arguments this pattern could not use.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| scale | No | ||
| banded | No | ||
| colors | No | ||
| detail | No | ||
| pattern | Yes | ||
| metallic | No | ||
| roughness | No | ||
| distortion | No | ||
| connect_to_bsdf | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description fully discloses the created graph, the return value (including ignored_params), and connectivity behavior. It explains which parameters affect which patterns and provides practical examples.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and informative, though slightly lengthy; however, every sentence adds value, and the parameter list is necessary given the lack of schema descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and the presence of an output schema (implied by the return dict description), the description covers all necessary aspects: purpose, usage, parameter behaviors, and return values, leaving no gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds thorough meaning for all 10 parameters, including defaults, ranges, pattern-specific behavior, and visual effects like banding and scale suggestions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool builds a complete procedural texture as a material in one call, distinguishes it from hand-wiring and image textures, and compares favorably to siblings like create_material and create_principled_material.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly prefers this over hand-wiring, explains when procedural beats image textures, and suggests calling list_procedural_patterns() to see available patterns. It also details parameter applicability per pattern.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_raster_textureA
Generate an image texture for patterns shader nodes cannot express.
Use this only for patterns that place discrete marks. Shader nodes evaluate a function per point and have no way to say "draw a glyph here, then another over there", so runes need real pixels. Everything else should go through create_procedural_material, which stays sharp at any resolution.
The image is packed into the blend file. No file is written to disk.
Args: name: Name for the generated image datablock. pattern: A raster pattern. Currently 'runes'. size: Pixel width and height, up to 2048. Cost grows with the square. count: How many marks to stamp. 0 leaves a blank field. seed: Change for a different arrangement; the same seed always reproduces the same image. foreground: RGB or RGBA colour of the marks. background: RGB or RGBA colour behind them.
Returns: Dict with the image name, size, and mark count.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| seed | No | ||
| size | No | ||
| count | No | ||
| pattern | Yes | ||
| background | No | ||
| foreground | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description fully discloses behavioral traits: explains why shader nodes fail, that image is packed in blend file, cost scales quadratically with size, seed reproducibility, and blank field when count is 0.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with a clear title sentence, usage context, then a clean args list. Every sentence adds value without redundancy. Highly efficient use of space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations but an output schema described, the description covers all necessary context: use case, limitations, parameter details, side effects, and return value. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description comprehensively explains all 7 parameters, adding details like 'runes' for pattern, max size 2048, cost scaling, blank field for count=0, seed reproducibility, and RGBA for colors.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates image textures for patterns shader nodes cannot express, specifically for discrete marks like runes. It distinguishes from create_procedural_material by explaining the fundamental limitation of shader nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use and when-not-to-use guidance, naming the alternative tool create_procedural_material for non-discrete patterns. Also notes that the image is packed into the blend file and no file is written to disk.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sceneB
Create a new scene.
Args: name: Name for the new scene.
Returns: Confirmation dict with the created scene name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions a return value but does not disclose what happens if the scene already exists, default settings, or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded, with no wasted words. However, the use of an Args/Returns style is slightly non-standard for MCP tool descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only one parameter and an output schema exists (not shown), so the description is somewhat complete. However, missing behavioral details like response to duplicates or constraints reduce completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds minimal meaning by stating 'name: Name for the new scene.' This partially compensates but lacks details like validation rules or formatting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new scene.' with a specific verb and resource. It distinguishes from sibling tools like delete_scene, list_scenes, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There is no mention of prerequisites, when not to use it, or comparison with related tools like create_object.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_textA
Create a 3D text object.
Args: text: The text string to display. name: Optional name for the text object. location: 3D location as (x, y, z). size: Font size. font: Optional path to a font file. Uses default Blender font if empty.
Returns: Dict with created text object name.
| Name | Required | Description | Default |
|---|---|---|---|
| font | No | ||
| name | No | ||
| size | No | ||
| text | Yes | ||
| location | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description mentions a return dict and default font behavior but doesn't disclose side effects or prerequisites like required mode.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with Args and Returns sections, though each sentence is necessary; no verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers parameters and return value but lacks details on object placement (e.g., active collection) and return key name; adequate for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description adds meaningful explanations for each parameter, such as clarifying that location is a 3D tuple and font uses Blender default if empty.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a 3D text object' with a specific verb and resource, distinguishing it from siblings like 'create_object' or 'create_curve'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains each parameter but lacks guidance on when to use this tool versus alternatives such as 'create_object' or 'create_curve'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_threaded_shaftA
Create a cylindrical shaft with helical external threads.
Produces a single mesh object — a threaded rod at the given diameter and length, with helical thread ridges following the specified pitch. Suitable for boolean-union onto a screw-head or direct use as a threaded fastener.
Thread geometry: a 60-degree V profile swept along a Z-axis helix via the Screw modifier.
Args: diameter: Major diameter of the shaft (outer thread peaks). Must be > 0. length: Axial length of the shaft (under-head length, like real fastener spec). Must be > 0. pitch: Distance between thread peaks along the axis. Must be > 0 and <= length. thread_depth: Radial depth of the thread (major radius - minor radius). If 0 (default), auto-computed as pitch * 0.54. segments: Rotational resolution of the helix (steps per revolution). Range: 3-256. Higher = smoother helix, more geometry. thread_runout: Smooth (unthreaded) region at the top of the shaft. Defaults to 0 (full-length threads) — gives the strongest print because threads under the head form a continuous stress path. Leaving a smooth runout creates a thin-walled neck at minor_r that snaps under torque in FDM prints. Pass a positive value only if a head's deep hex socket would otherwise reach thread peaks. name: Optional name for the object. Auto-generated if empty. location: XYZ position of the shaft base as a 3-element list/tuple.
Returns: Dict with the created object's name, diameter, length, pitch, and the number of thread iterations actually generated.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| pitch | Yes | ||
| length | Yes | ||
| diameter | Yes | ||
| location | No | ||
| segments | No | ||
| thread_depth | No | ||
| thread_runout | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations exist, the description fully bears the disclosure burden. It explains that the tool produces a single mesh object, uses a Screw modifier, auto-computes thread depth, and includes a warning about thread_runout effects on print strength, providing useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: starts with a clear one-line purpose, followed by technical details, a formatted argument list, and return value. Every sentence adds value without redundancy, and front-loads key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters and no annotations or schema descriptions, the description covers return values, geometry details, and constraints. It could mention the workspace context (e.g., active object, scene), but overall it provides sufficient completeness for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the detailed 'Args' section in the description adds significant meaning: constraints, auto-computation formulas, ranges, and defaults are explained, fully compensating for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a cylindrical shaft with helical external threads, using specific verbs and resource. It distinguishes itself from sibling tools (which are general modeling operations) by focusing on threaded fasteners.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates the tool is suitable for boolean-union onto a screw-head or direct use as a threaded fastener, providing context for when to use it. It does not explicitly mention alternative tools, but the unique function is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_collectionA
Delete a collection.
Args: name: Name of the collection to delete. delete_objects: If True, also delete all objects in the collection. If False, objects are unlinked but kept in the scene.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| delete_objects | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden. It explains the behavior of the delete_objects parameter (deletion vs unlinking) and mentions a confirmation return. However, it omits details on permanence, side effects (e.g., effect on child objects), or error scenarios, leaving gaps for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear structure (Args and Returns sections). Each sentence adds value, though the delete_objects explanation is slightly verbose but acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations, the description adequately covers the two parameters and return type. However, it lacks edge-case handling, error details, and specifics about the confirmation dict (though output schema exists, it is not provided). The tool is simple, so a 3 is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides clear, additional meaning beyond the schema: 'name: Name of the collection to delete' and 'delete_objects: If True, also delete all objects... If False, objects are unlinked but kept in the scene.' Since schema description coverage is 0%, this fully compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a collection.' The verb-resource pairing is specific, and the name distinguishes it from sibling delete tools (e.g., delete_object, delete_scene). However, it does not explicitly differentiate when to use this tool over alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus other delete-related tools (e.g., delete_object, delete_scene). The description only explains the parameters but does not give context for selection criteria or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_keyframeA
Remove a keyframe from an object property at a specific frame.
Args: object_name: Name of the object. data_path: Property data path (e.g., location, rotation_euler, scale). frame: Frame number of the keyframe to remove.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | Yes | ||
| data_path | Yes | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden but only states the basic action and return type. It does not disclose behavior for missing keyframes, invalid parameters, or side effects beyond deletion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, well-structured with bullet-like args and a returns line, containing 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deletion tool with 3 parameters and an output schema, the description covers the essentials. It lacks error handling or prerequisite info but is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description compensates by providing brief explanations for each parameter and examples for 'data_path' (e.g., location, rotation_euler). This adds meaning beyond the schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Remove a keyframe from an object property at a specific frame' uses a specific verb (Remove) and clearly identifies the resource (keyframe), distinguishing it from siblings like insert_keyframe (add) and list_keyframes (list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like clear_animation (which removes all keyframes). The description lacks context for preferred usage or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_lightA
Delete a light object from the scene.
Args: name: Name of the light object to delete.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description is minimal. It states the deletion but does not disclose side effects, reversibility, or prerequisites. For a destructive action, more context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with three short sentences covering purpose, arg, and return. No wasted words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter and an output schema, the description minimally covers the parameter. However, it omits details like name matching or behavior if light doesn't exist, which could be useful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description explains the 'name' parameter as 'Name of the light object to delete', adding meaning beyond the schema's title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a light object from the scene', specifying the action (delete) and resource (light object). It distinguishes from sibling tools like delete_object or delete_material.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention when not to use it or compare to similar operations like deleting objects via delete_object.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_materialC
Delete a material by name.
Args: material_name: Name of the material to delete.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It only states that the tool deletes a material, but does not disclose consequences (e.g., impact on objects using the material, reversibility, permissions needed). This is insufficient for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded. It conveys the core operation in one sentence and adds structured Args/Returns. It could include a bit more detail without losing conciseness, but it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (1 param, output schema present), the description covers the basics. However, it lacks behavioral context for a delete operation. The presence of an output schema mitigates the need to describe return values, but the missing behavioral transparency reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It names the parameter 'material_name' and says it is the name of the material to delete. While this adds basic context, it does not provide format or constraints beyond what the schema already conveys (type string, required). Adequate for a single simple parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a material by name', specifying the verb and resource. It distinguishes from other delete tools (e.g., delete_object) but does not explicitly differentiate from other material operations like 'assign_material' or 'set_material_property'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There is no mention of prerequisites, conditions, or when not to use it. The agent is left to infer that it's for deleting materials from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_objectB
Delete an object from the scene by name.
Args: name: Name of the object to delete.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It mentions a return confirmation dict, but omits details like irreversibility, prerequisites (object existence), or undo support. It does not contradict annotations since none are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded, covering the core action in one sentence. The argument block is somewhat redundant but does not bloat. It remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description is minimally adequate. It specifies the object and return type, but lacks detail on side effects or error handling. For a complex scene with many delete siblings, more context would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description should add meaning. However, it merely restates the parameter name without adding constraints, format, or examples. It essentially duplicates the schema, offering no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deletes an object by name, using a specific verb and resource. It distinguishes itself from sibling tools like delete_collection, delete_light, etc., which target different scene elements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you want to delete an object), but provides no explicit guidance on when not to use it or mention of alternatives (e.g., for deleting collections or materials). The context is clear but lacks exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_particle_systemA
Remove a particle system from an object.
Args: object_name: Name of the object. particle_system_name: Name of the particle system to remove. If empty, removes the first particle system.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| particle_system_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the destructive action of removal and the special case of removing the first system when name is empty. However, lacks details on irreversibility, permissions, or side effects, and there are no annotations to contradict.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise lines with clear Args and Returns sections. Every sentence adds value, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately covers a simple deletion tool with output schema mentioned. Could elaborate on confirmation dict content, but output schema likely fills that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning beyond schema by explaining that an empty particle_system_name removes the first system. Both parameters are described, compensating for 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Remove a particle system from an object', using a specific verb and resource. It distinguishes from siblings like add_particle_system and set_particle_rendering by focusing on deletion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. It implies usage for deleting particle systems but doesn't mention when not to use or provide context like prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_sceneA
Delete a scene by name.
Args: name: Name of the scene to delete. Cannot delete the last remaining scene.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the destructive nature ('Delete') and the last-scene restriction. It also notes the return type (confirmation dict). This is adequate for a simple deletion tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a concise docstring with Args and Returns. It is front-loaded with the purpose, and every sentence is necessary and clear. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description covers purpose, parameter, constraint, and return. An output schema exists, so return details are not needed. The description is sufficiently complete for a deletion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains the 'name' parameter as 'Name of the scene to delete' and adds the constraint about the last remaining scene, providing more meaning than the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a scene by name', using a specific verb and resource. It effectively distinguishes from sibling tools like create_scene or list_scenes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a critical constraint: 'Cannot delete the last remaining scene.' This guides the agent on a limitation, though it does not explicitly discuss when to use or alternatives. The note is valuable for safe invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disconnect_shader_nodesB
Disconnect all links from a specific socket on a shader node.
Args: material_name: Name of the material. node_name: Name of the node. socket_name: Name of the socket to disconnect. is_input: If True, disconnect an input socket; otherwise an output socket.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| is_input | No | ||
| node_name | Yes | ||
| socket_name | Yes | ||
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It fails to mention potential side effects, such as whether disconnecting all links affects other connected nodes, or if the operation is reversible. It only states the action and the return type, missing critical safety information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main purpose. The args list follows the schema structure, making it easy to parse. However, the args section is somewhat redundant and could be integrated more elegantly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with four parameters and an output schema ('Returns confirmation dict'), the description provides enough context to understand the operation and return value. It covers the essential aspects without being overly verbose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate. It lists parameter names and basic meaning (e.g., 'Name of the material') but adds no format constraints, allowed values, or behavioral context. This adds minimal value over the schema structure itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Disconnect all links from a specific socket on a shader node.' It uses a specific verb ('Disconnect'), a resource ('shader node'), and a specific part ('socket'). This distinguishes it from related tools like connect_shader_nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. The purpose implies it should be used when you need to disconnect all links from a socket, but there is no mention of prerequisites, scenarios, or when not to use it. This is a minor gap given the simplicity of the operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dissolve_edgesA
Dissolve all edges, merging adjacent faces.
Simplifies topology by removing unnecessary edge loops while preserving the overall shape.
Args: object_name: Name of the mesh object.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that edges are dissolved, faces merged, and overall shape preserved. However, it lacks details about destructive nature, edge cases (e.g., non-manifold geometry), or prerequisites. With no annotations, the description carries the full burden but is only 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences plus parameter/returns lines, efficiently stating purpose and expected input/output. It is front-loaded with the core action. Could be slightly more structured (e.g., separating args and returns clearly).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and no annotations, the description adequately covers the basic operation and parameter but does not explain behavior with multiple edges, effects on UVs or normals, or compare with sibling dissolve tools. The output schema exists but is not described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. While it lists the parameter 'object_name' and says 'Name of the mesh object', it adds no meaning beyond the schema's type and title. The parameter is simple, but the description provides no extra context like valid format or usage notes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool dissolves all edges and merges adjacent faces, with a specific verb and resource. It distinguishes itself from sibling tools like dissolve_faces and dissolve_verts by focusing on edges.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., dissolve_faces, bevel_edges). The description implies usage for simplifying topology by removing edge loops, but does not provide exclusion criteria or comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dissolve_facesA
Dissolve all faces, merging them into surrounding geometry.
Removes faces while keeping the surrounding mesh structure intact. Cleaner than deleting faces which leaves holes.
Args: object_name: Name of the mesh object.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the core behavior: faces are dissolved and merged, keeping mesh structure intact. With no annotations provided, it carries the full burden and does so clearly. It doesn't mention destructiveness or undo capabilities, but the description is sufficient for understanding the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences plus argument and return list. No filler. Purpose is front-loaded. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter and the presence of an output schema (though not shown), the description is quite complete. Could mention whether it acts on all faces or only selected, but 'all faces' is clear. Return is noted as confirmation dict.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the tool description compensates by explicitly listing the argument and explaining it is the name of the mesh object. This adds 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states that it dissolves all faces and merges them into surrounding geometry, distinguishing it from siblings like dissolve_edges and dissolve_verts. Also explicitly compares it to deleting faces, emphasizing the benefit of no holes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context on when to use (to remove faces without holes) and mentions an alternative (deleting faces). However, it lacks explicit when-not-to-use scenarios or other alternatives, which would further guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dissolve_vertsA
Dissolve all vertices, merging connected edges and faces.
Removes vertices while preserving surrounding geometry.
Args: object_name: Name of the mesh object.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states 'Removes vertices while preserving surrounding geometry', which is helpful, but lacks details on side effects, prerequisites (must be mesh), or behavior on non-mesh objects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise, front-loaded with the main purpose, brief parameter and return description. Every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and a confirmation return, the description covers the essentials. It lacks error handling or undo info, but overall sufficient for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter object_name gets description 'Name of the mesh object', clarifying it expects a mesh object, which is not obvious from the schema alone (just 'Object Name' string). This adds value given 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Dissolve all vertices, merging connected edges and faces', which is a specific action on a specific resource (vertices). It distinguishes from sibling tools like dissolve_edges and dissolve_faces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this vs alternatives like merge_vertices or dissolve_edges. Usage is implied through the description but no exclusions or comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate_materialB
Duplicate a material with a new name.
Args: material_name: Name of the material to duplicate. new_name: Name for the duplicated material.
Returns: Confirmation dict with the new material name.
| Name | Required | Description | Default |
|---|---|---|---|
| new_name | Yes | ||
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavior. It mentions duplication and return type but omits side effects, error conditions (e.g., non-existent material), and whether all properties are duplicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences for purpose and clearly formatted Args/Returns. Every part is necessary and no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with an output schema, the description covers core operation and return value. Minor omissions about exact scope of duplication do not severely hinder understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It provides basic intent ('name of material to duplicate', 'name for duplicated material') but lacks constraints like uniqueness or existence requirements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action 'Duplicate' and the resource 'material', with the qualifier 'with a new name' distinguishing it from other material operations like create_material or assign_material.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., create_material) or when not to use it. The description only states what it does without contextual direction.
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.
Args: name: Name of the object to duplicate. linked: If True, create a linked duplicate (shares mesh data). Defaults to False.
Returns: Dict with the new object's name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| linked | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the linked duplication behavior and return format. However, it does not mention if the original object is affected or prerequisites like object existence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, uses a clear docstring format with Args and Returns sections, and every sentence serves a purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description covers the main behavior and parameters. It could be more complete by addressing error cases (e.g., if the object doesn't exist) but is adequate for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description fully explains both parameters: 'name' as the object to duplicate and 'linked' with its effect and default. This adds significant meaning beyond the schema, given 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Duplicate an object.' with a specific verb and resource, and distinguishes from sibling tools like duplicate_material and create_object.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks explicit guidance on when to use this tool versus alternatives (e.g., create_object, duplicate_material) or any exclusions. Usage context is implied but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_dyntopoA
Enable dynamic topology (dyntopo) for adaptive sculpting resolution.
Dyntopo adds and removes mesh detail dynamically as you sculpt, allowing unlimited detail where needed without uniform subdivision.
Args: object_name: Name of the mesh object (must be in sculpt mode or will enter it). detail_size: Detail level (smaller = more detail). Range: 0.1-500.0. detail_mode: Detail mode. One of: RELATIVE, CONSTANT, BRUSH, MANUAL.
Returns: Confirmation dict with dyntopo settings.
| Name | Required | Description | Default |
|---|---|---|---|
| detail_mode | No | RELATIVE | |
| detail_size | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that dyntopo dynamically adds/removes detail, enters sculpt mode if needed, and returns a confirmation dict. It misses potential side effects like undo limitations or performance impacts, but typical use 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear purpose, followed by a concise paragraph on dyntopo behavior, then structured Args/Returns. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, no annotations, and 0% schema coverage, the description is remarkably complete. It covers purpose, parameters, return value, and the critical prerequisite of sculpt mode. The presence of an output schema reduces the need to describe return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the tool description fully explains each parameter: object_name (must be in sculpt mode), detail_size (range 0.1-500.0, smaller = more detail), and detail_mode (lists all four values). This adds critical meaning beyond the schema's defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Enable dynamic topology') and the resource ('adaptive sculpting'), with a specific verb+resource combination. It distinguishes from sibling tools like enter_sculpt_mode or set_sculpt_brush by focusing on enabling dyntopo.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that the object must be in sculpt mode or will enter it, and describes the adaptive benefit ('allows unlimited detail where needed'). However, it does not explicitly exclude alternatives like remesh or multi-res, nor provide when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enter_sculpt_modeA
Enter sculpt mode for a mesh object.
Args: object_name: Name of the mesh object to sculpt.
Returns: Confirmation dict with object name and mode.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It only states it enters sculpt mode and returns a confirmation, but does not disclose error behavior (e.g., if object is not a mesh) 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences structured as a docstring (Args and Returns). No superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description is adequate but lacks edge case handling and error messages. It meets minimum viability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds meaning by stating 'Name of the mesh object to sculpt', which clarifies the parameter's purpose and type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'enter sculpt mode' on a 'mesh object', with a specific verb and resource. It effectively distinguishes from the sibling 'exit_sculpt_mode'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool, prerequisites (e.g., object must be a mesh and exist), or when alternatives like 'enable_dyntopo' 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.
execute_blender_codeA
Execute Python code inside Blender's sandboxed environment.
The code runs in a restricted sandbox that blocks dangerous imports (os, subprocess, socket, etc.) and dangerous builtins (exec, eval, open). Safe Blender imports (bpy, bmesh, mathutils, math, json) are allowed.
Args: code: Python code to execute. bpy is available but must be imported.
Returns: Dict with 'output' (captured stdout) and 'success' boolean.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description effectively discloses the sandbox restrictions, blocked imports, allowed imports, and return format. It provides sufficient behavioral context for an agent to understand safety and output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a front-loaded purpose sentence, followed by details on restrictions and input/output structure. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of executing arbitrary code, the description covers sandbox, allowed imports, and return structure. Minor omission of limits on execution time or output size, but overall complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'code' has no schema description (0% coverage), but the description adds meaning by stating it accepts Python code and noting that bpy must be imported. This compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool executes Python code in Blender's sandboxed environment. It distinguishes itself from over 100 sibling tools that perform specific operations, as it is the only one for arbitrary code execution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for custom scripts but does not explicitly state when to choose this tool over dedicated Blender operation tools. It lacks direct guidance on alternative tools or specific use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exit_sculpt_modeA
Exit sculpt mode and return to object mode.
Returns: Confirmation dict with current mode.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full burden. It describes the main behavior and return value, but does not mention potential failure conditions (e.g., if not currently in sculpt mode) or other side effects. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, front-loaded with the core action. Every sentence provides essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with an output schema, the description covers the action and return value. It could mention prerequisites or error handling, but overall it is mostly complete for a simple mode switch.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and the input schema is empty with 100% coverage. Per guidelines, baseline score is 4 for zero parameters; description adds no extra parameter info, which is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('exit sculpt mode') and the target state ('return to object mode'), using a specific verb and resource. It distinguishes itself from siblings like 'enter_sculpt_mode'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when in sculpt mode and wanting to exit), but does not explicitly state prerequisites or alternatives. For a simple state transition, this is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_fileA
Export scene or selected objects to a 3D file.
Supports FBX, OBJ, GLTF/GLB, USD, STL, PLY, Alembic (ABC), Collada (DAE), SVG, and X3D formats.
Args: filepath: Absolute path for the export file. type: Optional format override. Auto-detected from extension if empty. selected_only: If True, export only selected objects. Defaults to False.
Returns: Dict with exported file path and format.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| filepath | Yes | ||
| selected_only | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool exports to a file and returns a dict with path and format. However, it does not mention potential side effects like overwriting existing files, file size limits, or permission requirements. The behavioral transparency is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a single-line purpose, bullet list of supported formats, and clear Args section. Every sentence adds value. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all three parameters, the return value (dict with path and format), and supported formats. Given the presence of an output schema (context signal), the return docstring suffices. The tool is straightforward and the description is fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides detailed parameter semantics beyond the input schema titles: filepath is an absolute path, type is an optional format override auto-detected from extension, selected_only defaults to False. Schema description coverage is 0% (no descriptions in JSON schema), so the description compensates well. No example values are given, preventing a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it exports scene or selected objects to a 3D file, listing supported formats (FBX, OBJ, etc.). It distinguishes from the sibling tool 'import_file' by contrasting export vs import, and among sibling tools there is no other export tool, so purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains required parameter (filepath), optional format override (type auto-detected), and selected_only boolean with default. It does not explicitly state when to use this tool vs alternatives, but given no other export tool exists among siblings, the guidance is sufficient. A slight deduction for not mentioning export of entire scene vs selection clearly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extrude_facesB
Extrude all faces of a mesh along their normals.
Args: object_name: Name of the mesh object. offset: Extrusion distance along face normals.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. It only states basic function but does not disclose that it modifies the mesh destructively, requires edit mode, or what happens to non-mesh objects. Agent lacks behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is extremely concise, front-loading the action in one sentence, followed by brief arg and return specs. No fluff, every sentence is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool modifies geometry but description lacks crucial context: which mode it operates in (edit mode?), selection requirements (all faces implies none selected?), undo behavior, and whether it works on any object type. Output schema exists but is trivial ('Confirmation dict'), so not informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description adds basic semantics: object_name is the mesh name, offset is distance along normals. However, it omits constraints like valid range for offset or required object type beyond name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool extrudes all faces of a mesh along normals. Verb 'extrude' and resource 'faces' are specific and distinct from sibling tools like bevel_edges or inset_faces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Missing prerequisites (e.g., mesh must be in edit mode) and no differentiation from other extrusion or face operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fill_facesB
Fill selected edges with a face.
Creates faces from a closed edge loop. Useful for closing gaps in meshes or capping open ends.
Args: object_name: Name of the mesh object.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool creates faces from edges, but does not disclose whether edges must be pre-selected, if the new face is automatically selected, or if the operation modifies the mesh in-place. Minimal behavioral context for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is extremely concise: one-line summary, two short usage sentences, param description, and return type. No fluff, front-loaded with the key action. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 param, output schema exists but not shown), the description covers main purpose and return. However, it omits prerequisites ('selected edges' is implied but not stated) and assumes a closed edge loop without noting failure conditions. Adequate but with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds 'Name of the mesh object' for the single parameter, which is slightly more specific than the schema title 'Object Name.' Baseline 3 is appropriate as the description provides minimal additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Fill selected edges with a face' and 'Creates faces from a closed edge loop.' It specifies the verb (fill/creates) and resource (edges/face). Distinguishes from siblings like bridge_edge_loops or grid_fill by focusing on 'closed edge loop' and 'capping open ends,' though not explicitly differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description includes 'Useful for closing gaps in meshes or capping open ends,' providing clear context for when to use. However, it lacks guidance on when not to use or alternatives (e.g., bridge_edge_loops, grid_fill). No exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flip_normalsA
Flip the direction of all face normals on a mesh.
Reverses inside/outside of all faces. Use recalculate_normals instead if normals are inconsistent rather than uniformly wrong.
Args: object_name: Name of the mesh object.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the core behavior (flip direction, reverse inside/outside) but does not elaborate on side effects, permissions, or undo implications. With no annotations, the description carries full responsibility; however, the tool is simple and the description is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: purpose, usage guidance, parameter description, and return type are all included in a few sentences with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description covers purpose, usage, parameter, and return value. It is complete and actionable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description adds a clear explanation for the only parameter ('Name of the mesh object.'), compensating for the schema's lack of detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it flips face normals on a mesh, a specific verb and resource. It distinguishes itself from the sibling tool recalculate_normals by mentioning when to use the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to use recalculate_normals if normals are inconsistent rather than uniformly wrong, providing clear guidance on when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
focus_on_objectA
Frame/focus the viewport on a specific object.
Selects the object and uses View Selected to center the viewport on it.
Args: object_name: Name of the object to focus on.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses a key side effect: the tool selects the object before focusing. However, it does not mention potential limitations (e.g., whether object must be visible or if it works on non-mesh objects).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences plus an Args/Returns block. Every sentence is meaningful and front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with a straightforward purpose and an output schema (confirmation dict), the description is complete. It covers the action, parameter, and return type adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal meaning to the sole parameter 'object_name' by stating it's the name of the object to focus on. Schema coverage is 0%, so the description partially compensates, but the added value is limited given the parameter's simplicity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to frame or focus the viewport on a specific object. It explains the underlying action (selects object and centers viewport), which differentiates it from sibling tools like 'set_camera_from_view' or 'select_objects'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly provide guidance on when to use this tool versus alternatives. It implies usage for viewport navigation but lacks exclusion criteria or context for when other tools would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_color_rampA
Read every stop on a ColorRamp node.
Use this before editing to learn the current indices and positions, since add and move operations reorder stops.
Args: material_name: Name of the material. node_name: Name of the ColorRamp node.
Returns: Dict with elements (index, position, color), interpolation, color_mode.
| Name | Required | Description | Default |
|---|---|---|---|
| node_name | Yes | ||
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It clearly indicates a read-only operation and describes the return structure. However, it does not explicitly state idempotency or safety of multiple calls, though it is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three distinct sections: purpose, usage guidance, and Args/Returns. It is front-loaded with the core verb and resource, and every sentence contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with an output schema, the description covers purpose, usage context, parameters, and return structure. It lacks mention of error handling (e.g., when material or node doesn't exist), but overall is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0% description coverage, so the description's Args section adds essential meaning: 'material_name: Name of the material' and 'node_name: Name of the ColorRamp node'. This compensates for the missing schema descriptions, though it could include constraints like 'must exist'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Read every stop on a ColorRamp node', which is a specific verb+resource. It distinguishes from sibling tools like add_color_ramp_element and remove_color_ramp_element, which mutate stops.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends using this tool before editing to capture current indices and positions, explaining why (add/move operations reorder stops). It provides clear context but does not name alternative tools explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_treeB
Get the full node tree of a material (all nodes and links).
Args: material_name: Name of the material.
Returns: Dict with nodes list and links list.
| Name | Required | Description | Default |
|---|---|---|---|
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It implies a read operation but does not explicitly state that it is non-destructive, nor does it mention any permissions, performance considerations, or what happens if the material does not exist. This lack of behavioral context is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose. The docstring-style args/returns are efficient and easy to parse. No extraneous content, though it could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, read operation) and the presence of an output schema, the description covers the essential information: what it does, what input it needs, and what it returns (nodes and links lists). It does not explain internal details, but those are not necessary for usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'material_name' is described as 'Name of the material', which adds basic meaning to the schema (which has 0% coverage). However, it does not specify format, case-sensitivity, or how to obtain valid names, so the value added is minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the full node tree of a material, specifying 'all nodes and links'. However, it does not explicitly differentiate from sibling tools that also deal with nodes, such as 'add_geometry_node' or 'connect_geometry_nodes', leaving room for confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention any prerequisites, exclusions, or scenarios where this tool is appropriate, leaving the agent with no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_object_infoA
Get detailed information about an object.
Args: name: Name of the object.
Returns: Dict with type, location, rotation, scale, modifiers, materials, parent, children, and visibility info.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes what is returned but does not explicitly state that this is a read-only operation with no side effects. The term 'Get' implies read, but full transparency would benefit from an explicit statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: a one-line purpose followed by structured Args/Returns section. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, parameter, and return fields comprehensively. It lacks error handling or edge cases (e.g., object not found), but for a simple getter this is sufficient. The output schema is mentioned, enhancing completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'name' is described as 'Name of the object,' which adds meaning beyond the schema (which has no description). This is adequate for a straightforward required string parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get detailed information about an object,' specifying the verb 'Get' and the resource 'object.' It distinguishes from siblings like 'list_objects' (which lists names only) and other getters that retrieve node trees or scene info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: when detailed object info is needed. It does not explicitly state when not to use or mention alternatives, but the purpose is clear among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scene_infoA
Get full scene information including object tree, hierarchy, counts, frame range, fps, and render engine.
Returns a dict with scene name, object list with hierarchy, object type counts, frame range (start, end, current), fps, and active render engine.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility. It only lists what is returned but does not disclose any behavioral traits such as read-only nature, performance impact, or caching behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the key information: the purpose and the returned data. Every sentence provides value without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists the main return fields (scene name, object list with hierarchy, counts, frame range, fps, render engine). It could mention any side effects or performance notes, but it is complete for a read-only info tool with no parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0 parameters, baseline is 4. The description adds meaning by detailing what the tool returns, which is necessary since the schema provides no parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves full scene information including specific elements like object tree, hierarchy, frame range, fps, and render engine. It is distinct from sibling tools that focus on specific aspects (e.g., get_object_info for object details).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for getting an overview of the scene, but it does not explicitly state when to use it over alternatives like get_object_info or get_node_tree. No exclusions or usage hints are provided.
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.
Args: max_size: Maximum size in pixels for the largest dimension (default: 1000). mode: Capture mode - 'fast' for instant viewport capture using OpenGL (default), 'full' for a complete render through the active render engine.
Returns: Dict with base64-encoded PNG image data, width, height, format, and mode.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | fast | |
| max_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description discloses return format (base64 PNG, dimensions, mode) and explains the two capture modes ('fast' vs 'full'). No side effects mentioned but likely read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise, front-loaded with purpose, followed by parameter and return explanations. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers parameters and return value well, but could mention prerequisites (e.g., an active 3D viewport) and error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has no descriptions for parameters; the tool description fully compensates by explaining 'max_size' and 'mode' with defaults and behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'capture' and resource 'viewport screenshot', but does not differentiate from sibling tool 'capture_viewport'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains parameters and modes but does not provide explicit guidance on when to use this tool versus alternatives like 'capture_viewport'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grid_fillA
Fill a closed edge loop with a grid of quads.
Creates a clean quad grid between edge loops. Better than fill_faces for maintaining good topology.
Args: object_name: Name of the mesh object. span: Number of grid columns. Range: 1-1000. offset: Offset for the grid alignment. Range: 0-1000.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| span | No | ||
| offset | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses the return type as a confirmation dict and gives parameter ranges. Yet it lacks details about prerequisites (e.g., needing a closed edge loop selected), side effects, or required modes, making transparency moderate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a clear front-loaded purpose, followed by a brief comparison and a well-structured argument list. Every sentence is necessary and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema details (only mention of a confirmation dict), the description adequately covers the parameters but omits operation prerequisites and mode requirements. It is moderately complete for a tool with moderate complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description compensates by explaining each parameter: object_name as the mesh object, span as column count with range, offset as alignment offset with range. This adds substantial semantic value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fills a closed edge loop with a grid of quads, creating clean quad topology. It explicitly differentiates itself from the sibling fill_faces by claiming better topology maintenance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a direct comparison to fill_faces, indicating when this tool is preferable for topology quality. However, it does not list other alternatives or specify 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.
import_fileA
Import a 3D file into Blender.
Supports FBX, OBJ, GLTF/GLB, USD, STL, PLY, Alembic (ABC), Collada (DAE), SVG, and X3D formats. Auto-detects format from file extension if type is empty.
Args: filepath: Absolute path to the file to import. Must exist. type: Optional format override. One of: FBX, OBJ, GLTF, USD, STL, PLY, ABC, DAE, SVG, X3D. Auto-detected from extension if empty.
Returns: Dict with imported file path and format.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| filepath | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses supported formats, auto-detection behavior, and the requirement that filepath must exist. It also mentions the return dictionary. However, it does not describe side effects (e.g., adding to current scene, potential conflicts), permissions, or error handling. The behavioral disclosure is adequate but lacks edge case details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a single introductory sentence, a bullet-like list of supported formats, and a structured Args/Returns section. Every sentence adds value. Information is front-loaded (purpose stated first). There is no redundancy or extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core functionality, supported formats, parameters, and return value. The output schema exists, so return details are not fully necessary but are still provided. A minor gap: it does not mention that the import adds objects to the current scene or any potential overwrite behavior. Given the tool's simplicity and the presence of sibling tools, this is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides only title and type for each parameter, yielding 0% semantic coverage. The description compensates fully: it explains that filepath is an absolute path that must exist, and that type is an optional format override with a list of supported values (auto-detected if empty). This adds crucial meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Import a 3D file into Blender', clearly stating the action and target. It lists supported formats, distinguishing it from sibling tools like export_file (exporting) and open_file (opening .blend files). The verb 'import' and resource 'file into Blender' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that format auto-detection occurs from file extension, and that type is optional override. It implies when to use the type parameter. However, it does not explicitly state when not to use this tool (e.g., for opening .blend files) or suggest alternatives like open_file. The sibling list makes the distinction inferable, but explicit guidance would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insert_keyframeA
Insert a keyframe on an object property at a specific frame.
Args: object_name: Name of the object. data_path: Property to keyframe. Must be one of: location, rotation_euler, rotation_quaternion, scale, or indexed variants like location[0]. frame: Frame number to insert the keyframe at. value: Optional value to set before inserting the keyframe.
Returns: Confirmation dict with keyframe details.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | Yes | ||
| value | No | ||
| data_path | Yes | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains that a keyframe is inserted, and that an optional value can be set first, but does not mention side effects (e.g., overwriting existing keyframes) or requirements (e.g., existing animation data).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a summary line, followed by a bulleted list of arguments and a return description. Every sentence adds value, and it is appropriately concise with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, parameters, and return value. It has an output schema, so return details are documented. However, it lacks edge-case behavior (e.g., error handling for invalid data_path) and setup requirements, but given the tool's simplicity, it is still complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description adds detailed meaning for all parameters: object_name, data_path with valid values list and indexed variants, frame as integer, and value as optional. This significantly enhances understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Insert), resource (keyframe), and context (on an object property at a specific frame). It distinguishes the tool from siblings like 'delete_keyframe' and 'list_keyframes'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides parameter constraints (e.g., valid data_path values) but does not explicitly state when to use this tool versus alternatives like 'set_interpolation' or 'clear_animation'. No guidance on prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inset_facesA
Inset all faces of a mesh, creating a border/frame around each face.
Core hard-surface modeling operation for adding detail, panel lines, or preparing faces for extrusion.
Args: object_name: Name of the mesh object. thickness: Inset thickness (border width). Range: 0.0-10.0. depth: Inset depth (positive=outward, negative=inward). Range: -10.0 to 10.0.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | ||
| thickness | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description mentions it is a core operation and describes typical use, but lacks details on side effects, prerequisites (e.g., edit mode), or handling of invalid parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loads the purpose, and uses a clean docstring format without redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 3 parameters, no annotations, and an output schema for return value, the description covers purpose, parameters, and return. Minor gaps include not specifying whether all faces or selected faces are affected, or prerequisites like edit mode.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no descriptions for parameters, but the description adds docstring-style Args with ranges for thickness and depth, and specifies object_name is for the mesh object, providing meaningful semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'inset', the resource 'all faces of a mesh', and the result 'border/frame around each face,' which is distinct from sibling tools like extrude_faces or bevel_edges.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains when to use the tool for 'hard-surface modeling, adding detail, panel lines, or preparing faces for extrusion,' but does not explicitly exclude other scenarios or compare with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
join_objectsA
Join multiple mesh objects into one (keeps all geometry as-is).
This merges objects into a single datablock without modifying geometry. The meshes remain separate inside the object (no boolean merge).
TIP: If you want to truly fuse overlapping meshes into one solid shape, use booltool_auto_union instead — it performs a boolean union that merges the geometry and removes internal faces.
Args: names: List of object names to join. The first name becomes the active object.
Returns: Dict with the resulting joined object name.
| Name | Required | Description | Default |
|---|---|---|---|
| names | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that meshes remain separate inside the object, no boolean merge, and the first name becomes active object. With no annotations, this provides full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two paragraphs, front-loaded with purpose, no fluff. Every sentence adds value, including the TIP.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even with high schema coverage, the description fully explains behavior for a simple tool, including return value. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
For the single parameter 'names', the description adds 'List of object names to join. The first name becomes the active object.' This goes beyond the schema's minimal definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Join multiple mesh objects into one' and specifies it keeps geometry as-is, distinguishing it from booltool_auto_union which performs a boolean union.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides a tip to use booltool_auto_union for fusing overlapping meshes, giving clear when-not-to-use guidance and an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
knife_projectC
Project a cutter object's outline onto a mesh to cut it.
The cutter object (curve or mesh) is projected from the viewport onto the target mesh, cutting new edges into it.
Args: object_name: Name of the mesh to cut into. cutter_name: Name of the cutter object (curve or mesh) to project.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| cutter_name | Yes | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must detail behavioral traits, but it only mentions projection and cutting. It doesn't disclose destructiveness, mode requirements, or whether the mesh is modified in place. Returns are vaguely stated as 'confirmation dict'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and to the point, with a clear listing of arguments. Every sentence contributes, though the structure could be improved by separating behavior from usage notes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a cutting operation, the description omits critical context: viewport dependency, object modes, and prerequisite selection. An output schema exists but isn't elaborated, so the description remains incomplete for effective invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% parameter description coverage, but the description provides one-line definitions for object_name and cutter_name. This adds minimal semantics beyond titles, lacking details like format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool projects a cutter onto a mesh to cut it, specifying the cutter can be a curve or mesh. This differentiates it from boolean operations, though it doesn't explicitly contrast with sibling tools like boolean_operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like boolean_operation or bevel_edges. The description lacks context about viewport orientation or prerequisites, leaving the agent to guess appropriateness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_geometry_node_inputsA
List all available inputs on a geometry nodes modifier.
Args: object_name: Name of the object with the modifier. modifier_name: Name of the geometry nodes modifier.
Returns: List of dicts with input name, type, and current value.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| modifier_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully carries the burden. It implies a read-only operation by stating 'list', but does not explicitly disclose non-destructive behavior, required permissions, or effects. It is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear structure including Args and Returns sections. It is front-loaded with the main purpose and adds necessary detail without excess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description covers the action, parameters, and return format. An output schema exists, and the description supplements it by listing the return fields. Could mention that it only works for geometry nodes modifiers, but the title implies that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description adds meaningful explanations for both parameters: 'Name of the object with the modifier' and 'Name of the geometry nodes modifier', which clarifies their roles beyond the schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all available inputs on a geometry nodes modifier', which is a specific verb and resource. It distinguishes from sibling tools like set_geometry_node_input (which modifies inputs) and get_node_tree (which retrieves the node tree).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells what the tool does but does not provide explicit guidance on when to use it versus alternatives (e.g., before calling set_geometry_node_input). No usage context or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_keyframesB
List all keyframes on an object.
Args: object_name: Name of the object.
Returns: List of dicts with data_path, frame, and value for each keyframe.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 read-only nature or side effects. For a listing operation, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences plus a brief Args/Returns section. Every word is useful, and the structure is clear and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter) and the presence of an output schema, the description is nearly complete. It could mention object existence, but covers the core functionality well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description repeats the schema's title ('Name of the object') with no added meaning. With 0% schema coverage, the description should compensate but fails to provide any additional context or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all keyframes') and the target resource ('on an object'), making the purpose immediately obvious. It distinguishes from siblings like 'insert_keyframe' and 'delete_keyframe'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. The description implies its purpose but doesn't cover prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_lightsA
List all light objects in the scene.
Returns: List of dicts with light name, type, energy, color, and location.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation by using 'List', and it details the output structure. With no annotations, the description does a good job of being transparent about the behavior, though it could explicitly state it doesn't modify 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with no wasted words. The core purpose is stated in the first sentence, and the return format is listed in a clear manner. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, clear return structure described), the description is fully complete. It covers what the tool does, what it returns, and there is an output schema indicated, so return values are explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has no parameters, and schema description coverage is 100%. The description adds no additional parameter info, which is acceptable since there are none. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all light objects in the scene, which distinctively separates it from sibling tools like create_light, delete_light, or set_light_property. It also specifies the returned fields, enhancing clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. Since it's a simple listing tool, usage can be inferred, but direct mention of when not to use or preferred contexts is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_materialsA
List all materials in the current Blender file.
Returns: List of dicts with material name and user count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 tool lists materials and returns dicts, but does not mention any behavioral traits such as whether it is read-only, performance implications, or what happens if no materials exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, front-loading the main purpose and adding return format information. Every sentence is essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of parameters and the presence of an output schema, the description is complete. It covers what the tool does and what it returns without missing necessary context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so the description does not need to add parameter information. Schema coverage is 100%, and the baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all materials in the current Blender file and specifies the return format as a list of dicts with material name and user count. It distinguishes itself from sibling tools like create_material or delete_material.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing materials but does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_objectsA
List all objects in the scene, optionally filtered by type.
Args: type_filter: Filter by object type (e.g., MESH, LIGHT, CAMERA, EMPTY). Empty string returns all objects.
Returns: List of dicts with object name, type, and location.
| Name | Required | Description | Default |
|---|---|---|---|
| type_filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description discloses return format (list of dicts) and filtering behavior. Does not explicitly state read-only, but 'list' implies no side effects. Adequate transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise paragraph with clear purpose and separated Args/Returns. No extraneous information. Front-loaded with main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple tool (1 optional param), description covers purpose, filter, and return details. No output schema provided but return format described. Complete for agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has zero description coverage (0%). Description adds filter examples (MESH, LIGHT, etc.) and default behavior (empty = all). Adds value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'list', resource 'objects', scope 'scene', and optional filter by type. Distinguished from sibling list tools (list_lights, list_materials) by specifying 'objects'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: to enumerate objects in scene. No explicit when-to-use or when-not-to-use. Among siblings, obvious as a listing tool, but lacks alternatives for detailed info (e.g., get_object_info).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_procedural_patternsA
List every procedural pattern with a description of what it looks like.
Read this before calling create_procedural_material so you pick a pattern that matches the surface you are trying to make.
Returns: Dict with the sorted pattern names and a description of each.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description clearly states the return format (sorted dict with pattern names and descriptions) and the purpose. It is a non-destructive listing, and the description accurately represents its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three efficient sentences, each adding value. It front-loads the main action and includes a usage guideline. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a tool with no parameters. It explains the purpose, usage context, and return value. The existence of an output schema further compensates for any missing detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description need not add parameter info. With no parameters, baseline is 4 as per guidelines. The description does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists all procedural patterns with descriptions, serving as a reference for creating procedural materials. It distinguishes itself from the sibling tool create_procedural_material by being a read-only listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly advises reading this before calling create_procedural_material to choose the right pattern, indicating when to use the tool and providing context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recent_filesA
List recently opened files from Blender preferences.
Returns: List of file path strings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does not explicitly state that the operation is read-only or free of side effects. It only mentions the return type but omits details like ordering, limits, or potential dependencies on active preferences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise with two sentences, front-loading the purpose and clearly stating the return value. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no parameters and an output schema, the description is minimally sufficient but lacks context about the number of files, recency definition, or potential failure modes. It does not leverage the output schema to further clarify structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so schema coverage is 100%. The description adds no parameter information, but this is acceptable as there are none; baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the specific resource 'recently opened files from Blender preferences,' which distinguishes it from the many sibling tools that deal with modeling, scene management, or other operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like list_objects or list_scenes. The description does not mention contexts or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_scenesA
List all scenes in the current Blender file.
Returns a list of dicts, each containing the scene name and object count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It clearly states the tool is read-only (lists scenes) and describes the return format (list of dicts with name and object count). It does not discuss permissions or side effects, but for a simple list tool, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first sentence immediately states the action, and the second provides return type details. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, output schema exists), the description fully covers what the tool does and what it returns. It is complete for an agent to understand its function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and the description correctly adds no parameter info. According to the rules, zero parameters earns a baseline of 4, as the description does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all scenes in the current Blender file, using the specific verb 'list' and resource 'scenes'. This distinguishes it from siblings like 'get_scene_info' (which gets details of a single scene) or 'delete_scene'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need to enumerate scenes and their object counts, but does not explicitly state when not to use it or mention alternatives. Given the simple nature, the guidance is adequate but not differentiated from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loop_cutA
Add loop cuts to a mesh object.
Args: object_name: Name of the mesh object. cuts: Number of loop cuts. Range: 1-100.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| cuts | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, yet the description does not disclose behavioral traits beyond 'Add loop cuts'. It fails to mention if the operation is destructive, requires edit mode, or other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with a clear structure: a one-sentence summary, then Args and Returns sections. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with an output schema, the description is fairly complete. It mentions the return type (confirmation dict). However, it could clarify prerequisites (e.g., object must be a mesh) or error behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description adds crucial meaning: it explains that 'object_name' is the mesh object and 'cuts' has a range of 1-100. This goes beyond schema titles and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Add loop cuts to a mesh object' which is a specific verb-resource pair. Among siblings like subdivide_mesh and bevel_edges, loop cut is distinct and clearly identified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., subdivide_mesh). The description only says what it does, not when or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_single_userB
Make an object's data single-user (unlink shared datablocks).
Args: object_name: Name of the object. object: Make the object single-user. Defaults to True. data: Make the object data (e.g., mesh) single-user. Defaults to True.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| object | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden for behavioral disclosure. It indicates a mutation operation but does not disclose side effects (e.g., effects on other objects sharing the datablock), reversibility, or permission requirements. The description is insufficient for safe usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. It provides a one-line purpose followed by a clear Args section with each parameter explained. No redundant information; every sentence is necessary. The format is front-loaded with the core operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool operates on shared datablocks (a potentially impactful operation), the description lacks important contextual details such as reversibility, warnings about data loss, or behavior when both parameters are false. Although an output schema is mentioned (confirmation dict), no structure is provided. The description is insufficient for a tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description compensates by explaining each parameter's role: 'object' controls making the object single-user, 'data' controls the object's data (e.g., mesh). This adds meaning beyond the schema's type-only definitions. However, the descriptions are brief and could elaborate on the effects of setting each to false.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Make an object's data single-user (unlink shared datablocks).' It uses a specific verb ('make') and resource ('object's data single-user'), distinguishing it from sibling tools like duplication or property setting. The term 'single-user' is a specific Blender concept.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. It lacks context about scenarios where unlinking shared datablocks is appropriate or necessary. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_seamA
Mark or clear UV seams on all edges of a mesh.
UV seams guide the UV unwrapping process. Edges marked as seams define where the mesh is "cut" when unwrapped to 2D.
Args: object_name: Name of the mesh object. clear: If True, clear seams instead of marking them.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| clear | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It states the tool operates 'on all edges', which is ambiguous: it could mean it affects all edges of the mesh (suggesting a bulk operation) or it marks seams on currently selected edges. The typical Blender workflow requires selecting edges, so the lack of clarity could mislead the agent. Additionally, there is no mention of side effects, undo capabilities, or confirmation details beyond 'Confirmation dict'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a brief introductory sentence, a short explanatory line about UV seams, and a structured Args/Returns section. It avoids unnecessary detail. However, the phrase 'on all edges' may be misleading and could be clarified in a sentence without significantly increasing length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description covers basic behavior but omits critical details: whether the tool requires the mesh to be in edit mode, whether it operates on the active object or a specified object, and whether it respects selection. No error handling or prerequisites are mentioned. The output schema exists but is vague ('Confirmation dict'). Overall, the description is incomplete for reliable agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% coverage (no descriptions for properties), so the description must clarify parameter meaning. It describes 'object_name' as 'Name of the mesh object' and 'clear' as 'If True, clear seams instead of marking them'. This adds value beyond the schema. However, it does not specify that 'object_name' must be exact or case-sensitive, but overall it provides adequate semantic context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool marks or clears UV seams on all edges of a mesh. It uses specific verbs ('Mark or clear') and explicitly identifies the resource ('UV seams on all edges of a mesh'). The context of UV seams for unwrapping is provided, distinguishing it from sibling tools like 'mark_sharp' (for sharp edges) and 'uv_unwrap' (the unwrapping process itself).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that UV seams guide the unwrapping process, implying this tool is used as a preparatory step before 'uv_unwrap'. However, it does not explicitly state when to use this tool versus alternatives like 'mark_sharp', nor does it give guidance on when not to use it. The usage context is implied but not clearly delineated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_sharpA
Mark or clear sharp edges on a mesh.
Sharp edges control auto-smooth shading. Edges marked as sharp will have a hard edge in the shading even with smooth shading enabled.
Args: object_name: Name of the mesh object. clear: If True, clear sharp marks instead of setting them.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| clear | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully explains the operation: setting or clearing sharp marks and their effect on shading. It does not mention prerequisites like edit mode but is otherwise transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loads the action, and uses a clear docstring format with Args and Returns sections. Every sentence is informative and without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and an output schema, the description covers the core functionality and parameter meaning well. It lacks mention of requirements like mesh being in edit mode or auto-smooth enabled, but overall is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since schema coverage is 0%, the description provides complete semantics for both parameters: object_name (mesh name) and clear (default false, clear if true). It explains the effect of each, adding value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs 'mark' and 'clear' with the resource 'sharp edges', and explains their purpose for auto-smooth shading. It clearly distinguishes this tool from sibling mesh editing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use the tool (to control auto-smooth shading) but does not explicitly mention when not to use it or provide direct alternatives. However, the use case is clear from the explanation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
merge_verticesA
Merge vertices by distance.
Args: object_name: Name of the mesh object. threshold: Maximum distance between vertices to merge. Range: 0.0-10.0.
Returns: Confirmation dict with number of removed vertices.
| Name | Required | Description | Default |
|---|---|---|---|
| threshold | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the return value (confirmation dict with removed count) and the threshold range, but does not mention that the operation is destructive or modify the mesh permanently. Some behavioral context is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, with a one-line summary followed by structured Args and Returns sections. No unnecessary words, and it effectively communicates the essential information in a compact format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 parameters, no enums, output schema exists), the description is mostly complete. It covers purpose, parameters, and return value. However, it does not mention whether the operation works on all vertices or only selected ones, or if it can be undone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description adds significant value. It explains object_name as 'Name of the mesh object' and threshold as 'Maximum distance between vertices to merge. Range: 0.0-10.0.' This clarifies what each parameter means 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Merge vertices by distance,' specifying the action (merge) and resource (vertices) with a criterion (distance). This is distinct from sibling tools like dissolve_verts, which remove vertices without merging.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (for merging nearby vertices) but does not explicitly state when not to use it or mention alternatives like dissolve_verts or boolean_operation. No usage context is provided beyond the basic operation.
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 to a collection, unlinking them from their current collections.
Args: object_names: List of object names to move. collection_name: Name of the destination collection.
Returns: Dict with the moved objects and destination collection.
| Name | Required | Description | Default |
|---|---|---|---|
| object_names | Yes | ||
| collection_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the unlinking behavior, which is a key side effect. However, it does not mention other behavioral aspects such as whether the collection must exist, whether the object retains its location, or authorization requirements. Since no annotations are provided, the description partially fulfills transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and uses a structured docstring format (Args, Returns). It is front-loaded with the main purpose. No redundant information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple move operation, the description covers the main action, parameters, and return value. It implicitly handles multiple objects via a list. However, it does not explain edge cases like moving to a non-existent collection or moving a subset of objects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to both parameters beyond the schema: 'object_names: List of object names to move' and 'collection_name: Name of the destination collection.' With 0% schema description coverage, this provides essential clarification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Move objects to a collection') and the effect ('unlinking them from their current collections'). It distinguishes itself from sibling tools by specifying the moving aspect, which is unique among collection-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, limitations, or compare with other tools like 'set_collection_visibility' or 'parent_objects'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_fileA
Open a .blend file.
Args: filepath: Absolute path to the .blend file. Must exist.
Returns: Dict with the opened file path.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It states the file must exist and returns the file path, but does not explain side effects like whether the current scene is replaced or if unsaved changes are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence for purpose, followed by clear Args and Returns sections. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (one parameter, output described), the description covers the essential context. However, it omits details about Blender's file opening behavior (e.g., unsaved changes), which would be helpful for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description's docstring defines 'filepath' as 'Absolute path to the .blend file. Must exist.' This adds necessary meaning beyond the schema's minimal type/name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Open a .blend file.' with a specific verb and resource. It distinguishes from siblings like import_file and export_file by focusing on .blend files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for opening existing .blend files and notes that the file must exist. However, it does not provide when-not-to-use guidance or mention alternatives among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pack_uv_islandsA
Pack UV islands to fit efficiently within the UV space.
Args: object_name: Name of the mesh object. margin: Margin between packed islands (0.0-1.0).
Returns: Confirmation dict with object name.
| Name | Required | Description | Default |
|---|---|---|---|
| margin | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden of behavioral disclosure. It states the tool packs UV islands but does not specify if it overwrites existing layout, requires the object to have UVs, or note any side effects. The minimal description leaves key behaviors unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct with no wasted words. It includes a one-line purpose, clear Args section, and Returns note. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, straightforward operation), the description covers the essential interface. However, it omits context like the need for an existing UV map and lack of effect if no islands exist. The provided output schema helps, but completeness is adequate but not excellent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description explains both parameters: object_name (mesh object) and margin (0-1 range). This adds significant meaning beyond the schema's type/default, making the tool usable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: packing UV islands efficiently within UV space. It uses a specific verb ('Pack') and resource ('UV islands'), and distinguishes itself from sibling tools like uv_unwrap and smart_uv_project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like uv_unwrap or set_uv_projection. The description does not mention prerequisites or exclusions, leaving the agent to infer context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parent_mesh_to_armatureA
Parent a mesh object to an armature with automatic weights or other methods.
Args: mesh_name: Name of the mesh object to parent. armature_name: Name of the armature object. type: Parenting method. One of: ARMATURE_AUTO (automatic weights), ARMATURE_NAME (by bone names), ARMATURE_ENVELOPE (by envelope).
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ARMATURE_AUTO | |
| mesh_name | Yes | ||
| armature_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions 'automatic weights or other methods' but does not disclose side effects (e.g., adding an armature modifier, creating vertex groups) or what happens to original data. Behavioral impacts are vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear structure: purpose sentence, Args list, Returns line. Every sentence adds value with no redundancy or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters and no annotations, the description covers basic functionality and parameters. However, it lacks details on prerequisites (e.g., armature must be selected?), error handling, and return value specifics beyond 'Confirmation dict.' Sibling differentiation is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description documents all three parameters (mesh_name, armature_name, type) with explanations and valid values for type. This adds significant meaning beyond the schema's bare names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Parent a mesh object to an armature with automatic weights or other methods.' It specifies the verb (parent) and resources (mesh to armature), and distinguishes from the more general sibling tool parent_objects by focusing on armature parenting with weight options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for rigging tasks but does not explicitly state when to use this tool versus alternatives like parent_objects or when not to use it. No context 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.
parent_objectsB
Set parent-child relationship between two objects.
Args: child: Name of the child object. parent: Name of the parent object.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| child | Yes | ||
| parent | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states 'Set parent-child relationship' and returns a 'Confirmation dict', but does not disclose side effects (e.g., whether the child's previous parent is removed) or validation rules. Insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with one sentence for purpose, then clearly formatted Args and Returns sections. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and a simple 2-parameter tool, the description covers the core purpose and parameter definitions. However, it omits behavioral details (e.g., error handling, effect on existing relationships) and the return type is only vaguely described as 'Confirmation dict'. Adequate for basic understanding but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides brief definitions for both parameters ('Name of the child object' and 'Name of the parent object'), which adds meaning beyond the schema's titles. However, no further details like name format or uniqueness constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Set' and resource 'parent-child relationship between two objects', which clearly states the action. It distinguishes from sibling tools like 'join_objects' or 'make_single_user' that perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as when objects already have parents or when the relationship would create cycles. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
point_camera_atA
Point a camera at an object or a specific location using a Track To constraint.
Args: camera_name: Name of the camera object. target: Name of the target object to point at. Mutually exclusive with location. location: XYZ location to point at as [x, y, z]. Mutually exclusive with target.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| location | No | ||
| camera_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'using a Track To constraint' but does not disclose details like whether it adds or modifies a constraint, what happens to existing constraints, permission requirements, or potential side effects. The lack of behavioral context is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. It front-loads the purpose in one sentence, then lists parameter descriptions in a clear docstring format. Every sentence is necessary and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the parameters and output well. It mentions the Track To constraint, which gives context. However, it could be more complete by stating that it adds a constraint to the camera object, which is implied but not explicit. Given the presence of an output schema, the description is fairly complete for a tool with 3 parameters and moderate complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant value beyond the input schema, which has 0% schema description coverage. It explains each parameter: camera_name as 'Name of the camera object', target and location with mutual exclusivity, and location format as '[x, y, z]'. This clarifies meaning and usage far beyond the schema's minimal titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: point a camera at an object or location using a Track To constraint. It distinguishes from sibling tools like set_camera_property or set_active_camera by specifying the action of aiming via constraint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description implies usage for aiming cameras, it does not explicitly compare to alternatives (e.g., set_camera_property, set_camera_from_view) or mention when not to use this tool. No exclusions or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quads_to_trisA
Convert all quad faces to triangles.
Useful for game engine export or when triangulated geometry is required.
Args: object_name: Name of the mesh object.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description should fully describe behavior. It mentions the conversion but does not disclose side effects (e.g., in-place modification, effect on UVs, or requirement for mesh objects). The description is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient: two sentences plus structured Args/Returns section. Every part adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description covers purpose and basic use. However, it omits trivial context like 'works only on mesh objects' or 'modifies the object in place.' Overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no extra meaning to the single parameter 'object_name' beyond its title in the schema. The parameter is simple, but the description fails to compensate for the missing schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts quad faces to triangles and specifies use cases (game engine export, triangulated geometry). It distinguishes from sibling tools like tris_to_quads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage contexts (game engine export, triangulation needed) but does not explicitly state when not to use or provide alternatives like tris_to_quads for the opposite operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recalculate_normalsB
Recalculate face normals to be consistent (all pointing outward or inward).
Fixes meshes with flipped or inconsistent normals that cause shading artifacts.
Args: object_name: Name of the mesh object. inside: If True, normals point inward instead of outward.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| inside | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose if tool modifies object in place, is destructive, requires specific mode (e.g., edit mode), or other behavioral traits. Only states it recalculates normals and returns a confirmation dict.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is short and includes a structured Args section. No extra fluff, but could be more structured with bullet points. Efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has an output schema, so return value explanation is sufficient as confirmation dict. However, lacks prerequisites (e.g., object must be a mesh), mode requirements, or details on scope (per face or overall). Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, but description adds Args section clarifying object_name as 'Name of the mesh object' and inside as controlling normals direction. Adds moderate value beyond schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool recalculates face normals to make them consistent (outward or inward), with a note about fixing shading artifacts. It differentiates from sibling 'flip_normals' by focusing on consistency rather than simple flipping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies use for meshes with flipped/inconsistent normals causing shading artifacts, but lacks explicit when-to-use or when-not-to-use guidance, and does not mention alternatives like flip_normals.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remeshB
Remesh an object to create a clean topology.
Args: object_name: Name of the mesh object to remesh. voxel_size: Voxel size for remeshing (smaller = more detail). Only used in VOXEL mode. mode: Remesh mode - VOXEL, SHARP, SMOOTH, or BLOCKS.
Returns: Dict with object name and new vertex count.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | VOXEL | |
| voxel_size | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavior. It mentions the return format but fails to state whether the original object is modified, if the operation is destructive, or any performance implications. The information is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with 'Args' and 'Returns' sections, concise at two paragraphs. It is front-loaded with the core purpose. No unnecessary words, but could benefit from slightly more detail on behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (implied by return description) and a moderate number of parameters, the description is fairly complete. However, it omits whether the remesh modifies the object in place or creates a new one, which is important for understanding side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the schema by explaining 'voxel_size' (smaller = more detail, only in VOXEL mode) and listing mode options. It also describes the return dict. This compensates for the 0% schema description coverage. However, 'object_name' is not elaborated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Remesh an object' and the goal 'create a clean topology'. It is specific enough to distinguish from general mesh operations like subdivide or boolean, though it does not explicitly contrast with siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., dyntopo, subdivision). There is no discussion of prerequisites, typical use cases, or scenarios where this tool is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_annotation_layerB
Remove a layer from an annotation.
Args: annotation_name: Name of the annotation data block. layer_name: Name of the layer to remove.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| layer_name | Yes | ||
| annotation_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states that the tool removes a layer and returns a confirmation, but it lacks details on side effects (e.g., whether removal is irreversible), error handling, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: one sentence for purpose, two lines for parameter definitions, and one line for returns. Every sentence contributes value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (two parameters, no annotations, no output schema shown but mentioned), the description is adequate for a basic removal action. However, it could improve by noting error conditions or confirming that the layer must exist. The mention of a 'Confirmation dict' hints at the return type but lacks detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description adds essential meaning by defining each parameter: 'annotation_name' as the name of the annotation data block, and 'layer_name' as the name of the layer to remove. This is minimal but sufficient to convey what each parameter represents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Remove a layer from an annotation.' It uses a specific verb and resource, making the purpose unambiguous. However, it does not differentiate from the sibling tool 'add_annotation_layer' or other annotation-related tools, which would enhance clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., requiring an existing annotation), nor does it specify scenarios where this tool is appropriate or inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_color_ramp_elementA
Remove a colour stop from a ColorRamp node.
Blender requires at least one stop to remain; removing the last one fails.
Args: material_name: Name of the material. node_name: Name of the ColorRamp node. index: Zero-based index of the stop to remove.
Returns: Dict with the removed index and the remaining element count.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| node_name | Yes | ||
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It warns about the failure on removing the last stop, which is useful. However, it does not disclose other potential side effects, such as whether the operation is destructive or if it requires specific permissions. The return values are described but are covered by the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a one-sentence purpose, a constraint, then a structured Args/Returns section. No redundant information. Slightly more detail could be added without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description covers the essential aspects: action, constraint, parameter meanings, and return information. It lacks only minor contextual details like prerequisites or node type requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description's 'Args' section adds critical meaning. It explains each parameter: material_name, node_name, and index (noting zero-based). This provides clarity beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove a colour stop from a ColorRamp node') with a specific verb and resource. It distinguishes this tool from sibling tools like 'add_color_ramp_element' and 'set_color_ramp_element' by focusing on removal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a key constraint ('Blender requires at least one stop to remain; removing the last one fails'), but does not provide explicit guidance on when to use this tool versus alternatives or any prerequisites (e.g., existence of a ColorRamp node). Implied usage is present but not thorough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_modifierB
Remove a modifier from an object.
Args: object_name: Name of the object. modifier_name: Name of the modifier to remove.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| modifier_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It mentions the return type (confirmation dict) but does not disclose behavioral traits such as destructive nature, reversibility, error handling, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with two clear sentences and a structured Args/Returns section. Every part is necessary and contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and an output schema, the description covers the essentials: purpose, arguments, and return type. It does not explain error behavior or domain-specific details, but is reasonably complete given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. The Args section provides one-line descriptions for each parameter, clarifying their purpose beyond the schema titles, but lacks format, examples, or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Remove a modifier from an object) with a specific verb and resource, distinguishing itself from sibling tools like add_modifier and apply_modifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternatives, nor does it mention prerequisites or constraints. It simply states what it does without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_shader_nodeB
Remove a shader node from a material's node tree.
Args: material_name: Name of the material. node_name: Name of the node to remove.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| node_name | Yes | ||
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states 'Remove' implying destructive action but does not disclose consequences like reversibility, side effects on node tree, or error states (e.g., node not found).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a single-sentence purpose followed by structured Args and Returns. It is front-loaded and efficient, wasting no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool, the description covers the basic operation but lacks context on error handling, prerequisites (e.g., node must exist), and the structure of the confirmation dict. It is adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description adds meaning. It labels parameters as 'Name of the material.' and 'Name of the node to remove.', which is clear but adds little beyond the property names. Baseline 3 is appropriate as it provides basic clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Remove' and the resource 'shader node' from a 'material's node tree', which is specific and distinguishes it from sibling tools like add_shader_node, connect_shader_nodes, and disconnect_shader_nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for removing a shader node but does not provide explicit guidance on when to use this tool versus alternatives like disconnect_shader_nodes, nor does it mention prerequisites or edge cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_objectC
Rename an object.
Args: old_name: Current name of the object. new_name: New name for the object.
Returns: Dict with old and new names.
| Name | Required | Description | Default |
|---|---|---|---|
| new_name | Yes | ||
| old_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only says 'Rename an object' without disclosing behavioral details like whether it updates references, error handling for name conflicts, or if it works on all object types. With no annotations, the description should provide more context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, with a clear structure showing args and returns. However, it lacks explanatory depth that would make it truly valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and no annotations, the description is incomplete. It does not mention whether the object must exist, what happens on duplicate names, or any side effects. The output schema exists but is not referenced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal meaning beyond the schema: it repeats parameter names and states they are the current and new names. Schema coverage is 0%, so the description should compensate but does not provide additional constraints or format details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Rename an object', providing a specific verb and resource. It distinguishes from siblings as there is no other rename tool among the many listed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as duplicate_object or set_object_property. No conditions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_animationA
Render the animation sequence to image files.
Args: filepath: Output file path prefix for the rendered frames. Each frame will be saved with a frame number suffix. format: Output format. One of: PNG, JPEG, OPEN_EXR, TIFF, BMP.
Returns: Confirmation dict with output details.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | PNG | |
| filepath | No | /tmp/render_ |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It mentions saving frames with a numeric suffix and returning a confirmation dict, but fails to disclose important behavioral traits such as whether it modifies the scene, requires an existing animation, handles errors, or is read-only. The lack of this context limits transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: a single sentence stating purpose, followed by clearly formatted args and returns. It is front-loaded with the core action and contains no redundant words or irrelevant details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 parameters, no nested objects), the description covers the basics but lacks important contextual details like frame range settings, the need for an existing animation, or how the output file naming works. The mention of a return value is helpful but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no parameter descriptions in schema). The description compensates by explaining 'filepath' as an output prefix with frame number suffix, and 'format' as a list of possible values (PNG, JPEG, etc.). This adds meaningful context beyond the schema's defaults and titles, though examples or constraints are missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Render the animation sequence to image files.' This is a specific verb+resource combination. It distinguishes itself from the sibling tool 'render_image' by specifying 'animation sequence' (multiple frames) rather than a single image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for rendering animation frames but does not explicitly state when to use this tool over alternatives like 'render_image'. No exclusion criteria or prerequisites (e.g., existing animation) are mentioned, though the name and wording provide some implicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_imageA
Render the current scene to an image file.
Args: filepath: Output file path for the rendered image. Must be an absolute path with a valid image extension (.png, .jpg, .exr, .tiff, .bmp).
Returns: Confirmation dict with the output file path.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | No | /tmp/render.png |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It mentions rendering and returning a confirmation, but omits details like reliance on current render settings, potential overwrite of existing files, or time consumption.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a front-loaded purpose sentence, followed by clear Args and Returns sections. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's main function and parameter well, but lacks details on render settings dependency and file overwrite behavior. Given the simple one-parameter tool and output schema, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds substantial value beyond the input schema by explaining `filepath` is absolute and must have a valid image extension, compensating for the schema's 0% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool renders the current scene to an image file, specifying the verb and resource. It distinguishes from siblings like `render_animation` and `get_viewport_screenshot` by focusing on a single frame output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. Usage is implied by the name and description, but alternatives are not mentioned, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_fileA
Save the current Blender file.
If filepath is empty, saves to the current file path (overwrite). If filepath is provided, performs a "Save As" to the given path.
Args: filepath: Optional absolute path to save as. Must have .blend extension. Empty string saves to current file.
Returns: Dict with the saved file path.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses overwrite behavior and file extension requirement, but does not detail error handling or confirmation prompts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is succinct, with front-loaded purpose and structured Args/Returns sections. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter and no annotations, the description covers core functionality and return value. Could be more complete with potential error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description adds meaning: explains the default empty string behavior and required .blend extension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Save the current Blender file' and distinguishes between overwriting and Save As. This differentiates it from siblings like open_file and import_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly explains when to use empty filepath (overwrite) vs provided (save as), but does not explicitly mention when not to use or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
select_linkedA
Select all geometry linked to the current selection.
Expands selection to include all connected vertices, edges, and faces. Useful for isolating mesh islands or selecting connected components.
Args: object_name: Name of the mesh object.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the core behavior—expanding selection to linked geometry—but lacks details on prerequisites (e.g., existence of a current selection), mode requirements (likely Edit mode), and error handling. With no annotations, it carries the full burden, and these omissions reduce transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at five sentences, front-loaded with the main action, followed by clarification, usage, and parameter/return details. Every sentence adds value, and there is no redundancy or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with one parameter and an output schema, the description covers the basics. However, it omits important context such as the requirement for Edit mode, the definition of 'current selection,' and potential side effects (e.g., selection changes). This leaves gaps for an agent to fully understand the tool's operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It describes the only parameter 'object_name' as 'Name of the mesh object,' adding value beyond the schema's type and title. However, it doesn't clarify constraints (e.g., object must be a mesh) or behavior if the object is invalid.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: selecting all geometry linked to the current selection, expanding to include connected vertices, edges, and faces. It distinguishes itself from siblings like 'select_objects' by focusing on connected components within a mesh object rather than selecting by name or type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance by stating it is 'useful for isolating mesh islands or selecting connected components.' While it doesn't explicitly mention when not to use it, the context of sibling tools like 'select_objects' implies alternative use cases, and the guidance given is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
select_objectsA
Select objects by name.
Args: names: List of object names to select. deselect_others: If True, deselect all other objects first. Defaults to True.
Returns: Dict with list of selected object names.
| Name | Required | Description | Default |
|---|---|---|---|
| names | Yes | ||
| deselect_others | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description carries full burden. It states the selection action and return type but does not disclose error handling, behavior with invalid names, or side effects beyond deselect_others. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, front-loading the purpose, then listing args and return. Every sentence is necessary with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple selection tool with an output schema, the description covers the essential behavior. It mentions the default for deselect_others and the return format. Could mention if selection replaces or adds, but overall it is complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. It clearly explains the meaning of each parameter, including the default behavior of deselect_others. This adds significant value beyond the schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool selects objects by name, which is a specific verb+resource. However, it does not explicitly differentiate from sibling selection tools like select_linked, though the 'by name' aspect provides some distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like select_linked or manual selection. The description only lists parameters without usage context.
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 into parts.
Args: object_name: Name of the mesh object. type: Separation method. One of: SELECTED, MATERIAL, LOOSE.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | SELECTED | |
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose side effects (e.g., whether the original mesh is modified or new objects are created). Only mentions returns a confirmation dict.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the action. Every sentence adds value, and arguments are clearly listed. No superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic purpose and parameters, but lacks details on what 'parts' means, effect on the original mesh, and potential errors. With an output schema (not shown), return value is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds meaning by explaining each parameter: 'Name of the mesh object' and 'Separation method. One of: SELECTED, MATERIAL, LOOSE.' This provides necessary context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool separates a mesh into parts and lists the type parameter options. It distinguishes from sibling tools like join_objects but does not explicitly differentiate from similar separation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like split, cut, or boolean operations. The description does not mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_active_cameraB
Set the active scene camera.
Args: name: Name of the camera object to make active.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states basic action without side effects (e.g., viewport update, rendering implications). Returns a confirmation dict but no details on its content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is 4 lines with Args/Returns format. While efficient, it uses a document-style structure that could be simplified to one sentence without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter and output schema. Description covers core purpose but omits important context (e.g., error handling, camera must exist). Minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage. Description clarifies 'name' is the camera object's name, adding meaning beyond schema. Adequate but does not specify format or validation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Set the active scene camera' with a specific verb and resource. Distinguishes from siblings like 'set_camera_property' and 'set_camera_from_view'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. alternatives, such as listing cameras first or prerequisites. Does not mention context like scene must exist or camera must be present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_annotation_stroke_propertyA
Set a property on an annotation stroke.
Args: annotation_name: Name of the annotation data block. layer_name: Name of the layer containing the stroke. stroke_index: Index of the stroke in the layer (0-based). property: Property to set. One of: line_width, material_index, display_mode. value: The value to set.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| property | Yes | ||
| layer_name | Yes | ||
| stroke_index | Yes | ||
| annotation_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It lists the modifiable properties and mentions a confirmation return value, but fails to discuss side effects, error conditions, or prerequisites (e.g., whether the stroke must exist).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with Args and Returns sections, and is concise. It could be slightly more terse, but it effectively conveys the necessary information without extraneous detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers parameter semantics and basic return type, but lacks behavioral context (e.g., error handling, constrains on value) and does not leverage the output schema for richer explanation. It is adequate for a simple setter but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description adds significant value by explaining each parameter's role, including the allowed values for 'property' (line_width, material_index, display_mode) and the 0-based index for stroke_index.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Set a property on an annotation stroke.' It specifies the resource (annotation stroke) and the operation (setting a property), distinguishing it from sibling tools that add layers or strokes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates usage by listing required parameters, but it does not provide explicit guidance on when to use this tool versus alternatives, such as when to modify a stroke property versus adding a new stroke or layer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_bone_propertyA
Set a property on a bone in an armature.
Args: armature_name: Name of the armature object. bone_name: Name of the bone. property: Property to set. One of: roll, length, use_connect, use_deform, envelope_distance, head_radius, tail_radius, use_inherit_rotation, use_local_location. value: Value to set the property to.
Returns: Confirmation dict with bone name, property, and new value.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| property | Yes | ||
| bone_name | Yes | ||
| armature_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It clearly states the action (setting a property) and the return format ('Confirmation dict with bone name, property, and new value'). It does not mention side effects or prerequisites, but for a mutation tool, the essential behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with Args and Returns sections. Every sentence is necessary and informative, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, no annotations, and the presence of many sibling tools, the description is complete. It covers all inputs, valid property options, and the output structure, making it sufficient for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no descriptions (0% coverage). The description compensates fully by detailing each parameter: armature_name and bone_name as strings, property with an enumerated list of allowed values, and value with its role. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Set a property on a bone in an armature.' It lists the specific properties that can be set, such as roll, length, use_connect, etc., making it distinct from sibling tools like set_brush_property or set_camera_property which target different objects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by specifying the function (setting bone properties) but does not explicitly contrast with alternatives like set_pose or add_bone. However, the context of armature and bone names is clear, and the list of properties guides appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_brush_propertyA
Set a property on the active sculpt brush.
Args: property: Property to set - size, strength, auto_smooth_factor, or use_frontface. value: Value to set. size is int (1-500), strength is float (0.0-1.0), auto_smooth_factor is float (0.0-1.0), use_frontface is bool.
Returns: Confirmation dict with property name and new value.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| property | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavior. It explains the return type and allowed value formats, but omits potential side effects, scope (active brush only), or required context (sculpt mode active). This is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with Args and Returns sections, concise yet comprehensive. Every sentence serves a purpose, and the format is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with an output schema, the description covers the action, parameters, and return. However, it lacks mention of prerequisites (e.g., must be in sculpt mode, active object must be a mesh) and potential failure scenarios. Slightly incomplete but still helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description fully compensates by detailing each property option and its value type/range (int 1-500, float 0.0-1.0, bool). This adds significant meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set a property on the active sculpt brush' and lists the specific properties (size, strength, auto_smooth_factor, use_frontface), distinguishing it from sibling tools like set_sculpt_brush (which switches brush types) and set_sculpt_symmetry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for changing brush properties but does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites like being in sculpt mode or having an active brush. Guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_camera_from_viewA
Match the active camera to the current 3D viewport view.
Returns: Confirmation dict with the camera's new location and rotation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the return value (confirmation dict with location/rotation) but provides no annotations or details about side effects, undo behavior, or requirements (e.g., camera must exist). This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action, no extraneous words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no parameters and an output schema that confirms return format. The description covers purpose and return value adequately. Could mention that a camera must be active, but not required for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and the input schema coverage is 100% (trivially). The description does not need to explain parameters, but per guidelines, high schema coverage yields baseline 3. No additional value is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Match the active camera to the current 3D viewport view', using a specific verb and resource. It distinguishes from siblings like set_active_camera (sets which camera is active) and point_camera_at (orients camera to a target).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when aligning the camera to the viewport, but provides no explicit guidance on when to use versus alternatives, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_camera_propertyB
Set a property on a camera.
Args: name: Name of the camera object. property: Property to set. One of: lens, clip_start, clip_end, sensor_width, sensor_height, dof.use_dof, dof.focus_distance, dof.aperture_fstop, ortho_scale, shift_x, shift_y, type, sensor_fit. value: The value to set.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| value | Yes | ||
| property | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. It only states 'Set' (mutation) with no details on side effects, prerequisites, error handling, or return value structure beyond a 'confirmation dict'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with clear Args/Returns structure. No redundant sentences, but could be slightly more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with 3 params and an output schema, the description covers the basic action and enumerated properties. However, it lacks details on value formats and does not confirm that the camera must exist, which are important for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description lists possible property values and indicates value is 'The value to set', adding some meaning, but does not specify value types or formats for each property, leaving ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set a property on a camera' and lists the properties and arguments, distinguishing it from sibling tools like set_light_property or set_modifier_property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as set_camera_from_view or other camera-specific tools. Lacks any usage conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_collection_visibilityA
Set collection visibility in viewport and/or render.
Args: name: Name of the collection. visible: Whether the collection should be visible. viewport: Apply visibility change to viewport. Defaults to True. render: Apply visibility change to render. Defaults to True.
Returns: Confirmation dict with visibility state.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| render | No | ||
| visible | Yes | ||
| viewport | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It states the tool sets visibility and returns a confirmation dict, but does not mention any side effects, prerequisites, or error cases. For a straightforward state-change operation, this 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a clear one-line purpose followed by an Args section and Returns section. Every sentence adds value, and the structure is front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema (confirmation dict), the description covers purpose, parameters, and return value. It does not address error handling or missing collection cases, but is largely complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully explains all four parameters (name, visible, viewport, render) including defaults and meanings. This adds significant value beyond the input schema, which only provides type and default values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set collection visibility in viewport and/or render.' It uses a specific verb 'set' and resource 'collection visibility', and distinguishes from sibling tools like 'set_object_visibility' by targeting collections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage by specifying the parameters and their defaults (viewport and render default True), but lacks explicit when-to-use or when-not-to-use guidance compared to siblings. It is clear enough for the tool's simplicity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_color_ramp_elementA
Move or recolor an existing ColorRamp stop.
At least one of position or color must be given. Moving a stop past a neighbour reorders the ramp, so indices may shift after this call — read the ramp back with get_color_ramp if you need certainty.
Args: material_name: Name of the material. node_name: Name of the ColorRamp node. index: Zero-based index of the stop to edit. position: New position, 0.0 to 1.0. Omit to leave unchanged. color: New RGB or RGBA color. Omit to leave unchanged.
Returns: Dict with the element's resulting position and color.
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | ||
| index | Yes | ||
| position | No | ||
| node_name | Yes | ||
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description effectively discloses key behavioral traits: indices may shift after the call, and the need to read back for certainty. It also specifies that operation is a modification (move/recolor) and includes parameter ranges (position 0-1). This goes beyond basic schema information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise: a one-line summary, a brief behavioral note, structured Args list, and a Returns line. Every sentence adds value with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 params, mutation, index shifting) and the presence of an output schema (not shown but mentioned), the description adequately explains input, behavior, and return value. Minor omissions (e.g., error conditions for invalid index) prevent a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description fully documents all 5 parameters in the Args section, including meaning, format, and default behavior (omit to leave unchanged). This is critical given 0% schema description coverage, and the description covers 100% of parameters effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool moves or recolors an existing ColorRamp stop, distinguishing it from siblings like add/remove/read color ramp tools. The verb-resource combination is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage constraints (at least one of position or color must be given) and advises reading back the ramp after use for certainty, but does not explicitly compare to alternative tools for similar tasks, limiting guidance on when to use this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_color_ramp_interpolationA
Set how a ColorRamp blends between its stops.
'CONSTANT' gives hard-edged bands with no blending, which is what turns a noise or voronoi texture into discrete regions: scale plates, cracked mud, stylised cel shading. 'EASE' and 'B_SPLINE' give softer falloff than 'LINEAR'. Set color_mode to 'HSV' to sweep through hues between two stops rather than blending through grey.
Args: material_name: Name of the material. node_name: Name of the ColorRamp node. interpolation: One of EASE, CARDINAL, LINEAR, B_SPLINE, CONSTANT. color_mode: Optional. One of RGB, HSV, HSL. Omit to leave unchanged.
Returns: Dict with the applied interpolation and color mode.
| Name | Required | Description | Default |
|---|---|---|---|
| node_name | Yes | ||
| color_mode | No | ||
| interpolation | Yes | ||
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explains the main effect (set interpolation and color_mode) and return value, but does not disclose prerequisites (e.g., material/node must exist), error behavior, or side effects. Acceptable but could be more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise and well-structured: main action first, then usage examples, then a clean args 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.
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 presence of an output schema (though not fully shown), the description covers all parameters and return value. It could mention that material and node must exist, but overall it is sufficiently complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description compensates well. It provides clear meaning for each parameter: material_name, node_name, interpolation (with specific options), and color_mode (optional, with RGB/HSV/HSL listed). Adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set how a ColorRamp blends between its stops', a specific verb and resource. It distinguishes from sibling tools by focusing on ColorRamp interpolation and color mode adjustment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to use each interpolation type (e.g., CONSTANT for hard edges, EASE/B_SPLINE for softer falloff) and explains color_mode's purpose. It lacks explicit when-not-to-use or alternative tools, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_curve_propertyB
Set a property on a curve object.
Args: curve_name: Name of the curve object. property: Property to set - resolution_u, fill_mode, bevel_depth, bevel_resolution, extrude, twist_mode, or use_fill_caps. value: Value to set. Type depends on property.
Returns: Confirmation dict with property name and new value.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| property | Yes | ||
| curve_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions a return confirmation dict but no side effects, permissions, or error conditions, which is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and structured with args and returns, but it could be more concise by removing repetitive phrasing like 'Name of the curve object'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and an output schema exists, the description covers the core purpose and parameters adequately but lacks details on prerequisites, error handling, or relation to other curve tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description lists allowed property values and notes that value type depends on property. However, it does not specify expected types for each property, leaving ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it sets a property on a curve object, listing specific properties. This distinguishes it from sibling tools like set_camera_property or set_light_property, which operate on different object types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates what the tool does but does not provide explicit when-to-use or when-not-to-use guidance, leaving the agent to infer from the tool name and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_edge_creaseA
Set edge crease value on all edges for subdivision surface control.
Crease values control how sharp edges remain when a Subdivision Surface modifier is applied. 0 = fully smooth, 1 = fully sharp.
Args: object_name: Name of the mesh object. value: Crease value. Range: -1.0 to 1.0.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| value | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool sets crease values on all edges and provides the value range, but with no annotations, it does not mention whether the operation is destructive or if it overwrites existing crease data. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a clear purpose sentence, a brief explanation of crease values, then a simple args/returns format. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity of the tool (2 parameters, no nested objects), the description fully covers the purpose, parameters, and return type. It is complete and does not require additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds meaning: it clarifies object_name as the mesh object name and specifies the value range (-1 to 1) and default behavior (default 1). This compensates well for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (set), resource (edge crease value), and scope (all edges on a mesh object) for subdivision surface control. It distinguishes this tool from siblings like bevel_edges or mark_sharp by focusing specifically on crease values for subdivision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for controlling sharpness with a Subdivision Surface modifier, but it does not explicitly state when to use this tool versus alternatives such as beveling or marking sharp edges. No guidance on when not to use it is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_eevee_light_pathA
Set EEVEE light path intensity controls (Blender 5.1+).
Controls how strongly different light bounce types contribute to the final image. Only applies when render engine is BLENDER_EEVEE.
Args: diffuse_intensity: Intensity multiplier for diffuse bounces. Range: 0.0-10.0. glossy_intensity: Intensity multiplier for glossy/specular bounces. Range: 0.0-10.0. transmission_intensity: Intensity multiplier for transmission bounces. Range: 0.0-10.0.
Returns: Dict with the current light path intensity values.
| Name | Required | Description | Default |
|---|---|---|---|
| glossy_intensity | No | ||
| diffuse_intensity | No | ||
| transmission_intensity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description states it sets intensity controls and returns a dict with current values. For a setter tool, this is minimally adequate, but it does not disclose potential side effects or whether parameters are persistent. No contradictions with absent annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: three sentences plus a clean list of args and return. It is front-loaded with the main purpose, and every sentence adds value. No redundant or missing parts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with three optional parameters and an output schema, the description covers purpose, usage condition, parameter meanings, and return. It is nearly complete, but missing explicit handling of null parameters could slightly reduce utility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage. The description compensates by explaining each parameter's function (diffuse, glossy, transmission) and valid range (0.0-10.0). However, it does not clarify the meaning of null (likely no change) or provide examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'set', the resource 'EEVEE light path intensity controls', and the context (Blender 5.1+, only for BLENDER_EEVEE engine). It distinguishes from sibling tools like set_render_engine or set_shadow_settings by focusing on light bounce intensities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Only applies when render engine is BLENDER_EEVEE', providing clear usage context. It implies not to use with other engines but does not mention alternative tools or prerequisites like setting the render engine first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_frameB
Set the current frame in the timeline.
Args: frame: Frame number to set as current.
Returns: Confirmation dict with the new current frame.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavior. It only states the action and return type, but omits side effects, prerequisites (e.g., valid timeline), or constraints (e.g., frame range limits).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, using two sentences plus an Args/Returns list. It is front-loaded with the action and minimally structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-parameter tool, the description is adequate but incomplete. It lacks details on valid frame range, whether the operation is undoable, and what happens if the frame is out of bounds. Given no annotations or 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage. The description merely repeats 'Frame number' from the parameter name without adding meaning (e.g., valid range, type constraints beyond integer). It does not compensate for the schema's lack of description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('set the current frame') and the resource ('timeline'). It distinguishes well from sibling tools like set_frame_range or insert_keyframe by specifying it sets a single frame.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (to change the current frame) but does not provide explicit guidance on when to use this tool versus alternatives such as set_frame_range or insert_keyframe. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_frame_rangeA
Set the start and end frames of the scene timeline.
Args: start: Start frame number. end: End frame number. Must be greater than start.
Returns: Confirmation dict with the new frame range.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | ||
| start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. It mentions a constraint (end > start) and return type, but lacks details on side effects, undo behavior, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: one sentence for purpose followed by structured Args/Returns. Every word is necessary, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with two integer parameters, the description covers purpose, parameter constraints, and return type. Could mention that it modifies the scene's frame range, but it's fairly complete given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description adds meaning by explaining each parameter (start frame, end frame) and the constraint that end must be greater than start. This 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it sets the start and end frames of the scene timeline, using specific verbs and resource. It distinguishes from sibling 'set_frame' which likely targets the current frame.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for setting timeline range but does not explicitly state when to use or exclude alternatives. No mention of when not to use or comparisons to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_geometry_node_inputA
Set an input value on a geometry nodes modifier.
Args: object_name: Name of the object with the modifier. modifier_name: Name of the geometry nodes modifier. input_name: Name of the input socket to set (as shown in the modifier panel). value: The value to set. Type depends on the input (float, int, vector, etc.).
Returns: Confirmation dict with the input name and new value.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| input_name | Yes | ||
| object_name | Yes | ||
| modifier_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so description carries full burden. It does not disclose safety traits (e.g., overwrites values, requires existing modifier) or handling of invalid types beyond saying 'type depends on input'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, front-loaded with purpose, then clear Args and Returns sections. No redundant information; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, parameters, and return value. Good for a simple setter tool. Could mention prerequisites (e.g., modifier must exist) but that is somewhat implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, description explains each parameter meaningfully. For 'value', it adds that type depends on input (float, int, vector, etc.), which compensates for schema gaps. However, lacks examples or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'set' and the resource 'input value on a geometry nodes modifier'. Distinguishes from siblings like 'list_geometry_node_inputs' or 'connect_geometry_nodes'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: when you need to change a specific input on a GN modifier. No explicit when-not or alternatives provided, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_handle_typeA
Set the handle type for all control points of a curve.
Args: curve_name: Name of the curve object. handle_type: Handle type - AUTO, VECTOR, ALIGNED, or FREE_ALIGN.
Returns: Dict with confirmation of handle type change.
| Name | Required | Description | Default |
|---|---|---|---|
| curve_name | Yes | ||
| handle_type | No | AUTO |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. It states it sets all control points uniformly and returns a confirmation dict, but lacks details on supported curve types (e.g., Bezier vs NURBS) and potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences plus parameter descriptions, front-loaded with action and result, no superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple parameter-setting tool; mentions return dict but omits error handling and curve type constraints, which could be important for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, description adds value by explaining curve_name and listing handle_type options (AUTO, VECTOR, ALIGNED, FREE_ALIGN) and default, though it could specify that curve_name must be an existing curve.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Set' and resource 'handle type for all control points of a curve', distinguishing it from siblings like set_curve_property that set other curve properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage from the description, but no explicit when-to-use, when-not-to-use, or alternatives like set_curve_property are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_interpolationA
Set the interpolation type for keyframes on a property.
Args: object_name: Name of the object. data_path: Property data path. interpolation: Interpolation type. One of: CONSTANT, LINEAR, BEZIER, SINE, QUAD, CUBIC, QUART, QUINT, EXPO, CIRC, BACK, BOUNCE, ELASTIC.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| data_path | Yes | ||
| object_name | Yes | ||
| interpolation | No | BEZIER |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided (destructiveHint, etc.), so the description carries the full burden. It mentions the tool sets interpolation type, and the args are listed. It doesn't mention side effects (e.g., whether it affects all keyframes or only selected ones), but since it's a property setter, it's relatively straightforward. Returns a confirmation dict, which is stated. This is adequate for a simple setter, but could be improved by noting that it modifies an existing keyframe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences for purpose and args, plus a returns line. No fluff. The Args section is well-structured. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema (but context says has output schema? Actually context says 'Has output schema: true' but the provided schema does not include output schema. However, the description mentions 'Returns: Confirmation dict.' That is somewhat incomplete without specifying what keys the dict contains. However, for a simple setter, a confirmation dict is typical. The tool has 3 parameters, low complexity, so the description is mostly complete. Lacking output details but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema parameter descriptions are minimal (only titles). The description adds value by explaining each parameter: object_name, data_path, and interpolation with allowed values listed. Schema coverage is 0% (no descriptions in schema), so the description compensates well. The interpolation parameter lists the allowed string values, which is helpful for the agent. However, data_path is not explained further (e.g., format or examples).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets the interpolation type for keyframes on a property. It specifies the verb 'set' and the resource 'interpolation type for keyframes'. It distinguishes from sibling tools like insert_keyframe (which adds keyframes) and set_handle_type (which sets handle type, not interpolation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does and lists parameters, but does not explicitly state when to use this tool versus alternatives. For example, it doesn't indicate that this is for changing an existing keyframe's interpolation, not for creating new keyframes. Siblings like insert_keyframe are related but no guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_light_propertyB
Set a property on a light object.
Args: name: Name of the light object. property: Property to set. One of: energy, color, shadow_soft_size, spot_size, spot_blend, area_size, area_size_y, use_shadow, angle, specular_factor, diffuse_factor, volume_factor. value: The value to set. Type depends on the property.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| value | Yes | ||
| property | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only mentions that value type depends on property and returns a confirmation dict. Does not disclose side effects, authorization needs, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, front-loaded description in a clear Args/Returns format. Every sentence serves a purpose, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers essential aspects (target, properties, value dependency, return type) but lacks examples and type specifics for property values. Adequate for a simple setter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description adds value by listing valid property values and indicating that value type varies. However, it lacks details on acceptable value formats or ranges for each property.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it sets a property on a light object, lists specific properties, and differentiates from sibling setter tools like set_camera_property or set_material_property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., set_light_property vs. other setters). Does not mention prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_locationA
Set the position of an object.
Args: name: Name of the object. location: XYZ position as a 3-element list/tuple.
Returns: Dict with the object name and new location.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| location | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description says it sets position but doesn't mention side effects, authorization needs, or limits. Returns new location but lacks details on overwriting behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise with clear docstring structure. Every sentence adds value. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with 2 params and output schema exists. Description covers return value and param semantics adequately. Could mention coordinate system but acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description adds meaning: 'XYZ position as a 3-element list/tuple' clarifies the array format beyond the schema's bare type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set the position of an object.' using specific verb+resource. It distinguishes from sibling tools like set_rotation and set_scale.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives like set_rotation or set_scale. Usage is implied but no guidance on context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_material_blend_modeA
Set the blend mode of a material (EEVEE).
Args: material_name: Name of the material. mode: Blend mode. One of: OPAQUE, CLIP, HASHED, BLEND.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It states the operation and return type (confirmation dict). However, it does not disclose potential side effects, error conditions (e.g., material not found), or whether the change is reversible. For a simple setter, this is acceptable but could be improved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: three sentences covering purpose, parameters, and return type. No unnecessary words, and the structure is logical (purpose first, then details). Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description is mostly complete. However, it lacks usage guidance (when to use vs. set_material_property) and does not mention prerequisites or error cases. It adequately covers the core functionality but misses some contextual details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so parameters have no schema descriptions. The description adds meaningful value by defining material_name as 'Name of the material' and listing the valid blend modes (OPAQUE, CLIP, HASHED, BLEND) for 'mode'. This compensates well for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set the blend mode of a material') and specifies the context (EEVEE render engine). This verb+resource+scope combination is specific and distinguishes it from sibling tools like assign_material or set_material_color.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. The description mentions EEVEE, implying it's only for that engine, but does not clarify alternatives or prerequisites (e.g., material must exist). This is adequate but lacks explicit differentiation from set_material_property.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_material_colorB
Set the base color of a material's Principled BSDF node.
Args: material_name: Name of the material. color: RGBA color as a list of 4 floats (0.0-1.0). e.g. [1.0, 0.0, 0.0, 1.0] for red.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| color | Yes | ||
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose all behavioral traits. It states the action and return type but does not explain what happens if the material is missing or lacks a Principled BSDF node, nor does it describe side effects or permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three lines of useful information. It follows a clear structure: purpose, args, returns. The inclusion of 'Returns: Confirmation dict.' is slightly redundant given it is a setter, but not detrimental.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter tool with an output schema (implied), the description covers the core function and parameters. However, it lacks error handling context and does not mention any constraints (e.g., material must have Principled BSDF node). Given the tool's simplicity, this is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning to the color parameter: 'RGBA color as a list of 4 floats (0.0-1.0). e.g. [1.0, 0.0, 0.0, 1.0] for red.' The input schema only specifies 'array' with no item type or range, so the description compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Set the base color of a material's Principled BSDF node.' It specifies the verb (set) and the resource (base color of a material's Principled BSDF node), differentiating it from siblings like set_material_property or assign_material.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like set_material_property. It does not mention prerequisites such as material existence or the presence of a Principled BSDF node, 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_material_propertyA
Set a property on a material's Principled BSDF node.
Args: material_name: Name of the material. property: Property to set. One of: metallic, roughness, specular_ior_level, emission_strength, alpha, transmission_weight, ior, coat_weight, coat_roughness, sheen_weight, sheen_roughness, anisotropic, anisotropic_rotation, subsurface_weight, emission_color. value: The value to set. Float for most properties, list for color properties.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| property | Yes | ||
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It states the action and return type but does not disclose side effects, failure modes (e.g., if material lacks a BSDF node), permissions, or whether the node is created if missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear first sentence and an Args/Returns format. It is concise at 8 lines, though the Args section partially repeats schema field names while adding value descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers core functionality but omits prerequisites (e.g., material must exist and have a BSDF node) and error behavior. The return type is vaguely described as a 'confirmation dict,' which is minimal despite an output schema existing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% documentation coverage, so the description must compensate. The description lists all valid property values and indicates value types (float or list for colors), adding significant meaning beyond the schema. However, it could specify exact types for each property and value ranges.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool sets a property on a material's Principled BSDF node, listing all supported properties. This distinguishes it from siblings like set_material_color and set_material_blend_mode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists the properties that can be set, implying usage for those specific fields, but does not explicitly state when to use this tool versus alternatives like set_material_color. No when-not or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_modifier_propertyB
Set a property on a modifier (e.g., levels, count, offset, angle).
Args: object_name: Name of the object. modifier_name: Name of the modifier. property: The modifier property to set (e.g., 'levels', 'count', 'width', 'segments', 'angle', 'offset', 'ratio', 'iterations'). value: The value to set.
Returns: Confirmation dict with updated property.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| property | Yes | ||
| object_name | Yes | ||
| modifier_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description only states 'Set a property' and lists examples, but lacks disclosure of side effects, error behavior, or prerequisites for mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear structure (Args, Returns). The first sentence immediately conveys the purpose without extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and 4 required parameters, the description provides essential param info and return type, but lacks operational context like error handling or prerequisites for setting properties.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description adds a list of example values for 'property' and briefly explains each parameter. 'value' is described as 'The value to set', which is minimal but adds some meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set a property on a modifier' with explicit examples like levels, count, offset, angle. This distinguishes it from sibling tools such as set_bone_property or set_brush_property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for modifying modifier properties but does not provide explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned among the many sibling set_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_object_visibilityA
Set object visibility in viewport and/or render.
Args: name: Name of the object. visible: Whether the object should be visible. viewport: Apply visibility change to viewport. Defaults to True. render: Apply visibility change to render. Defaults to True.
Returns: Confirmation dict with visibility state.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| render | No | ||
| visible | Yes | ||
| viewport | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description mentions both viewport and render visibility with defaults, and returns a confirmation dict. However, it omits behavioral details like error handling, reversibility, or effects on other tools (e.g., object still selectable).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with structured Args and Returns sections. No fluff, every sentence earns its place. Front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with 4 parameters, all documented. Has output schema (implied by Returns). No example provided, but completeness is adequate for the complexity. Minor gap: no mention of object type requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%. Description explains each parameter (name, visible, viewport, render) with defaults and purpose, adding meaning beyond schema names. Could include examples or constraints but sufficient for basic understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets object visibility in viewport and/or render, using a specific verb 'Set' and resource 'object visibility'. It distinguishes from sibling tools like 'set_collection_visibility' and 'set_object_property' ones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., set_collection_visibility, select+hide). Lacks when-not-to-use and context about prerequisites like object existence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_originA
Set the origin point of an object.
Args: object_name: Name of the object. type: Origin type. One of: ORIGIN_GEOMETRY, ORIGIN_CURSOR, ORIGIN_CENTER_OF_MASS, ORIGIN_CENTER_OF_VOLUME, GEOMETRY_ORIGIN.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ORIGIN_GEOMETRY | |
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the basic purpose but doesn't mention side effects (e.g., affecting object transforms), permissions, or error states. It is adequate for a simple mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear one-liner purpose followed by structured parameter details. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description covers the essential aspects. It could mention that the object must exist, but it's sufficient for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description enumerates the enum values for the 'type' parameter, which adds meaning beyond the schema's default. It names both parameters and their roles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it sets an object's origin point, which is a specific resource and action. It distinguishes from sibling tools like set_location, set_rotation, set_scale, but could be more explicit about the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like set_location or apply_transforms. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_output_formatA
Set the render output format and optionally the output file path.
Args: format: Output format. One of: PNG, JPEG, OPEN_EXR, TIFF, BMP. filepath: Optional output file path. Must be an absolute path.
Returns: Confirmation dict with the new output settings.
| Name | Required | Description | Default |
|---|---|---|---|
| format | Yes | ||
| filepath | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose behavioral traits such as persistence of settings, validation of format, or filepath creation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with clear args/returns docstring format. Efficient, though could be slightly more front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main aspects: purpose, parameters, return type. Adequate for a setter tool with an output schema, though missing error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%. Description adds value by listing allowed formats (PNG, JPEG, etc.) and specifying that filepath must be an absolute path, compensating for lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool sets the render output format and optionally the file path. Distinguishes from siblings like set_render_engine or render_image by focusing on output format and path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage before rendering but does not explicitly state when to use versus alternatives like set_render_resolution or render_image. No when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_particle_renderingA
Set rendering mode for an object's particle system.
Args: object_name: Name of the object with a particle system. render_type: Render type. One of: NONE, PATH, OBJECT, COLLECTION. instance_object: Object to instance (when render_type is OBJECT). instance_collection: Collection to instance (when render_type is COLLECTION).
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| render_type | No | PATH | |
| instance_object | No | ||
| instance_collection | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully convey behavioral traits. It only states the return type ('Confirmation dict') without detailing side effects, permissions, or error behavior. Key aspects like whether the tool modifies existing settings or adds new ones are implied but not explicitly stated, leaving gaps for an AI agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with only three sentences plus a structured args list. Every sentence adds value: the first states the purpose, the args explain parameters, and the last clarifies return type. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters and an output schema, the description adequately covers parameter semantics and return type. However, it lacks context such as error handling, dependencies, and example usage. For a tool of moderate complexity, it meets minimal completeness but leaves room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema, which has 0% coverage. It explains each parameter's purpose, lists valid enum values for render_type, and clarifies conditional usage of instance_object and instance_collection. This compensates well for the schema's lack of descriptions, though additional constraints (e.g., object must have a particle system) are not mentioned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: 'Set rendering mode for an object's particle system.' This is a specific verb+resource combination. Among sibling tools, it is distinct from other setter tools like set_particle_velocity or set_physics_property, making its function unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given. The description implies usage context through its parameter list, but does not mention alternatives or prerequisites. This is acceptable for a straightforward setter tool but could be improved by indicating scenarios 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.
set_particle_velocityA
Set velocity settings for an object's particle system.
Args: object_name: Name of the object with a particle system. normal: Velocity along face normals. tangent: Velocity along face tangents. object_align_factor: XYZ velocity factors relative to the object. 3-element vector.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| normal | No | ||
| tangent | No | ||
| object_name | Yes | ||
| object_align_factor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains what the tool does but does not disclose side effects, dependencies, or state changes beyond parameter values. With no annotations, the description carries full burden but offers minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a one-sentence summary followed by a structured Args and Returns section. It front-loads the main purpose and presents parameter details efficiently without unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose and all parameters adequately, and notes the return type. However, it lacks information on error conditions or prerequisites, such as requiring the object to have a particle system. Given the simplicity of the tool, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description's Args section is essential. It provides clear explanations for each parameter, including that normal and tangent are velocity components and object_align_factor is a 3-element vector. This significantly enhances understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function as 'Set velocity settings for an object's particle system', specifying the verb (Set) and resource (velocity settings of particle system). This distinguishes it from sibling tools like set_particle_rendering or set_physics_property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites such as the object needing an existing particle system. It assumes the user knows the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_physics_propertyB
Set a property on an existing physics simulation.
Args: object_name: Name of the object with the physics simulation. physics_type: Physics type - RIGID_BODY, CLOTH, FLUID, or PARTICLE_SYSTEM. property: Property name to set (depends on physics type). value: Value to set.
Returns: Confirmation dict with property name and new value.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| property | Yes | ||
| object_name | Yes | ||
| physics_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full transparency burden. It discloses it sets a property and returns a confirmation dict, but omits side effects (e.g., whether it's destructive), permissions required, or error handling. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise with a clear structure: purpose sentence followed by Args and Returns sections. No unnecessary text, but could be more compact by inline description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing critical details like valid property names for each physics type, error scenarios when physics_type mismatches existing simulation, and confirmation dict structure. Given moderate complexity (4 params, no enums), the description is insufficient for reliable tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description adds meaning by explaining object_name, physics_type with options, property as dependent on type, and value. However, value lacks type specification, and property's valid values are not enumerated, leaving ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set a property on an existing physics simulation', specifying verb and resource. The list of physics types (RIGID_BODY, CLOTH, FLUID, PARTICLE_SYSTEM) aids in distinguishing from sibling tools that create or bake physics, though not explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like add_cloth_sim or bake_physics. The description implies it's for modifying existing simulations but does not provide usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_poseA
Set the pose of a bone in an armature.
Args: armature_name: Name of the armature object. bone_name: Name of the bone to pose. location: Optional XYZ location offset for the bone. rotation: Optional XYZ Euler rotation in radians. scale: Optional XYZ scale.
Returns: Confirmation dict with the bone's new pose values.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| location | No | ||
| rotation | No | ||
| bone_name | Yes | ||
| armature_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Lacks details on behavioral traits such as whether it overwrites existing pose, merges with current pose, or works outside Pose Mode; no mention of side effects or requirements. Annotations are absent, so the description should carry the burden but falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Efficient docstring with Args/Returns sections; no unnecessary text, well-organized and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers basic purpose and parameters, but omits behavioral context (e.g., resets vs blends) and usage scenario. Output schema exists, reducing need to document return values, but overall completeness is merely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning beyond the schema by describing location as 'offset', rotation as 'XYZ Euler in radians', and scale as 'XYZ scale'. This clarifies type and units, though it could specify array ordering or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Set' and resource 'pose of a bone in an armature', distinguishing it from other set_* tools like set_location or set_bone_property which operate on different objects or properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., set_location for objects, set_bone_property for non-pose attributes), nor any conditions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_render_engineA
Set the render engine.
Args: engine: Render engine to use. One of: BLENDER_EEVEE, CYCLES, BLENDER_WORKBENCH.
Returns: Confirmation dict with the active render engine.
| Name | Required | Description | Default |
|---|---|---|---|
| engine | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only states the action and return type. It does not disclose side effects, permissions, error behavior, or whether the engine change applies immediately or requires a render context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief, consisting of one line and a structured docstring with Args and Returns sections. Every sentence 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, no output schema in structured data), the description covers the essential information: what it does, parameter values, and return type. It could be improved by mentioning persistence or rendering requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only defines 'engine' as a string without enumeration or description, but the description adds the valid values (BLENDER_EEVEE, CYCLES, BLENDER_WORKBENCH). This compensates well for the 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Set' and the resource 'render engine', making the tool's purpose immediately obvious. It distinguishes from sibling tools like set_render_resolution and set_render_samples, each targeting different properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool or its alternatives. There are no prerequisites, exclusions, or comparisons to other setter tools, leaving the agent to infer usage context without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_render_resolutionA
Set the render resolution.
Args: width: Render width in pixels. Range: 1-8192. height: Render height in pixels. Range: 1-8192. percentage: Resolution percentage scale. Range: 1-100.
Returns: Confirmation dict with the new resolution settings.
| Name | Required | Description | Default |
|---|---|---|---|
| width | Yes | ||
| height | Yes | ||
| percentage | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. It provides parameter ranges but does not disclose any side effects, permissions, or whether the operation requires an active render scene. Typical non-destructive update, but lacks explicit behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the purpose. Uses a clear docstring format with args and returns. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity and presence of output schema, the description covers parameter constraints and return value. Could mention if any prerequisites (like active scene) exist, but generally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds meaning by specifying ranges (1-8192 for width/height, 1-100 for percentage) and default for percentage. This compensates for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set the render resolution' with specific verb and resource. It distinguishes itself from sibling tools like set_render_engine and set_render_samples by focusing solely on resolution settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies usage for setting resolution, but does not specify prerequisites or when not to use it (e.g., if other resolution-related tools exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_render_samplesA
Set the number of render samples.
Args: samples: Number of samples. Range: 1-10000.
Returns: Confirmation dict with the new sample count.
| Name | Required | Description | Default |
|---|---|---|---|
| samples | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It states the tool sets samples and returns a confirmation, but lacks details on side effects (e.g., does not trigger a render), validation behavior for out-of-range values, or whether it applies only to specific render engines.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of three short sentences for purpose, argument, and return. It is front-loaded and contains no unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward parameter-setting tool with one parameter and a return value, the description covers the essential aspects. It could optionally mention the render engine context or that it does not trigger a render, but it is sufficiently complete for its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by specifying the parameter's meaning ('Number of samples') and its valid range ('1-10000'), adding significant value beyond the plain integer type in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Set' and resource 'render samples', clearly distinguishing it from siblings like set_render_resolution or render_image. It leaves no ambiguity about the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a valid range (1-10000) for the samples parameter, giving some usage context. However, it does not compare with alternatives (e.g., render_image triggers a render) or indicate when not to use this tool, missing explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_rotationA
Set the rotation of an object.
Args: name: Name of the object. rotation: Rotation values. For EULER mode, XYZ angles in radians (3 elements). For QUATERNION mode, WXYZ values (4 elements). mode: Rotation mode, either EULER or QUATERNION. Defaults to EULER.
Returns: Dict with the object name and new rotation.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | EULER | |
| name | Yes | ||
| rotation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility. It discloses the two rotation modes, value formats, and return type, but does not mention side effects, error handling, or whether rotation is absolute.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a concise docstring with clear sections for args and returns, no fluff, and front-loaded purpose. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no visible output schema (though one exists), the description covers the operation well but omits details like error handling, whether rotation is relative, and potential side effects. Still, it is adequate for a simple setter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema, which has 0% coverage. It explains the name, rotation format for each mode (EULER with 3 radians, QUATERNION with 4 values), and mode parameter with default, fully compensating for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set the rotation of an object', specifying the verb and resource, and distinguishes from sibling tools like set_location and set_scale. It also explains the two rotation modes (EULER, QUATERNION) and value formats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when an object's rotation needs to be set, but lacks explicit when-to-use or when-not-to-use guidance compared to alternatives. No prerequisites or context for choosing between EULER and QUATERNION are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_scaleA
Set the scale of an object.
Args: name: Name of the object. scale: XYZ scale as a 3-element list/tuple.
Returns: Dict with the object name and new scale.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| scale | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It explains the function and return value but lacks details on side effects, prerequisites, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single main sentence plus a structured docstring, no wasted words, and front-loaded purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple set tool, it covers basic parameters and return value but lacks context on object type constraints or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description's docstring clarifies the scale parameter as 'XYZ scale as a 3-element list/tuple' and names the name parameter, adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set') and the resource ('scale of an object'), distinguishing it from sibling tools like set_location and set_rotation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives; it only implies usage when scaling an object is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_scene_propertyB
Set a scene property such as frame_start, frame_end, frame_current, fps, unit_system, or render_engine.
Args: property: The scene property to set. Must be one of: frame_start, frame_end, frame_current, frame_step, fps, unit_system, render_engine, use_gravity, gravity. value: The value to set the property to. Type depends on the property.
Returns: Confirmation dict with the property name and new value.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| property | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral traits. It mentions returning a confirmation dict but omits side effects (e.g., whether setting frame_current affects animation), required permissions, or constraints (e.g., frame_start < frame_end). The value parameter's type is vaguely described as 'depends on property'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with Args and Returns sections, which aids readability. However, the first sentence repeats the property list that is already in the Args section, causing slight redundancy. It is generally concise but could be more efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema indication, the description lacks important context such as constraints on property values (e.g., frame_start must be less than frame_end), potential errors, or preprocessing steps. The output schema is mentioned but not detailed. The tool's complexity is low, but key operational context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must add meaning. It lists allowed values for 'property' (enumeration) and describes 'value' as type-dependent. This adds some semantics beyond the schema but does not specify types for each property, leaving ambiguity. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set a scene property' and lists specific properties (e.g., frame_start, render_engine), which distinguishes it from sibling tools like set_bone_property or set_camera_property that operate on different objects. The verb and resource are precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description only lists what it does, without explaining contexts (e.g., before rendering, after setting other properties) or excluding inappropriate uses. An agent must infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_sculpt_brushC
Set the active sculpt brush.
Args: brush_type: Brush type - DRAW, CLAY, CLAY_STRIPS, INFLATE, GRAB, SMOOTH, FLATTEN, FILL, SCRAPE, PINCH, CREASE, BLOB, MASK, MULTIRES_DISPLACEMENT_SMEAR.
Returns: Confirmation dict with active brush type.
| Name | Required | Description | Default |
|---|---|---|---|
| brush_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only says 'Set the active sculpt brush' without disclosing side effects, mode requirements, or whether it resets brush properties.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a list of values, front-loaded with the main action. Efficient without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description lacks behavioral context (mode requirements, side effects) and usage guidance. Fails to fully compensate for missing annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description compensates by listing possible brush types in the docstring, adding meaning beyond the raw schema (just 'string'). However, it does not confirm the list is exhaustive or provide format details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Set the active sculpt brush' with a specific verb and resource. Distinguishes from sibling 'set_brush_property' implicitly, but does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, no prerequisites mentioned (e.g., must be in sculpt mode), and no context about required state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_sculpt_symmetryA
Set sculpt symmetry axes.
Enables symmetrical sculpting across the specified axes. X-axis symmetry is the most common for character modeling.
Args: use_x: Enable X-axis symmetry. Defaults to True. use_y: Enable Y-axis symmetry. Defaults to False. use_z: Enable Z-axis symmetry. Defaults to False.
Returns: Confirmation dict with symmetry settings.
| Name | Required | Description | Default |
|---|---|---|---|
| use_x | No | ||
| use_y | No | ||
| use_z | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Does not disclose side effects, reversibility, or activation requirements (e.g., sculpt mode). Only states it sets axes and returns confirmation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short, well-structured with separate sections for purpose, args, and returns. Every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple tool with 3 boolean params and an output schema. Lacks mention of prerequisites (e.g., object in sculpt mode) but otherwise complete given low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% coverage, but description fully documents each parameter with defaults and behavior (e.g., 'Enable X-axis symmetry. Defaults to True.'). Adds significant value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it sets sculpt symmetry axes, enumerates axes, and notes common use for X-axis. It uniquely identifies its purpose among sibling set_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context that X-axis is common for character modeling, but no explicit when/when-not or alternatives. Acceptable but lacks guidance on conditions (e.g., requires sculpt mode).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_shader_node_inputA
Set the default value of an unconnected input socket on a shader node.
This is how you dial in a procedural texture: Noise 'Scale' and 'Detail', Mapping 'Scale' and 'Rotation', a Principled BSDF 'Roughness', and so on. A socket that has a link into it ignores its default value, so disconnect it first if you want the default to take effect.
Args: material_name: Name of the material. node_name: Name of the node. socket: Socket name, or a zero-based index. Use the index when names are ambiguous — a Math node has two inputs both called 'Value'. value: A number, a boolean, or a 2-4 component list for vectors and colors (colors are RGBA).
Returns: Dict with the node, socket, and the value that was applied.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| socket | Yes | ||
| node_name | Yes | ||
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explains that the tool sets the default value, that connected sockets ignore it, and what the return value contains. However, it does not disclose potential side effects (e.g., permanent modification of the material) or any required permissions, making it slightly incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. It starts with a clear summary, provides context with examples, details parameter constraints in a organized Args block, and ends with the return value. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description is complete. It covers the purpose, usage conditions, parameter details, and return format. No additional context is necessary for accurate selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description adds extensive meaning: it explains each parameter's role (material_name, node_name, socket with index option, value with allowed types), why socket can be an integer (ambiguous names), and how to format colors and vectors (2-4 component list). This far exceeds the schema which only provides types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Set the default value of an unconnected input socket on a shader node.' It provides concrete examples (Noise 'Scale', Principled BSDF 'Roughness') and distinguishes from sibling tools like connect_shader_nodes by explicitly mentioning that connected sockets ignore the set value.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: 'This is how you dial in a procedural texture.' It also explains when not to use it (when socket has a link) and how to handle it ('disconnect it first'). Additionally, it advises using index for ambiguous socket names, e.g., Math node's 'Value' inputs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_shader_node_propertyA
Set a node-level property (not a socket) on a shader node.
These are the dropdowns and checkboxes on the node body rather than its input sockets: Math 'operation', Mix 'blend_type', Voronoi 'feature' (use 'DISTANCE_TO_EDGE' for vein and crack patterns), Wave 'wave_type' and 'bands_direction', Noise 'noise_dimensions'.
Args: material_name: Name of the material. node_name: Name of the node. property: Property name. Must be one of the allowed node properties. value: String enum identifier, number, or boolean.
Returns: Dict with the node, property, and the value that was applied.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| property | Yes | ||
| node_name | Yes | ||
| material_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries full burden. It explains type of properties (dropdowns, checkboxes), that property must be allowed, and returns a dict with node, property, value. Adequately transparent for a simple setter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured: concise first line, then elaboration, then Args/Returns. Every sentence adds value. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 required params and no output schema complexity, description covers concept, differentiation from socket setting, and return format. Could list allowed properties more fully but acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage. Description adds context: property must be allowed node property, value can be string enum/number/boolean. But does not enumerate all allowed properties or value options, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it sets a node-level property (not a socket) on a shader node, with examples like Math 'operation' and Mix 'blend_type'. It distinguishes itself from set_shader_node_input which targets sockets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (set node-level property) versus not (sockets). Provides examples of properties for specific nodes. Lacks explicit when-not-to-use but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_shadow_settingsB
Configure shadow settings for a light.
Args: name: Name of the light object. use_shadow: Whether to enable shadows, default True. shadow_soft_size: Soft shadow radius, default 0.25.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| use_shadow | No | ||
| shadow_soft_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description serves as sole source. It lists parameters and return type but lacks details on destructive behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise single sentence for purpose, followed by a clear list of arguments and return type. Front-loaded with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description covers purpose and parameters, but missing context like required object existence or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description only restates parameter names and defaults without adding meaning beyond the schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool configures shadow settings for a light, using specific verb and resource. It distinguishes from siblings like set_light_property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like set_light_property, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_smooth_shadingA
Set smooth or flat shading on an object.
TIP: For production use, prefer shade_auto_smooth which provides angle-based auto-smooth shading — it gives better results on hard-surface models by only smoothing faces within the angle threshold.
Args: object_name: Name of the mesh object. smooth: True for smooth shading, False for flat shading.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| smooth | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It accurately describes the action and return type, but could mention that it affects all faces and modifies normals. However, for a simple boolean operation, the current description is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with purpose, a TIP, and an Args section. It is not overly long, but the TIP adds bulk. Some sentences could be combined, but overall it is clear and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two simple parameters and an output schema present, the description fully explains the parameters and return value. The TIP provides additional useful context about alternatives, making it complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by adding an 'Args' section that explains both parameters with clear semantics, beyond the schema's titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets smooth or flat shading on an object, using a specific verb and resource. It distinguishes from the sibling tool 'shade_auto_smooth' by providing a TIP, thus making its unique purpose evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The TIP explicitly recommends using 'shade_auto_smooth' for production use with a clear rationale, providing explicit when-not-to-use guidance and an alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_uv_projectionA
Apply a projection-based UV mapping to a mesh object.
Args: object_name: Name of the mesh object. projection: Projection type - CUBE, CYLINDER, or SPHERE.
Returns: Confirmation dict with object name and projection type.
| Name | Required | Description | Default |
|---|---|---|---|
| projection | Yes | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates it applies UV mapping to a mesh object and returns a confirmation dict, but does not disclose side effects, authorization needs, or potential errors (e.g., object not mesh). With no annotations, some behavioral details are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the purpose, and includes a clear list of arguments and return value. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic functionality and return value, but lacks context about error handling, prerequisites (e.g., existing UV map), and compatibility with non-mesh objects. For a simple tool, it is minimally adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description adds meaning by specifying object_name as 'Name of the mesh object' and projection with enumerated types (CUBE, CYLINDER, SPHERE), thus compensating for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (apply) and the resource (projection-based UV mapping), and specifies the projection types (cube, cylinder, sphere) which distinguishes it from sibling UV tools like smart_uv_project and uv_unwrap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like smart_uv_project or uv_unwrap. The description does not mention 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_viewport_overlayA
Toggle a viewport overlay setting.
Args: overlay: Overlay property name. One of: show_wireframes, show_face_orientation, show_floor, show_axis_x, show_axis_y, show_axis_z, show_cursor, show_object_origins, show_relationship_lines, show_stats. enabled: Whether the overlay should be enabled.
Returns: Confirmation dict with the overlay name and state.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| overlay | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return value and the fact that it sets an overlay state, but does not mention side effects, prerequisites (e.g., viewport mode), or irreversibility. This is adequate but not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with Args and Returns sections. Every sentence is necessary and the information is front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (mentioned in context signals) and the description's clear handling of parameters and return value, the description is complete for this simple toggle operation. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant value beyond the input schema: it lists all possible overlay property names and clearly defines the enabled parameter. This compensates for the 0% schema description coverage and fully clarifies parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Toggle') and the resource ('viewport overlay setting'), distinguishing it from sibling tools like set_viewport_shading or capture_viewport. The inclusion of specific overlay names further clarifies the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. While it implies usage for toggling viewport overlays, it lacks exclusions or context about related tools such as set_viewport_shading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_viewport_shadingA
Set the viewport shading mode.
Args: mode: Shading mode. One of: WIREFRAME, SOLID, MATERIAL, RENDERED.
Returns: Confirmation dict with the new shading mode.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Minimal behavioral disclosure beyond the name. It does not mention side effects, prerequisites (e.g., an active 3D viewport), or what happens with invalid arguments. Annotations are absent, so the description should fill this gap but falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with three clear sentences. The purpose is front-loaded, and every sentence provides necessary information without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately covers the tool's action and return value for a simple setter. Missing details on error handling or assumptions about the viewport state, but overall sufficient given low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for the 'mode' parameter; the description compensates by listing the exact possible values (WIREFRAME, SOLID, MATERIAL, RENDERED), adding crucial meaning that the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it sets the viewport shading mode and lists the four possible modes, providing a specific verb and resource. However, it does not differentiate from sibling tools like set_viewport_overlay, which could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. With many similar set_* tools, the description could mention that it is specifically for viewport shading, not for render settings or overlays.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_world_backgroundA
Set the world background to a solid color or HDRI environment map.
Args: color: RGB color as [r, g, b] for solid background. Mutually exclusive with hdri_path. hdri_path: Absolute path to an HDRI image file. Mutually exclusive with color. strength: Background strength/intensity, default 1.0.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | ||
| strength | No | ||
| hdri_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full transparency burden. It discloses key behavioral traits: the tool accepts either a color (RGB array) or an HDRI path (mutually exclusive), and a default strength of 1.0. This is sufficient for a simple setter tool, though it lacks side-effect warnings (e.g., persistence or costs).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two lines of purpose plus Args/Returns sections. Every sentence adds value. The structure is front-loaded with the core action, followed by parameter details. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (3 parameters, 0 required, no enums) and the presence of an output schema, the description fully covers the usage context. The sibling tools are numerous but unrelated, and the description does not need to differentiate further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It adds clear semantics: 'color' is an RGB array [r,g,b], 'hdri_path' is an absolute path to HDRI image, 'strength' defaults to 1.0. All three parameters are explained with usage notes, far exceeding schema-only info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Set the world background to a solid color or HDRI environment map.' It specifies the verb 'Set' and the resource 'world background', and distinguishes itself by explicitly naming the two input modes (color vs HDRI). No sibling tool has a similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context by explaining the mutual exclusivity of 'color' and 'hdri_path', guiding the agent on parameter selection. However, it does not compare to alternative tools (e.g., set_viewport_shading or set_scene_property), leaving when-to-use and when-not-to-use ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shade_auto_smoothA
Apply angle-based auto-smooth shading to an object.
Smooths faces only where the angle between adjacent face normals is below the given threshold, giving clean results on hard-surface models.
Args: object_name: Name of the mesh object. angle: Auto-smooth angle threshold in radians (0.0 to pi). Defaults to ~30 degrees (0.523599 rad).
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| angle | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It clearly explains the effect (smoothing based on angle threshold) and provides default behavior. It does not mention side effects like reversibility or requirements for mesh object, but is sufficiently informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3 sentences plus structured Args/Returns), front-loaded with the core purpose, and every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and a simple tool, the description covers essential aspects: purpose, parameter details, and return type. It could mention that it sets auto-smooth shading mode, but overall it is sufficiently complete for an agent to understand usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description adds full meaning: object_name is the mesh object name, angle is the threshold in radians with a default of 0.523599 (~30 degrees) and valid range 0 to pi, which the schema does not provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool applies angle-based auto-smooth shading to an object, explaining that it smooths faces based on angle between adjacent normals, which distinguishes it from general smooth shading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for hard-surface models but does not explicitly state when to use this tool over alternatives like set_smooth_shading, nor does it provide when-not conditions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
smart_uv_projectB
Apply Smart UV Project to a mesh object.
Automatically unwraps the mesh using angle-based projection.
Args: object_name: Name of the mesh object. angle_limit: Angle limit in degrees for splitting faces (0.0-89.0). island_margin: Margin between UV islands (0.0-1.0). area_weight: Weight given to face area for island arrangement (0.0-1.0).
Returns: Confirmation dict with object name and UV map info.
| Name | Required | Description | Default |
|---|---|---|---|
| angle_limit | No | ||
| area_weight | No | ||
| object_name | Yes | ||
| island_margin | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It mentions the unwrapping method and return type but omits side effects (e.g., UV layer creation/modification), failure conditions (e.g., non-mesh objects), or requirements beyond object name. This is insufficient for a mutation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with a summary, one-line elaboration, Args block, and Returns. It is efficient and front-loaded. Minor redundancy: 'Apply Smart UV Project to a mesh object' mirrors the tool name, but overall no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists (though not detailed), the description covers basic action, parameters, and return. However, lacking usage guidelines and behavioral transparency (e.g., side effects, failure modes) leaves gaps. It is adequate but not comprehensive for a tool with 4 parameters and a default-based operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining each parameter: object_name (mesh object), angle_limit (splitting faces, 0-89?), island_margin (0-1), area_weight (0-1). This adds meaning beyond the schema's titles/types, though ranges are implied but not stated explicitly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Apply Smart UV Project to a mesh object' and 'Automatically unwraps the mesh using angle-based projection,' which is a specific, distinct action. It differentiates from sibling tools like 'uv_unwrap' (standard unwrap) and 'pack_uv_islands' (packing) by specifying the Smart UV Project method.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like 'uv_unwrap' or 'set_uv_projection'. The description assumes the user knows to choose Smart UV Project for angle-based unwrapping, but lacks context on prerequisites or comparative scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
smooth_curveB
Smooth the control points of a curve.
Args: curve_name: Name of the curve object.
Returns: Dict with confirmation of smoothing.
| Name | Required | Description | Default |
|---|---|---|---|
| curve_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It only states the action and return value, omitting details like whether smoothing modifies the object directly, is reversible, or works on all curve types.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with one sentence for purpose and brief Args/Returns sections. It could include more detail without being verbose, but it is appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no annotations, and an output schema exists), the description covers the basic functionality. However, it lacks behavioral context such as whether the curve is modified in place or a new object is created, which is relevant for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% (the schema only shows type string for curve_name). The description adds the critical semantic detail that curve_name is the 'Name of the curve object', clarifying what the parameter represents beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool smooths the control points of a curve, which is a specific action on a distinct resource. This distinguishes it from sibling tools like subdivide_curve or set_curve_property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, when not to use it, or comparison with curve-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snap_to_gridB
Snap an object's location to the nearest grid point.
Args: name: Name of the object. grid_size: Size of the grid cells. Defaults to 1.0.
Returns: Dict with the object name and snapped location.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| grid_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic snapping behavior. It does not disclose side effects (e.g., permanent modification of object location) or clarify whether it snaps the object's origin or bounding box. The return value is mentioned, but behavioral details are sparse.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a brief summary and structured Args/Returns sections. It uses minimal words without unnecessary fluff, but the Args section could be integrated more smoothly into the narrative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and low schema coverage, the description should provide more comprehensive context. It fails to explain that the tool modifies the object in place, whether it works on selected objects or only by name, or the behavior when grid_size is not specified. The presence of an output schema is noted but not detailed enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the description must explain parameters, but it merely repeats what the schema already conveys (name and grid_size with default). It adds no extra context like units for grid_size or validation rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'snap' and the resource 'object's location', making the action explicit. It distinguishes from sibling tools like set_location by specifically mentioning grid snapping, which is a unique operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as set_location or manual adjustments. It lacks exclusions or context about prerequisites like object selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spin_meshA
Spin (lathe) mesh geometry around an axis.
Creates rotational geometry by duplicating and rotating the selected geometry around a center point. Great for creating round shapes like vases, columns, or wheels.
Args: object_name: Name of the mesh object. angle: Total spin angle in radians. Range: -6.283 to 6.283 (full circle). steps: Number of steps in the spin. Range: 1-1000. axis: Spin axis as XYZ vector. Defaults to Z-up (0, 0, 1). center: Center point for the spin as XYZ. Defaults to origin.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | ||
| angle | No | ||
| steps | No | ||
| center | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions duplicating and rotating geometry but does not clarify whether the original mesh is modified or a new object is created. It also lacks discussion of reversibility, permissions, or potential side effects. This is a significant gap for a geometry creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences + structured Args/Returns) with no filler. The core purpose is front-loaded, and each sentence adds value. The formatting is clean and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no annotations, and an output schema (implied by 'Returns confirmation dict'), the description covers the parameters well but omits critical behavior details like whether the operation is destructive or creates a new object. This hole reduces completeness; a more thorough description would address these points.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds valuable meaning to all 5 parameters: it specifies ranges for angle (-6.283 to 6.283) and steps (1-1000), explains axis default (Z-up) and center default (origin), and clarifies that object_name is required. This goes well beyond the schema which only provides titles and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool 'spins (lathes) mesh geometry around an axis' and gives concrete examples like vases, columns, or wheels, making the purpose unmistakable. No similar tool among siblings (e.g., no other spin or lathe tool), so it's well-distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context by stating it's 'great for creating round shapes', implying when to use it. However, it does not explicitly list alternatives or when not to use it, though the sibling tools list is large and no direct alternative spin tool exists, so the guidance is adequate but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subdivide_curveB
Subdivide a curve by adding control points between existing ones.
Args: curve_name: Name of the curve object. number_cuts: Number of cuts to make (1-100).
Returns: Dict with confirmation of subdivision.
| Name | Required | Description | Default |
|---|---|---|---|
| curve_name | Yes | ||
| number_cuts | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explains the action (adding control points) and constrains number_cuts (1-100), but does not disclose reversibility, side effects, or whether the curve is modified in place.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear main sentence and docstring format. However, the Returns section is vague ('Dict with confirmation'). Overall efficient but not perfectly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, low schema coverage, and only a vague promise of a confirmation dict, the description lacks detail about return values, side effects, and prerequisites. Incomplete for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description merely repeats parameter names and types with minimal context (e.g., 'Name of the curve object') beyond the schema titles. It adds no semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'subdivide a curve' and mechanism 'adding control points between existing ones'. It is specific and distinguishable from sibling tools like subdivide_mesh.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like subdivide_mesh or smooth_curve. The description does not mention 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.
subdivide_meshA
Subdivide a mesh.
Args: object_name: Name of the mesh object to subdivide. cuts: Number of cuts per edge. Range: 1-100.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| cuts | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Specifies the effect (subdivision with cuts per edge) and parameter range (1-100) but does not disclose if modification is in-place, destructive, or requires user selection. No annotations are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise yet informative: includes purpose, parameters, and return type in a few sentences. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists (true), the description only mentions a 'Confirmation dict' which is sufficient. However, it lacks details about state changes or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds value beyond the schema by describing 'cuts' as 'Number of cuts per edge' and stating the allowed range (1-100). The schema itself has 0% description coverage, so the description compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Subdivide a mesh.' This distinguishes it from siblings like 'subdivide_curve' and other mesh operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not mention prerequisites, when not to use, or compare with related operations like 'bevel_edges' or 'loop_cut'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_extensionsA
Suggest helpful Blender extensions for a planned task.
Analyzes the task description and recommends free Blender extensions that could improve the workflow. Already-installed extensions are excluded.
Args: task_description: Description of the planned task. If empty, returns all extensions not currently installed.
Returns: Dict with 'suggestions' list of recommended extensions and 'installed' list of already-installed extension IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| task_description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that recommendations are free extensions, installed ones are excluded, and the return structure includes suggestions and installed lists. No side effects are indicated, which is acceptable for a suggestion tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured as a docstring with sections for purpose, args, and returns. It is slightly verbose but clear and well-organized, earning a high trust score on conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one optional parameter) and the presence of an output schema (implied by context signals), the description fully covers what the tool does, how to use it, and what it returns. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the tool's description includes an 'Args' section that explains the 'task_description' parameter's behavior, especially when empty. This adds essential meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Suggest helpful Blender extensions for a planned task.' It specifies the verb 'suggest' and the resource 'extensions,' and it is distinct from sibling tools which focus on modeling, animation, and other Blender operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that the tool analyzes a task description to recommend extensions, and that an empty task_description returns all uninstalled extensions. It does not explicitly compare to alternatives, but the context makes usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
switch_curve_directionB
Switch the direction of a curve's splines.
Args: curve_name: Name of the curve object.
Returns: Dict with confirmation of direction switch.
| Name | Required | Description | Default |
|---|---|---|---|
| curve_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are given, so the description must fully disclose behavior. It states it 'switches direction' but does not explain what this entails (e.g., reversing normals, tangency changes, or if it's destructive). The effect on the curve is ambiguous, and no prerequisites or side effects are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of a one-sentence purpose followed by a structured Args/Returns section. Every part is necessary, though the Returns section is terse. No redundancy or superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema provided), the description covers the essential purpose and parameter. It does not explain the return value (confirming direction switch) beyond a dict, but with an output schema present, this is acceptable. Could mention any prerequisites like the curve type or if it works on all curves.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, curve_name, is described as 'Name of the curve object,' which matches the name. With 0% schema description coverage, the description adds minimal value beyond the parameter name. However, the tool has only one parameter, so the description is adequate but not insightful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Switch the direction of a curve's splines' uses a specific verb and resource, clearly indicating the tool's function. It distinguishes itself from sibling curve tools like 'set_curve_property' or 'convert_curve_to_mesh' by focusing on direction reversal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks any guidance on when to use this tool versus alternatives, such as when to reverse spline direction vs. using 'set_curve_property' for other attributes. No when-to-use or when-not-to-use details are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_cyclicB
Toggle the cyclic (closed loop) state of a curve.
Args: curve_name: Name of the curve object.
Returns: Dict with confirmation of cyclic toggle.
| Name | Required | Description | Default |
|---|---|---|---|
| curve_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral transparency. It only states 'Toggle' without explaining side effects, idempotency, error conditions (e.g., curve not found), or whether the operation modifies the curve in place.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a clear front-loaded sentence, followed by well-structured Args and Returns sections. Every sentence earns its place with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple toggle tool with one parameter and an output schema, the description is minimally adequate. However, it could mention prerequisites (curve must exist) or error handling, which is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It adds a basic description for curve_name ('Name of the curve object'), which adds some meaning beyond the schema but is minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action 'Toggle' and the resource 'cyclic (closed loop) state of a curve', making the purpose crystal clear. It distinguishes itself from sibling tools like set_curve_property by focusing on toggling rather than setting properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like set_curve_property or smooth_curve. It lacks when-to-use, when-not-to-use, or prerequisite information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tris_to_quadsA
Convert adjacent triangle pairs to quad faces where possible.
Improves topology for subdivision and deformation. Not all triangles can be merged — only adjacent pairs with compatible angles.
Args: object_name: Name of the mesh object.
Returns: Confirmation dict.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It notes that not all triangles can be merged due to angle compatibility, which is useful. However, it does not disclose whether the operation modifies the mesh in-place, potential side effects, or if it returns the same object. This 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear verb-first statement, a note on limitations, and structured args. It front-loads the action and avoids fluff, though the limitations sentence could be slightly more succinct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one param, no output schema details needed beyond confirmation dict), the description covers the operation, limitations, parameter, and return. However, it lacks examples or context relative to other topology tools, which would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the tool description includes an explicit 'Args' section with a brief description for the single parameter 'object_name'. This adds meaning beyond the schema, though it could be more detailed about valid inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts adjacent triangle pairs to quad faces, specifying the mesh object as the resource. It differentiates from the sibling tool 'quads_to_tris' by focusing on the opposite operation, thus achieving high purpose clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions improving topology for subdivision and deformation, hinting at use cases, but does not explicitly state when to use this tool versus alternatives like 'dissolve_faces' or 'quads_to_tris'. No when-not guidance or comparison to siblings is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uv_unwrapB
Unwrap a mesh object's UVs using standard unwrap.
Requires seams to be marked for best results.
Args: object_name: Name of the mesh object. method: Unwrap method - ANGLE_BASED or CONFORMAL.
Returns: Confirmation dict with object name.
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | ANGLE_BASED | |
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose all behavioral traits. It lacks information on side effects (e.g., overwriting UVs), permission needs, or whether it modifies the object. Only mentions prerequisite seams.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences covering action, prerequisite, parameters, and return value. Mostly efficient but includes redundant 'Args' section that mirrors schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Describes return as confirmation dict and notes seam requirement. Lacks prerequisite that object must be a mesh, or that it should be selected. Adequate but not fully comprehensive given output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, description adds basic meaning: object_name is mesh name, method specifies two options. However, it does not explain differences between methods or default value behavior, which is minimal compensation for missing schema details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool unwraps a mesh object's UVs using standard unwrap. Distinguishes from sibling 'smart_uv_project' by specifying 'standard unwrap' method.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions requirement of seams for best results, implying use of 'mark_seam' before this tool. No explicit when-not or alternative methods like 'smart_uv_project'.
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. Dates show when Glama detected each change.
10 tool updates
v1.3.0- Added
add_color_ramp_element - Added
create_procedural_material - Added
create_raster_texture - Added
get_color_ramp - Added
list_procedural_patterns - Added
remove_color_ramp_element - Added
set_color_ramp_element - Added
set_color_ramp_interpolation - Added
set_shader_node_input - Added
set_shader_node_property
66 tool updates
v1.2.2- Added
add_annotation_layer - Added
add_annotation_stroke - Added
add_shader_node - Added
analyze_mesh_quality - Added
booltool_auto_difference - Added
booltool_auto_intersect - Added
booltool_auto_slice - Added
booltool_auto_union - Added
bridge_edge_loops - Added
connect_shader_nodes - Added
convert_object - Added
create_annotation - Changed
create_collection1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "title": "create_collectionDictOutput", + "type": "object" +}
- Added
create_polygon_prism - Added
create_threaded_shaft - Changed
delete_collection1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "title": "delete_collectionDictOutput", + "type": "object" +}
- Added
delete_particle_system - Added
disconnect_shader_nodes - Added
dissolve_edges - Added
dissolve_faces - Added
dissolve_verts - Added
enable_dyntopo - Changed
execute_blender_code2 fields changed- removed
Input schema / properties / user_promptRemoved value: -{ - "default": "", - "title": "User Prompt", - "type": "string" -} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "title": "execute_blender_codeDictOutput", + "type": "object" +}
- Changed
export_file1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "title": "export_fileDictOutput", + "type": "object" +}
- Added
fill_faces - Added
flip_normals - Changed
focus_on_object1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "title": "focus_on_objectDictOutput", + "type": "object" +}
- Added
get_node_tree - Changed
get_viewport_screenshot3 fields changed- added
Input schema / properties / modeAdded value: +{ + "default": "fast", + "title": "Mode", + "type": "string" +} - removed
Input schema / properties / user_promptRemoved value: -{ - "default": "", - "title": "User Prompt", - "type": "string" -} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "title": "get_viewport_screenshotDictOutput", + "type": "object" +}
- Added
grid_fill - Changed
import_file1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "title": "import_fileDictOutput", + "type": "object" +}
- Added
inset_faces - Added
knife_project - Changed
list_recent_files1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "items": { + "type": "string" + }, + "title": "Result", + "type": "array" + } + }, + "required": [ + "result" + ], + "title": "list_recent_filesOutput", + "type": "object" +}
- Added
make_single_user - Added
mark_seam - Added
mark_sharp - Changed
move_to_collection1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "title": "move_to_collectionDictOutput", + "type": "object" +}
- Changed
open_file1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "title": "open_fileDictOutput", + "type": "object" +}
- Changed
parent_mesh_to_armature1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "title": "parent_mesh_to_armatureDictOutput", + "type": "object" +}
- Added
quads_to_tris - Added
recalculate_normals - Added
remove_annotation_layer - Added
remove_shader_node - Changed
save_file1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "title": "save_fileDictOutput", + "type": "object" +}
- Added
select_linked - Added
set_annotation_stroke_property - Changed
set_collection_visibility1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "title": "set_collection_visibilityDictOutput", + "type": "object" +}
- Added
set_edge_crease - Added
set_eevee_light_path - Added
set_handle_type - Changed
set_origin4 fields changed- removed
Input schema / properties / nameRemoved value: -{ - "title": "Name", - "type": "string" -} - added
Input schema / properties / object_nameAdded value: +{ + "title": "Object Name", + "type": "string" +} - changed
Input schema / properties / type / defaultPrevious value: -"GEOMETRY"New value: +"ORIGIN_GEOMETRY" - changed
Input schema / requiredPrevious value: -[ - "name" -]New value: +[ + "object_name" +]
- Added
set_particle_rendering - Added
set_particle_velocity - Changed
set_pose1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "title": "set_poseDictOutput", + "type": "object" +}
- Added
set_sculpt_symmetry - Changed
set_viewport_overlay1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "title": "set_viewport_overlayDictOutput", + "type": "object" +}
- Changed
set_viewport_shading1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "title": "set_viewport_shadingDictOutput", + "type": "object" +}
- Added
shade_auto_smooth - Added
smooth_curve - Added
spin_mesh - Added
subdivide_curve - Added
suggest_extensions - Added
switch_curve_direction - Added
toggle_cyclic - Added
tris_to_quads
116 tool updates
v0.1.0- First observed
add_bone - First observed
add_cloth_sim - First observed
add_constraint - First observed
add_curve_point - First observed
add_fluid_sim - First observed
add_geometry_node - First observed
add_modifier - First observed
add_multires_modifier - First observed
add_particle_system - First observed
add_rigid_body - First observed
add_texture_node - First observed
apply_modifier - First observed
apply_transforms - First observed
assign_material - First observed
bake_physics - First observed
bevel_edges - First observed
boolean_operation - First observed
capture_viewport - First observed
clear_animation - First observed
connect_geometry_nodes - First observed
convert_curve_to_mesh - First observed
create_animation_path - First observed
create_armature - First observed
create_camera - First observed
create_collection - First observed
create_curve - First observed
create_geometry_nodes - First observed
create_light - First observed
create_light_rig - First observed
create_material - First observed
create_object - First observed
create_principled_material - First observed
create_scene - First observed
create_text - First observed
delete_collection - First observed
delete_keyframe - First observed
delete_light - First observed
delete_material - First observed
delete_object - First observed
delete_scene - First observed
duplicate_material - First observed
duplicate_object - First observed
enter_sculpt_mode - First observed
execute_blender_code - First observed
exit_sculpt_mode - First observed
export_file - First observed
extrude_faces - First observed
focus_on_object - First observed
get_object_info - First observed
get_scene_info - First observed
get_viewport_screenshot - First observed
import_file - First observed
insert_keyframe - First observed
join_objects - First observed
list_geometry_node_inputs - First observed
list_keyframes - First observed
list_lights - First observed
list_materials - First observed
list_objects - First observed
list_recent_files - First observed
list_scenes - First observed
loop_cut - First observed
merge_vertices - First observed
move_to_collection - First observed
open_file - First observed
pack_uv_islands - First observed
parent_mesh_to_armature - First observed
parent_objects - First observed
point_camera_at - First observed
remesh - First observed
remove_modifier - First observed
rename_object - First observed
render_animation - First observed
render_image - First observed
save_file - First observed
select_objects - First observed
separate_mesh - First observed
set_active_camera - First observed
set_bone_property - First observed
set_brush_property - First observed
set_camera_from_view - First observed
set_camera_property - First observed
set_collection_visibility - First observed
set_curve_property - First observed
set_frame - First observed
set_frame_range - First observed
set_geometry_node_input - First observed
set_interpolation - First observed
set_light_property - First observed
set_location - First observed
set_material_blend_mode - First observed
set_material_color - First observed
set_material_property - First observed
set_modifier_property - First observed
set_object_visibility - First observed
set_origin - First observed
set_output_format - First observed
set_physics_property - First observed
set_pose - First observed
set_render_engine - First observed
set_render_resolution - First observed
set_render_samples - First observed
set_rotation - First observed
set_scale - First observed
set_scene_property - First observed
set_sculpt_brush - First observed
set_shadow_settings - First observed
set_smooth_shading - First observed
set_uv_projection - First observed
set_viewport_overlay - First observed
set_viewport_shading - First observed
set_world_background - First observed
smart_uv_project - First observed
snap_to_grid - First observed
subdivide_mesh - First observed
uv_unwrap
TDQS
Many tools are clearly distinct (e.g., add_bone vs add_constraint), but there are overlapping functions like multiple boolean tools (boolean_operation, booltool_auto_*) and material creation tools (create_material, create_principled_material) that could cause confusion. The large number of tools exacerbates ambiguity.
Most tools follow a verb_noun pattern, but there is inconsistency between 'add_' and 'create_' for analogous operations (e.g., add_bone vs create_armature). Special prefixes like 'booltool_auto_' and 'set_' for diverse property setters also break the pattern. Overall, readable but not fully consistent.
With 165 tools, this server is extremely overloaded. The calibration indicates that 50+ tools is an extreme mismatch for a coherent tool set. Such a large number makes it difficult for an agent to select the correct tool and suggests the server should be split into smaller, focused servers.
The tool set covers an impressively wide range of Blender functionality: modeling, sculpting, animation, rendering, materials, physics, constraints, and scene management. However, some advanced features are missing (e.g., shape keys, NLA editor, custom properties), preventing a perfect score.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Cloud Blender for AI agents: scenes, assets, renders, MP4, STL, GLB — over hosted remote MCP.
Generate game-ready 3D models, textures, and audio from natural language, over MCP.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for Hailuo (MiniMax) AI video generation
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceTransforms Blender into an MCP server with 50+ tools for AI-driven 3D workflows, enabling complete control over objects, materials, animations, physics simulations, and rendering through natural language commands.45MIT
- AlicenseBqualityDmaintenanceAn MCP server that enables AI models to directly control Blender for 3D modeling, scene manipulation, and material management through natural language. It supports advanced workflows including Python code execution, viewport visualization, and integration with external asset libraries like Poly Haven and Hyper3D.221MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI agents to control Blender through natural language for 3D scene creation, animation, and rendering. It provides over 550 actions and direct Python execution via a bridge to a live local Blender session.3MIT
- AlicenseCqualityDmaintenanceMCP server that enables AI to control Blender 3D, providing 175 typed tools for objects, materials, animation, compositing, and more via the Model Context Protocol.1002MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/HoldMyBeer-gg/blend-ai'
If you have feedback or need assistance with the MCP directory API, please join our Discord server