blender-mcp
Provides tools for controlling a live Blender session, enabling AI agents to model, shade, texture, rig, simulate, light, render, and manipulate 3D scenes directly in Blender.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@blender-mcpmodel a coffee mug, apply a ceramic shader, and render a turntable"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Blender MCP
Let an AI agent actually use your Blender. Not a toy wrapper — a bridge into a live Blender 4.5 LTS session: modelling, materials, lighting, cameras, and renders handed back to the model as images it can look at.
What it does
Point any MCP client at it and the agent can:
Audit the model before and after it works:
blender_validatereturns a scored report across scale, real-world dimensions, normals, topology, intersections, symmetry, naming, materials, UVs, transforms, pivots, poly budget, LODs, lighting and orphan datablocks.blender_find_problemsreturns only the failures, each paired with the tool call that fixes it.Measure instead of guessing: bounding boxes, centre distances, assembly extents, and a full per-mesh census (manifold/boundary/wire edges, closed shell, signed volume, loose and duplicate geometry).
Survey your open scene: objects, collections, materials, meshes, render settings
Model: primitives, custom meshes, ~30 bmesh operators (extrude, bevel, inset, subdivide, bridge, spin, merge, recalc normals), plus mirror, array, screw, weld, remesh, decimate and wireframe
Auto-fix topology:
blender_fix_topologyrepairs non-manifold edges, flipped normals, loose geometry, and duplicate vertices in one callAuto-UV: every new mesh gets UVs automatically (
auto_uv=trueby default) via smart_project, so it is texture-ready immediatelyLOD generation:
blender_generate_lodscreates decimated variants for game engines with one callShade with 30 non-destructive modifiers, applied or left live
Unwrap with smart project, angle/conformal unwrap, island packing and welding, and report UV ranges before they become an atlas problem
Generate textures procedurally as real PNG files: 20 patterns from fbm and voronoi to rust, brushed metal, leather, carbon weave and stencilled registration plates, plus matched BaseColor/Roughness/Metallic/Normal/AO sets that can be wired straight into a material. Bake procedural nodes to disk and pack everything into the .blend.
Rig and simulate: armatures, bones, automatic weights, pose bones, rigid bodies, cloth, soft bodies, collision and force fields
Light and frame: sun/area/spot lights, three-point setups, world gradients, physical Nishita sky, HDRI, cameras that aim themselves
Smart lighting:
blender_auto_light_sceneadds a key/fill/rim rig aimed at the scene centroid;blender_camera_focusadds a Track To constraint so the camera always looks at a targetSee its own work:
blender_capture_viewportandblender_renderreturn the image as an MCP content block, so the agent reviews the render and iterates.blender_render_extrasadds turntables, a near-instant Workbench clay preview, render passes and contact sheetsRound-trip
.blend,.glb,.gltf,.fbx,.obj,.stl,.ply,.usd,.abcBatch safety:
blender_batchsupportsrollback=true(default) to undo the last step whenstop_on_erroris set and a step fails
Two things that matter on a big scene:
blender_batchruns many commands in a single round trip, with per-step results. A forty-step build is one call instead of forty.blender_select_byfinds objects by predicate - loose geometry, missing UVs, missing materials, too large, by collection, by glob - because names are what an agent gets wrong first.
Plus three escape hatches for everything else:
blender_execute_python, blender_run_operator, and
blender_list_operators(include_properties=True) — which reports the exact
operator ids and property names of the Blender build it is talking to, instead of
relying on the model's memory.
Author shaders: 24 physically-set PBR presets (car paint with clear coat, glass with transmission, leather, brushed steel, neon), a declarative node-graph builder for anything the presets miss, one-call procedural surfaces, world shaders including physical sky and HDRI, and vertex-colour masks
Advanced shading: triplanar mapping for distortion-free texturing without UVs, procedural micro-surface normals, and ambient occlusion for contact shadows
Pull assets from the internet: download any URL with a size cap and checksum, or search and fetch CC0 HDRIs, textures and models from Poly Haven with no API key. Import fbx, obj, gltf, glb, stl, ply, usd, abc, dae and blend as separate editable objects, and export the same set back out
Animate: actions, F-curve shaping (interpolation, easing, handle types, noise and cyclic modifiers, retiming), NLA tracks, drivers with real variables, shape keys, physics stepping and baking, the video sequencer, and camera orbits, follow constraints and dollies
Camera tools:
blender_camera_focusadds a Track To constraint so the camera always looks at a target object;blender_auto_light_sceneadds a key/fill/rim rig aimed at the scene centroidSee and change everything: a full settings report, single-setting writes by dotted path, a datablock inventory with orphans and linked libraries, script discovery, a sandboxed filesystem browser, the Python environment, a render report and a
blender_diagnosehealth checkQuality workflow: after any mesh edit, run
blender_fix_topologyto auto-repair non-manifold edges, flipped normals, and loose geometry, thenblender_auto_validateto verify the resultManage the environment: list, enable and disable add-ons, install them from a zip, pip-install packages into a project-local directory, and append node groups from other .blend files
Auto-validation:
blender_auto_validateruns a quick topology/normals/UV check after mesh edits;blender_add_primitiveandblender_create_meshacceptauto_validate=trueto validate immediately after creation groups from another .blend
122 tools. See Tools.
Related MCP server: Blender MCP
Install
Requires Python 3.11+ and Blender 4.2+ (developed and tested against
4.5 LTS). No git clone needed if you use uvx:
uvx --from git+https://github.com/Mishaadevv/blender-mcp blender-mcpor with pip:
pip install git+https://github.com/Mishaadevv/blender-mcp1. Install the Blender addon
The addon ships inside the Python package, so one command does it:
blender-mcp-setupIt finds blender.exe (or blender on macOS/Linux), copies the addon into
Blender's user addons folder, then lets Blender itself enable it and save the
preference — so your other add-ons are left alone. Set BLENDER_EXE if Blender
lives somewhere unusual.
You can also skip this and let the agent do it: it will call blender_setup for
you when blender_status reports the addon is missing.
2. Point your client at it
{
"mcp": {
"blender": {
"type": "local",
"command": ["uvx", "--from", "git+https://github.com/misakolot6-netizen/blender-mcp", "blender-mcp"],
"enabled": true
}
}
}{
"mcpServers": {
"blender": {
"command": "uvx",
"args": ["--from", "git+https://github.com/misakolot6-netizen/blender-mcp", "blender-mcp"]
}
}
}{
"mcpServers": {
"blender": {
"command": "uvx",
"args": ["--from", "git+https://github.com/misakolot6-netizen/blender-mcp", "blender-mcp"]
}
}
}Any client that spawns a stdio command works. Use the uvx line above, or if you
prefer a plain interpreter path:
{
"command": "/path/to/venv/bin/python",
"args": ["-m", "blender_mcp"]
}3. Open Blender
The bridge starts with Blender automatically. You should see
3D View > Sidebar (N) > MCP Bridge reporting ONLINE.
How it works
your agent ──stdio──▶ blender-mcp (python) ──TCP 127.0.0.1:9876──▶ Blender
one request per newline-delimited bpy.app.timers
connection JSONThe addon has no worker threads at all. bpy is only valid on Blender's main
thread, and from a background thread bpy.context is stripped down enough that
most operators fail. So the socket is polled from a bpy.app.timers callback
which accepts, reads and answers inline, on the main thread, with a fully
populated context.
Consequences worth knowing:
Commands can never interleave with a render or a modal dialog — the timer simply does not run while the UI is busy, so a client gets a clean timeout instead of a corrupted file.
blender --backgroundis not supported. It has no event loop, so timers never fire. Use a normal window.Set
BLENDER_MCP_AUTOLAUNCH=1and the server will start a Blender window itself if none is open.
Tools
Group | Tools |
Setup & status |
|
Validation |
|
Materials & shaders |
|
Assets from the net |
|
Add-ons & libraries |
|
Animation |
|
Project inspection |
|
Textures |
|
Context & history |
|
Geometry & UV |
|
Rig & physics |
|
Scene & render |
|
Batching |
|
Scene |
|
Objects |
|
Mesh & modifiers |
|
Collections |
|
Materials |
|
Camera & light |
|
Output |
|
Files |
|
Animation |
|
Every tool takes response_format: "markdown" | "json". In markdown mode object
lists come back as tables; in json mode you get the raw structure.
Tools that delete objects or overwrite files are annotated destructiveHint, so
clients that support it will ask the user first.
Configuration
Variable | Default | Meaning |
|
| bridge address |
|
| bridge port |
|
| per-command timeout, seconds |
| home directory | base for relative file paths |
| — |
|
| — |
|
| auto-detected | full path to the Blender executable |
Security
The socket binds to 127.0.0.1 only and has no authentication: any process
on your machine can drive your Blender. That is a deliberate trade-off — the addon
exists precisely so an agent can control your Blender, and
blender_execute_python intentionally grants full Python access.
Practical measures:
Never expose the port and never run the addon in a shared environment.
Set
BLENDER_MCP_ALLOWED_ROOTSto confine where the agent may write files.Only run it against Blender instances you are happy to have scripted.
Development
python -m venv .venv && .venv/Scripts/python -m pip install -e ".[dev]"
# 142 checks against a real Blender: geometry, bmesh, materials, render, export,
.venv/Scripts/python scripts/selftest.py
# plus validation, textures, context, geometry, UV, batching and undo safety
.venv/Scripts/python scripts/mcp_test.pyselftest.py launches its own Blender if none is listening. Changes to the addon
only take effect after reinstalling it and restarting Blender:
.venv/Scripts/python -m blender_mcp.setupLayout:
src/blender_mcp/
├── server.py 46 MCP tools
├── client.py socket client, Blender discovery, autolaunch
├── setup.py addon installer (also the blender-mcp-setup command)
├── formatting.py markdown/json rendering, MCP image blocks
└── addon/blender_mcp_bridge/
├── bridge.py timer-driven socket transport
├── commands.py the bpy/bmesh command layer
└── ui.py sidebar panel and operatorsKnown limitations
Add-on installs and
pip installboth execute third-party code, so they are refused unless you passconfirm=true. Packages go to a project-local directory, never into Blender's bundledsite-packages.blender_filesystemis confined to your home directory, Blender's script folders and the asset cache.allow_anywheredrops that, and should only be used when you have actually asked for it.blender_undorefuses to rewind across an Open File, because Blender's undo stack does not survive a file load and attempting it crashes Blender. For the same reasonblender_file_opwithaction="new"can block:wm.open_mainfileandwm.read_homefiledriven from the bridge's timer may not return.blender_downloadonly accepts http and https, caps the size, and never executes what it fetches. Poly Haven is wired up because it is CC0 and needs no API key; sources that need credentials are deliberately not included.The undo guard described above is not covered by the automated suite, because provoking it requires a file load.
blender_renderon Cycles at 1080p can take minutes; the timeout is raised to 3600 s for renders, but prefereeveewhile iterating.blender_capture_viewportrasterises the current workspace, so it needs a 3D viewport on screen. Switch to Layout, or usemode="camera".blender_new_file/blender_open_blendrebuild the bpy context; if one of them is interrupted the addon may need a manual restart.Add-ons that change the evaluation pipeline (Geometry Nodes generators) can behave differently, since they own their own logic.
License
MIT — see LICENSE.
Available Tools
122 toolsblender_add_cameraC
Add a camera. lens in millimetres (50 = normal, 24 = wide, 85 = portrait)
or fov_degrees as an alternative. Usually also pass point_at so it is
actually aimed at something.
| Name | Required | Description | Default |
|---|---|---|---|
| lens | No | ||
| name | No | Camera | |
| active | No | ||
| location | No | ||
| point_at | No | Object name or 'x,y,z' the camera should look at. | |
| rotation | No | ||
| collection | No | ||
| fov_degrees | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only show readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so they do little to characterize behavior. The description confirms adding a camera but does not disclose side effects like object creation in the scene, active status changes, or what happens when location/rotation are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, no filler, and the core purpose is front-loaded. The lens/fov clarification and point_at tip are directly relevant and each 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?
With nine parameters, no output schema, and no substantive behavioral or return-value information, the description is not complete enough for an agent to confidently handle edge cases. It supports a basic add-camera call, but many parameters and the tool's result format remain unexplained.
Complex tools with many parameters or behaviors need more documentation. 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 only 22%, so the description must compensate for the many undocumented parameters. It adds useful meaning for lens (units and examples) and fov_degrees (alternative to lens), but leaves location, rotation, collection, active, and name without meaningful elaboration, and point_at is only lightly reinforced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Add a camera', a clear verb+resource statement that leaves little doubt what the tool does. It does not explicitly distinguish itself from camera-related siblings like blender_set_active_camera or blender_look_at, but its wording and camera-specific parameters are distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over alternatives such as blender_set_active_camera, blender_look_at, or blender_add_light. The only usage hint is 'Usually also pass point_at so it is actually aimed at something', which advises on parameter usage rather than tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_add_lightC
Add a light. Typical energies: SUN 2-5, AREA 100-1000 W, POINT 50-500 W,
SPOT 100-1000 W. size softens shadows on AREA/POINT lights.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| size | No | ||
| type | No | POINT, SUN, SPOT or AREA. | AREA |
| color | No | RGB 0-1 | |
| energy | No | ||
| size_y | No | ||
| location | No | ||
| point_at | No | ||
| rotation | No | ||
| collection | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the description is not required to restate those. However, it adds no new behavioral context, such as side effects (e.g., creating a new object in the scene, affecting the active collection) or limitations. The description focuses on parameter values, not on what happens when the tool executes, leaving behavioral expectations to inference.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the core action 'Add a light' and immediately followed by practical parameter guidance. Every word earns its place; no filler or redundancy. This is exemplary conciseness for a tool with many parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters and only 27% schema coverage, the description is far from complete. It does not explain how to specify position, orientation, or collection membership, nor does it mention the effect of the operation on the scene. There is no output schema to clarify return values, so the description bears the full burden of context, which it fails to meet.
Complex tools with many parameters or behaviors need more documentation. 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 only 27%, the description must compensate for undocumented parameters. It does provide meaningful semantics for 'energy' (typical values per type) and 'size' (softens shadows on AREA/POINT), which go beyond the schema's bare field names. However, it leaves most other parameters (name, location, rotation, collection, etc.) without any explanation, so the compensation is partial and not comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'light', which unambiguously identifies the tool's function. It distinguishes from siblings like blender_add_camera by naming the resource, though it does not explicitly contrast with alternatives. The typical energy ranges add useful specificity without diluting the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It offers parameter tuning suggestions (energy values, size effect) but does not state the intended scenario, prerequisites, or cases where a different tool like blender_set_context or blender_add_camera would be more appropriate. This is a clear gap for a tool with many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_add_modifierA
Add a modifier to an object. Non-destructive: use blender_apply_modifier or leave it in place for a live, tweakable result.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | Yes | Modifier id, e.g. BEVEL, SUBSURF, ARRAY, SOLIDIFY, MIRROR, DISPLACE, SIMPLE_DEFORM, SHRINKWRAP, WIREFRAME, NODES. | |
| flags | No | Boolean switches such as {'show_viewport': false, 'show_render': true}. | |
| object | Yes | ||
| properties | No | Modifier properties such as {'width': 0.05, 'segments': 3}. Unknown keys are skipped. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation not read-only and not destructive; the description builds on this by clarifying that the modifier remains live and tweakable unless the apply sibling is used. This adds practical behavioral context beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences front-load the core action and add the key non-destructive distinction without wasted words. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderate-complexity mutation with no output schema, the description plus schema gives an agent enough to select and call the tool: required object/type, optional flags/properties, and guidance on whether to apply. It does not describe return values, but the absence of an output schema is partially offset by clear purpose and sibling routing.
Complex tools with many parameters or behaviors need more documentation. 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 67%: type, flags, properties, and response_format are documented in the schema, while name and object lack descriptions. The tool description itself adds no parameter-level meaning, but the two required parameters are largely self-explanatory and the schema covers the rest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('Add a modifier to an object') and immediately distinguishes itself by labeling the operation non-destructive and naming blender_apply_modifier as the permanent counterpart. An agent can separate it from the apply-modifier sibling without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: adding is non-destructive, and the caller can either use blender_apply_modifier to flatten the result or leave it in place for a live, tweakable result. It names the alternative but does not explicitly enumerate when not to use this tool; the guidance is clear rather than fully prescriptive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_add_primitiveA
Add a mesh primitive to the scene and return its full description.
Example: a smooth torus at the origin ->
type='torus', parameters={'major_radius': 1, 'minor_radius': 0.25, 'major_segments': 48, 'minor_segments': 16}, shade_smooth=True
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | No | cube, uv_sphere, ico_sphere, cylinder, cone, plane, circle, grid, torus or monkey. | cube |
| scale | No | [x, y, z] | |
| location | No | [x, y, z] | |
| material | No | ||
| rotation | No | [x, y, z] in DEGREES | |
| collection | No | ||
| parameters | No | Operator specifics, e.g. {'major_radius': 1, 'major_segments': 48} for a torus. | |
| shade_smooth | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false/unspecific, so the description carries the behavioral burden. It discloses that the tool creates in the scene and returns a full description, and the example illustrates response-affecting options like shade_smooth. It does not clarify selection effects, naming defaults, or the exact shape of the returned description, but there is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One main sentence plus a compact, relevant example. The core action and return behavior are front-loaded, and every phrase in the example earns its place by clarifying real usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 primitive-adding tool: the example and schema defaults cover the main call pattern. But with 10 optional parameters, no output schema, and no explicit return-shape description, an agent still has to infer how materials, collections, and response_format interact, so the description is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The example adds real meaning beyond the schema by showing how type, parameters, and shade_smooth combine for a torus, and it introduces primitive-specific parameter keys (major_radius, minor_radius, segments). With 60% schema coverage, this usefully compensates for schema gaps, although not every parameter is illustrated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete action ('Add') and resource ('mesh primitive to the scene'), and adds that it returns a full description. It is not a tautology and is distinguishable from generic siblings, though it does not explicitly differentiate from blender_create_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?
The action itself implies when to use it (when a mesh primitive is needed), and the torus example provides a concrete invocation pattern. However, it gives no explicit guidance about when not to use it or which sibling to prefer (e.g., blender_create_mesh for custom meshes).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_analyze_meshARead-onlyIdempotent
Deep statistics for one mesh.
Beyond face counts: manifold/boundary/wire edge census, whether the shell is closed, signed volume, surface area, min/max/zero-area faces, loose verts and edges, duplicate vertices within 1e-5, UV layers, vertex groups, shape keys and the modifier stack. Use it to decide between fixing a mesh and regenerating it.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | Name of the mesh object to analyse. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description reinforces the safe read-only nature and adds specific behavioral scope: it enumerates exactly what is analyzed, including edge census, shell closure, signed volume, duplicate-vertex precision (1e-5), and modifier stack. This is useful context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well front-loaded with a strong summary, followed by a compact list of statistics and a decision-oriented closing sentence. It is slightly dense but each clause carries meaning and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 read-only analysis tool with no output schema, the description gives a thorough inventory of what the report covers and a stated use case. It does not mention units, failure behavior for non-mesh objects, or exact result structure, but the enumerated statistics and response_format parameter provide enough for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented in the input schema. The description adds the notion of 'one mesh' but does not materially expand on the object parameter or the response_format parameter beyond what the schema provides. 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 opens with 'Deep statistics for one mesh' and makes explicit it goes beyond face counts to include topology, volume, area, UV layers, vertex groups, and more. The verb 'analyze' plus a specific resource and clear scope make it plain what the tool does and why an agent would choose it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a concrete decision use-case: 'Use it to decide between fixing a mesh and regenerating it.' This gives the agent context for when to invoke it, though it does not name alternative sibling tools like blender_measure, blender_validate, or blender_find_problems or explicitly say when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_animation_infoARead-onlyIdempotent
Report the frame range, all actions, and which objects are animated.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds what the report contains (frame range, actions, animated objects) but does not disclose return structure, formatting details, or whether it applies to the current scene/context, which is useful but not critical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence of about 12 words with no filler. Each phrase contributes distinct information: frame range, actions, and animated objects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, optional-parameter info tool with read-only annotations, the description covers the core output categories. It does not specify the exact JSON/markdown return shape, but the response_format parameter and the simplicity of the tool make this a minor gap rather than a blocking one.
Complex tools with many parameters or behaviors need more documentation. 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, response_format, is fully documented in the schema with an enum and a description, giving 100% schema coverage. The tool description adds no parameter-specific meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Report') and names concrete resources: frame range, all actions, and animated objects. This clearly distinguishes it from siblings like blender_set_frame, blender_list_objects, and blender_insert_keyframe, which cover different aspects of animation and scene state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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—whenever animation state information is needed—but it gives no explicit context, exclusions, or alternatives. It does not say 'use this instead of X' or describe when another sibling would be more appropriate, so usage guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_append_node_groupB
Append shader or geometry node groups from another .blend file, so you can reuse an existing shader library instead of rebuilding graphs by hand.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| names | No | Only append these node group names. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
| assign_to_material | No | Material whose existing group node should use the first one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral details beyond what annotations already state. It doesn't mention side effects on the current scene, potential overwrites, or the effect of the 'names' parameter when omitted. With readOnlyHint=false and destructiveHint=false, some mutating behavior is implied, but the description adds no specific behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that leads with the action and resource, and succinctly states the 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?
The description covers the core operation but leaves out important context such as how the append integrates with the current scene, what happens when 'names' is null (append all?), and whether the operation is additive or can conflict with existing node groups. Given the mutating nature and the lack of an output schema, more detail would help an agent execute correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents names, response_format, and assign_to_material with descriptions. The description adds value by implying the 'path' parameter refers to a .blend file, which is not stated in the schema. However, it doesn't elaborate on the interaction between parameters, such as how 'assign_to_material' works. Overall, it provides marginal 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?
The description clearly states the action (append), the resource (shader or geometry node groups), and the source (another .blend file). It also gives the purpose (reuse existing shader library). It doesn't explicitly contrast with sibling tools like import_asset, but the specificity of 'node groups' and 'from another .blend file' makes the intent clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a general use case ('reuse an existing shader library instead of rebuilding graphs by hand'), but it doesn't compare with alternative tools or specify when not to use it. It implies a scenario but lacks explicit guidance on choosing this over sibling asset tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_apply_modifierB
Bake a modifier's result into the mesh, making it permanent.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| modifier | No | Modifier name, or 'all' to apply repeatedly. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context by noting the result is 'permanent,' which goes beyond the annotations' bare mutation flags. However, it does not disclose that the modifier itself is removed, that undo may be needed for recovery, or what happens if the object has no matching modifier. No direct contradiction with annotations is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler: 'Bake a modifier's result into the mesh, making it permanent.' It front-loads the action and immediately conveys the key consequence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and a required object parameter, the description is too thin. It omits how to identify the object, how modifier selection interacts with the stack, and what errors or results the agent should expect. The agent must already understand Blender's apply-modifier semantics to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the 'modifier' and 'response_format' parameters, but the required 'object' parameter is undocumented in both the schema and the description. The description does not clarify what object identifier should be provided or how the default modifier value behaves beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Bake' and 'making it permanent' to clearly identify the operation as applying a modifier's result to the mesh. It states the verb, resource, and outcome, though it does not explicitly distinguish itself from sibling tools like blender_add_modifier or blender_apply_transform.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to apply a modifier versus using alternatives such as blender_run_operator or blender_apply_transform. The description implies finalizing a modifier, but it does not state when this tool should be preferred or what prerequisites apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_apply_transformA
Bake transforms into mesh data. Use this before exporting or when a modifier must see real geometry rather than an object transform.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| objects | Yes | ||
| location | No | ||
| rotation | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries the burden of behavioral disclosure. It clearly states that transforms are baked into mesh data, which implies a mutation of mesh data. It does not mention that the object's transform is reset to identity after baking, nor any prerequisites (e.g., objects must have mesh data). While the core behavior is clear, additional side effects are not disclosed, so a 4 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero fluff. The primary action is front-loaded, and the usage context is immediately clear. Every word 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 tool with 5 parameters, no output schema, and no annotation guidance, the description is quite brief. It covers purpose and usage but omits important details such as whether the operation is reversible, what happens to the object transform after baking, and whether it applies only to mesh objects. An agent might call it incorrectly (e.g., on a non-mesh object) without knowing the constraints.
Complex tools with many parameters or behaviors need more documentation. 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 only 20% (only response_format has a description). The tool description does not explain any parameters – it does not clarify what 'objects' refers to, nor the meaning of scale, location, or rotation booleans. While parameter names are self-explanatory to Blender users, the description adds no value beyond the schema, and with low coverage it fails 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 states a specific verb and resource: 'Bake transforms into mesh data' – this clearly distinguishes it from siblings like blender_set_transform (which sets object transforms) and blender_apply_modifier (which applies modifiers). It also names concrete use cases, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'before exporting' or 'when a modifier must see real geometry rather than an object transform'. This gives clear conditions and implies that other tools might be used otherwise. It effectively routes an agent to the right operation without needing to compare with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_assign_materialA
Assign an existing material to objects, replacing their current slots.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | Yes | ||
| material | Yes | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the replacement behavior, which goes beyond the annotation flags. However, it doesn't clarify whether all material slots are replaced or just the active one, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, efficient, front-loaded with action and effect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool, it lacks mention of error handling or prerequisites (e.g., material existence). The core action is clear, but it doesn't cover edge cases or return behavior. 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?
Only response_format has schema description; objects and material lack descriptions. The description implies their roles but doesn't specify identifier formats or required naming conventions. Given low schema coverage (33%), more compensation is expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('assign'), resource ('existing material to objects'), and the effect ('replacing their current slots'). It clearly distinguishes from material creation and listing 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?
Clear context: you assign an existing material. However, it doesn't explicitly mention alternatives like blender_create_material for new materials, nor any exclusions, so it lacks explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_assign_to_collectionA
Add objects to an collection that already exists in the scene.
Use blender_create_collection first if the collection is missing. Objects stay linked to their other collections, so this adds a reference rather than moving them.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | Yes | ||
| collection | Yes | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is not read-only, not idempotent, and not destructive. The description adds context by stating that objects remain linked to other collections, clarifying that the operation is additive and non-destructive. It also warns that the collection must already exist, which is not conveyed by the annotations. This goes beyond the structured data without contradicting 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 concise—two sentences—with the primary action front-loaded. It immediately states what the tool does, then adds a prerequisite and a behavioral clarification. There is no redundant or 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?
For a simple operation with two required parameters, the description covers the core action, the prerequisite (collection must exist), and the non-destructive behavior. It doesn't mention error handling or return format, but the response_format parameter has its own description and the tool is straightforward. The guidance to create the collection first implicitly covers the main failure mode, making it adequately 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 only 33% (response_format has a description; objects and collection do not). The description implicitly maps 'objects' to the list of objects and 'collection' to the target collection, but it does not provide explicit format details (e.g., object names, identifiers) or edge cases. Given the low schema coverage, the description partially compensates by stating the purpose but lacks explicit parameter-level explanations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action: 'Add objects to an collection that already exists in the scene.' It specifies the resource (objects) and destination (collection), and further clarifies the semantic (adds a reference, not moving). This is specific and distinguishes it from other collection-related operations like creating a 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 explicitly directs the agent to use blender_create_collection first if the collection is missing, providing a clear condition for using an alternative. It also explains the behavioral difference (adds a reference rather than moving), which helps decide between this and a potential move operation. While it doesn't enumerate all alternatives, the guidance is sufficient for the primary scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_auto_light_sceneA
Build a complete lighting rig aimed at the subject.
Framing is derived from the target objects' bounds, so the lights land at a sensible distance instead of at a hard-coded guess.
| Name | Required | Description | Default |
|---|---|---|---|
| apply | No | ||
| style | No | Lighting setup to build. | three_point |
| objects | No | Objects the lights should frame. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a mutating, non-destructive operation. The description adds that framing is derived from object bounds, which meaningfully informs how lights are positioned. It doesn't disclose whether existing lights are cleared, but destructiveHint=false mitigates that concern.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the main action, and the second sentence adds a valuable detail about framing logic without any 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?
Covers the main behavior and framing rationale, but doesn't explain the 'apply' parameter semantics or behavior when 'objects' is null. Given 4 parameters and no output schema, some gaps remain for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 75% of parameters with descriptions (style, objects, response_format). The description adds no additional parameter semantics beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Build') with a clear resource ('complete lighting rig') aimed at 'the subject'. The framing detail adds specificity and distinguishes it from individual light-adding tools like blender_add_light.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 use for setting up scene lighting, but no explicit guidance on when to use this versus adding individual lights or other alternatives. No exclusions or conditions are provided, leaving the choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_auto_uvA
Unwrap meshes in one call and report the resulting UV coverage.
Picks a projection automatically when method is left at the default, so a
scene of mixed hard-surface and organic meshes does not need hand-picking
per object.
| Name | Required | Description | Default |
|---|---|---|---|
| margin | No | Island margin, 0..1. | |
| method | No | Projection method. | smart_project |
| objects | No | Target meshes; defaults to the active object. | |
| angle_limit_deg | No | Smart project angle limit. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
| scale_to_bounds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only negative annotations (not read-only, not idempotent, not destructive), the description adds useful context by explaining automatic projection selection and that the tool reports UV coverage. It does not, however, disclose whether existing UV layers are overwritten or what side effects the unwrap operation has on the mesh.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first sentence states the core purpose and output, and the second adds a practical rationale. Every sentence contributes useful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description captures the main purpose and a key default behavior, and the schema covers parameters well. However, with no output schema and sparse annotations, the agent would benefit from more detail on return values, prerequisites, or when to use a different UV-related tool. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high at 83%, so the baseline is 3. The description adds value beyond the schema by explaining the behavior of the default `method`: it automatically picks a projection rather than simply using smart_project. This gives practical meaning to one of the key parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Unwrap meshes in one call and report the resulting UV coverage.' This is distinct enough from broad names like blender_uv, though it does not explicitly name or distinguish sibling tools such as blender_fix_uv_mapping or blender_uv.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a usage context: automatic projection selection is useful for mixed hard-surface and organic meshes, avoiding hand-picking per object. However, it does not explicitly say when to prefer this tool over alternatives 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.
blender_auto_validateARead-onlyIdempotent
Audit a generated model end to end and, with apply_fixes, repair the
problems that have an unambiguous fix.
Built for the "I just generated this, is it usable" question: topology, UVs, materials, scale and naming in one pass.
| Name | Required | Description | Default |
|---|---|---|---|
| quick | No | Skip the expensive intersection pass. | |
| objects | No | Restrict the audit to these objects. | |
| apply_fixes | No | Fix what is safely fixable (topology, UVs, materials). | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, but the description states that it can 'repair' problems when apply_fixes=true. This contradicts the readOnlyHint, as fixing is a mutation. The description does not disclose potential side effects, irreversibility, or the need to save the file, which are critical for a write-capable tool. This is an annotation contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) while packing substantial information: the tool's purpose, optional fixing capability, and the problem domain it addresses. It is front-loaded with the core action and context, 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?
For a tool with no output schema, the description does not explain the structure of the audit report beyond the response_format parameter. It also omits key behavioral details: what happens when fixes are applied (e.g., whether the .blend file is saved), and the meaning of 'unambiguous' in practical terms. The complexity is moderate, so more explicit guidance on expected outcomes would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers all parameters with descriptions (100% coverage), including apply_fixes and quick. The description adds context by mentioning that fixes are applied to 'problems that have an unambiguous fix', which clarifies the scope of apply_fixes, but otherwise relies on the schema for parameter meaning. This meets the baseline for high 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 tool audits a generated model end-to-end and can optionally repair problems with unambiguous fixes. It lists the specific domains covered (topology, UVs, materials, scale, naming) and positions it for the 'is it usable' question, distinguishing it from generic validation or mesh analysis 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 explicitly frames when to use it ('I just generated this, is it usable'), which guides the agent to invoke it for end-to-end validation after generation. It does not explicitly exclude alternatives like blender_validate or blender_find_problems, but the focused scope of repairing unambiguous fixes and covering multiple aspects makes the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_bake_textureA
Bake a material's procedural node setup down to image files on disk.
Needs UVs and a node-based material. Cycles is the reliable bake engine; if the bake fails the result says so and why instead of raising.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | ||
| object | No | Mesh with the material to bake. | |
| target | No | Bake pass to render. | DIFFUSE |
| output_dir | No | Output directory. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It discloses that the operation writes image files to disk and that on failure the result says so and why instead of raising an exception. Since annotations only cover read-only/destructive hints, this added failure-behavior detail is valuable and goes beyond what the structured data provides.
Agents need to know what a tool does to the 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 carry the full message with no filler: purpose, prerequisites, engine recommendation, and failure behavior. The most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers prerequisites, engine choice, output, and failure behavior, which is sufficient for a moderately complex tool. Minor gaps remain around output_dir default behavior and file naming, but the core information an agent needs to select and invoke the tool correctly is present.
Complex tools with many parameters or behaviors need more documentation. 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 no parameter-level meaning beyond what the schema already provides. With schema description coverage at 80%, the baseline is 3; the description does not clarify ambiguous parameters such as 'size' or the behavior of an empty output_dir.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Bake a material's procedural node setup down to image files on disk.' This clearly distinguishes the tool from siblings like blender_render or blender_generate_texture by identifying both the input (procedural node setup) and the output (image files on disk).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 clear prerequisites ('Needs UVs and a node-based material') and recommends Cycles as the reliable engine, giving the agent useful context for when this tool is appropriate. It does not explicitly name alternatives or state when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_batchA
Run many bridge commands in a single round trip.
Each step is {"command": <addon command>, "params": {...}}. Results come
back per step, so one failure does not hide the steps that worked. This is
the fastest way to build a scene, because it collapses dozens of round trips
into one.
Command names are the addon's, not the tool names: add_primitive,
create_mesh, set_transform, assign_material, add_modifier,
validate, geometry, and so on.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | Yes | Ordered steps, each {'command': <name>, 'params': {...}}. Uses addon command names, e.g. 'add_primitive', 'set_transform', 'validate'. | |
| stop_on_error | No | Abort at the first failure instead of continuing. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations are all false and provide little behavioral signal, so the description carries the burden. It discloses key runtime behavior: results come back per step, one failure does not hide successful steps, and arbitrary addon commands are dispatched. This is genuinely useful beyond the schema, though it does not detail output shapes or side effects of individual commands.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place: definition, step format, result semantics, use-case justification, and the critical command-naming caveat. The layout is scannable and front-loads the most important information first, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and neutral annotations, the description gives an agent enough to invoke the tool sensibly: how to structure steps, what command namespace to use, and what to expect from failures. It could be more complete by listing the full set of accepted addon command names or the exact result envelope, but the examples and per-step behavior note are sufficient for a generic batch runner.
Complex tools with many parameters or behaviors need more documentation. 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 100%, so the baseline is 3. The description repeats and slightly clarifies the steps structure and the example command names, adding the useful note that command names are not the tool names. However, it does not materially expand on stop_on_error or response_format, which are already well documented 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 opens with a specific verb and resource: 'Run many bridge commands in a single round trip.' It clearly distinguishes itself from the many single-command sibling tools by emphasizing batching, and it reinforces this with concrete command-name examples. There is no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this when building a scene efficiently, because it collapses dozens of round trips into one. It also warns that command names are the addon's names, not the tool names, which prevents a likely misuse. It does not explicitly name individual alternatives or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_blend_contentsARead-onlyIdempotent
Inventory every datablock in the file by type, with user counts, orphans and which library each came from. The fastest way to see what a .blend actually contains before merging or cleaning it.
| Name | Required | Description | Default |
|---|---|---|---|
| types | No | Datablock types to include, e.g. ['meshes', 'materials']. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so safety is covered. The description adds valuable behavioral context by specifying the output contents (user counts, orphans, library info) that an agent would need to decide if this tool fits the task.
Agents need to know what a tool does to the 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 fluff, with the core action and output details front-loaded. The usage guidance is appended as a second sentence, keeping the structure 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 read-only inventory tool with optional parameters and no output schema, the description captures the essential purpose and the type of data returned. It could mention output format, but the response_format parameter already covers that, so it's sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% – both parameters are described in the schema (types and response_format). The description adds no extra nuance about parameters, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('inventory') and resource ('every datablock in the file') with specific details (user counts, orphans, library origin). It distinguishes itself from siblings like blender_list_libraries by focusing on datablock-level inventory rather than library-level 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 provides explicit context: 'before merging or cleaning it' – a clear when-to-use scenario. However, it does not name alternatives or explicitly state when not to use it, though the 'fastest way' phrasing implies preference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_build_shaderA
Build an arbitrary shader node graph from a declarative description.
This is the full-control path when a preset is not enough. Socket names are the real Blender ones, so anything from the manual works. Problems are reported per node rather than aborting, so one bad socket does not cost you the whole graph.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Material to build the graph into. | Shader |
| links | No | Connections as [from_id, from_socket, to_id, to_socket]. | |
| nodes | Yes | Node specs: {'id', 'type', 'location', 'inputs', 'properties'}. Type may be a friendly alias (noise, voronoi, ramp, bump, mix, mix_rgb, math, mapping, uv, image, fresnel, hsv, emission, add_shader, mix_shader, output). | |
| assign | No | Objects to assign to. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly=false etc.), the description discloses that socket names follow real Blender naming so manual knowledge transfers, and that graph construction is resilient—errors are reported per node rather than failing the whole graph. It does not cover all side effects, but the annotations already place the bar lower.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, each carrying information: purpose, use case, naming compatibility, and error behavior. No filler, 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 complex node-graph builder, the description covers purpose, when to use it, naming semantics, and failure behavior, while the schema covers all parameters. It does not specify return format or side effects on existing materials, but annotations and schema compensate 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 coverage is 100% and already documents the meaning of nodes, links, assign, and response_format. The description reinforces real Blender socket naming but does not add new parameter-level semantics beyond the schema, so 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 opening sentence uses a specific verb and resource ('Build an arbitrary shader node graph from a declarative description') and immediately frames it as the full-control path, distinguishing it from preset-based shader material tools among the 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?
It provides an explicit condition ('when a preset is not enough') and explains advantages (full control, real socket names, per-node error reporting), but it does not name the alternative preset tools or explicitly say when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_camera_focusB
Aim a camera at something and, optionally, frame it.
Saves a lot of blind iteration on 'why is my render empty'.
| Name | Required | Description | Default |
|---|---|---|---|
| camera | No | Camera name; defaults to the active camera. | |
| target | Yes | Object or empty to aim at. | |
| objects | No | Objects to frame when fitting the distance. | |
| fit_distance | No | Pull the camera back until the target fits the frame. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool alters camera aim and can pull the camera back to fit a target, which is relevant beyond the annotations. Annotations already signal read-only=false and destructive=false, so the mutation is not surprising, but the description does not mention side effects like selection/activation or undo behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in a short first sentence. The second sentence adds context about why the tool is useful, though 'a lot of blind iteration' is slightly informal and not strictly 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?
The schema covers all parameters and annotations provide safety hints, but the description lacks explicit alternative routing and does not state what the tool returns or what happens with the active camera. It is adequate for a simple tool, but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the input schema; the description itself adds little beyond saying framing is optional. It broadly matches fit_distance and objects but does not explain parameter interactions beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Aim a camera at something and, optionally, frame it.' This clearly conveys the core action, though it does not explicitly differentiate from sibling tools like blender_look_at or blender_camera_move.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'why is my render empty' note implies a use case: when a render is empty because the camera is not aimed/framed. However, it gives no explicit when-to-use vs. alternatives and does not mention when not to use it or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_camera_moveB
Animate the camera: a keyed orbit turntable, a follow constraint, or a two-point dolly.
The orbit mode is the quickest route to a review turntable around a model - keys and constraints both, so it renders deterministically.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Orbit turntable, follow constraint, or dolly move. | orbit |
| pivot | No | Rotation/dolly pivot. | |
| camera | No | Camera name; defaults to the active camera. | |
| frames | No | ||
| radius | No | Orbit radius; from the camera. | |
| target | No | For constraint, the object to follow. | |
| up_axis | No | UP_Y | |
| frame_end | No | ||
| full_turn | No | For orbit, a full 360 degrees or a sweep. | |
| constraint | No | For constraint. | TRACK_TO |
| track_axis | No | TRACK_NEGATIVE_Z | |
| frame_start | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the description is not contradicting them. The description adds useful behavioral context: orbit mode uses both keys and constraints so it renders deterministically, and it mentions that the orbit is a keyed turntable. However, it does not disclose side effects like whether existing camera animation is overwritten, whether constraints are permanently added, or whether the operation is destructive to prior keyframes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the main purpose and modes. The second sentence adds useful context about orbit being the quickest route and deterministic rendering. It is slightly terse given the tool's 13 parameters, but every sentence earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 13 parameters, no output schema, and no required parameters, the description is somewhat thin. It explains the three modes at a high level but does not clarify how parameters like pivot, radius, target, up_axis, track_axis, or frame ranges interact with each mode. An agent would likely need to open the schema and infer mode-specific parameter usage, which is a notable gap for a complex animation 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 62%, so the schema already documents many parameters. The description adds a little semantic context by grouping modes (orbit, constraint, dolly) and explaining that orbit is keyed and deterministic, but it does not explain the meaning of several parameters like up_axis, track_axis, frame_start/frame_end, or response_format beyond their schema descriptions. It partially compensates for the 38% gap but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Animate the camera') and resource, and enumerates three distinct modes: orbit turntable, follow constraint, and two-point dolly. It distinguishes the orbit mode as the quickest route to a review turntable, which helps differentiate among the modes, though it doesn't explicitly contrast with sibling tools like blender_camera_focus or blender_look_at.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 ('quickest route to a review turntable around a model') and hints at mode selection, but it does not explicitly state when to use this tool versus alternatives like blender_camera_focus, blender_look_at, or blender_set_active_camera. There is no explicit when-not-to-use guidance or mention of prerequisites such as an existing camera or scene.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_capture_viewportB
Take a picture of what Blender is showing and return it as an image.
This is how you check your work - call it after a change and look at the result. 'viewport' is nearly instant, 'render' is the real deal.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'viewport' (fast offscreen 3D view), 'camera' (OpenGL through the scene camera), 'window' (whole Blender window) or 'render' (full render). | viewport |
| view | No | For mode='viewport': 'front', 'back', 'left', 'right', 'top', 'bottom', 'camera' or 'left'/'right' variants. | |
| width | No | ||
| height | No | ||
| output_path | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false, implying possible side effects, but the description doesn't elaborate on file writes or state changes. It adds useful performance context and clarifies the return type (image). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and minimal waste. The usage guidance is integrated efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description omits how the returned image is delivered (e.g., markdown vs json), how output_path interacts with the result, and doesn't position the tool against blender_render. With no output schema and partial parameter coverage, an agent faces significant 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 coverage is 50%, so the description should compensate for undocumented parameters. It merely reiterates the mode distinction already in the schema and provides no extra meaning for width, height, output_path, or response_format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Take a picture of what Blender is showing') and its role as a work-checking tool. It distinguishes internal modes (viewport vs render) but does not explicitly contrast with sibling tools like blender_render.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance ('call it after a change and look at the result') and mode-selection advice ('viewport is nearly instant, render is the real deal'). It does not mention alternatives or exclusions, 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.
blender_checkpointA
Push a named marker onto the undo stack so a later blender_undo returns here.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Name shown in Blender's undo history. | mcp checkpoint |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide generic mutating and non-destructive hints. The description adds concrete behavioral detail: it creates a named marker on the undo stack and establishes a coordination contract with `blender_undo`, which is more specific than the annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one well-structured sentence that front-loads the action and immediately explains its purpose, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple optional-parameter tool, the core contract is complete: what is pushed, how it is labeled, and how it is used later. A note about the return value would be nice but is not critical given the tool's 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 coverage is 100%, so both parameters are already documented. The description reinforces the role of the label by calling it a 'named marker,' but does not need to add more parameter 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 states a specific verb and resource: 'Push a named marker onto the undo stack.' It also names the exact consequence, allowing a later `blender_undo` to return to this point, which clearly separates it from the undo/redo siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended usage is clear: create a checkpoint before work, then call `blender_undo` to return. The description does not explicitly list alternatives or when not to use it, but the condition under which it is useful is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_connect_shaderC
Connect an output socket to an input socket inside a material.
| Name | Required | Description | Default |
|---|---|---|---|
| to_node | Yes | ||
| material | Yes | ||
| from_node | Yes | ||
| to_socket | Yes | ||
| from_socket | Yes | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a mutating, non-idempotent operation but do not explain what actually happens: whether existing connections are replaced, whether the material must already exist, or what side effects occur. The description adds only the direction of the connection and does not disclose behavioral traits beyond the implicit mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundant content. Every word contributes to 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 tool with five required identifier parameters and no output schema, this description is incomplete. It does not state what counts as a valid node/socket reference, whether the connection replaces or adds a link, or what a successful result looks like. An agent would likely need to infer too much to invoke it reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17%, so the description must compensate. It does clarify that 'from_node'/'from_socket' represent the output side and 'to_node'/'to_socket' represent the input side. However, it does not explain how nodes or sockets are identified or how the 'material' parameter is resolved, leaving significant ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Connect') and resource ('output socket to an input socket inside a material'), making the tool's core function clear. It does not explicitly differentiate from shader-related siblings like blender_set_shader_input or blender_build_shader, but the socket-connection action is distinct enough to infer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as blender_set_shader_input or blender_build_shader. The description implies it operates within an existing material's node tree, but gives no conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_create_animationA
Generate a procedural animation on the given objects.
Useful for previews and for checking that a rig actually moves something before spending time on a real animation.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Animation to generate. | spin |
| frames | No | ||
| objects | No | Objects to animate; defaults to the selection. | |
| start_frame | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is not read-only, not idempotent, and not destructive, so the mutation aspect is partially covered. The description adds context that the animation is procedural and intended for previews, but does not disclose what happens to existing animation data, whether keyframes are created, or what side effects occur beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The primary action is front-loaded, and the second sentence justifies when the tool is useful without redundant 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 gives enough context for basic selection: it is a procedural-animation generator for previewing rig motion. However, it omits what the generated output looks like, whether existing animation is replaced, and what qualifies as 'given objects' when combined with the objects parameter defaulting to selection. These gaps matter for a tool with no 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?
With schema description coverage at 60%, the description has some burden to clarify parameters, but it adds almost no parameter-specific meaning. The phrase 'given objects' echoes the objects parameter, but it does not explain the type enum values or the frames/start_frame semantics beyond what their names imply.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Generate a procedural animation on the given objects.' This clearly identifies the tool's function and scope. It hints at differentiation from 'real animation' workflows by mentioning previews and rig checking, though it does not explicitly name a sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit context for when to use the tool: 'Useful for previews and for checking that a rig actually moves something before spending time on a real animation.' This is clear usage guidance, but it does not state when not to use it or mention alternative sibling tools by name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_create_collectionB
Create a collection, optionally nested under parent and optionally
moving existing objects into it.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent | No | ||
| objects | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only, non-idempotent, non-destructive operation, so the description carries less burden. It does add one behavioral fact beyond annotations: the tool can optionally move existing objects into the new collection. However, it does not disclose what happens when a collection with the same name already exists, whether moving removes objects from their previous collections, or what failure modes 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 a single 18-word sentence with no filler. The core action comes first, and the optional modifiers follow naturally. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description is lean. It explains the essential parameters but omits observable outcomes: return value, duplicate-name behavior, parent existence expectations, and side effects on moved objects. Given the number of sibling collection-related tools, an agent would need to infer too much to use this confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, so the description must compensate; it partially does by clarifying `parent` means nesting and `objects` are existing objects to move into the collection. But `name` is left to its label, and behavior around invalid parent or object references is not described. The `response_format` parameter already has its own 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 states a clear verb ('Create') and resource ('a collection'), and adds two distinguishing behaviors: nesting under `parent` and moving existing objects into the collection. It is specific enough to be separated from `blender_assign_to_collection` by verb alone, though it does not explicitly name any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to choose this tool over alternatives. There is also nothing about prerequisites (e.g., whether the parent collection must already exist) or when a sibling like `blender_assign_to_collection` would be more appropriate. The only implied context is the purpose itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_create_materialC
Create a Principled BSDF material and optionally assign it to objects.
Example - a glowing red metal ->
name='NeonRed', base_color=[0.8, 0.02, 0.02, 1], metallic=0.9, roughness=0.25, emission_color=[1,0,0,1], emission_strength=5
| Name | Required | Description | Default |
|---|---|---|---|
| ior | No | ||
| name | Yes | ||
| metallic | No | ||
| assign_to | No | ||
| overwrite | No | ||
| roughness | No | ||
| base_color | No | RGBA, linear 0-1, e.g. [0.8, 0.1, 0.1, 1] | |
| emission_color | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
| emission_strength | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal that this is a mutating, non-idempotent operation, and the description neither contradicts them nor adds meaningful side-effect context. It does not explain what happens when a material with the same name exists, how 'overwrite' behaves, or whether assignment replaces existing material slots. The phrase 'optionally assign' is present but 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 purpose is front-loaded in a single clear sentence, and the example is compact and immediately usable. There is no filler or repeated schema information. The example earns its place by demonstrating realistic values and parameter relationships.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 10 parameters, no output schema, and only sparse annotations, a two-sentence description plus example is insufficient. Missing behavioral details such as overwrite semantics, return value, and relationship to sibling material-assignment tools leave an agent under-informed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, so the description carries extra responsibility. The example does add practical meaning for name, base_color, metallic, roughness, emission_color, and emission_strength by showing a coherent glowing-metal configuration. However, it leaves ior, overwrite, assign_to, and response_format unexplained beyond their schema 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 a specific verb and resource: 'Create a Principled BSDF material and optionally assign it to objects.' This is unambiguous and matches the tool name. However, it does not explicitly contrast with sibling tools like blender_assign_material or blender_set_material_node, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a concrete example but no guidance on when to use this tool versus alternatives. There are no mentions of exclusions, prerequisites, or why an agent should choose this over blender_assign_material or blender_generate_pbr_set. Usage context is only implied by the example.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_create_meshA
Create a mesh object from explicit vertex and face data.
faces entries are zero-based vertex index loops; a face with 3 indices
is a triangle, 4 a quad.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| faces | Yes | ||
| location | No | ||
| material | No | ||
| vertices | Yes | ||
| collection | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as non-readOnly and non-idempotent, and the description's 'Create' is consistent with that. However, the description adds no extra behavioral context such as scene placement, name-collision behavior, or whether the new object becomes active/selected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences plus a focused code block; every clause adds information, and the face-loop clarification is directly useful. There is no filler, repetition, or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the face indexing rule well but leaves the vertex coordinate convention implicit and does not describe scene placement or optional parameter behavior. Given 7 parameters and no output schema, the description is adequate for a simple create call but not fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description usefully clarifies the `faces` parameter, explaining zero-based vertex index loops and triangle/quad lengths. It does not explain the expected structure of `vertices` (e.g., [x, y, z] lists) or the semantics of `collection`, `material`, and `location`, and the schema itself only documents `response_format`, leaving most parameters without explanatory text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Create a mesh object') and qualifies it with 'from explicit vertex and face data,' which clearly distinguishes it from primitive/operator-based mesh creation siblings like blender_add_primitive. It identifies exactly what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'from explicit vertex and face data' implies this is for custom geometry rather than primitives or editing, but the description does not name alternatives or state when not to use it. Usage context is present only by implication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_curvesA
Inspect and shape the F-curves of an object's action.
This is where animation gets its character rather than just its timing: interpolation and easing, handle types, noise and cyclic modifiers, retiming the whole curve, or scaling its values.
| Name | Required | Description | Default |
|---|---|---|---|
| op | Yes | What to do with the F-curves. | |
| easing | No | Easing for the non-Bezier modes. | AUTO |
| factor | No | For op='scale_values'. | |
| frames | No | For op='shift', frames to move by. | |
| object | Yes | ||
| modifier | No | For op='add_modifier': CYCLES, NOISE, GENERATOR, LIMITS, STEPPED, GENERATOR. | CYCLES |
| data_path | No | Restrict to one F-curve data path. | |
| properties | No | Modifier properties, e.g. {'mode_before': 'REPEAT'}. | |
| handle_type | No | For op='handles'. | AUTO_CLAMPED |
| interpolation | No | For op='interpolation'. | BEZIER |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as not read-only and not idempotent, and the description adds that it can add/remove modifiers, shift frames, and scale values, which conveys mutation. It does not, however, disclose side effects or prerequisites such as requiring an existing action, and it doesn't contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with the core purpose first; the second sentence is somewhat abstract but earns its place by listing the operation families. No redundant restatement of 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?
For an 11-parameter multi-operation tool with no output schema, the description is a useful overview but incomplete: it doesn't explain what each op returns, how to target a specific F-curve via data_path, or what object/action prerequisites exist. The schema fills many gaps, but an agent would still need to infer operational 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?
With 91% schema description coverage, the schema carries most parameter meaning. The description adds value by grouping capabilities (interpolation/easing, handles, modifiers, retiming, scaling) that map to op and related parameters, and by clarifying that object refers to an object's action, but it doesn't detail individual parameter syntax or interactions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and object: 'Inspect and shape the F-curves of an object's action.' This clearly identifies the resource and differentiates it from sibling tools that handle keyframes, NLA, or drivers. The second sentence reinforces scope by enumerating interpolation, easing, handles, modifiers, retiming, and value scaling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool's niche—'where animation gets its character rather than just its timing'—and lists concrete use cases. However, it never names alternatives or states when not to use this tool, so an agent must infer the boundary against the many sibling animation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_delete_objectsADestructive
Permanently delete objects from the .blend file. This cannot be undone from the MCP server - save first if the scene matters.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | Yes | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states that deletion is permanent and cannot be undone from the MCP server, going beyond the destructiveHint annotation by emphasizing irreversibility and advising a save step. This adds valuable context that the annotation alone does not convey.
Agents need to know what a tool does to the 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 fluff, and the critical warning is front-loaded. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward deletion tool, the description covers the essential caution (irreversibility and save advice). It does not describe return values or side effects beyond deletion, but for this simple operation it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no information about the parameters. Schema coverage is only 50% (only response_format has a description), and the description does not compensate for the undocumented 'objects' array. An agent is left to infer what the objects parameter expects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('delete'), resource ('objects from the .blend file'), and permanence, making the purpose unambiguous. It does not explicitly name alternative tools, but among siblings it is the only delete operation, so it is easily distinguishable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a critical usage warning ('save first if the scene matters') but does not specify when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. The context is implicit from the name and description, but explicit routing to other tools is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_diagnoseARead-onlyIdempotent
Quick health check on the project: missing camera, unpacked textures, orphan datablocks, missing linked libraries, meshes without materials, or Blender running headless.
Cheaper than a full validate when you just want to know what is wrong.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description need not restate safety. It adds useful behavioral context by listing the exact categories checked and noting cost relative to full validation, though it does not describe the output/return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, purposeful sentences: the first front-loads the purpose with a tight list of checks, and the second gives a cost/usage comparison. No filler 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 simple read-only health-check tool with one optional, fully documented parameter, the description is nearly complete. It covers what is checked and when to use it, but it does not explicitly describe the result format (list of issues, pass/fail summary) beyond what the response_format schema already hints at.
Complex tools with many parameters or behaviors need more documentation. 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, response_format, is already fully documented in the input schema with enum values and descriptions (markdown for readable output, json for raw structured data). The description adds no additional parameter-level meaning, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific diagnostic purpose ('Quick health check on the project') and enumerates the concrete issue categories it detects (missing camera, unpacked textures, orphan datablocks, etc.). It also contrasts itself with a 'full validate', which differentiates it from the heavier validation sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells the agent when this tool is appropriate: when you just want to know what is wrong, and that it is cheaper than a full validate. This gives a clear selection rule versus the validate/check siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_downloadA
Fetch a URL to a local file and report its size and SHA-256.
Only http and https are allowed, the download is size-capped, and nothing
downloaded is ever executed. Combine with blender_import_asset to pull a
model straight onto the scene.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| sha256 | No | Expected checksum; the call fails on mismatch. | |
| timeout | No | ||
| filename | No | Save as; defaults to the URL basename. | |
| directory | No | Subfolder under ~/BlenderMCP_Assets. | downloads |
| max_bytes | No | Size cap in bytes; default 256 MB. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false. The description adds valuable behavioral context beyond annotations: it explicitly states the download is size-capped, only http/https are allowed, and nothing downloaded is ever executed. It also mentions the tool reports size and SHA-256, which is a behavioral outcome. This goes beyond what annotations alone convey, though it doesn't detail failure modes or side effects like file overwriting.
Agents need to know what a tool does to the world before calling 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 with zero waste. The core action is front-loaded in the first sentence, safety constraints follow, and the workflow suggestion is last. Every sentence earns its place, and the structure is 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?
For a tool with 7 parameters and no output schema, the description covers the essential context: what it does, safety constraints, and how it fits with a sibling tool. It doesn't explain return values in detail, but the description already states it reports size and SHA-256, which is sufficient for an agent to know what to expect. The main gap is not describing what happens on checksum mismatch or file overwrite behavior, but the schema's sha256 description covers the mismatch case.
Complex tools with many parameters or behaviors need more documentation. 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 71%, so the schema already documents most parameters. The description adds context that the download is size-capped and reports SHA-256, which maps to max_bytes and sha256 parameters. It also clarifies the tool's role in a pipeline (combine with blender_import_asset), which helps an agent understand why parameters like directory and filename matter. However, it doesn't add detail on timeout or response_format beyond what the schema provides, so a 4 is appropriate rather than 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 states a specific verb and resource: 'Fetch a URL to a local file and report its size and SHA-256.' It clearly distinguishes this from sibling tools like blender_import_asset by noting it only downloads and does not execute, and it explicitly suggests combining with blender_import_asset for a full workflow. This makes the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use this tool ('Combine with blender_import_asset to pull a model straight onto the scene') and what it is not for ('nothing downloaded is ever executed'). It also states constraints (only http/https, size-capped) that guide safe usage. This is strong guidance for an agent deciding between download and import tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_download_animationsB
Search downloadable animation sources and list what is available.
Pass apply_to to import and attach the result in the same call.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | What to look for, e.g. 'walk' or 'idle'. | |
| source | No | Animation source id. | mixamo |
| apply_to | No | Objects to attach the animation to. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations by explaining that passing `apply_to` will import and attach the result in the same call, which is useful side-effect information. It does not clarify network/download behavior, what happens on failure, or whether search alone is side-effect-free, but the annotations already indicate non-read-only, non-destructive, open-world behavior, so the added context earns a baseline-3 score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences and wastes no words. The primary search/list purpose is front-loaded, and the optional attachment behavior is presented as a separate, clearly conditional second sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a search/list tool with annotations and good schema coverage, but it lacks some important context: it does not describe the return structure, clarify whether calling without `apply_to` truly avoids all scene changes, or explain the relationship between 'search,' 'download,' and 'import.' These are meaningful gaps for a tool that can perform side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so the input schema already documents most parameters. The description adds a small amount of value by explaining the behaviorally important `apply_to` parameter, but does not add meaning for `query`, `source`, `limit`, or `response_format` beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb and resource: 'Search downloadable animation sources and list what is available.' It also discloses the optional import/attach behavior via `apply_to`. However, the name suggests 'download' while the description emphasizes 'search/list,' leaving some ambiguity about whether assets are actually downloaded; it also does not explicitly distinguish this from sibling tools like blender_download or blender_download_textures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as blender_download_textures, blender_download, or blender_create_animation. The only usage direction is 'Pass apply_to to import and attach the result in the same call,' which is parameter behavior rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_download_texturesA
Search a free PBR texture library and download matching maps.
Pass apply_to to wire the result onto objects in the same call.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | What to look for, e.g. 'rust' or 'concrete'. | |
| library | No | Asset library id. | ambientcg |
| apply_to | No | Objects to apply the downloaded texture to. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations say readOnlyHint=false and destructiveHint=false, and the description doesn't contradict them; it explains the side effect of wiring results onto objects via apply_to. However, it doesn't disclose other behavioral traits such as file downloads, material creation, network dependence, or licensing/rate limits, which are material to such a tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, all informative; the core action is front-loaded and the apply_to tip earns its place. 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?
The description explains the core search-and-download function and the apply_to option, which is enough for a rough call. But with no output schema, it omits return/response behavior (markdown vs json) and doesn't clarify what 'download' produces (files, materials, nodes), leaving gaps for an agent deciding on parameters and handling results.
Complex tools with many parameters or behaviors need more documentation. 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 80% schema coverage, the schema already documents query, library, apply_to, and response_format. The description adds only the 'wire the result onto objects' nuance for apply_to, and nothing about limit or library/default behavior, so it adds minimal 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?
States a specific action: search a free PBR texture library and download matching maps. It clearly identifies the resource (PBR texture library) and outcome (downloaded maps), and also notes the apply_to behavior. However, it doesn't explicitly contrast with sibling tools like blender_generate_texture or blender_load_image_texture, so an agent must infer its niche from 'free' and 'download'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear implied scenario (wanting real-world PBR textures from a free library) and includes a targeted instruction for apply_to. But it never names alternatives or states when not to use it (e.g., when you need procedural generation or existing images), so routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_driversA
Add, list or remove drivers with real typed variables and expressions.
Useful for procedural motion that should not be baked: spin a wheel from the frame counter, bob something with a sine, or link a value to a custom property.
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | What to do with drivers. | add |
| type | No | Driver type for op='add'. | SCRIPTED |
| index | No | Array index. | |
| object | No | ||
| data_path | No | location | |
| variables | No | Driver variables: {'name', 'type', 'id_type', 'object', 'target'}. Defaults to a single 'frame' property. | |
| expression | No | Python expression for op='add', e.g. 'frame * 0.1' or 'sin(frame/10)'. | frame * 0.1 |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutation tool (readOnlyHint=false, destructiveHint=false). The description adds the purpose and a feature ('real typed variables') but does not disclose side effects, prerequisites (e.g., active object), or whether existing drivers are overwritten. No contradiction with annotations, but the added behavioral context 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 two concise sentences with no filler. It leads with the main action and then provides illustrative examples, maximizing informativeness per word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 is clear on purpose and use cases, it lacks detail on several important aspects: the meaning of 'object' and 'data_path', the return format of 'list', and how to structure variables. With 8 parameters and no output schema, the description is not fully complete, though it provides a reasonable starting point.
Complex tools with many parameters or behaviors need more documentation. 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 75%, so most parameters are documented in the schema. The description adds meaning to 'variables' and 'expression' ('real typed variables and expressions') but does not clarify 'object' or 'data_path', which are undocumented in the schema. Since it does not fully compensate for the two missing descriptions, a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb–resource pair ('Add, list or remove drivers') and emphasizes 'real typed variables and expressions', which distinguishes it from sibling keyframe/animation tools. It also gives concrete examples (spin a wheel, bob with a sine), making the purpose immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 stating it's 'useful for procedural motion that should not be baked', implying when to prefer it over keyframes. However, it does not explicitly name alternatives or give 'when not to use' conditions, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_duplicate_objectsB
Duplicate objects together with their mesh data (an independent copy).
| Name | Required | Description | Default |
|---|---|---|---|
| objects | Yes | ||
| collection | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is not read-only, not idempotent, and not destructive, so the safety profile is covered. The description adds the behavioral detail that the copy is 'independent', meaning changes to the copy will not affect the original, which is useful context. However, it does not disclose whether new objects are created in the scene, how collection assignment works, or any side effects. Given annotations, a 3 is appropriate—it adds some value but not extensive behavior disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that immediately states the action and key nuance. It is front-loaded, avoids filler, and every word contributes to understanding. Length is appropriate for the tool's simplicity—no unnecessary detail 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 relatively simple tool with three parameters and no output schema, the description is minimally adequate. It explains the core function but omits details like where duplicates are placed, how the collection parameter influences the operation, and what the response will contain. Given the low parameter coverage and absence of output schema, the description feels incomplete for an agent that needs to invoke it correctly without further inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only response_format has a description), and the tool description does not elaborate on any parameter. The description 'Duplicate objects' implies that the 'objects' parameter is the list to duplicate, but 'collection' remains completely unexplained—its role in placing duplicates is unknown. With low schema coverage, the description should compensate but does not, leaving key parameters under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Duplicate') and resource ('objects'), and adds a key detail ('together with their mesh data (an independent copy)') that clarifies the scope and behavior. It clearly distinguishes from sibling tools like delete, rename, or join, which are semantically different. No ambiguity about what action is performed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives, such as when a simple duplicate is needed versus using blender_run_operator or scripting. There are no conditions, prerequisites, or exclusions. The intended usage must be inferred from the action itself, which is insufficient for an agent deciding between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_edit_meshA
Edit mesh topology: extrude, bevel, inset, subdivide, dissolve, delete, merge, recalculate normals and more.
Operates on the current edit-mode selection inside the object unless
region='all'. Vertex/edge/face counts before and after are returned.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | One of: extrude_faces, extrude_edges, extrude_verts, bevel, inset, inset_individual, subdivide, poke, triangulate, dissolve_edges, dissolve_faces, dissolve_verts, recalc_normals, flip_normals, symmetrize, connect, split_edges, spin, bridge, holes_fill, contextual_create, remove_doubles, delete, delete_verts, delete_edges, delete_faces, merge_verts, collapse, select_all, select_none, select_invert, set_shade_smooth, set_shade_flat. | |
| region | No | 'selected' (default) or 'all'. | selected |
| objects | No | ||
| distance | No | ||
| parameters | No | Action specific arguments, e.g. {'offset': 0.05, 'segments': 3} for bevel. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a mutating, non-idempotent, non-destructive operation. The description adds valuable behavioral details beyond annotations: the selection scope (unless region='all') and the return of vertex/edge/face counts before and after. This clarifies side effects and expected 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 two sentences, front-loaded with the core purpose and a concrete list of actions. Every sentence earns its place, with no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (many actions, open-ended parameters, no output schema), the description covers the core purpose and selection scope but lacks per-action parameter guidance. It mentions return counts but does not detail all parameter semantics. The schema provides partial coverage, so overall it is adequate 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 67%, so the description does not need to fully compensate. It adds meaning to the region parameter (selection scope) and hints at the action list, but objects, distance, and parameters are not elaborated. The description offers modest added 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: editing mesh topology with a list of specific operations (extrude, bevel, inset, subdivide, etc.). It names the resource (mesh) and the action, making it unambiguous and distinguishing it from creation or generic operator 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 provides context on when it operates ('current edit-mode selection inside the object unless region='all'') but does not explicitly mention when to use this tool instead of alternatives like blender_create_mesh or blender_run_operator. The usage is implied rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_execute_pythonARead-onlyIdempotent
Execute arbitrary Python inside Blender and return stdout, the expression value, or the traceback.
This is the general escape hatch: use it for anything the dedicated tools do not cover (node graphs, drivers, custom rigging, numpy-style math, bmesh work). Available names: bpy, bmesh, math, mathutils (Vector/Euler/Matrix/ Quaternion), json, os, sys, random, time, view3d (a context manager that injects a 3D viewport area so bpy.ops viewport calls work).
Example:
python import bmesh bm = bmesh.new() bmesh.ops.create_cube(bm, size=2) me = bpy.data.meshes.new("C") bm.to_mesh(me) ob = bpy.data.objects.new("C", me) bpy.context.scene.collection.objects.link(ob) Result(ob.name)
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Python source. A single expression returns its value; statements run as a script. Runs on Blender's main thread. | |
| capture_output | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, but the description says 'Execute arbitrary Python inside Blender' and demonstrates code that creates an object via bmesh and bpy. Arbitrary Python can mutate state, so the description contradicts the annotations and presents a false safety model to the 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 front-loads the core purpose, then gives usage context, available names, and one instructive example. No sentence is filler; the example earns its place by showing a complete object-creation and result-return pattern.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 complex arbitrary-code tool with no output schema, it covers return variants, imports, and the view3d context, which is good. However, it fails to counter the misleading read-only/non-destructive annotations by warning that executed Python may modify Blender scene state, leaving the operational picture incomplete and unsafe.
Complex tools with many parameters or behaviors need more documentation. 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 coverage at 67%, the description adds meaningful semantics mainly for the `code` parameter: available namespaces, the `Result(...)` pattern, and a full bmesh example. `capture_output` and `response_format` are already documented in the schema, so the added parameter guidance is solid but not exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Execute arbitrary Python inside Blender' and a clear return contract ('stdout, the expression value, or the traceback'). It also labels itself 'the general escape hatch' for areas dedicated tools do not cover, which separates it from the many specialized 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?
It explicitly states when to use: 'use it for anything the dedicated tools do not cover' and provides concrete use cases such as node graphs, drivers, custom rigging, numpy-style math, and bmesh work. This strongly implies the inverse—prefer dedicated tools when one applies—without needing further elaboration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_export_assetA
Export the scene or a named set of objects to a model file.
Sensible defaults per format: fbx applies scale and bakes modifiers with materials embedded, glTF applies modifiers and exports textures, obj keeps normals and UVs. The call fails if the exporter reports success but no file appears, rather than claiming a lie.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| format | No | FBX, OBJ, GLTF, GLB, USD, STL or ALEMBIC. Inferred from the extension when omitted. | |
| objects | No | Export only these; default is the selection. | |
| export_options | No | Exporter options passed straight through, e.g. {'draco_mesh_compression_enable': True} for glTF. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal a non-read-only, world-opening operation. The description adds valuable behavior beyond annotations: per-format processing details (fbx bakes modifiers and embeds materials, glTF exports textures, obj preserves normals/UVs) and an explicit guarantee to fail rather than falsely report success when no file appears. It does not discuss file overwriting or permissions, but the bar is lower given annotations cover the safety profile.
Agents need to know what a tool does to the world before calling 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, each earning its place. Purpose is front-loaded, format defaults are compactly summarized, and the failure behavior is a single efficient sentence. There is no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with five parameters and a nested export_options object, the description covers the main purpose and format nuances but leaves gaps. It does not distinguish from the sibling blender_export_model, does not explain the required path parameter, and, with no output schema, does not describe what the response contains. These are meaningful omissions for a moderately complex 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 80%, so the baseline is 3. The description adds meaningful meaning for the format parameter by explaining what each exporter does by default, and it clarifies the objects parameter's scope. There is a slight mismatch where it says 'scene or a named set' while the schema says the default for objects is the selection, but overall it still 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 opens with a specific verb, 'Export,' and identifies both the resource (scene or a named set of objects) and the outcome (a model file). This clearly distinguishes it from import-oriented tools. However, it does not differentiate it from the closely named sibling blender_export_model, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when exporting a scene or selected objects to a model file, giving clear context. It offers format-level defaults that shape behavior, but it provides no explicit when-to-use/when-not-to-use guidance and never mentions alternatives such as blender_export_model.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_export_modelB
Export the scene to a model file: .glb, .gltf, .fbx, .obj, .stl, .ply, .usd, .abc or .blend.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| selection | No | 'selected_objects' or 'all'. | all |
| properties | No | Exporter options, e.g. {'export_format': 'GLB', 'use_selection': True}. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and openWorldHint=true, but the description adds no further behavioral context. It does not mention side effects like file overwriting, whether a scene must be loaded first, or what happens with existing files. The description only restates the obvious export action, adding minimal value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, wastes no words, and clearly enumerates supported formats. It is front-loaded with the core purpose and efficiently conveys exactly what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple export tool, the description covers the basic functionality and formats, but omits details on return values (no output schema), filename/extension handling, and overwrite behavior. It does not mention the response_format parameter, leaving some gaps in what an agent might need to know for successful 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 description does not elaborate on any parameters. Schema coverage is 75%, with the path parameter lacking a description. The tool description neither mentions how to specify formats nor selection, leaving agents to infer from parameter names and their property descriptions. It adds no semantic value over 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 'Export', the resource 'scene', and enumerates accepted output formats (.glb, .gltf, .fbx, .obj, .stl, .ply, .usd, .abc, .blend). This distinguishes it from the sibling import tool and other scene manipulation tools. It is specific and not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (export a scene when a model file is needed) but provides no explicit guidance on when to use this tool over alternatives like blender_import_model, nor any prerequisites such as requiring a selected object. It lacks any when-not or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_fetch_assetA
Download an asset from a library by id, and optionally use it.
An HDRI becomes the world lighting in one call, which is the fastest route to a believable render without any HDRI hunting.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| type | No | Asset category, must match the search. | hdris |
| library | No | polyhaven | |
| rotation | No | ||
| strength | No | ||
| resolution | No | 1k, 2k, 4k, 8k for HDRIs; 1k/2k/4k for textures. | 1k |
| set_as_world | No | For HDRIs, wire it into the world shader automatically. | |
| into_collection | No | For models, import into this collection. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds useful behavior by explaining that an HDRI becomes the world lighting and that the asset can be optionally used. It does not describe side effects for textures/models in detail, but the central behavior is disclosed and consistent with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with the core action stated first and the HDRI value proposition in a compact second paragraph. Every sentence earns its place, and there is no redundant repetition of the tool name or schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The HDRI path is well covered, but the description remains vague about textures and models: what 'use' means for those asset types, what the tool returns, and how it relates to searching or downloading. With 9 parameters and no output schema, additional context would be needed for an agent to invoke it correctly across all asset categories.
Complex tools with many parameters or behaviors need more documentation. 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 56%, so the description needs to add some param semantics. It reinforces the meaning of id and library and clarifies the HDRI/world-lighting behavior linked to type and set_as_world. However, parameters like rotation and strength have no description coverage in the schema and are also not explained in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Download an asset from a library by id') and clarifies that the asset may optionally be used afterward. It is clear, but it does not explicitly differentiate this tool from sibling tools such as blender_download or blender_import_asset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 HDRI sentence provides a concrete use case: fetching an HDRI and making it the world lighting in one call is the fastest route to a believable render. It gives clear context for when to use it, though it does not name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_filesystemARead-onlyIdempotent
List or search files, restricted to the user's home directory, Blender's script folders and the asset cache by default.
Pass allow_anywhere only when the user has actually asked for it.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Directory to list. Omit to see the allowed roots. | |
| limit | No | ||
| roots | No | Override the allowed roots for this call. | |
| pattern | No | Glob filter, e.g. '*.hdr'. | * |
| allow_anywhere | No | Drop the root restriction. Off by default on purpose: an agent that can read the whole disk is a liability. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=falseags. The description adds meaningful behavioral context about the default restricted roots and explains that allow_anywhere is off by default because an agent that can read the whole disk is a liability. This goes beyond what annotations alone communicate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences front-load the main action and scope, then deliver the critical usage warning. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list/search tool, the description covers the default roots coordinates, the key security caveat, and relies on the schema for path/pattern/roots handling. There is no output schema, so return format details are not specified, but response_format is available in the input schema, making this adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, so the schema already documents most parameters. The description adds value by naming the default allowed roots and reinforcing the caution around allow_anywhere, complementing the schema's existing parameter 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 ('List or search files') and the resource scope (home directory, Blender's script folders, asset cache). It is specific about what the tool does, though it does not explicitly differentiate it from sibling tools like blender_scripts_and_texts or blender_download.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 a clear operational context: restricted roots by default, and explicit guidance to pass allow_anywhere only when the user has actually asked for it. It doesn't compare this tool to alternative sibling tools, but the default behavior and caution are enough for selecting it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_find_problemsARead-onlyIdempotent
Like blender_validate, but only the failures, each with a concrete fix.
Use this when you want to act rather than read: it returns an actionable
list where every entry pairs a problem with the tool call that resolves it.
| Name | Required | Description | Default |
|---|---|---|---|
| ignore | No | Glob patterns to exclude. | |
| target | No | Real-world spec, same shape as blender_validate. | |
| objects | No | Object names. | |
| max_faces | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds behavioral context by explaining that the tool returns an 'actionable' list pairing problems with resolving tool calls, which goes beyond the annotations. It does not contradict the annotations, and it provides useful information about the output format.
Agents need to know what a tool does to the world before calling 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 with no waste. The opening comparison to blender_validate immediately orients the agent, and the usage guidance follows directly. Every sentence earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only validation tool with no output schema, the description explains the return format ('actionable' list pairing problems with fixes) and the usage context. It doesn't detail all parameters, but the schema covers 80% of them. The description is sufficient for an agent to know what to expect and how to use it, though it could mention edge cases like empty results.
Complex tools with many parameters or behaviors need more documentation. 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 80%, meaning most parameters have descriptions in the schema. The tool description itself adds little about parameters beyond the schema, mentioning the 'actionable' list but not parameter specifics. With high coverage, the schema handles most semantic burden, so a baseline of 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's function: it's like blender_validate but returns only failures, each with a concrete fix. It also frames the purpose as 'act rather than read', distinguishing it from the sibling validation tool. This gives an agent a precise understanding of what the tool does and how it differs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'Use this when you want to act rather than read', providing a clear usage condition. It contrasts with blender_validate, implying that blender_validate is for reading/understanding while this tool is for actionable fixes. However, it doesn't explicitly mention when not to use it, such as when a full validation report is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_fix_topologyB
Repair mesh problems: merge duplicate vertices, recalculate normals and delete loose geometry, reporting the before/after counts per object.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | Meshes to repair; defaults to the selection. | |
| remove_loose | No | ||
| weld_distance | No | Merge distance for duplicate vertices. | |
| recalc_normals | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare destructiveHint=false, but the description explicitly says the tool will 'delete loose geometry', which is a destructive modification. This is an annotation contradiction, and the description provides no safety caveats or side-effect disclosure beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that states the purpose, lists the concrete operations, and notes the output reporting. There is no filler or repeated information from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core operations and the before/after reporting, and the schema covers the selection default. However, it omits prerequisites, when to run the repair, and important safety context, especially given the deletion behavior and the absence of 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 description coverage is 60%, and the description helps map weld_distance to merging, recalc_normals to recalculating, and remove_loose to deleting loose geometry. However, it adds nothing meaningful about the 'objects' parameter or response_format, and does not specify units or thresholds for weld_distance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('repair'), the target resource ('mesh problems'), and the specific operations (merge duplicate vertices, recalculate normals, delete loose geometry), plus the reporting behavior. This distinguishes it from sibling tools like blender_fix_uv_mapping or blender_auto_validate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 a mesh has duplicate vertices, bad normals, or loose geometry. However, it gives no explicit guidance on when not to use it, no prerequisites, and no mention of alternative sibling tools, which is needed given the large set of Blender repair/validation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_fix_uv_mappingA
Repair stretched, overlapping or out-of-range UVs on existing meshes, then report what changed per object.
| Name | Required | Description | Default |
|---|---|---|---|
| margin | No | ||
| method | No | Repair method. | smart_project |
| objects | No | Target meshes; defaults to the active object. | |
| angle_limit_deg | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating, non-idempotent operation, so the description does not need to restate that. It adds value by noting that the tool reports what changed per object, but it does not disclose side effects like overwriting existing UV maps or how the repair interacts with materials/textures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The primary action and scope are front-loaded, and the reporting behavior is stated succinctly. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with five optional parameters and no output schema, the description communicates the core operation and the reporting behavior clearly. The schema covers object targeting and response format, so the agent has enough to call it correctly, though more detail about the repair methods and their effects 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 tool description adds no parameter-level detail beyond the schema. The schema itself documents objects and response_format reasonably, and method has a minimal description, but margin and angle_limit_deg rely on their self-explanatory names. With 60% schema coverage, the description does not need to compensate heavily, but it also contributes nothing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Repair'), a clear resource ('UVs on existing meshes'), and the exact problem scope ('stretched, overlapping or out-of-range'). It also promises a distinct outcome ('report what changed per object'), which clearly separates it from generic UV tools like blender_auto_uv or blender_uv.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 UVs are stretched, overlapping, or out-of-range on existing meshes. However, it does not explicitly state when not to use it or mention alternatives such as blender_auto_uv for creating fresh UVs, leaving some routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_generate_lodsA
Create decimated LOD copies of meshes and put them in a LOD collection.
Reports the original and generated face counts so the trade-off is visible instead of assumed.
| Name | Required | Description | Default |
|---|---|---|---|
| levels | No | Decimate ratios, e.g. [0.5, 0.25, 0.1]. | |
| suffix | No | Name suffix pattern; {level} is replaced. | _LOD{level} |
| objects | No | Meshes to duplicate into LODs. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide risk flags, so the description adds useful behavior: it creates copies, places them in a collection, and reports original versus generated face counts. This makes the non-destructive, reporting-oriented behavior visible, though it does not address behavior around existing LOD collections or default selection.
Agents need to know what a tool does to the 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 tight sentences: the first states the action and outcome, the second explains the value of the reports. There is no filler, and important 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?
The description gives a solid overview and mentions the face-count output, but with no output schema it leaves some ambiguity around what 'objects: null' means and how existing LOD collections are handled. It is adequate but not fully self-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 100%, so the baseline is 3. The description adds context around decimation and face-count reporting but does not add parameter-level guidance beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Create decimated LOD copies of meshes') and a concrete result ('put them in a LOD collection'). It is clearly distinguishable from siblings like blender_duplicate_objects or blender_add_modifier because decimation and LOD collection organization are unique to this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for generating LODs but gives no explicit guidance on when to use it over alternatives, no exclusions, and no conditions. An agent must infer the intended use case from the tool name and basic action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_generate_pbr_setA
Generate a matched BaseColor / Roughness / Metallic / Normal / AO set.
All five maps come from one height field and one seed, which is what makes
them read as a single material. BaseColor is written sRGB, the data maps
Non-Color. Pass material to connect everything to a Principled BSDF in
one step, including an AO multiply onto Base Color.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | File stem for the set. | |
| seed | No | ||
| size | No | ||
| color | No | Shadow colour as #rrggbb. | #808080 |
| scale | No | ||
| color2 | No | Highlight colour as #rrggbb. | #ffffff |
| octaves | No | ||
| pattern | No | fbm | |
| contrast | No | ||
| material | No | Existing material to wire the set into. Optional; when given, the maps are connected to its Principled BSDF. | |
| metallic | No | ||
| output_dir | No | Output directory. | |
| roughness_max | No | ||
| roughness_min | No | ||
| normal_strength | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only state readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds meaningful behavioral context: BaseColor is written sRGB while data maps are Non-Color, all maps come from one shared height field and seed, and passing `material` adds an AO multiply onto Base Color. It does not disclose file-output side effects or return behavior, but it goes well beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences with no filler. The first sentence states the core purpose, the second explains the generation consistency and color-space behavior, and the third gives the material-wiring option. Useful information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter tool with low schema coverage and no output schema, the description leaves important gaps. It never explicitly states that files are written to output_dir, what the response contains, or how the procedural parameters interact with the shared height field. It is sufficient for a default or simple invocation, but not for informed custom 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 only 38%, leaving most of the 16 parameters undocumented. The description adds some meaning for `seed` (all maps derive from one seed) and `material` (wires maps into a Principled BSDF with AO multiply), but it does not compensate for the many procedural parameters an agent would need to tune, such as scale, octaves, pattern, contrast, roughness range, metallic, or normal_strength.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with the specific verb 'Generate' and names five concrete map types: BaseColor, Roughness, Metallic, Normal, and AO. It further distinguishes the tool by explaining that all five maps derive from one height field and one seed, making them read as a single material. This clearly separates it from texture-generation siblings like blender_generate_texture or blender_bake_texture.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 frames when to use the tool: when a matched PBR set is needed, and it gives conditional guidance for the `material` parameter ('Pass material to connect everything...'). It does not explicitly name alternatives or state when not to use this tool, which keeps it one step below a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_generate_textureA
Generate a procedural texture and write it to a real PNG on disk.
Useful for plate text, hazard stripes, carbon weave, rust, brushed metal, leather grain and similar. The file is a normal image you can inspect, pack and ship - not a viewport-only effect.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Image datablock name and file stem. | |
| seed | No | ||
| size | No | Square resolution, 8..4096. | |
| text | No | Characters to stamp, used by pattern='plate'. | |
| scale | No | Feature count across the image. | |
| octaves | No | Detail layers for fbm-style patterns. | |
| pattern | Yes | One of: solid, noise, fbm, voronoi, checker, grid, stripes, gradient, radial, brushed_metal, rust, scratches, grunge, concrete, asphalt, wood, leather, carbon, hazard, plate. | |
| contrast | No | 1.0 neutral, higher is punchier. | |
| output_dir | No | Directory for the PNG. Defaults to ~/BlenderMCP_Textures. | |
| also_normal | No | Also write a derived normal map. | |
| output_path | No | Explicit PNG path; overrides output_dir. | |
| normal_strength | No | Normal map strength. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnly=false, idempotent=false, destructive=false. The description adds the key side effect: it writes a real PNG to disk and clarifies the result is a normal, inspectable, shippable file, not a viewport-only effect. It does not mention overwrite behavior or datablock creation, but it adds meaningful behavior beyond 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 two short paragraphs, front-loaded with the action and output. The 'useful for' list is relevant and the final sentence adds behavioral clarity without padding. 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?
For a 13-parameter tool with no output schema, the description plus rich schema covers the essentials: what it produces, where it writes, and that it is a real file. It does not describe the response payload, but the response_format parameter and schema descriptions fill most 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 92%, so the schema already documents nearly all parameters. The description adds a little color by naming example patterns that map to the pattern enum, but it does not explain parameter semantics beyond what the schema provides. 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 opens with a specific verb and resource: 'Generate a procedural texture and write it to a real PNG on disk.' It clearly distinguishes the tool from viewport-only effects and, combined with the listed use cases, makes the 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?
The description gives concrete use cases ('plate text, hazard stripes, carbon weave, rust, brushed metal, leather grain and similar'), which implies when to use the tool. However, it does not state when to prefer a sibling like blender_bake_texture or blender_generate_pbr_set, nor does it provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_geometryB
Geometry operations that do not fit the generic modifier tool.
Covers mirror, array, solidify, screw, spin, weld, normal fixes, triangulation, decimation, remeshing, wireframe, shrink/fatten and a batch bevel. Edit-mode operations restore object mode automatically, even if the operator raises.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | For mirror/spin. | X |
| clip | No | ||
| mode | No | For remesh: VOXEL, BLOCKS, SMOOTH, SHARP. | VOXEL |
| angle | No | For screw/spin, radians. | |
| count | No | For array. | |
| merge | No | ||
| ratio | No | For decimate, 0..1. | |
| steps | No | For screw/spin. | |
| value | No | ||
| width | No | ||
| bisect | No | ||
| offset | No | For array, constant offset. | |
| radius | No | ||
| objects | No | Target meshes. | |
| distance | No | For weld. | |
| segments | No | ||
| operation | Yes | Geometry operation to apply. | |
| thickness | No | ||
| voxel_size | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no safety hints (all false), so the description carries some burden. It adds one useful behavioral detail: 'Edit-mode operations restore object mode automatically, even if the operator raises,' which is helpful. However, it does not disclose side effects, error behavior, or other operational nuances, so the transparency is limited.
Agents need to know what a tool does to the world before calling 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 short paragraphs. It front-loads the purpose and lists operations efficiently. There is no wasted wording, though it could be more structured with explicit parameter mappings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 20 parameters and 14 distinct operations, the description is far too sparse. It does not explain return formats, error handling, how to select objects, or how to pair parameters with operations. Given no output schema and limited parameter documentation, the description is inadequate for an agent to reliably invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 20 parameters and 55% schema coverage, the description does not explain parameter usage at all. It merely lists operations, leaving the agent to guess which parameters apply to which operation. The schema provides some per-parameter hints, but many parameters (e.g., clip, merge, bisect, radius) lack context. The description fails to compensate for the schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'Geometry operations' and lists a comprehensive set of specific operations (mirror, array, solidify, etc.), distinguishing it from the 'generic modifier tool' and other sibling tools. It 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 notes these are operations 'that do not fit the generic modifier tool,' which gives an implicit usage boundary. However, it does not explicitly mention alternative tools or conditions for when to use this over them, such as blender_add_modifier or blender_edit_mesh. The guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_get_objectARead-onlyIdempotent
Get everything known about one object: transforms, hierarchy, materials, modifiers, constraints, mesh statistics, custom properties and world matrix.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the scope of what is returned (transforms, hierarchy, materials, etc.), which is useful behavioral context. However, it does not disclose details like whether the object must exist, what happens if the name is not found, or whether the world matrix is computed or stored. With annotations covering the safety profile, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence that front-loads the verb and resource, then enumerates the data categories. Every phrase earns its place, and there is no wasted wording or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only inspection tool with annotations covering safety and a clear list of returned data categories, the description is largely complete. The main gap is the lack of error behavior (e.g., what happens if the object name does not exist) and any note about performance or large scenes. However, given the tool's simplicity and the absence of an output schema, the description provides enough for an agent to select and invoke it correctly in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: the 'name' parameter has no description beyond its title, while 'response_format' has a description. The tool description does not add meaning to the 'name' parameter beyond implying it identifies the object. The 'response_format' parameter is already well-documented in the schema. The description compensates somewhat by listing what data is returned, but it does not clarify the format or constraints of the 'name' parameter (e.g., exact name vs. partial match).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a clear resource ('one object'), and enumerates the exact categories of data returned: transforms, hierarchy, materials, modifiers, constraints, mesh statistics, custom properties, and world matrix. This distinguishes it from sibling tools like blender_list_objects (which lists objects) and blender_get_scene (which gets scene-level data).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 is the tool to use when you need comprehensive object data, but it does not explicitly state when to use it versus alternatives like blender_list_objects, blender_get_scene, or blender_analyze_mesh. There is no explicit exclusion or alternative routing, though the scope ('one object') and the data categories 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.
blender_get_sceneARead-onlyIdempotent
Get an overview of the open scene: objects, collections, materials, meshes, images, render settings, frame range and the active object.
Args: detailed: Include per-object modifiers, constraints, light and camera data.
| Name | Required | Description | Default |
|---|---|---|---|
| detailed | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description's silence on side effects is acceptable. It adds useful context about the detailed flag expanding per-object data, but it does not disclose output size or latency implications of requesting detailed data. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences with a compact Args section and no filler. Every sentence earns its place: the first specifies scope and contents, the second explains the optional detailed flag.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only, zero-required-parameter tool, the description is adequate: it defines the return scope and the optional flag, while annotations cover safety. Without an output schema, it could have been more explicit about the exact structure of the returned overview, but the enumerated categories are enough for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds real meaning for 'detailed' ('Include per-object modifiers, constraints, light and camera data') beyond the schema's bare boolean. The response_format parameter is already fully described in the schema with its enum values, so combined schema+description coverage is strong.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Get') with a clearly scoped resource ('overview of the open scene') and enumerates the contents: objects, collections, materials, meshes, images, render settings, frame range, and active object. This distinguishes it from siblings like blender_get_object or blender_list_objects, which target narrower data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys a clear inspection use case but does not explicitly state when to prefer it over related tools such as blender_get_object or blender_set_render_settings. Usage is implied by the word 'overview' rather than explicitly routed, so an agent must infer when this is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_import_assetA
Import a 3D model from a URL or a local file, as separate editable objects.
Handles fbx, obj, gltf, glb, stl, ply, usd, usdz, abc, dae and blend. A URL is downloaded first, respecting the size cap. Everything arrives as ordinary objects you can then validate, modify and export.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Model URL to download first. | |
| path | No | Or a local file path. | |
| timeout | No | ||
| max_bytes | No | ||
| import_options | No | Importer-specific options passed straight through, e.g. {'global_scale': 0.01} for FBX or {'use_materials': True}. | |
| into_collection | No | Link the imported objects into this collection. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is non-read-only and non-destructive. The description adds meaningful behavior: URL downloads first, respects a size cap, and imports objects as editable ordinary objects. It also hints at the workflow (validate, modify, export). It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences front-load the purpose and key constraints (download first, size cap, editable objects) before listing formats. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters and nested options, the description covers the core purpose and some behavior but omits return format, error handling, and the fact that it operates on the current Blender scene (though that may be implicit for all blender_* tools). It also does not mention how into_collection affects the scene. Given the complexity, it 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?
Schema description coverage is 71%, so most parameters are already documented (url, path, import_options, into_collection, response_format). The description adds minimal value: it mentions URL vs path and the size cap (which relates to max_bytes), but does not explain timeout, max_bytes units, or import_options structure beyond what the schema provides. It does not compensate for the uncovered parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Import a 3D model') and resource ('from a URL or a local file'), and immediately adds that it produces 'separate editable objects' – a clear distinction from mere downloading or library fetch. It also enumerates supported formats, which distinguishes it from generic import tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus its siblings (e.g., blender_import_model, blender_download, blender_fetch_asset). It does not state conditions like 'use this for importing external files' or mention any alternatives. This leaves the agent to infer the right context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_import_modelB
Import a 3D model from disk: .glb/.gltf, .fbx, .obj, .stl, .ply, .usd, .abc, .dae or .blend. Returns the names of the objects that were created.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| collection | No | ||
| properties | No | Importer options, e.g. {'scale': 0.01} for FBX or {'import_pack_images': True} for glTF. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only and is not idempotent, and the description adds that importing creates objects and returns their names. However, it does not disclose whether objects are appended to the current scene, placed in a specific collection, or how failures such as missing files are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It front-loads the core purpose, lists formats compactly, and ends with the return behavior, making every word useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential import behavior and return value, which is enough for basic use. However, it omits the semantics of the 'collection' parameter, placement behavior in the scene, and guidance on using importer-specific properties, leaving meaningful gaps for an agent without 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 description coverage is 50%, and the description helps clarify the 'path' parameter by listing accepted formats. The schema itself covers 'properties' and 'response_format', but the 'collection' parameter remains unexplained in both the schema and description, so the description only partially compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Import a 3D model from disk', lists supported file formats, and states that the tool returns the names of created objects. It is clear and distinguishable from related tools like blender_export_model, though it does not explicitly name sibling alternatives to differentiate 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?
There is no guidance about when to use this tool versus alternatives such as blender_open_blend, especially since .blend files are included in the supported formats. The usage context is only implied by the tool name and description, not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_insert_keyframeA
Insert keyframes on the current or given frame.
Defaults to keyframing the location of the active object. data_paths lets
you key anything addressable, e.g. ['location', 'rotation_euler', 'data.energy'].
| Name | Required | Description | Default |
|---|---|---|---|
| frame | No | ||
| group | No | ||
| scale | No | ||
| objects | No | ||
| location | No | ||
| rotation | No | ||
| data_paths | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a mutating, non-idempotent operation. The description adds useful behavioral context by explaining the default target (active object's location) and the ability to key arbitrary data paths. It does not disclose the effect of the rotation, scale, objects, or group parameters, or what happens if conflicting flags are set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The core action is front-loaded, and the data_paths example is compact and useful. 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?
This is a complex tool with eight optional parameters, low schema coverage, and no output schema. The description covers the default behavior and data_paths, but lacks explanation of object targeting, group handling, the boolean toggles, and expected output or failure behavior. An agent would have to infer too much to use all features reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 13%, so the description needed to compensate. It does explain frame and data_paths with a concrete example, and notes the location default. However, it leaves group, scale, rotation, and objects mostly unexplained, even though these are meaningful parameters for keyframing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Insert keyframes on the current or given frame.' It clearly identifies the tool's function and distinguishes it from sibling tools like blender_set_frame or blender_animation_info. The added detail about defaulting to the active object's location further clarifies scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the main use case—inserting keyframes—and explains how to key custom data paths with data_paths. However, it does not explicitly state when to prefer this tool over alternatives such as blender_run_operator or blender_execute_python, nor does it mention when it should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_install_packageA
pip install a package into a project-local directory.
Packages go to their own directory, never into Blender's bundled
site-packages, so a bad dependency cannot break the application. Refused
without confirm=true.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Required: pip install downloads and executes code. | |
| no_deps | No | ||
| package | Yes | Requirement, e.g. 'scipy>=1.11'. | |
| timeout | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a mutating, non-idempotent operation. The description adds valuable behavioral context: it states that packages are installed into a project-local directory and never into bundled site-packages, and that the operation is refused without confirm=true. It does not disclose other side effects like network access or failure modes, but the confirmation requirement and isolation guarantee are meaningful beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loading the core purpose, then adding the isolation rationale and the confirmation requirement. Every sentence contributes information without redundancy. The structure is logical 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 tool has five parameters and no output schema, but the response_format parameter covers output expectations. The description covers the essential behavior: local installation, isolation, and confirmation requirement. It omits details like timeout semantics or error handling, but those are not critical for a basic call. For a package installation tool, this is reasonably complete, though 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 60%, with confirm, package, and response_format already described. The description adds a note about confirm being required, reinforcing the schema. However, no_deps and timeout lack descriptions in both the schema and description, and the description does not elaborate on them. It provides minimal added 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 opens with a specific verb and resource: 'pip install a package into a project-local directory.' It clearly distinguishes this from addon management or environment setup tools by focusing on pip packages and explicitly noting isolation from Blender's bundled site-packages. This is not a tautology and provides a clear 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 mention when to use this tool versus alternatives like blender_python_env or blender_manage_addon. It implies usage for pip packages but offers no explicit guidance on selection criteria, exclusions, or when another tool would be preferable. No sibling comparison or conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_join_objectsB
Join several mesh objects into the first one, merging their geometry.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | Yes | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only, not idempotent, and not destructive (according to the hints). The description adds little beyond the core action: it doesn't state that the source objects are removed or that the first object is permanently modified, nor does it mention any side effects or requirements. With annotations providing only basic flags, the description carries a heavier burden and 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?
A single, clear sentence that is front-loaded with the action and result. No wasted words, and the key information (joining into the first object) is immediately presented.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the tool is a mutation with side effects. The description does not mention what happens to the other objects, whether they are deleted, or how the operation is confirmed. It also doesn't specify error handling or requirements (e.g., all objects must be meshes). For an agent to call this correctly, it needs more context about the side effects and how objects are identified.
Complex tools with many parameters or behaviors need more documentation. 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 50% coverage; only 'response_format' has a description. The tool description implies that the first element of the 'objects' array is the target, which adds meaning beyond the bare parameter name. However, it doesn't specify that these are object names or how they are referenced, nor does it explain any constraints on the array (e.g., at least two objects). Thus it partially compensates for the schema gap but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Join'), a clear resource ('several mesh objects into the first one'), and the outcome ('merging their geometry'). This distinguishes it from sibling tools like delete, duplicate, or parent objects, and an agent can immediately grasp the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., objects must be meshes), what happens to the non-target objects, or any conditions for selection. The context is implied by the purpose but no alternatives or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_keyframe_channelA
Insert keyframes on any data path, including modifier levels and custom properties, optionally filling a whole frame range.
Broader than the original keyframe tool, which only handled the three standard transforms.
| Name | Required | Description | Default |
|---|---|---|---|
| step | No | ||
| frame | No | ||
| group | No | ||
| index | No | Array index; omit to key all components. | |
| object | Yes | ||
| data_path | No | 'location', 'rotation_euler', 'scale', or a full RNA path such as 'modifiers["Subsurf"].levels'. | location |
| frame_end | No | Fill keys from `frame` to here. | |
| keyframe_type | No | Keyframe type for Blender's animation types. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as a non-read-only, non-idempotent, non-destructive operation. The description adds meaningful behavior beyond that: it can target any RNA data path including modifiers and custom properties, and it can fill a whole frame range. This helps the agent predict scope and side effects without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The primary action is front-loaded, key capabilities are named immediately, and the comparison to the original tool is both useful and compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no output schema, the description gives enough high-level orientation for selection: it states the action, scope, and range-fill option. The remaining gaps, such as exact sibling tool name and return format, are minor because the schema and the strong first sentence cover most invocation needs.
Complex tools with many parameters or behaviors need more documentation. 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 only 56%, and the description only conceptually maps to data_path and frame_end. It reinforces that 'any data path' includes modifier levels and custom properties, and that frame ranges are supported, but it does not clarify step, group, index, or object semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Insert keyframes on any data path', and immediately expands the scope with concrete examples like modifier levels and custom properties. It also explicitly distinguishes itself from the original keyframe tool, which only handled the three standard transforms, so an agent can tell it apart from blender_insert_keyframe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The comparison to the original keyframe tool gives clear context: this tool is for broader data paths and frame-range filling, while the original was limited to standard transforms. It does not explicitly name the sibling tool or state a when-not-to-use condition, so it falls just short of fully explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_list_actionsARead-onlyIdempotent
List every action with its frame range, user count, slot names and how many objects use it.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the 'every action' scope and the output fields, but does not disclose output size, formatting behavior, or edge cases; the annotation coverage lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with no filler or redundancy. The core purpose is front-loaded, and each phrase contributes meaningful detail about what the tool returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with rich annotations and a fully documented optional parameter, the description adequately tells the agent what it will receive. It does not explicitly state the source scope (e.g., current .blend file) or sorting order, but these are minor and unlikely to prevent correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, response_format, is fully documented in the schema with a clear description of 'markdown' vs 'json' and a default value. The tool description adds no parameter-specific information, but none is needed because schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('actions') and enumerates the exact returned fields: frame range, user count, slot names, and object usage count. This clearly distinguishes it from write-oriented siblings like blender_manage_action and from other list 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 it should be used when an agent needs an inventory of actions and their metadata, but it gives no explicit when-to-use or when-not-to-use guidance. It does not point to alternatives such as blender_manage_action for modifying actions, so selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_list_addonsBRead-onlyIdempotent
List every available Blender add-on with its enabled state and version.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile with readOnlyHint=true and idempotentHint=true, so the behavioral burden is lowered. The description adds value by indicating the output includes enabled state and version, which is useful given there is no output schema, but it does not disclose any other behavioral traits such as performance, pagination, or error scenarios.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action and key output details. It contains no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one optional parameter and strong annotations, so much of the context is already present. However, the existence of the sibling blender_list_installed_addons creates ambiguity about what 'every available' means vs. 'installed', and the description does not clarify this distinction, which an agent needs for confident selection.
Complex tools with many parameters or behaviors need more documentation. 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 100%, and the single parameter response_format is fully described with an enum, a default, and a clear description. The description adds nothing about the parameter, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('every available Blender add-on') and states the key output fields ('enabled state and version'). It is clear about the tool's purpose, but it does not differentiate it from the sibling tool blender_list_installed_addons, which is likely to overlap in meaning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as blender_list_installed_addons or blender_manage_addon. No conditions, exclusions, or preferred scenarios are provided, leaving the agent to infer when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_list_imagesARead-onlyIdempotent
List every image datablock with size, source, colour space and packed state.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds value by specifying the output fields, which goes beyond what annotations provide. It doesn't contradict annotations and adds concrete expectations for the return 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?
A single sentence with no filler. The action and scope are front-loaded, and the specific fields are listed efficiently. It earns every word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with two optional parameters and no output schema, the description covers the essential information: what is listed and what fields are returned. The response_format parameter is documented in the schema, and limit is implied by its name/default. No critical missing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only response_format has a description; limit does not). The description does not mention or clarify either parameter. While limit is self-explanatory from its name and default, the description does not compensate for the missing schema description, nor does it add meaning beyond the schema. This is a notable gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List'), a specific resource ('image datablock'), and the exact fields returned (size, source, colour space, packed state). This clearly distinguishes it from sibling list tools like blender_list_objects or blender_list_materials, which target different datablock 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 implies usage: use when you need to inspect image datablocks. It clearly scopes to images, which is sufficient context for a simple list tool. It doesn't explicitly name alternatives or exclusions, but the resource specificity is clear enough for an agent to differentiate from other list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_list_installed_addonsARead-onlyIdempotent
List the add-ons Blender currently has enabled, with versions and the
module names needed by blender_manage_addon.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, lowering the bar. The description adds useful scope beyond annotations: it lists currently enabled add-ons, not all installed ones, and specifically includes versions and module names needed by blender_manage_addon.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that front-loads the verb and resource, then adds purposeful detail. Every phrase contributes: 'currently enabled', 'versions', and 'module names needed by blender_manage_addon'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 read-only list operation with one optional parameter, the description conveys the subject, scope, and returned fields. Annotations cover safety, and the output format is controlled by the documented response_format parameter, so the description is complete enough to 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?
Schema description coverage is 100%, and the only parameter, response_format, is fully documented with an enum and default. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List'), a specific resource ('add-ons Blender currently has enabled'), and the content ('versions and module names'). The phrase 'currently has enabled' differentiates this from merely installed add-ons and from the similarly named blender_list_addons.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 by noting the module names are needed by blender_manage_addon, but it never explicitly states when to prefer this over blender_list_addons or any other alternative. There are no exclusions or when-not-to-use conditions, leaving the guidance implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_list_librariesARead-onlyIdempotent
List the asset libraries available for search and download.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description's 'List' verb is consistent. The description adds that it lists only libraries available for search and download, which is useful scope context, but it does not disclose output shape or potential absence of libraries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It clearly states the action and scope 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 list tool with zero required parameters and safety annotations, the description is largely complete. It lacks explicit detail about the returned data format, but the absence of an output schema and the straightforward nature of listing libraries makes this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters, and the single parameter response_format is fully described in the schema. The description does not add additional parameter-level detail, but the baseline of 3 is appropriate given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a clear resource ('asset libraries'), and further specifies that these libraries are 'available for search and download.' This clearly distinguishes it from sibling tools like blender_search_library, blender_fetch_asset, or blender_download.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'available for search and download' implies that this tool is a precursor to searching or downloading assets, giving some usage context. However, it does not explicitly state when to use this tool versus alternatives or mention any exclusions, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_list_materialsARead-onlyIdempotent
List all materials. With detailed=True also returns the node types and
the current Principled BSDF input values of each material.
| Name | Required | Description | Default |
|---|---|---|---|
| detailed | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds meaningful behavioral detail about what detailed=True returns, including node types and current Principled BSDF input values, which goes beyond the schema and 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 two sentences with no wasted words. It front-loads the core action and then adds the conditional detail behavior, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool, the description covers the essential behavior: listing all materials and optionally returning detailed node and BSDF information. The absence of an output schema is partially mitigated by the description's mention of what detailed output includes, though the base return format is left 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?
Schema description coverage is 50%: response_format is already documented in the schema, while the 'detailed' parameter is undocumented there. The description compensates by explaining the effect of detailed=True, giving the parameter functional meaning beyond its bare boolean 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 states a specific verb and resource: 'List all materials.' It clearly distinguishes this from sibling tools like blender_list_images or blender_list_objects by naming the exact resource. The optional detailed mode is described, adding precision without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when the agent needs to enumerate materials, and when to set detailed=True if node types and Principled BSDF values are needed. It does not explicitly exclude alternatives, but the resource name and sibling context make the intended use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_list_objectsARead-onlyIdempotent
List objects in the scene with transforms, dimensions, materials and modifiers. Supports filtering and offset/limit pagination.
Args: collection: Only objects in this collection (includes children). type: Comma separated Blender types, e.g. 'MESH,LIGHT,CAMERA'. name_pattern: Regular expression matched against the object name. parent: A parent object name, or 'none' for top-level objects. detailed: Also include world matrix, shape keys and vertex groups.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| limit | No | ||
| offset | No | ||
| parent | No | ||
| detailed | No | ||
| collection | No | ||
| name_pattern | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, non-mutating operation. The description adds behavioral context about what data is returned (transforms, dimensions, materials, modifiers) and that pagination and filtering are supported. It does not contradict annotations and provides extra context beyond the structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured. It opens with a clear summary sentence, then lists parameters in a docstring style with brief explanations. There is no redundancy or fluff; 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 read-only list operation, the description covers the essential context: what it lists, supported filters, and pagination. It does not detail the exact output structure beyond listing fields, but since no output schema is provided, this is sufficient. It also mentions the 'detailed' option to include more data. The lack of error-handling notes or edge cases is minor given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is only 13%, so the description must compensate. It explains five of eight parameters (collection, type, name_pattern, parent, detailed) with concrete examples like 'MESH,LIGHT,CAMERA' for type. The remaining parameters (limit, offset, response_format) are either self-explanatory or already documented in the schema (response_format has a description). This is adequate but could be more exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List objects in the scene with transforms, dimensions, materials and modifiers.' This clearly distinguishes it from siblings like blender_get_object (which retrieves a single object) or blender_select_by (which selects rather than lists). The inclusion of supported features (filtering, pagination) further clarifies its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use it: whenever a scene-wide list of objects is needed. It does not explicitly mention alternatives or exclusions, but the scope is obvious from the verb and resource. It could be improved by noting that for a single object, blender_get_object is more appropriate, but the absence of that guidance is not a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_list_operatorsARead-onlyIdempotent
Discover the bpy.ops operators available in this Blender build, with their descriptions and (optionally) their exact property names, types, enum options and defaults.
Use this to find the right operator before calling blender_run_operator.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| category | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
| include_properties | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that results include operator descriptions and optionally exact property names, types, enums, and defaults, which hints at the returned information. It does not mention truncation via limit, filtering semantics, or response variations, but the annotations carry the main behavioral burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two efficient sentences: the first front-loads what the tool does and its optional depth, the second gives immediate usage guidance. There is no filler or redundant restatement of the tool name or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only discovery tool with annotations covering safety, the description is mostly adequate. However, with no output schema and 5 parameters at only 20% schema coverage, the agent is left without clarity on how query and category filter results, and whether the default limit of 100 could silently omit operators.
Complex tools with many parameters or behaviors need more documentation. 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 only 20%, and the description does not compensate for the undocumented parameters. It only clarifies the include_properties behavior ('optionally their exact property names'), while limit, query, and category semantics are left entirely to inference. An agent would not know how query matches, what categories exist, or how limit affects results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Discover') and names a concrete resource ('bpy.ops operators available in this Blender build'). It also differentiates itself from the main sibling by stating it is meant to be used before calling blender_run_operator. It does not explicitly differentiate from blender_search_api, but the purpose is still precise 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 gives clear context: 'Use this to find the right operator before calling blender_run_operator.' This tells an agent when in the workflow the tool belongs. It does not provide exclusions or compare against alternative lookup tools like blender_search_api, so it stops just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_list_packagesARead-onlyIdempotent
List the Python packages Blender's own interpreter can see, with sys.path and the project-local directory new packages go into.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is established. The description adds useful behavioral context beyond annotations by specifying that the tool reports sys.path and the project-local directory where new packages go, which helps the agent understand what the listing exposes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core action and resource, then appends the two useful output details. There is no wasted text or repetition of schema 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?
This is a low-complexity read-only list operation with one well-documented optional parameter and annotations covering behavior. The description explains what will be listed (visible packages, sys.path, project-local directory), which is sufficient given the absence of 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 description coverage is 100% for the single optional response_format parameter, which is fully documented in the schema. The description adds nothing about parameters, so the baseline of 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 uses a specific verb ('List') against a clearly defined resource ('Python packages Blender's own interpreter can see') and adds what the output includes (sys.path, project-local directory). It is easily distinguished from siblings like blender_install_package and blender_list_installed_addons because it targets packages visible to Blender's interpreter, not addons or installation 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 explicit guidance is given for when to use this tool versus alternatives such as blender_python_env, blender_list_installed_addons, or blender_install_package. The purpose is clear, but the agent is left to infer the appropriate selection context without any exclusions or routing hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_load_image_textureB
Load an image from disk (including .hdr/.exr) and plug it into a material as Base Color. Creates the material if you do not name one.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| material | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a mutating, non-idempotent operation, but the description adds useful behavior: it auto-creates a material if none is named and supports .hdr/.exr files. However, it omits other potential side effects, such as whether existing base color nodes are overwritten or how the image is registered in Blender. These gaps are significant given the tool's mutation nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with the primary action and key constraint front-loaded. It avoids fluff and wastes no words. However, it could be slightly more structured to add missing details without becoming verbose, so it is not a perfect 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with low schema coverage, no output schema, and no annotation details beyond high-level flags, the description leaves out critical context: what happens to an existing material, how the agent should interpret the response, and any prerequisites. The description is not sufficient for an agent to safely and correctly invoke the tool in all reasonable scenarios.
Complex tools with many parameters or behaviors need more documentation. 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 only 33% (only response_format has a description). The tool description offers only a minimal hint for the 'material' parameter ('if you do not name one') and implies 'path' is a disk file, but does not clarify path syntax (absolute/relative), file resolution, or the meaning of 'response_format'. Since the schema fails to describe most parameters, the description should compensate, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Load an image from disk') and the target ('plug it into a material as Base Color'), and specifies the file formats supported (.hdr/.exr). It also notes material auto-creation, which distinguishes it from related tools like blender_create_material or blender_assign_material. This makes the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when you need to set a base color from an image file) but does not explicitly contrast it with alternatives like blender_generate_texture or blender_set_material_node. No 'when not to use' or direct sibling comparisons are given, leaving some ambiguity for an agent deciding between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_look_atA
Aim any object along its local -Z axis at a target (its local +Y becomes 'up'). Works for cameras and spot lights.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| target | Yes | Object name or 'x,y,z' coordinates. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are present (readOnly=false, idempotent=false, destructive=false), and there is no contradiction with the description. The description adds genuine behavioral context by revealing the exact local-axis convention (-Z at target, +Y up), which is easy to get wrong. It stops short of explicitly stating that the object's rotation/transform is modified or what side effects may occur, though this is implied by 'Aim.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence conveys the operation, coordinate convention, and supported object types without filler. Key constraints appear early, and the parenthetical detail is kept minimal and relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity orientation tool with only three parameters, the description covers the operation, axis behavior, and supported use cases (cameras/spot lights). It does not describe return values, but response_format is already documented in the schema, and no output schema exists, making this a minor gap for a mutating 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 67%; target and response_format already have descriptions, while object has only its name. The description adds some meaning by indicating object can be 'any object' and by clarifying the target as the aim point. It does not explain how object/target are addressed beyond what the schema already states, so the added parameter value is modest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Aim any object along its local -Z axis at a target' and specifies the resulting up-axis (+Y), making the operation unmistakable. It also notes applicability to cameras and spot lights. It does not explicitly contrast with sibling transform tools like blender_set_transform or blender_apply_transform, so differentiation is implicit rather than named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Works for cameras and spot lights' gives a useful context cue about intended use cases, implying this tool is for aiming those object types. There is no explicit 'use this when...' guidance, no mention of alternatives, and no 'do not use when...' exclusions, so the agent must infer when this is the right tool among many orientation/transform siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_make_materialA
Create a physically sensible PBR material from a named preset.
Presets set the Principled BSDF correctly for the real substance - car paint
gets metallic plus a clear coat, glass gets transmission and IOR 1.52,
leather and fabric get high roughness, emissive presets get emission colour
and strength. Any socket can be overridden. Pass assign to put it on
objects in the same call.
| Name | Required | Description | Default |
|---|---|---|---|
| ior | No | Index of refraction override. | |
| coat | No | Clear coat weight, for car paint and lacquer. | |
| name | No | Material name. | Material |
| alpha | No | ||
| assign | No | Object names to assign the new material to. | |
| preset | No | Physical preset: plastic, matte, rubber, glass, frosted_glass, chrome, brushed_steel, gold, copper, aluminium, car_paint, car_paint_white, fabric, leather, wood, concrete, asphalt, ceramic, emissive, emissive_red, neon, toon, velvet, sponge. | matte |
| metallic | No | 0-1 override. | |
| roughness | No | 0-1 override. | |
| base_color | No | RGB 0-1 override. | |
| transmission | No | 0-1; 1 makes the surface glass-like. | |
| coat_roughness | No | 0-1. | |
| emission_color | No | RGB 0-1. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
| emission_strength | No | 0 and up. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral detail beyond the annotations by explaining what presets do concretely (car paint gets metallic plus clear coat, glass gets transmission and IOR 1.52, etc.) and how overrides/assignment work. Annotations already declare write/idempotency/safety hints, and the description is consistent with them.
Agents need to know what a tool does to the world before calling 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 with no filler: core action first, then concrete preset examples, then override and assignment behavior. 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?
For a 14-parameter creation tool with no output schema, the description covers the mode of operation, preset semantics, override mechanism, and assignment behavior, while the schema supplies parameter detail. It does not describe return values or name-collision behavior with existing materials, which keeps it just below a 5.
Complex tools with many parameters or behaviors need more documentation. 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 high at 93%, so the input schema already documents most parameters. The description adds a useful general rule ('Any socket can be overridden') and illustrative examples, but does not need to restate per-parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create') and resource ('physically sensible PBR material') and clarifies the mechanism ('from a named preset'). This differentiates it from sibling tools like blender_create_material or blender_build_shader, which do not promise preset-driven PBR correctness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use it when a named physical preset is desired, and mentions that any socket can be overridden and that `assign` handles object assignment in the same call. It does not explicitly name alternatives or exclusion criteria, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_manage_actionB
Create, assign, rename, copy or remove an action.
Handles Blender 4.4+ slotted actions, creating the slot up front so keys can be inserted immediately afterwards.
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | What to do. | create |
| action | No | Action name, or new name for rename. | |
| object | No | Object for create/assign. | |
| new_name | No | Name for rename/copy. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description includes 'remove' as an operation, which is destructive, but the annotations declare destructiveHint: false. This directly contradicts the structured metadata. The description also adds a useful behavioral detail about creating a slot up front, but the contradiction outweighs that positive. Per rubric, score 1 because the description contradicts annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the operation list, and a concise version-specific note. No fluff or redundancy. Every sentence adds value, and the structure is clear and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 operations and the version-specific behavior, and the schema documents all parameters. However, the contradiction about destructive behavior leaves an important gap: an agent might assume 'remove' is non-destructive. It also does not mention return values or error conditions, though these are not strictly required. Given the contradiction, the description is not fully reliable.
Complex tools with many parameters or behaviors need more documentation. 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 100%, so all parameters are already described in the input schema. The description adds little beyond listing operations, which maps to the 'op' enum but does not explain parameter semantics further. The baseline of 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Create, assign, rename, copy or remove an action.' It names the resource (actions) and the specific operations, making it distinct from the read-only sibling blender_list_actions. However, it does not explicitly differentiate from other management tools or state which tool to prefer for listing, so it is not a full 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a version-specific usage note: 'Handles Blender 4.4+ slotted actions, creating the slot up front so keys can be inserted immediately afterwards.' This gives context on when to use it (for 4.4+ slotted actions) but does not mention when not to use it or suggest alternatives like blender_list_actions for read-only queries. No explicit exclusions or trade-offs are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_manage_addonA
Enable, disable or install a Blender add-on.
Installing requires confirm=true because it runs third-party code inside
Blender. Only .zip archives are accepted, and the call is refused without
that flag so an agent cannot silently install anything.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | For install, a URL to a .zip. | |
| path | No | For install, a local .zip. | |
| addon | Yes | Add-on module name, e.g. io_scene_gltf2. | |
| action | No | What to do. | enable |
| enable | No | Enable right after installing. | |
| module | No | Module name to enable after install, if it differs from the file. | |
| confirm | No | Required for install: it executes third-party code. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries the full burden for behavioral disclosure. It explicitly warns that install runs third-party code, requires confirm, accepts only .zip, and refuses the call without the flag to prevent silent installs. This is critical safety information not present in the schema or annotations. It does not cover all side effects (e.g., disabling behavior), but the key risk is well-documented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, the first stating the core purpose and the second adding essential constraints. Every word earns its place; no redundancy or filler. Information is front-loaded, making it easy for an agent to quickly grasp the tool's function and key requirements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 8 parameters, an enum action, and a safety-critical confirm flag, this tool is moderately complex. The description, combined with thorough schema comments, covers the purpose, install constraints, and parameter meanings. It doesn't mention that url and path are alternative sources (agent can infer from 'For install'), nor does it describe return values, but no output schema exists and the core usage is well-covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing detailed comments for each parameter, so the baseline is 3. The description adds meaningful constraints beyond the schema: only .zip archives are accepted, confirm is mandatory for installs, and the call is refused without it. This clarifies the install flow and the relationship between url/path and confirm, enhancing the schema's documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the exact function: 'Enable, disable or install a Blender add-on.' This clearly names the verb and resource, distinguishing it from siblings like blender_list_addons which only list addons. The purpose is unambiguous and acts as a precise filter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: installing requires confirm=true and only .zip archives are accepted, with the call refused without the flag. It gives concrete usage conditions but does not explicitly mention alternative tools for listing addons or installing packages. However, the action enum and purpose make the appropriate scenario evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_material_reportARead-onlyIdempotent
List every material with its users, the objects using it, node count, linked images and blend settings.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description's 'List' wording aligns with these. The description adds output-field context but does not mention file requirements, truncation, or performance behavior; with read-only annotations, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence states the action, scope, and report fields with no filler. It is front-loaded and economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 plus schema cover the report fields and both parameters well enough for typical use. However, the 'every material' claim conflicts with the default limit, and the lack of output-schema details leaves room for ambiguity about the exact return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description says 'every material' while the schema's limit parameter defaults to 200 and has no description, so an agent may not realize the result can be truncated. It adds no meaning for limit or response_format beyond what the schema already provides for response_format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a clear resource ('every material') and enumerates the report fields: users, objects, node count, linked images, and blend settings. This distinguishes it from the bare blender_list_materials sibling and from shader/render reports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for material auditing when an agent needs usage and node/image details. However, it does not explicitly state when to prefer this over blender_list_materials or blender_shader_info, and it offers no alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_measureARead-onlyIdempotent
Measure real-world distances that are tedious to eyeball: a bounding box, the distance between two object centres, or the extent of a whole assembly.
| Name | Required | Description | Default |
|---|---|---|---|
| a | No | First object for mode='objects'. | |
| b | No | Second object for mode='objects'. | |
| mode | No | 'bbox' of one object, 'objects' centre-to-centre distance, 'assembly' extent of the whole scene. | bbox |
| object | No | Object name for mode='bbox'. | |
| objects | No | Restrict mode='assembly'. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context about measuring real-world distances and the three measurement styles, but it does not disclose behavioral details like units, scene-scale assumptions, or how 'assembly' extent is computed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence front-loads the core purpose, immediately follows with the key use cases, and contains no filler. Every part of the sentence earns its place, and the mode enumeration makes the description compact yet 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?
For a read-only measurement tool with no required parameters, six fully-described schema parameters, and a response_format parameter, the description plus schema gives an agent enough to invoke it correctly. It could have added what the returned measurement looks like, but given the annotations and complete schema coverage, this is a minor gap rather than a blocking omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are individually documented in the schema. The description adds high-level semantic framing—bounding box, object centres, assembly extent—that aligns with the mode enum, but it does not provide additional parameter-level detail beyond what the schema already offers. Baseline 3 is therefore 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 opens with a specific verb and resource—'Measure real-world distances'—and immediately enumerates the three supported measurements: bounding box, centre-to-centre distance, and assembly extent. This maps directly onto the 'mode' enum and makes the tool's purpose unmistakable even among many blender_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'distances that are tedious to eyeball' gives a clear context: use this when precise measurements are needed rather than visual estimation. The three listed measurement cases also clarify when each mode is relevant, though it does not explicitly name alternatives or say when not to use this tool versus other blender_* measurement/analysis siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_modifiersB
Inspect, mute, reorder, remove or apply modifiers across objects.
Modifier order changes results, and list shows the real evaluated stack
rather than guessing from the UI.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | Target position for action='move'. | |
| value | No | New state for action='mute'. | |
| action | Yes | What to do with modifiers. | |
| objects | No | Target objects. | |
| modifier | No | Modifier name, or 'all' for remove/apply. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the tool can 'remove or apply' modifiers, which are destructive actions, but the annotation declares destructiveHint=false. This is a direct contradiction. The additional note about order and real evaluated stack is useful, but the contradiction overrides it, warranting a score of 1 per the rules.
Agents need to know what a tool does to the world before calling 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 with no filler. The first sentence lists the actions and resource, and the second adds an important behavioral note. It is appropriately front-loaded with the core 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 the schema fully describes parameters and there is no output schema, the description is mostly adequate. However, the contradiction with the destructiveHint annotation creates an incomplete and potentially misleading picture. It also omits any guidance on parameter interactions (e.g., index for move, value for mute), though the schema covers these.
Complex tools with many parameters or behaviors need more documentation. 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 covers all 6 parameters with descriptions, including the enum values for action and response_format. The description adds no extra parameter-level meaning beyond the schema, so it meets the baseline of 3 for high 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 tool's purpose: managing modifiers with specific actions (inspect, mute, reorder, remove, apply) across objects. It identifies the resource (modifiers) and the operation (manage). It doesn't explicitly contrast with sibling tools like blender_apply_modifier, but the broad scope is 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 description provides a context hint that modifier order changes results and that `list` shows the real evaluated stack, which helps an agent understand when to use `list` for accurate state. However, it doesn't explicitly state when to use this tool over siblings like blender_add_modifier or blender_apply_modifier, 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.
blender_new_fileADestructive
Start a new empty scene, discarding everything currently open.
| Name | Required | Description | Default |
|---|---|---|---|
| empty | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with the destructiveHint annotation and adds useful context by specifying that everything currently open is discarded. It does not contradict annotations and provides a clearer picture of the destructive scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, front-loads the action, and states the critical consequence immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive reset tool, the description together with the destructiveHint annotation adequately conveys what happens. The response_format parameter is already described in the schema, so the description does not need to cover it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%, and the description does not explain the 'empty' boolean parameter beyond the word 'empty' in the tool name, nor does it add meaning for 'response_format'. The description leaves parameter semantics mostly to 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 ('Start') and resource ('new empty scene'), and explicitly states the destructive effect ('discarding everything currently open'). This clearly distinguishes it from sibling file/open/undo 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 intended use is implied: use this when you want to discard the current scene and begin fresh. However, it does not explicitly mention alternatives like blender_open_blend or blender_undo, or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_nlaA
Drive non-linear animation: push an action onto its own track so the active action stops driving the pose, then layer, blend and mute strips.
| Name | Required | Description | Default |
|---|---|---|---|
| op | Yes | What to do with non-linear animation. | |
| track | No | Track name. | |
| value | No | For op='mute'. | |
| action | No | For op='push', the action to push. | |
| object | Yes | ||
| frame_end | No | ||
| blend_type | No | How the strip blends with lower tracks. | REPLACE |
| frame_start | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With all annotation hints false (readOnlyHint, idempotentHint, destructiveHint), the description carries the behavioral disclosure burden. It does reveal the key effect ('active action stops driving the pose') and mentions layering/blending/muting, but it omits the 'remove' operation side effects, undo behavior, and whether tracks/strips are permanently altered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with the main workflow front-loaded. It is not verbose)Skip not penalized for brevity, but could have briefly enumerated the four ops to earn a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 9 parameters, 4 sub-operations, and no output schema, yet the description only covers a high-level workflow. It misses the 'list' and 'remove' operations, the response_format parameter, and any details about frames or track naming conventions. An agent would need additional context to correctly call all variants.
Complex tools with many parameters or behaviors need more documentation. 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 67%, so the schema handles most parameters. The description adds conceptual understanding of push/blend/mute but does not map to specific parameters or explain list/remove operations. It provides moderate 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 identifies the tool's domain ('non-linear animation') and specifies the core operation: pushing an action onto its own track so the active action stops driving the pose, plus layering, blending, and muting strips. This is specific enough to distinguish it from sibling animation 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 NLA workflows but never states when to prefer this tool over other animation tools (e.g., blender_create_animation, blender_keyframe_channel, blender_pose). No explicit exclusions or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_open_blendADestructive
Open a .blend file, discarding the current scene. Save first.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive, but the description adds valuable behavioral context: opening a file discards the current scene and users should save first. This goes beyond the annotation and tells the agent exactly what will be lost and what precaution to take.
Agents need to know what a tool does to the world before calling 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, front-loaded with the core purpose, and every word adds value. It communicates the action, the risk, and the mitigation in two sentences with 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, destructive open-file operation, the description covers the key behavior and the critical warning. It does not describe the return/response format, but annotations plus the response_format parameter already provide enough guidance for 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 required 'path' parameter has no schema description, and while the tool description implies it should be a .blend file path, it does not explicitly document that. The optional 'response_format' parameter is already well described in the schema, so the description adds only minimal meaning for the primary 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 opens with a specific verb and resource: 'Open a .blend file.' It also states the consequence ('discarding the current scene'), which clearly distinguishes this from related tools like blender_save_blend and blender_new_file. An agent knows exactly what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The instruction 'Save first' gives a clear precondition and warns about the destructive effect before calling. It provides useful context for when to use this tool, though it does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_pack_texturesA
Pack every loose image into the .blend so the file is self-contained.
Do this before handing a .blend to someone else or committing it.
| Name | Required | Description | Default |
|---|---|---|---|
| repack | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the core behavioral effect: loose images are packed into the .blend, making it self-contained. Since annotations only mark the tool as non-read-only, non-idempotent, and non-destructive, the description adds meaningful context about what actually happens.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The first sentence front-loads the action and outcome, and the second gives a concrete operational trigger. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool, the description covers the main purpose and usage context well. However, the undocumented 'repack' parameter is a meaningful gap, and there is no mention of what happens when the operation is run on a file that has no loose images or already packed textures.
Complex tools with many parameters or behaviors need more documentation. 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 only 50%, and the tool description adds no parameter guidance. The 'repack' boolean has no schema description and is not mentioned at all, leaving an agent to guess when or why it should be set. Only 'response_format' is documented 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 states a specific verb and resource: 'Pack every loose image into the .blend.' It also clarifies the intended outcome ('so the file is self-contained'), which clearly distinguishes it from sibling tools like blender_load_image_texture or blender_bake_texture.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 usage timing: 'Do this before handing a .blend to someone else or committing it.' It does not mention alternatives or when not to use it, but the context 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.
blender_paint_textureA
Paint directly into an image datablock and write it to disk.
For placing decals, number plates, liveries or wear masks without leaving Blender.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | How to paint. | fill |
| color | No | RGB 0-1 paint colour. | |
| image | No | Name of an existing image datablock to paint into. | |
| width | No | ||
| height | No | ||
| object | Yes | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations by explicitly saying 'write it to disk,' which is a significant side effect not captured by the annotations (readOnlyHint=false but no mention of persistence). However, it does not explain whether the tool creates a new image if the 'image' parameter is omitted, nor does it describe the output beyond the disk write. Annotations are not contradicted, but the description adds only modest 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 two sentences with no fluff. The primary action and purpose are front-loaded, followed by a brief context. Every word earns its place, and it is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (7 parameters, no output schema), the description covers the main goal and use case but omits details such as what the response contains (though response_format is a parameter), whether a new image is created if none is specified, and any prerequisites like UV mapping. These gaps mean an agent might have to infer or experiment to fully use 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 57%, with the key parameters (mode, color, image) already described in the schema. The tool description adds no additional parameter-level guidance, leaving width, height, and object undocumented. Since the description does not compensate for those gaps and the schema covers only part of the parameters, a core score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Paint directly into an image datablock and write it to disk') with a clear resource (image datablock) and purpose. It also lists concrete use cases (decals, number plates, liveries, wear masks) that distinguish it from sibling tools like blender_paint_vertex_colors or blender_generate_texture, making the tool's role unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 a clear context for when to use this tool: 'For placing decals, number plates, liveries or wear masks without leaving Blender.' This implies a specific scenario, but it does not explicitly mention alternatives or state when not to use it. Still, the use case is concrete and differentiating enough that an agent can select this tool appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_paint_vertex_colorsA
Write per-vertex colours as a gradient along an axis. Useful as a mask, for toon shading, or for baking masks into a vertex colour layer.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | Axis to ramp along. | Z |
| layer | No | Colour attribute name. | Col |
| object | Yes | ||
| color_a | No | Colour at the low end. | |
| color_b | No | Colour at the high end. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as non-read-only and non-destructive, and the description adds the core behavior of writing a per-vertex gradient. It does not disclose side effects such as whether an existing vertex colour layer is overwritten or created if missing, but the annotation coverage lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The action is front-loaded, and the use cases follow efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no output schema, the description covers purpose and use cases but omits behavior around existing layers and response details. Schema descriptions fill most parameter gaps, making it 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?
Schema description coverage is 83%, so the baseline is 3. The description adds no parameter-specific detail beyond what the schema already provides for axis, layer, color_a, color_b, and response_format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation ('Write per-vertex colours as a gradient along an axis') and resource (vertex colours), which clearly distinguishes it from texture painting or other painting tools. However, it does not explicitly name or differentiate from a sibling alternative, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Useful as a mask, for toon shading, or for baking masks into a vertex colour layer' gives concrete use cases and implies when to use the tool. It does not explicitly contrast with alternatives like blender_paint_texture or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_parent_objectsC
Parent one object to another (optionally keeping its world position).
| Name | Required | Description | Default |
|---|---|---|---|
| child | Yes | ||
| parent | Yes | ||
| keep_transform | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, providing no safety or behavioral signals. The description discloses one important behavioral aspect: the option to keep world position, which is a meaningful side effect. However, it does not mention whether the operation is reversible, what happens to the child's local transform, or potential errors (e.g., if the parent does not exist). With annotations neutral, the description carries the burden, and it only partially fulfills it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that is front-loaded with the action. It avoids redundancy and conveys the core purpose and a key option without fluff. It is concise but not so terse that it loses meaning, earning a high score for structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an operation that modifies scene hierarchy, the description is incomplete. It does not state that child and parent must be valid object names, nor does it describe the expected output (though response_format suggests some return value). It also lacks error handling details or how the operation affects transforms beyond the keep_transform option. Given the complexity of parenting and the absence of annotations and output schema, the description falls short of what an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (only response_format has a description). The tool description implicitly explains keep_transform via 'optionally keeping its world position', but does not clarify that child and parent are object names or how they should reference existing objects. With such low coverage, the description should compensate more but only addresses one parameter loosely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Parent one object to another') and the resource (objects), which is distinct from sibling transform tools like blender_set_transform or blender_apply_transform. However, it does not elaborate on what parenting entails (e.g., hierarchy change, transform inheritance), and the phrase 'optionally keeping its world position' hints at a key option but leaves the actual effect somewhat implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., objects must exist), nor conditions for preferring parenting over other transform operations. The agent is left to infer the appropriate context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_physicsB
Rigid bodies, cloth, soft bodies, collision and force fields.
Set up separate panels as independent rigid bodies, add collision to the
chassis, bake, and inspect. Rigid body constraints go through
blender_run_operator with bpy.ops.rigidbody.constraint_add.
| Name | Required | Description | Default |
|---|---|---|---|
| mass | No | Rigid body mass. | |
| name | No | Force field object name. | Field |
| type | No | 'ACTIVE'/'PASSIVE' for rigid_body, or a force field type such as FORCE, WIND, VORTEX, TURBULENCE. | ACTIVE |
| action | Yes | Physics operation. | |
| frames | No | Frames to bake. | |
| preset | No | Cloth preset, e.g. COTTON, DENIM, LEATHER, or a number of collision quality steps. | |
| objects | No | Target meshes. | |
| quality | No | ||
| location | No | Force field position. | |
| strength | No | Force field strength. | |
| substeps | No | ||
| time_scale | No | ||
| collision_shape | No | BOX, SPHERE, CAPSULE, CYLINDER, CONVEX_HULL, MESH, COMPOUND. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
| solver_iterations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, providing no safety profile. The description mentions setting up physics and baking but does not disclose side effects (e.g., whether existing physics settings are overwritten), prerequisites (e.g., object selection), or what 'bake' implies for the scene. With minimal annotation coverage, the description fails to carry the behavioral transparency burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a clear front-loaded scope statement and a single practical example. Every sentence adds value, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 15 parameters and no output schema, the description should provide more guidance on the typical flow, required inputs for each action, and expected results. It only gives one example scenario and a routing note, leaving much of the tool's behavior unexplained. The agent would need to rely heavily on the schema and trial-and-error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 73%, so most parameters have descriptions. The tool description adds little beyond the schema, only implicitly referencing action types. It doesn't explain how parameters like mass, strength, or frames interact, but the schema already does most of the work. 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 identifies the tool as handling physics simulation (rigid bodies, cloth, soft bodies, collision, force fields) and provides a concrete usage example (separate panels as rigid bodies, add collision to chassis, bake). However, it lacks a crisp verb+resource phrasing and doesn't explicitly differentiate from non-physics sibling tools, so it's clear but not perfect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 gives explicit routing for a specific case: rigid body constraints should use blender_run_operator instead. This provides a clear when-not. However, it doesn't discuss when to use this tool over other physics-related alternatives (none exist among siblings), so the guidance is partial but useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_poseA
Set a pose bone's location, rotation and scale. Useful for posing before a physics bake or for checking a rig's range of motion.
| Name | Required | Description | Default |
|---|---|---|---|
| bone | Yes | ||
| scale | No | Bone scale. | |
| armature | Yes | ||
| location | No | Local bone offset. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
| rotation_degrees | No | Euler rotation in degrees. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only mark the tool as non-read-only, non-idempotent, and non-destructive; the description adds that it mutates pose bone transforms and provides workflow context, but does not clarify whether omitted/null parameters preserve existing values or what happens at the current frame. The description does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are front-loaded with the core function, and the second sentence adds relevant workflow context. There is no filler or redundant restatement of schema 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 definition is reasonably complete for a pose setter: the action is clear, required parameters are visible in the schema, and response_format is self-documenting. However, with no output schema and no explicit behavior for omitted/null transform values, an agent has to infer what the call returns and whether unspecified attributes remain unchanged.
Complex tools with many parameters or behaviors need more documentation. 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 67%, and the schema already documents 'Local bone offset', 'Euler rotation in degrees', and response_format, so the baseline is 3. The description's mention of location, rotation, and scale maps to parameters but adds no additional parameter 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 opens with a specific verb and resource: 'Set a pose bone's location, rotation and scale'. This clearly distinguishes it from object-level transform tools and gives concrete workflow context ('posing before a physics bake', 'checking a rig's range of motion').
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 names when the tool is useful: before a physics bake or when checking a rig's range of motion. It does not list when-not-to-use or alternatives, but the stated context is clear enough for an agent to route to this tool from the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_procedural_materialA
Build a complete procedural surface in one call.
Wires a coordinate and mapping node to a noise, voronoi, wave or checker texture, then through a colour ramp into Base Color, a map-range into Roughness, and the raw field into a bump node. This is the graph most hard-surface and natural surfaces actually need, and it is tedious to assemble socket by socket.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Material name. | Procedural |
| scale | No | Feature size. | |
| assign | No | Objects to assign to. | |
| detail | No | ||
| color_a | No | Low colour RGB. | |
| color_b | No | High colour RGB. | |
| feature | No | Voronoi feature: F1, F2, SMOOTH_F1, DISTANCE_TO_EDGE. | F1 |
| pattern | No | Driver texture. | fbm |
| metallic | No | ||
| ramp_low | No | ||
| ramp_high | No | ||
| rough_low | No | ||
| wave_type | No | Wave type: BANDS, RINGS, X, Y, Z, DIAGONAL. | BANDS |
| distortion | No | ||
| rough_high | No | ||
| bump_distance | No | ||
| bump_strength | No | 0-1 bump relief. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal this is a mutating and non-idempotent call, and the description usefully adds what the tool builds: a wired node graph connected to Base Color, Roughness, and bump. However, it does not disclose whether an existing material is replaced or reused, what happens on repeated calls, or what the response contains, which matters for a tool with no idempotency guarantee.
Agents need to know what a tool does to the world before calling 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 core action, and every sentence earns its place: the first states the result, the second explains the graph construction, and the third gives practical rationale. No schema details are redundantly repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 high parameter count, sparse annotations, and absence of an output schema, the description explains the main node-graph behavior well but leaves noticeable gaps: material creation/replacement semantics, return-value content, and pattern-specific parameter interactions. It is adequate for a rough understanding but not fully complete for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 56%, and the description adds structural meaning by connecting broad parameter groups to graph stages: texture pattern, color ramp, roughness map-range, and bump. It does not fully compensate for undocumented parameters like detail, metallic, distortion, and the individual ramp/rough 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 states a specific verb and resource: 'Build a complete procedural surface in one call,' then details a precise node graph from coordinate/mapping through texture, color ramp, roughness map-range, and bump. This clearly differentiates the tool from generic material or shader builders among the 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 gives clear context for when the tool is appropriate: it is the graph 'most hard-surface and natural surfaces actually need' and saves the user from tedious socket-by-socket assembly. It does not name specific alternatives or state explicit when-not conditions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_python_envARead-onlyIdempotent
Report Blender's interpreter, sys.path, script paths and whether given modules can be imported. Use it before relying on a library.
| Name | Required | Description | Default |
|---|---|---|---|
| modules | No | Module names to test for importability, e.g. ['numpy','scipy']. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds value by specifying exactly what the report contains (interpreter, sys.path, script paths, importability), giving agents a clearer picture of what to expect without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The first sentence states the tool's output scope; the second gives a crisp usage directive. Both earn their place, and the most 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?
The tool is simple with two optional parameters and a clear read-only nature. The description explains what it reports and when to use it. It doesn't elaborate on the output structure, but the response_format parameter hints at json vs markdown, and for a report tool this is sufficient. No critical missing information for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters (modules, response_format) fully documented. The tool description does not add extra parameter semantics beyond the schema, but it aligns with the 'modules' parameter by mentioning importability. Since the schema carries the load, a baseline of 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?
States a specific verb ('Report') and exact resources: Blender's interpreter, sys.path, script paths, and module importability. This is unambiguous and distinct from sibling tools like blender_list_packages or blender_install_package, which deal with package management rather than environment introspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear usage context: 'Use it before relying on a library.' This tells the agent when to invoke it. It does not explicitly name alternatives or exclusions, but given the unique purpose among siblings, the guidance is sufficient—the agent knows to call this ahead of library-dependent operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_quality_guidelinesARead-onlyIdempotent
Fetch the modelling quality guidelines the agent should follow.
Covers the things that actually decide whether a generated model reads as believable: real proportions instead of convenient ones, built structure rather than modifier stacks, deliberate camera and lighting before a render, and texture resolution that survives a close-up.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Free-text filter, e.g. 'wheels' or 'realism'. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds contextual information about the content of the guidelines (what areas they cover) but does not disclose any additional behavioral aspects like pagination, rate limits, or return format specifics. Since the bar is lower with annotations, a 3 is appropriate—the description adds some value but not rich 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 two concise sentences: the first states the purpose, the second enumerates the key topics covered. It is front-loaded with the core purpose and provides a compact, informative list without fluff. Every sentence earns its place—no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch tool with no output schema, the description is quite complete. It explains what the guidelines contain and implies they are returned in a document. The response_format parameter allows markdown or json, which is enough for the agent to know how to request output. No critical information is missing for an agent to call this tool correctly, though it doesn't explicitly state that the output is a document of guidelines, which is inferred.
Complex tools with many parameters or behaviors need more documentation. 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 67%, with query and response_format documented in the schema but limit lacking any description. The tool description does not explain any of the parameters; it only describes the content of the guidelines. Given medium coverage, the description neither compensates nor detracts. The parameters are simple and self-explanatory (limit, query, response_format), so a baseline of 3 is reasonable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and resource: 'Fetch the modelling quality guidelines the agent should follow.' It then specifies the scope (what the guidelines cover: proportions, structure, camera/lighting, texture resolution), distinguishing it from the many operational tools in the sibling list (e.g., blender_apply_modifier, blender_add_primitive). This makes the tool's purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use it: when the agent needs to know the quality standards for generated models. It doesn't explicitly name alternatives or exclusions, but given the large sibling set, this is the only tool about guidelines. The content description ('the things that actually decide whether a generated model reads as believable') gives strong contextual cues. Missing explicit 'use this instead of X' but otherwise clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_redoA
Redo the last undone change, restoring the scene to the state it had
before the matching blender_undo call.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only and not idempotent, and the description adds the key behavioral detail that it restores the prior scene state. It does not disclose edge behavior such as what happens when there is no undo history to redo, but it is consistent with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that states the operation and its effect without wasted words. The core action is front-loaded and easily parsed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional, well-documented parameter, the description is largely complete. It could mention the behavior when no undo history exists, but that is a minor gap given the low complexity and clear pairing with blender_undo.
Complex tools with many parameters or behaviors need more documentation. 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, response_format, is fully documented in the schema with an enum and description. The tool description does not add extra parameter guidance, but the schema already carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Redo the last undone change' and explains the result clearly as restoring the scene to its state before the matching blender_undo call. This differentiates it from sibling tools, especially blender_undo.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the correct usage context: it should be used after blender_undo to reverse that undo action. It clearly connects to the matching blender_undo call, though it does not explicitly state when not to use it or mention alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_remove_keyframesA
Delete keyframes from a data path over a frame range, or clear the whole animation data on an object.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | Clear the whole action instead of a frame range. | |
| object | Yes | ||
| data_path | No | location | |
| frame_end | No | ||
| frame_start | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says the tool 'Deletes' keyframes and can 'clear the whole animation data', which are destructive mutations. The annotations declare destructiveHint=false, so the structured metadata actively contradicts the described behavior. This is a serious inconsistency and the description cannot compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no filler; it front-loads the action and each clause earns its place by distinguishing the two deletion modes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, mutation-heavy tool with no output schema and only 33% schema description coverage, the description is too thin. It does not explain how the frame range interacts with all, what happens if data_path has no keyframes, what clearing 'whole animation data' includes, or what the response will contain. The contradictory destructiveHint also undermines 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 only 33%, so the description must carry parameter meaning. It does: 'data path' maps to data_path, 'frame range' maps to frame_start/frame_end, and 'clear the whole animation data' maps to the all flag, while 'object' identifies the required target. It leaves out boundary details, but adds real 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 opens with a specific action verb ('Delete keyframes'), names the target resource (a data path on an object), and clarifies the two supported modes: frame-range deletion or clearing all animation data. This makes the tool immediately distinguishable from animation siblings like blender_insert_keyframe or blender_animation_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?
It gives clear usage context: use this tool to remove keyframes from a data path over a frame range, or to clear all animation data on an object. It does not enumerate explicit exclusion conditions or name sibling alternatives, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_rename_objectA
Rename an object and, by default, its mesh/light/camera data block too.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| object | Yes | ||
| rename_data | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating operation (readOnlyHint=false, destructiveHint=false), so the description doesn't need to restate that. The description adds useful context about the default data-block renaming behavior, which is beyond what annotations provide. However, it doesn't disclose potential side effects (e.g., renaming data blocks may affect references) or whether the operation is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the primary action and the key default behavior. Every word earns its place, and it avoids 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?
For a simple rename tool with 4 parameters and no output schema, the description covers the core behavior but leaves gaps. It doesn't specify how to reference the object (name vs. path), what happens if the object doesn't exist, or what the response contains. Given the tool's simplicity, this is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, so the description must compensate for the undocumented parameters. The description clarifies the 'rename_data' parameter's default behavior (renames mesh/light/camera data block too), which adds value. However, it doesn't explain the 'object' parameter format (e.g., name vs. path) or the 'response_format' parameter beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Rename') and resource ('an object'), and adds a meaningful default behavior: renaming the associated mesh/light/camera data block too. This distinguishes it from generic rename tools, though it doesn't explicitly name a sibling 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?
The description implies the tool is for renaming objects and optionally their data blocks, which gives some context for when to use it. However, it doesn't explicitly state when not to use it or mention alternatives like blender_execute_python for more complex renaming scenarios. The rename_data parameter is mentioned in the description, which helps clarify the default behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_renderA
Render with the current engine and return the resulting image.
Cycles at 1080p can take minutes; check samples and resolution with blender_get_scene first, and consider the 'eevee' engine for iteration.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'still' for one frame, 'animation' for the whole range. | still |
| format | No | PNG, JPEG, WEBP, OPEN_EXR ... | |
| output_path | No | Where to write the image. Relative paths resolve against BLENDER_MCP_ROOT (your home directory). | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, and the description adds a valuable performance warning (Cycles at 1080p can take minutes) that goes beyond what annotations convey. It doesn't mention what happens to existing render outputs or error handling, but the performance context is genuinely useful. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler. The core purpose is front-loaded in the first sentence, and the performance warning is a single second sentence. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a render tool with 4 fully-documented parameters, the description covers the essential context: what it does, cost implications, and how to be smart about it. It doesn't address animation mode specifics (rendering many frames) or output path resolution details, but the schema covers those. A small gap remains around what happens with 'animation' mode performance, but overall this is quite complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — all 4 parameters (mode, format, output_path, response_format) have descriptive text in the schema itself. The description adds no additional parameter-level detail, so the baseline of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Render') and resource ('current engine'), and clarifies the output ('resulting image'). It distinguishes itself from sibling tools like blender_capture_viewport (viewport capture vs. full render) and blender_render_extras. Clear and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises checking samples and resolution with blender_get_scene first and suggests the 'eevee' engine for iteration. This is concrete, actionable guidance that routes the agent to the right approach and warns about the cost of Cycles rendering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_render_extrasC
Turntable renders, a fast clay preview, render pass toggles, and contact sheets assembled from existing images. The clay preview uses Workbench, so it is near-instant even on a heavy scene.
| Name | Required | Description | Default |
|---|---|---|---|
| cell | No | ||
| pivot | No | Turntable pivot. | |
| action | Yes | Render helper. | |
| frames | No | Turntable frame count. | |
| images | No | Image paths for action='contact_sheet'. | |
| output | No | Output path for contact_sheet. | |
| passes | No | Render passes to enable: Z, NORMAL, AO, MIST, COMBINED. | |
| columns | No | ||
| output_dir | No | Output directory. | |
| resolution | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, meaning the tool likely has side effects (e.g., modifying scene, saving files), but the description does not disclose any such side effects. It only mentions the clay preview uses Workbench and is near-instant, which is a performance detail but does not clarify the non-read-only nature or potential modifications to scene/render settings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) but is not well-structured. It lists actions in a prose list without front-loading the most critical information (e.g., that the tool is action-driven). It is not verbose, but it also does not use bullet points or emphasize the action parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 11 parameters, 4 actions, and no output schema, yet the description does not explain how actions map to parameters or what the expected return format is. It also fails to mention that it is a multi-action dispatcher or how to choose an action. This is inadequate for an agent to call it correctly without deeper schema inspection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides descriptions for many parameters (e.g., pivot, frames, images, passes, output_dir), and the description adds no additional parameter semantics. With 73% schema coverage, the description could have filled gaps (e.g., what 'cell', 'columns', 'resolution' mean in context), but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description lists four distinct actions (turntable renders, clay preview, render pass toggles, contact sheets) which clearly states what the tool does. However, it does not differentiate from sibling tools like blender_render or blender_capture_viewport, leaving the agent uncertain about when to choose this over those.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention exclusions or prerequisites, nor does it explain which action to pick for a given scenario. The agent is left to infer usage from the schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_render_reportARead-onlyIdempotent
Report what a render would actually use: engine, effective resolution, frame range, resolved output path and whether that directory exists, colour management, camera and lights.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds a list of reported fields but no further behavioral detail (e.g., whether a scene must be loaded, error conditions, or performance implications). It does not contradict the annotations and adds minimal extra context beyond the field 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 a single sentence that front-loads the action ('Report') and lists the key data points compactly. It is not bloated, though the comma-separated list makes it slightly dense. Overall, it earns its place with no redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 report tool with one optional parameter and no output schema, the description covers the essential information an agent needs to know: what fields will be reported. It does not mention the return format explicitly, but the response_format parameter already handles that. It is sufficient for a read-only informational 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 single parameter response_format is fully described in the schema (enum values and descriptions), so schema coverage is 100%. The description adds no additional meaning to the parameter, staying at the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb 'Report' and specifies the resource (render configuration) and the exact data points (engine, resolution, frame range, etc.). It is unambiguous and distinguishes itself from sibling tools like blender_render (which actually renders) and blender_settings_report (which likely reports general settings) by focusing on what a render would actually use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 before rendering or to audit render settings, but it does not explicitly state when to use this tool over alternatives like blender_settings_report or blender_render. No exclusions or alternate conditions are provided, so an agent must infer 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.
blender_rigA
Create an armature, add bones, and bind meshes with automatic weights.
Also the escape hatch for crash setups: skin the body panels, then simulate.
| Name | Required | Description | Default |
|---|---|---|---|
| bone | No | Bone name for add_bone. | Bone |
| head | No | Bone head position. | |
| name | No | Armature name. | Rig |
| tail | No | Bone tail position. | |
| action | Yes | Rigging operation. | |
| object | No | Mesh to skin, or delete its groups for clear. | |
| parent | No | Parent bone name. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not contradict the annotations (readOnlyHint=false, destructiveHint=false). The annotations indicate this tool is not read-only and may have side effects, but the description does not add details about potential destructive behaviors (e.g., that 'clear' removes vertex groups) or any side effects on the blend file. It is neutral but lacks depth, scoring a 3.
Agents need to know what a tool does to the world before calling 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 two short paragraphs. The primary purpose is front-loaded, and the additional 'escape hatch' note is in a separate paragraph for attn. However, the second paragraph is cryptic ('skin the body panels, then simulate') and could be clearer, but overall 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?
The tool surfaces a multi-step workflow (create armature, add bones, skin) and an unusual 'escape hatch' use case. With no output schema and several action-specific parameters, the description could offer more guidance on which parameters are needed for each action. The 'clear' action lacks any context. This leaves the agent with some gaps, scoring a 3.
Complex tools with many parameters or behaviors need more documentation. 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 covers all parameters with descriptions (100% coverage), so the schema does the heavy lifting. The description adds context by linking the 'skin' action to binding meshes and mentions the 'escape hatch' scenario, which gives some extra meaning to the 'action' parameter. This goes beyond the schema's basic enumeration, so a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's primary purpose: creating an armature, adding bones, and binding meshes with automatic weights. It also mentions an 'escape hatch for crash setups' which is a distinct use case. However, it could be more explicit about the 'clear' action (removing vertex groups), which is not mentioned in the primary description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 some context ('Also the escape hatch for crash setups: skin the body panels, then simulate') but does not explicitly state when to use this tool versus alternatives like blender_create_mesh or blender_add_modifier. The 'clear' action is not contextualized, leaving the agent to infer its purpose. No alternative tools are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_run_operatorB
Run any bpy.ops operator by name with automatic 3D viewport context fallback and validation of the property names.
Call blender_list_operators first if you are unsure of the exact id or property names.
| Name | Required | Description | Default |
|---|---|---|---|
| operator | Yes | Operator id such as 'mesh.primitive_torus_add' or 'object.shade_smooth'. | |
| area_type | No | ||
| properties | No | Operator keyword arguments, e.g. {'major_segments': 32}. Unknown keys are ignored. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Run any bpy.ops operator', which includes potentially destructive operators, but the annotations declare destructiveHint=false. This is a direct contradiction. The description does add useful context about viewport fallback and validation, but the contradiction with the annotation is a serious transparency failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core behavior and followed by a practical usage pointer. Every sentence earns its place and there is no redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that can run arbitrary operators, the description should warn about potentially destructive effects and clarify what the response looks like, especially since there is no output schema. It does provide the key prerequisite and context fallback, but the destructive contradiction and missing output/return guidance leave important 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 75%, with operator, properties, and response_format already documented. The description adds a hint about area_type through 'automatic 3D viewport context fallback' and mentions property-name validation, but it does not substantially expand on the parameter 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 tool runs any bpy.ops operator by name, with specific behavioral qualifiers like automatic 3D viewport context fallback and property-name validation. It is easy to distinguish from most sibling tools, though it does not explicitly contrast with blender_execute_python, which could also run operators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 tells the agent to call blender_list_operators first if unsure of the exact id or property names, which is a clear and useful routing instruction. It does not provide when-not-to-use guidance, but for a generic operator runner the alternative guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_save_blendADestructive
Save the scene to a .blend file. Pass a path for Save As, omit it to save in place. Unwritten work is lost if Blender crashes, so save as you go.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Target .blend path. Empty saves over the currently open file. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, and the description adds valuable context about the risk of losing unwritten work if Blender crashes, plus the implication of overwriting the open file. This goes beyond the annotation and informs the user about real-world consequences. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff. The main action is front-loaded, followed by parameter behavior, then a practical warning. Every sentence earns its place and the message is immediately understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 primary usage, the parameter options, and a key risk. Given there is no output schema, a note on return value is missing, but the agent can likely infer a status confirmation. For a save operation, this is fairly complete, though it could mention response_format explicitly if expectations are strict.
Complex tools with many parameters or behaviors need more documentation. 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 100% for both parameters, and the description only repeats the path behavior ('Pass a path for Save As, omit it to save in place') which is already in the schema. The response_format parameter is not discussed, but it is fully documented. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Save'), a resource ('.blend file'), and distinguishes between Save As (with a path) and in-place save (without). This clearly tells the agent what the tool does and sets it apart from sibling tools like blender_open_blend or blender_new_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?
It gives explicit usage guidance: pass a path for Save As, omit to save in place, and save as you go to avoid losing work. It does not explicitly mention alternative tools, but the context is clear and actionable. A slight gap is the lack of comparison to blender_checkpoint, but that is not essential.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_scene_opsB
Hierarchy and housekeeping: duplicate a parent with all children, instance or realise collections, purge orphans, and inspect the depsgraph, enabled add-ons or datablock counts.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Scene operation. | |
| object | No | Root object for duplicate_hierarchy. | |
| location | No | Instance position. | |
| new_name | No | Name for the duplicate root. | |
| collection | No | Collection to instance. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotation Contradiction: annotations set destructiveHint to false, but the description includes 'purge orphans,' which is inherently a destructive operation that deletes unused datablocks. This directly conflicts with the safety signal the annotation sends. The description also gives no detail about side effects of apply_instances or whether actions are irreversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the tool's category and then enumerates its operations with no filler. Every phrase earns its place, and the list aligns naturally with the action enum.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 seven distinct actions, six parameters, no output schema, and annotations that are all false, the description is not complete enough. It fails to specify which parameters apply to which actions, what each action returns, and whether destructive actions like purge_orphans require confirmation or have undo implications.
Complex tools with many parameters or behaviors need more documentation. 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 100%, so the baseline is 3; every parameter has a description. The tool description adds some semantic context by mapping actions to concepts like 'duplicate a parent with all children' and 'instance or realise collections,' but it does not clarify action-specific parameter requirements or coordinate/unit 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 names a concrete category ('Hierarchy and housekeeping') and enumerates specific operations: duplicating a parent with children, instancing/realising collections, purging orphans, and inspecting depsgraph/add-ons/datablock counts. This clearly differentiates it from sibling tools like blender_duplicate_objects or blender_list_objects by focusing on hierarchy-level and scene-housekeeping 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 implies when to use the tool through its list of hierarchy and housekeeping operations, and the action enum maps those operations precisely. However, it never explicitly distinguishes this tool from alternatives such as blender_duplicate_objects, blender_create_collection, or blender_delete_objects, nor does it state when another sibling would be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_scripts_and_textsARead-onlyIdempotent
List embedded Text datablocks and every .py file inside Blender's script paths, with sizes. Use it to find an add-on's or a script's real location.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the behavioral detail that it lists both embedded Text datablocks and .py files with sizes, which is useful. It doesn't mention output format details or potential performance implications, but the annotations carry the main burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste. The core function is stated first, followed by the use case. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with one optional parameter and no output schema, the description is nearly complete. It could mention that the output is a list/report, but the use case and scope are clear. The annotations cover safety, and the schema covers the parameter.
Complex tools with many parameters or behaviors need more documentation. 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 100%, so the single parameter response_format is fully documented in the schema. The description doesn't add parameter-specific meaning beyond what the schema provides, which is acceptable given the high 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 lists embedded Text datablocks and .py files in Blender's script paths, with sizes, and explicitly states its use case: finding an add-on's or script's real location. This is a specific verb+resource and distinguishes it from sibling tools like blender_list_installed_addons or blender_filesystem.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 clear use case ('Use it to find an add-on's or a script's real location'), which implies when to use it. It doesn't explicitly name alternatives or exclusions, but the context is clear enough given the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_search_apiARead-onlyIdempotent
Search Blender's operator namespace by keyword. Faster than blender_list_operators when you only know part of a name.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the description's extra context about scope ('operator namespace'), search semantics, and speed comparison adds useful value without contradiction. It could disclose more about match behavior, but the annotations lower the bar.
Agents need to know what a tool does to the 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 the main action front-loaded and the comparative guidance in the second. No redundant 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 search tool with read-only annotations and a documented response_format parameter, the description is sufficient for an agent to select and call it. Lacking an output schema, a bit more specificity about what is returned (matching operator names) would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only response_format is documented), so the description must compensate. It clarifies that 'query' is a keyword lookup into the operator namespace, but it does not explain the 'limit' semantics or result matching beyond the schema. The remaining parameters are largely self-evident from names, defaults, and enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Search') with a clear resource (Blender's operator namespace) and states keyword-based lookup. It also differentiates from sibling blender_list_operators by noting it is faster for partial-name lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 names the alternative tool (blender_list_operators) and gives the specific condition ('when you only know part of a name') that makes this tool the better choice. This is explicit routing with no inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_search_libraryA
Search a free CC0 asset library. Poly Haven needs no API key.
Returns ids you pass to blender_fetch_asset. Useful for grabbing a real
HDRI or a photogrammetry texture instead of hand-rolling one.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Asset category. | hdris |
| limit | No | ||
| query | No | Substring filter on name and tags. | |
| library | No | Library id; default polyhaven. | polyhaven |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate open-world and destructive hints, and the description adds useful context beyond them: no API key is needed for Poly Haven, and the result is a set of ids meant for blender_fetch_asset. It doesn't discuss rate limits or failure modes, but for a search tool it discloses the auth and return behavior well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences front-load the purpose, then add the auth detail, return contract, and intended use with no redundancy. Every sentence contributes information not already obvious from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the key missing context for a tool with five optional parameters and no output schema: what the return value is and how it should be used downstream. It could also mention result formatting or limitations, but the schema and annotations already provide much of the operational envelope.
Complex tools with many parameters or behaviors need more documentation. 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 80%, and type, query, library, and response_format are already self-documented with enums and defaults. The description adds no parameter-specific semantics, and `limit` remains undocumented in both schema and description, so the 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 uses a specific verb and resource ('Search a free CC0 asset library') and immediately clarifies the output contract ('Returns ids you pass to blender_fetch_asset'). This clearly differentiates the tool from the fetch/download siblings and leaves little ambiguity about its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 gives a concrete intended use case: grabbing a real HDRI or photogrammetry texture instead of hand-rolling one, and points to the correct downstream tool. It does not explicitly enumerate exclusions or alternative siblings, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_select_byARead-onlyIdempotent
Select objects by a predicate rather than by name.
Names are what agents get wrong on a large scene. This finds every mesh with loose geometry, without a material, without UVs, larger than N metres, belonging to a collection, or matching a glob.
| Name | Required | Description | Default |
|---|---|---|---|
| by | Yes | Predicate to select by. | |
| axis | No | For by='size': -1 for the largest dimension, 0/1/2 for one axis. | |
| limit | No | ||
| pattern | No | Glob pattern for by='name'. | * |
| material | No | For by='material'. | |
| collection | No | For by='collection'. | |
| make_active | No | ||
| object_type | No | For by='type', e.g. MESH. | MESH |
| min_dimension | No | For by='size', smallest accepted dimension in metres. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, reducing the burden on the description. The description adds the behavioral nuance that selection is predicate-driven rather than name-based, but it does not disclose side effects like whether the current selection is replaced or how the active object is affected (though make_active parameter hints at this). It provides some added context without contradicting 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 two sentences with no wasted words. The core purpose is front-loaded in the first sentence, and the second sentence elaborates with concrete examples. Every part earns its place, making it highly scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 10 parameters but a high schema coverage (80%) and only 1 required parameter, the description provides a solid overview of the tool's capabilities and the rationale for its use. It does not explain return format or selection behavior, but those are partly handled by the response_format parameter and annotations. Overall it is complete enough for correct invocation in most scenarios, though slightly more detail on selection semantics would improve it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so the baseline is 3. The description goes beyond the schema by semantically grouping the predicates (e.g., 'loose geometry' corresponds to by='loose', 'larger than N metres' to size with min_dimension) and explaining the intent behind the by parameter. This adds meaningful context that helps an agent select appropriate parameter values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool selects objects by predicate rather than by name, which immediately distinguishes it from name-based selection tools like blender_select_objects. It further enumerates the specific predicates it supports (loose geometry, no material, no UVs, size, collection, glob), leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context: 'Names are what agents get wrong on a large scene' implies this tool is the right choice when selecting by name is error-prone or when objects need to be found by properties. However, it does not explicitly name alternative tools or state when not to use it, so it falls just short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_select_objectsA
Set the selection and active object. Many operators operate on the selection, so this is how you target them.
| Name | Required | Description | Default |
|---|---|---|---|
| active | No | ||
| objects | No | Names, or 'all' / 'none'. | all |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only, idempotent, or destructive; the description adds context by explaining that selection changes affect subsequent operators. It also clarifies that both selection and active object are changed. This adds value beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the primary action and followed by the practical reason for the tool. Every word earns its place, and there is no redundant repetition of schema or annotation 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 selection-mutation tool with no output schema, the description plus schema annotations give an agent enough to understand the tool's role and parameters. It could be slightly more complete by describing what happens when 'active' or 'objects' are absent, but the defaults in the schema cover most of 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?
The input schema documents 'objects' and 'response_format' well, and the description's phrase 'active object' gives partial meaning to the 'active' parameter. However, the description itself adds no parameter-specific details, and the 'active' field lacks schema-level description, so semantics for that parameter remain under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-plus-resource ('Set the selection and active object') and explains that this is how operations target objects. It is clear about what the tool does, though it does not explicitly distinguish itself from the similar sibling blender_select_by.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sentence 'Many operators operate on the selection, so this is how you target them' provides clear when-to-use context: run this before operators that act on the current selection. It stops short of naming alternatives or giving explicit when-not-to-use conditions, so it does not earn a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_sequencerA
Drive the video sequencer: add movie or image strips to channels, set the frame range, and render the sequence out to a movie or image sequence.
This is the route to an actual rendered video rather than a single still.
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | What to do in the video sequencer. | list |
| end | No | ||
| mode | No | For op='render'. | MOVIE |
| name | No | Strip name. | clip |
| path | No | For op='add', an image or movie file. | |
| start | No | ||
| output | No | Output path or directory. | |
| channel | No | ||
| frame_end | No | ||
| frame_start | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate that this is not read-only, not idempotent, and not destructive, so the description does not need to repeat that. It adds useful high-level context (operations are mutating and produce rendered output), but it does not disclose operation-specific effects such as whether adding a strip replaces existing strips or whether render writes files immediately.
Agents need to know what a tool does to the 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 carry the core purpose and the key differentiating use case without filler. The content is front-loaded with the main actions and closes with a practical distinction, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 11 operation-dependent parameters and no output schema, this description is too sparse. It omits mention of the 'list' and 'remove' operations, gives no operation-specific parameter guidance, and does not hint at return behavior or output content, leaving an agent with insufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description maps loosely to parameter groups: 'channels' suggests channel, 'frame range' maps to start/end or frame_start/frame_end, and 'movie or image sequence' relates to path and mode. However, schema description coverage is only 55%, and the description does not clarify the distinction between start/end and frame_start/frame_end or which parameters apply to each operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (video sequencer) and specific operations: adding strips, setting frame range, and rendering to a movie or image sequence. It also differentiates the tool's purpose from still-image rendering ('actual rendered video rather than a single still'), though it does not name a sibling tool explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use this tool: when the goal is an actual rendered video or image sequence, as opposed to a single still. It stops short of explicit exclusions or named alternatives, but the guidance is sufficient for basic routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_set_active_cameraA
Choose which camera the render uses. Call this before blender_render or blender_capture_viewport with mode='camera' if the scene has several.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag the operation as non-read-only and non-destructive, and the description adds meaningful behavioral context: it changes state and must precede render/capture operations. It doesn't discuss return values or error behavior, but the annotations reduce the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, with the core purpose front-loaded and the usage condition immediately after. No filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-required-parameter setter, the description covers the effect and the exact call context. It doesn't mention error handling or return values, but those are not critical given the tool's simplicity and the annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The required 'name' parameter has no schema description, and the description only implies that it refers to a camera by saying 'which camera.' It doesn't specify whether the value is the camera object name or data name, or how to list valid cameras. The response_format parameter is already documented 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 clearly states the tool's purpose with a specific verb and resource: 'Choose which camera the render uses.' It is distinguishable from related siblings like blender_add_camera or blender_set_context, though it doesn't explicitly name them as alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit, actionable usage guidance: 'Call this before blender_render or blender_capture_viewport with mode='camera' if the scene has several.' It lacks an explicit when-not-to-use statement or named alternative tools, but the conditional is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_set_contextA
Set mode, active object, active collection and selection atomically.
Most operator calls need all four set correctly. Doing it in one round trip avoids leaving Blender in a half-applied state when one step fails.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Mode to switch to once the active object is set. | |
| active | No | Object to make active. | |
| select | No | Objects to select. | |
| collection | No | Collection to make the active layer collection. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate the operation is not read-only, not idempotent, and not destructive. The description adds valuable behavioral context by emphasizing atomicity and the avoidance of half-applied states, which goes beyond the annotation data. It could mention rollback or error handling explicitly, but the core side-effect story is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, with no filler. The second sentence earns its place by justifying the atomic design and the tool's reason for existing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with full schema coverage and no output schema, the description covers the main workflow and failure rationale. It leaves minor gaps, such as the exact treatment of existing selections or the response format, but the atomicity explanation makes the behavior sufficiently predictable 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?
All five parameters already have descriptive schema text and enums, so the description does not need to repeat parameter meanings. It does reinforce that mode, active object, selection, and collection are conceptually grouped and should be set together, but this adds only mild semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action — 'Set mode, active object, active collection and selection atomically' — naming the exact resources it affects plus an atomicity guarantee. It clearly describes a context-preparation tool, but it does not explicitly differentiate it from overlapping siblings like blender_select_objects or blender_edit_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?
The second sentence explains a concrete use case — 'Most operator calls need all four set correctly' — and why this tool should be preferred for that case: one round trip avoids a half-applied state. It does not state when to use an alternative, such as a selection-only tool or blender_edit_mesh, but the intended context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_set_frameC
Jump to a frame and/or set the animation range and playback speed.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| fps | No | ||
| frame | No | ||
| start | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only, not idempotent, and not destructive. The description adds no additional behavioral context, such as how the current frame is changed, whether the range is set as a persistent state, or any side effects on playback. With annotations present, the description should still add value, but it doesn't.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the primary actions. There is no fluff or redundant information; every word contributes to understanding the tool's 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 tool with five optional parameters, the description is incomplete. It does not explain parameter interactions (e.g., what happens if frame is set while start/end are also set), does not describe expected return values (no output schema), and provides no details on how null values are handled. The description covers only the high-level purpose, leaving an agent without enough context to call it correctly in varied situations.
Complex tools with many parameters or behaviors need more documentation. 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 only 20%, with only response_format described. The description implies that 'frame' relates to jumping, 'start' and 'end' to the animation range, and 'fps' to playback speed, which adds some meaning. However, it does not clarify relationships between parameters, default behavior when null, or units, leaving gaps that the description only partially fills.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 jumps to a frame and/or sets animation range and playback speed, with specific verbs and resources. However, it does not explicitly differentiate from sibling animation tools like blender_insert_keyframe or blender_animation_info, so it misses the opportunity to distinguish 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?
No guidance is given on when to use this tool versus alternatives such as blender_insert_keyframe or blender_animation_info. There are no exclusions, prerequisites, or context clues about when this is the appropriate choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_set_material_nodeA
Add a procedural or image texture node to a material and wire it into the Principled BSDF. This is the fast path to interesting surfaces without hand-building node trees.
Example - marbled stone ->
material='Stone', node_type='noise', properties={'Scale': 6, 'Detail': 8, 'Roughness': 0.6}, input='Base Color'
| Name | Required | Description | Default |
|---|---|---|---|
| image | No | ||
| input | No | Base Color | |
| output | No | ||
| location | No | ||
| material | Yes | ||
| node_name | No | ||
| node_type | No | noise, voronoi, gradient, wave, checker, magic, brick, musgrave, white_noise, image or environment. | noise |
| properties | No | Node settings, e.g. {'Scale': 8, 'Detail': 6} for noise, or {'Scale': 5, 'Randomness': 1} for voronoi. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no behavioral hints (readOnlyHint=false, etc.), so the description carries the burden. It states it adds a node and wires it, but does not disclose side effects like whether the material is modified in place, what happens if the material doesn't exist, or if existing nodes are overwritten. The example gives a usage pattern but not deeper behavioral context. No contradiction with annotations, but transparency is limited.
Agents need to know what a tool does to the world before calling 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 plus a clear example. It front-loads the primary action and then provides a concrete illustration. No fluff or repetition. The example is well-chosen and directly demonstrates parameter usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (9 parameters, no output schema), the description is not fully complete. It doesn't mention prerequisites (e.g., material must exist), how to specify image textures vs procedural, or what happens on success/failure. However, the example covers the most common use case and the schema provides enums for node_type. It's adequate for basic usage but lacks depth for 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?
Schema description coverage is only 33% (only node_type and properties have descriptions). The description's example clarifies usage for material, node_type, properties, and input, but does not explain parameters like image, output, location, node_name, or response_format. While the example adds value, it does not fully compensate for the low coverage, leaving several parameters under-documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 procedural or image texture node to a material and wire it into the Principled BSDF.' It specifies the resource (material) and the target (Principled BSDF). The example further clarifies the intended use. This distinguishes it from sibling tools like blender_create_material or blender_load_image_texture by focusing on node addition and wiring.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 frames this as the 'fast path to interesting surfaces without hand-building node trees,' which implies when to use it (quick setup) and implicitly contrasts with manual node editing. However, it does not explicitly name alternatives or state when not to use it (e.g., when precise control is needed or when an image texture already exists). The context is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_set_render_settingsC
Configure the renderer: engine, resolution, samples, colour management, transparency, motion blur, depth of field and output settings.
| Name | Required | Description | Default |
|---|---|---|---|
| dof | No | Depth of field: {'focus_object': 'Cube', 'aperture_fstop': 2.8}. | |
| fps | No | ||
| engine | No | 'eevee' (fast), 'cycles' (physically correct) or 'workbench' (fastest, solid preview). | |
| denoise | No | ||
| samples | No | ||
| gpu_device | No | ||
| resolution | No | [width, height] | |
| frame_range | No | [start, end] | |
| max_bounces | No | ||
| output_path | No | ||
| output_format | No | ||
| view_transform | No | 'AgX' (default filmic), 'Filmic' or 'Standard'. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
| use_motion_blur | No | ||
| film_transparent | No | ||
| resolution_percentage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a mutating operation (readOnlyHint=false) but not destructive. The description adds no behavioral detail beyond 'configure', such as whether unspecified settings are reset, whether changes persist, or what side effects occur. It does not contradict the annotations, but it also does not enrich them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that communicates the core purpose efficiently. It is concise and avoids filler, though the list of settings is somewhat dense and could be structured 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?
For a tool with 16 parameters, no output schema, and sparse parameter descriptions, this description is too thin. It does not explain return behavior, defaults, or how the settings affect a subsequent render. An agent would need significant additional inference to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38%, so the description should compensate by explaining parameter meanings and relationships. It lists broad categories like 'samples' and 'output settings' but does not clarify values, defaults, or how parameters interact. Most of the 16 parameters remain semantically under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Configure') with a clear resource ('the renderer') and enumerates the settings it affects: engine, resolution, samples, colour management, transparency, motion blur, depth of field and output settings. This makes the tool's purpose understandable, but it does not explicitly distinguish it from related siblings like blender_render or blender_set_world.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as blender_render, blender_set_world, or blender_set_context. It does not mention prerequisites, typical workflow placement, 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.
blender_set_settingA
Change any single project setting by dotted path, and report the old and new value.
Deliberately one setting per call: a bulk setter would let a wrong path silently wreck a whole configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Dotted attribute path inside that root, e.g. 'resolution_x' or 'frame_end'. | |
| group | Yes | Which settings root to change. | |
| value | Yes | New value. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, so the agent knows this is a mutation but not necessarily destructive. The description adds that it reports old and new values, which is helpful for agents to verify success. It also explains the design rationale (one setting per call) which is behavioral context not in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first defines the action and output; the second explains the deliberate design. Both are necessary and no word is wasted. The key design constraint 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 schema covers all parameters and the description explains the tool's design and output, the description is complete for a single-setting setter. It doesn't mention error handling or examples, but those are not essential given the simplicity. The tool's complexity is low, so this level 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?
Schema description coverage is 100%, so the schema already documents parameters like path and group. The description adds the concept of 'dotted path' and that the value is for a single setting, reinforcing the schema. It also notes the response reports old/new values, which implies the response_format parameter's purpose, though the schema already describes that. This adds value but not a lot because the schema is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Change'), a resource ('any single project setting'), and the mechanism ('by dotted path'). It clearly distinguishes this tool from siblings like blender_set_render_settings, which likely sets multiple render settings, whereas this tool does exactly one setting per call. The one-per-call design is explicitly stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains why one setting per call (to avoid 'silently wreck a whole configuration' from a wrong path), implying when to use this tool (single setting change) and indirectly when not to (bulk changes should be done differently, e.g., via blender_set_render_settings). It provides clear rationale that helps the agent decide when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_set_shader_inputA
Set one input socket on one node, by name. No guessing at socket indices.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Node name in the graph. | |
| value | Yes | Value; a list of 3-4 for colours. | |
| socket | Yes | Input socket name, e.g. 'Base Color'. | |
| material | Yes | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only signal that the tool is non-read-only and non-destructive, leaving the description to carry behavioral context. 'Set' communicates mutation and 'No guessing at socket indices' establishes name-based resolution, but the description does not state overwrite behavior, error conditions, or prerequisites such as node/material 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 two tight sentences with no filler. The core operation is front-loaded, and the anti-index instruction is compact, useful context that earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple value-setting tool, the description plus schema covers the operation, required parameters, and the important name-based caveat. It does not describe return values or preconditions like an existing node graph, but the tool's low complexity makes those gaps less 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?
Schema coverage is high at 80%, so the baseline is solid. The description adds meaningful parameter guidance beyond the schema by emphasizing name-based resolution and explicitly discouraging socket indices, though it does not elaborate on material identifiers or value 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 uses a specific verb, 'Set', and names the exact resource: one input socket on one node, selected by name. It is clear enough to distinguish from shader-graph creation or connection tools, though it does not explicitly name any sibling 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?
The description implies the use case: assign a single named input socket on an existing node. The phrase 'No guessing at socket indices' gives practical guidance to pass socket names, but there is no explicit when-to-use versus alternatives like blender_connect_shader or blender_build_shader.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_settings_reportARead-onlyIdempotent
Report what the project is actually set to.
Covers the scene, the full render configuration including Cycles and EEVEE sampling and colour management, datablock counts, user preferences, file paths, linked libraries and registered handlers. This is the answer to "what are the current settings".
| Name | Required | Description | Default |
|---|---|---|---|
| groups | No | Subset of scene, render, data, preferences, files, handlers. Default is all of them. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds useful scope about what is inspected, but does not disclose additional behavioral details such as output size, performance, or access 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 compact and front-loaded with the core purpose followed by a useful inventory of coverage. There is a small redundancy between 'Report what the project is actually set to' and 'This is the answer to what are the current settings', which keeps it from being maximally crisp.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 read-only report with two optional, fully documented parameters and safety annotations, the description is nearly complete. It could be more explicit about the exact response shape or potential output size, but response_format and groups are already handled by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters at 100% coverage, but the description enriches the 'groups' parameter by detailing what the scene/render/data/preferences/files/handlers categories actually include (Cycles, EEVEE, datablock counts, handlers, etc.). It adds value beyond the schema's terse parameter 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 uses a specific verb and resource ('Report what the project is actually set to') and enumerates concrete coverage areas: scene, render configuration including Cycles/EEVEE and colour management, datablock counts, preferences, paths, libraries, and handlers. This clearly distinguishes it from sibling reporting tools like render_report or material_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'This is the answer to what are the current settings' gives a clear prompt-to-tool mapping and tells an agent when to use it. It does not explicitly name alternative tools or state when not to use it, so it misses the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_set_transformA
Set or offset the transform of one or more objects.
With relative=True the values are added/multiplied onto the current
transform instead of replacing it.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | Absolute [x, y, z] | |
| objects | Yes | ||
| location | No | Absolute [x, y, z] | |
| relative | No | ||
| rotation | No | Absolute [x, y, z] in DEGREES | |
| rotation_mode | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating, non-idempotent operation, so the description doesn't need to restate that. The description adds useful context about relative vs absolute behavior, which is beyond the schema. However, it doesn't disclose details like whether rotation_mode is required for relative rotations, or what happens when only some transform components 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?
Two sentences with no waste. The core action is front-loaded, and the relative-mode caveat is placed immediately after, which is exactly where an agent needs it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 7-parameter tool with no output schema, the description covers the essential behavioral distinction but leaves gaps: rotation_mode semantics, interaction between relative and individual transform components, and what the response contains. The annotations cover the safety profile, but the description could do more to make the tool fully self-explanatory.
Complex tools with many parameters or behaviors need more documentation. 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 57%, and the description adds the crucial semantic distinction between relative and absolute modes. However, it doesn't explain the rotation_mode parameter, which is undocumented in the schema, nor does it clarify how null values interact with relative mode. The description adds some value but doesn't fully compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Set or offset') and resource ('the transform of one or more objects'), which clearly distinguishes it from most siblings. It doesn't explicitly name sibling alternatives, but the scope is clear enough to differentiate from related tools like blender_apply_transform or blender_look_at.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 key behavioral distinction between absolute and relative mode, which implies when to use each. However, it doesn't explicitly state when to prefer this over blender_apply_transform or other transform-related siblings, nor does it mention 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.
blender_setupA
Install the bundled Blender addon and enable it, so the bridge can start.
Call this ONCE on a machine where blender_status reports not connected.
It copies the addon into Blender's user addons directory and then lets
Blender itself enable it and save the preference, leaving any other add-ons
the user has enabled untouched.
Afterwards the user must restart Blender (or launch it if it is closed) - the bridge starts automatically with the addon.
| Name | Required | Description | Default |
|---|---|---|---|
| enable_addon | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Reveals important side effects beyond the annotations: the addon is copied into Blender's user addons directory, Blender itself enables and saves the preference, other add-ons are left untouched, and the bridge starts only after a restart. These details give the agent a correct mental model of a mutating setup step.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four focused sentences, front-loaded with the one-line purpose followed by when, what happens, and what to do next. Every sentence adds behavioral value and none repeats 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?
Covers purpose, trigger, mechanics, non-destructiveness, and post-condition, which is unusually complete for a setup tool. It could additionally state the expected success output, but there is no output schema and the operational flow is already clear.
Complex tools with many parameters or behaviors need more documentation. 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 does not mention either parameter. Schema coverage is only 50%: response_format is described, but enable_addon has only a title/default; the description should have clarified per-parameter behavior, especially what enable_addon=false means.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific action and resource: 'Install the bundled Blender addon and enable it' and ties it to starting the bridge. The description also gives a precise invocation condition via blender_status, which separates this tool from the many scene/object manipulation 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?
Explicitly says 'Call this ONCE on a machine where blender_status reports not connected' and tells the user the necessary follow-up: restart or launch Blender. This is a clear when-to-use rule even without a competing setup sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_set_worldA
Set the world/environment: flat colour, a neutral studio grey, a physical sky, an HDRI image, or a vertical gradient. The world is what you see through the background and what ambient light comes from.
| Name | Required | Description | Default |
|---|---|---|---|
| hdri | No | ||
| color | No | ||
| preset | No | 'color' (default), 'studio_gray', 'sky' (physical Nishita sky) or 'hdri'. | color |
| gradient | No | [[top_rgb], [bottom_rgb]] for a vertical gradient. | |
| strength | No | ||
| sun_rotation | No | ||
| sun_elevation | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the description carries the burden of explaining effects. It adds useful context by stating that the world determines the background and ambient light, which helps the agent anticipate visual consequences. It does not disclose side effects like overriding existing world settings or interaction with render settings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence front-loads the action and enumerates options; the second adds essential conceptual context. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no output schema, and low schema coverage, the description is too high-level. It omits guidance on parameter combinations (e.g., sun_rotation/elevation only for sky), the meaning of strength, and how response_format affects output. An agent cannot reliably invoke all features based on this description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38%, and the description does not compensate sufficiently. It lists the world modes but does not explain how parameters like strength, sun_rotation, or sun_elevation relate to those modes, nor the expected format for color or hdri. An agent would still be uncertain how to set a physical sky with sun controls or adjust intensity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a clear resource ('the world/environment'), then enumerates the supported modes: flat colour, studio grey, physical sky, HDRI, and vertical gradient. This fully distinguishes the tool from all siblings, none of which target the world/environment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the description of what the world is and what it affects (background and ambient light), so an agent can infer when this tool is relevant. However, it does not explicitly state when to prefer this over related tools like blender_set_render_settings or blender_add_light, nor does it mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_shader_infoARead-onlyIdempotent
Dump a material's node graph: every node, its unconnected inputs with values, its outputs, and all links. Use it to find out what a material actually is before editing it.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Material to inspect. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and destructiveHint. The description adds value by disclosing exactly what the tool reports: every node, unconnected inputs with values, outputs, and all links. This gives an agent a concrete picture of the tool's behavior without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both purposeful: the first states the action and output scope, the second gives the usage context. There is no filler or redundant repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, two optional parameters, and existing annotations, the description is largely complete. It states what the output contains even though no output schema is provided. A more explicit note about material naming or an example response would fully close the gap, but nothing critical 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 description coverage is 100%, and both parameters already have meaningful descriptions ('Material to inspect' and the response_format enum). The tool description does not add parameter-level detail beyond that, so the schema carries the burden and the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Dump a material's node graph,' followed by a precise list of what is returned (nodes, unconnected inputs with values, outputs, links). This clearly distinguishes the tool from editing and material-building siblings like blender_build_shader or blender_set_shader_input.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it: 'Use it to find out what a material actually is before editing it.' It gives clear practical context but does not name alternatives or state when not to use this tool, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_shade_smoothA
Set smooth or flat shading on meshes. Pass auto_smooth_angle (for
example 30) to keep sharp creases on a smooth surface.
| Name | Required | Description | Default |
|---|---|---|---|
| smooth | No | ||
| objects | Yes | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | json |
| auto_smooth_angle | No | Degrees. When set, adds a Smooth-by-Angle modifier so hard edges stay sharp. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are present but only generic false flags (readOnly/destructive/idempotent), so the description carries some burden. It adds the behavioral nuance that auto_smooth_angle preserves sharp creases, which is helpful beyond the schema. However, it doesn't disclose side effects, reversibility, or what happens when `smooth` is false, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences. The main purpose is front-loaded, and the auto_smooth_angle detail is placed as a helpful secondary clause. No filler or redundancy; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four parameters and no output schema, the description covers the core action and the key optional behavior (auto smooth). It doesn't explain return format, but the response_format parameter handles that. The main gap is the lack of explicit mapping of the `smooth` boolean, but the tool name and description largely make it inferable. Overall, adequate for a simple 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 50%, so the description should compensate for undocumented parameters. It meaningfully explains auto_smooth_angle with an example and effect, but it does not clarify `smooth` (boolean meaning) or `objects` (how to identify meshes) beyond the schema. This is partial but not full compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Set smooth or flat shading on meshes') and uniquely identifies the tool among the large sibling list; no other sibling handles shading, so an agent can distinguish it easily. It also hints at the auto-smooth capability, making the purpose even more concrete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 a clear context for when to use the tool (modify shading of meshes) and provides a concrete usage tip for the auto_smooth_angle parameter ('Pass auto_smooth_angle (for example 30) to keep sharp creases'). It does not name alternatives, but no obvious sibling competes for this functionality, so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_shape_keysC
Create and drive shape keys: facial blends, damage states, LOD morphs or simple deformation without touching the base mesh.
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | What to do with shape keys. | list |
| key | No | Shape key name. | |
| max | No | ||
| min | No | ||
| value | No | For op='set', the slider value. | |
| object | No | ||
| offset | No | For op='deform', a translation to add. | |
| from_mix | No | ||
| vertices | No | For op='deform', only move these vertex indices. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a mutating, non-idempotent, non-destructive operation. The description adds the guarantee 'without touching the base mesh,' which is useful, but it does not disclose side effects such as the behavior of the 'remove' op, how existing shape keys are affected, or whether vertex indices are modified in place. Given the annotations cover the basic mutation profile, the description adds limited additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the core purpose and examples, with no wasted words. However, given the complexity of 10 parameters and 5 operations, the brevity borders on under-specification rather than efficient conciseness, though it remains clear and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 10 parameters, 5 enumerated operations, and no output schema, the description is far from complete. It fails to explain the 'op' parameter, the required object argument, or how the deformation works. An agent cannot reliably determine how to invoke the tool for a specific task without opening the schema and guessing at the operation semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, meaning several parameters (max, min, object, from_mix) lack descriptions. The tool description does not mention any parameters or compensate for the gaps, so it adds no value beyond the schema. With a moderate coverage level, the description should clarify the undocumented parameters but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: create and drive shape keys, with examples of use cases (facial blends, damage states, LOD morphs, simple deformation). The phrase 'without touching the base mesh' adds a distinct characteristic, but it does not explicitly differentiate from any sibling tools, though no direct sibling for shape keys exists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 shape keys via the listed use cases, but it offers no explicit guidance on when to prefer this tool over alternatives like modifiers or geometry nodes, nor does it mention any prerequisites or exclusions. An agent is left to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_simulateA
Step a physics simulation forward, bake it to keyframes, or reset the point cache. Bake is how a cloth or soft-body result becomes a usable animation rather than a live simulation.
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | Step, bake to keyframes, or reset the cache. | step |
| frames | No | ||
| objects | No | Objects to bake or reset. | |
| frame_start | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal mutation (readOnlyHint=false, idempotentHint=false) and non-destructiveness (destructiveHint=false). The description adds useful conceptual context about bake converting live simulation to keyframes, but it does not disclose reset side effects, requirements, or what responses look like.
Agents need to know what a tool does to the 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 focused sentences with no filler. The operations are front-loaded, and the explanatory bake note earns its place by clarifying the tool's practical 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?
There is no output schema, yet the description does not explain return values or the role of 'response_format'. It also omits side effects of reset and the meaning of frame-related parameters, leaving important behavioral gaps for an agent invoking 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 description coverage is only 60%, and 'frames'/'frame_start' have no descriptions in either the schema or the tool description. The description mostly restates the 'op' enum values without explaining how 'frames', 'frame_start', 'objects', or 'response_format' affect 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 names three concrete operations (step, bake, reset) and a specific resource (physics simulation, point cache). It also explains the purpose of baking, making the tool's domain unambiguous even among many siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when baking is appropriate: 'Bake is how a cloth or soft-body result becomes a usable animation rather than a live simulation.' It implies step is for live simulation and reset for clearing the cache, though it does not explicitly name alternative tools or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_statusARead-onlyIdempotent
Check whether the Blender bridge is reachable and what it is running.
Start with this. If connected is false, either the addon is not installed
yet (call blender_setup once) or Blender is not running. Set
BLENDER_MCP_AUTOLAUNCH=1 to let the server start Blender itself.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so no safety contradiction exists. The description adds useful behavior beyond annotations: the meaning of connected=false and the autolaunch environment variable behavior. It does not enumerate every response field, but it explains the key state the agent must react to.
Agents need to know what a tool does to the world before calling 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, front-loaded with the primary purpose, and every sentence earns its place: first states what the tool does, then gives branching/next-step guidance. There is no redundant restatement of the tool name or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only status tool, the description covers the core return value (connected), the failure branches, the relationship to blender_setup, and the autolaunch option. The one parameter is fully documented in the schema, and annotations cover the safety profile, so nothing essential is missing for correct 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 description coverage is 100%, with the single response_format parameter fully documented through its enum and description. The tool description adds nothing about parameters, but the schema already does the necessary work, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check') and a specific resource ('the Blender bridge'), plus the scope: reachability and what it is running. The phrase 'Start with this' also marks it as the entry-point diagnostic among many Blender siblings, so an agent can distinguish it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description is explicit about when to use it ('Start with this') and gives concrete next steps when connected is false: call blender_setup once if the addon is missing, or set BLENDER_MCP_AUTOLAUNCH=1 to let the server start Blender. This is actionable routing behavior, not vague guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_timelineC
Report or set the frame range, fps and step, and manage timeline markers.
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | What to do. | report |
| end | No | ||
| fps | No | ||
| name | No | Marker name. | Marker |
| step | No | ||
| frame | No | ||
| start | No | ||
| fps_base | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false and no output schema exists, so the description carries the full burden. It discloses that it can report and set values and manage markers, but does not mention side effects, reversibility, or what happens to existing data (e.g., when removing a marker). For a tool that can perform destructive operations like remove_marker, this is a significant omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose and lists the affected resources. There is no filler. However, given the tool's complexity (multiple operations and parameters), it might be too terse, but structurally it is well-formed 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?
With 9 parameters, no annotations, and no output schema, the description is inadequate. It does not explain the semantics of each operation (e.g., what does 'set' do exactly? what happens on remove_marker?), nor does it describe return formats or any constraints. An agent would need to infer too much to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so the description must compensate. It maps 'frame range' to start/end, 'fps' and 'step' to fps/step/fps_base, and 'manage markers' to op/name. However, it does not explain parameters like frame, response_format (though that has its own schema description), or the relationships between them. It adds partial meaning but not enough to fully cover the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb-resource pair: report or set frame range, fps, step, and manage timeline markers. It is specific about what the tool does, but it does not explicitly differentiate from siblings like blender_set_frame or blender_animation_info, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. There is no mention of exclusions, prerequisites, or conditions for selecting specific operations. The description lists actions but provides no context for choosing between them or other timeline-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_undoA
Undo the last change pushed onto Blender's undo stack.
Pair it with blender_checkpoint to make a step reversible. Refuses to
rewind across an Open File, because Blender's undo stack does not survive
one and attempting it crashes Blender rather than raising.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false and provide no safety context, so the description carries the burden. It adds meaningful behavioral detail: the undo stack semantics, the refusal to rewind across an Open File, and the critical warning that attempting this crashes Blender rather than raising an error. This is valuable beyond the structured 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 compact and front-loaded with the core action. The second sentence adds practical pairing guidance, and the third explains a critical edge case. Every sentence earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core operation, the companion tool, and the dangerous edge case involving Open File. There is no output schema, but the description does not need to explain return values for an undo operation. It could mention behavior when the undo stack is empty, but that is a minor omission given the strong context 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?
The only parameter, response_format, is fully documented in the schema with an enum and description, so schema coverage is 100%. The description adds no additional parameter guidance, which is acceptable because the schema already fully explains the 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 the action ('Undo the last change pushed onto Blender's undo stack') with a specific verb and resource. It distinguishes itself from related tools by referencing blender_checkpoint and explaining its relationship to the undo stack, making its role unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs pairing with blender_checkpoint to make a step reversible, which is a clear usage pattern. It also warns against use across an Open File, providing a concrete limitation. It does not explicitly contrast with blender_redo, but the name and description make the distinction obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_uvA
Unwrapping and UV maintenance: report, smart project, unwrap, pack islands, weld, scale and centre. A UV layer is created if missing.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| action | Yes | UV operation. | |
| margin | No | ||
| method | No | For unwrap: ANGLE_BASED or CONFORMAL. | ANGLE_BASED |
| objects | No | Target meshes. | |
| distance | No | ||
| angle_limit_deg | No | ||
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
| scale_to_bounds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds one behavioral trait beyond the annotations: 'A UV layer is created if missing.' This is useful context. However, it does not disclose whether existing UVs are overwritten, what happens to UV islands during packing, or other side effects. Annotations are all false (not read-only, not idempotent, not destructive), so no contradiction exists, but the description could provide more behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the purpose and then lists the actions. It is efficient with no filler. It could be slightly more structured by separating the action list, but it remains appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 10 parameters and no output schema, the description is too brief. It does not explain the effects of key parameters like margin, distance, or angle_limit_deg, nor what 'report' returns or the behavior of 'weld' and 'scale'. The description provides insufficient context for an agent to use the tool correctly without inspecting the schema 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 description coverage is only 40% (4 of 10 parameters have descriptions). The tool description does not explain any parameters beyond listing the actions, leaving margin, distance, angle_limit_deg, scale_to_bounds, x, and y without semantic explanation. The description fails to compensate for the low 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 tool's purpose: 'Unwrapping and UV maintenance' and lists the specific actions it performs (report, smart project, unwrap, pack islands, weld, scale and centre). This distinguishes it from sibling tools, as no other sibling covers UV operations. The addition 'A UV layer is created if missing' further clarifies its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 that this tool is for UV unwrapping and maintenance. It implies usage when UV operations are needed, though it does not explicitly mention alternatives or when not to use it. Since no sibling tool covers the same domain, the lack of exclusions is acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_validateARead-onlyIdempotent
Audit the model and return a scored report: scale, dimensions, normals, topology, intersections, symmetry, naming, materials, UVs, transforms, pivots, poly budget, LODs, lighting and orphan datablocks.
This is the first tool to reach for after building something, and again
before exporting. Pass target to check real-world proportions against a
known vehicle or asset spec.
Each check reports ok, info, warn or error; a check that itself
crashes is reported as an error entry rather than aborting the audit, so
you always get a full picture.
| Name | Required | Description | Default |
|---|---|---|---|
| checks | No | Run only these checks: scale, dimensions, normals, topology, intersections, symmetry, naming, materials, uv, transforms, pivots, budget, lods, lighting, orphans. | |
| ignore | No | Glob patterns to exclude, e.g. ['Sweep', 'Ground*']. Studio props otherwise dominate every size check. | |
| target | No | Real-world spec to check against, e.g. {'length': 3.765, 'width': 1.490, 'height': 1.370}. Keys: length, width, height (metres). | |
| objects | No | Restrict the audit to these object names. | |
| orphans | No | ||
| max_faces | No | Face budget above which the budget check warns. | |
| tolerance_pct | No | Allowed deviation for the dimension check, in percent. | |
| weld_distance | No | Weld distance used when reporting duplicate vertices. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
| max_pivot_offset | No | Distance from geometry centre above which a pivot is reported. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds valuable behavioral detail beyond that: it explains the per-check status levels and, importantly, that a crashing check is reported as an 'error' entry rather than aborting the audit, which is non-obvious and useful for reliable invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tightly structured: purpose, usage timing, and behavior are each covered in distinct, efficient sentences. The long first sentence is dense but every item in it is substantive, and the other two sentences add necessary context 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?
For a complex 10-parameter tool with no output schema, the description covers the scope of checks, the output format (scored report with statuses), and error resilience. It doesn't specify the precise structure of the scored report, but the status-level explanation plus the `response_format` parameter makes the return value sufficiently predictable.
Complex tools with many parameters or behaviors need more documentation. 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 90%, so the input schema already documents most parameters. The description adds a meaningful note about `target` for real-world proportion checking, but it does not clarify the other parameters beyond schema content, which is acceptable given the high 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 states a specific verb ('Audit') and resource ('the model'), and enumerates the exact categories checked, making the tool's purpose unambiguous. It does not explicitly name or differentiate from similar siblings like blender_find_problems or blender_analyze_mesh, but the comprehensive 'audit and scored report' framing clearly sets it apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit timing guidance: 'the first tool to reach for after building something, and again before exporting.' It does not provide explicit when-not-to-use guidance or name alternatives, but the context is clear enough for an agent to select this over sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_world_shaderA
Build the world shader: flat colour, vertical gradient, physical sky, or an HDRI image. Nishita with sun elevation gives a believable daylight environment without an HDRI download.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | For type='image', an .hdr or .exr file. | |
| type | No | World shader type; 'image' sets an HDRI. | sky |
| angle | No | ||
| color | No | For type='color', RGB. | |
| altitude | No | Metres, Nishita only. | |
| rotation | No | HDRI rotation in degrees. | |
| sky_type | No | Physical sky model. | NISHITA |
| strength | No | ||
| top_color | No | Gradient top RGB. | |
| air_density | No | ||
| bottom_color | No | Gradient bottom RGB. | |
| sun_rotation | No | Degrees around Z. | |
| sun_elevation | No | Degrees above horizon. | |
| response_format | No | 'markdown' for readable output, 'json' for raw structured data. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the description doesn't need to restate those. The description adds useful context about the Nishita daylight environment suggestion, but it doesn't disclose what happens to an existing world shader, whether the operation replaces or modifies the current world, or whether it requires an active scene. With annotations covering the safety profile, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The first sentence lists the four shader types, and the second provides a practical recommendation. The most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 14 parameters, no required parameters, and no output schema. The description covers the high-level purpose and a usage tip, but it doesn't explain the relationship between the many optional parameters (e.g., when angle vs sun_rotation applies, or how strength interacts with type). For a tool with this many parameters, the description is adequate but leaves the agent to infer parameter combinations from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 79%, so the schema already documents most parameters. The description adds a helpful hint that 'Nishita with sun elevation gives a believable daylight environment', which maps to sky_type and sun_elevation, but it doesn't explain the interplay between type, sky_type, angle, and rotation beyond what the schema provides. Baseline 3 is correct when the schema does most of the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Build') and resource ('world shader'), and enumerates the four supported shader types (flat colour, vertical gradient, physical sky, HDRI image). It also names the Nishita sky model with sun elevation as a recommended option, which distinguishes this tool from siblings like blender_make_material or blender_build_shader.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use this tool: when building a world shader, and it even suggests Nishita with sun elevation as a lightweight alternative to HDRI downloads. It does not explicitly name sibling alternatives or state when not to use it, but the context is strong enough for an agent to select it appropriately among the many blender_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
53 tool updates
v4.4.0- Added
blender_append_node_group - Added
blender_auto_light_scene - Added
blender_auto_uv - Added
blender_auto_validate - Added
blender_blend_contents - Added
blender_build_shader - Added
blender_camera_focus - Added
blender_camera_move - Added
blender_connect_shader - Added
blender_create_animation - Added
blender_curves - Added
blender_diagnose - Added
blender_download - Added
blender_download_animations - Added
blender_download_textures - Added
blender_drivers - Added
blender_export_asset - Added
blender_fetch_asset - Added
blender_filesystem - Added
blender_fix_topology - Added
blender_fix_uv_mapping - Added
blender_generate_lods - Added
blender_import_asset - Added
blender_install_package - Added
blender_keyframe_channel - Added
blender_list_actions - Added
blender_list_addons - Added
blender_list_installed_addons - Added
blender_list_libraries - Added
blender_list_packages - Added
blender_make_material - Added
blender_manage_action - Added
blender_manage_addon - Added
blender_material_report - Added
blender_nla - Added
blender_paint_texture - Added
blender_paint_vertex_colors - Added
blender_procedural_material - Added
blender_python_env - Added
blender_quality_guidelines - Added
blender_remove_keyframes - Added
blender_render_report - Added
blender_scripts_and_texts - Added
blender_search_library - Added
blender_sequencer - Added
blender_set_setting - Added
blender_set_shader_input - Added
blender_settings_report - Added
blender_shader_info - Added
blender_shape_keys - Added
blender_simulate - Added
blender_timeline - Added
blender_world_shader
69 tool updates
v2.0.0- First observed
blender_add_camera - First observed
blender_add_light - First observed
blender_add_modifier - First observed
blender_add_primitive - First observed
blender_analyze_mesh - First observed
blender_animation_info - First observed
blender_apply_modifier - First observed
blender_apply_transform - First observed
blender_assign_material - First observed
blender_assign_to_collection - First observed
blender_bake_texture - First observed
blender_batch - First observed
blender_capture_viewport - First observed
blender_checkpoint - First observed
blender_create_collection - First observed
blender_create_material - First observed
blender_create_mesh - First observed
blender_delete_objects - First observed
blender_duplicate_objects - First observed
blender_edit_mesh - First observed
blender_execute_python - First observed
blender_export_model - First observed
blender_find_problems - First observed
blender_generate_pbr_set - First observed
blender_generate_texture - First observed
blender_geometry - First observed
blender_get_object - First observed
blender_get_scene - First observed
blender_import_model - First observed
blender_insert_keyframe - First observed
blender_join_objects - First observed
blender_list_images - First observed
blender_list_materials - First observed
blender_list_objects - First observed
blender_list_operators - First observed
blender_load_image_texture - First observed
blender_look_at - First observed
blender_measure - First observed
blender_modifiers - First observed
blender_new_file - First observed
blender_open_blend - First observed
blender_pack_textures - First observed
blender_parent_objects - First observed
blender_physics - First observed
blender_pose - First observed
blender_redo - First observed
blender_rename_object - First observed
blender_render - First observed
blender_render_extras - First observed
blender_rig - First observed
blender_run_operator - First observed
blender_save_blend - First observed
blender_scene_ops - First observed
blender_search_api - First observed
blender_select_by - First observed
blender_select_objects - First observed
blender_set_active_camera - First observed
blender_set_context - First observed
blender_set_frame - First observed
blender_set_material_node - First observed
blender_set_render_settings - First observed
blender_set_transform - First observed
blender_set_world - First observed
blender_setup - First observed
blender_shade_smooth - First observed
blender_status - First observed
blender_undo - First observed
blender_uv - First observed
blender_validate
TDQS
Scored across 122 tools
Many tools occupy nearly identical territory: blender_import_asset/blender_import_model and blender_export_asset/blender_export_model describe essentially the same operations, and validation is split across blender_validate, blender_find_problems, blender_auto_validate, and blender_diagnose. There are also multiple UV tools and several material-creation paths, forcing an agent to parse fine-print differences to avoid misselection.
The blender_ prefix and snake_case style are consistent, and most tools use a verb_noun pattern. However, many domain-noun tools like blender_uv, blender_rig, blender_physics, blender_curves, blender_modifiers, and blender_scene_ops break the verb convention, and vague verbs like manage plus near-duplicate import/export naming weaken predictability.
122 tools is an extreme mismatch, far beyond the 50+ threshold for incoherence. While Blender is a large domain, many tools are bundles or near-duplicates that could be consolidated into a much smaller, more navigable set without losing real capability.
The tool surface covers nearly every major Blender workflow: objects, meshes, materials, textures, UVs, animation, physics, rendering, import/export, and asset libraries, with an explicit Python escape hatch for anything missing. Minor gaps remain as dedicated operations, such as deleting materials/images, adding constraints, or editing vertex groups, but these are workable via blender_run_operator or blender_execute_python.
Maintenance
Related MCP Connectors
Cloud Blender for AI agents: build, inspect, render and animate 3D scenes over remote MCP. Keep editable .blend files and export GLB or STL. Make your first 3D asset free: 30 compute minutes/month, no credit card.
AI visual generation agent: multi-pipeline rendering, prompt crafting, and image composition.
Generate and edit images, video, voice, lip-sync and 3D models from your AI agent.
On-brand creative studio for AI agents: images, video, audio, and 3D.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to control Blender 3D software through natural language, with tools for modeling, materials, animation, rendering, and rigging.3812MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to create, inspect, and animate 3D scenes in Blender through natural language and structured tool calls.6MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to fully control Blender through 50+ tools for 3D modeling, animation, materials, and scene management via HTTP endpoints.-
- AlicenseCqualityAmaintenanceEnables AI agents to control Blender through 150+ tools across 24 modules, including modeling, materials, lighting, animation, rendering, mesh quality analysis, and visual feedback, plus expert prompts and goal-first workflow management.209MIT