Skip to main content
Glama

Blender MCP

English | 中文

PyPI Blender MCP License


English

MCP server integration for AI-assisted Blender automation.

Layered Tool Architecture

Blender MCP uses a four-layer tool architecture with 29 specialized tools organized by intent:

Layer

Tool Count

Purpose

Perception

11 tools

Read Blender state deeply with controllable granularity

Declarative Write

4 tools

Node editor (6 contexts) + Animation + VSE Sequencer + Mesh editing

Imperative Write

9 tools

Object/Material/Modifier/UV/Constraint/Physics/Scene

Fallback

5 tools

execute_operator + execute_script + import_export + render + batch

Perception Layer (11 tools):

Tool

Description

blender_get_objects

List/scene objects with filters

blender_get_object_data

Deep object data (12 include options)

blender_get_node_tree

Read any node tree (6 contexts)

blender_get_animation_data

Keyframes/NLA/drivers/shape keys

blender_get_materials

Material asset list

blender_get_scene

Scene-level global info

blender_get_collections

Collection hierarchy tree

blender_get_armature_data

Armature/bone hierarchy/constraints/poses

blender_get_images

Texture/image asset list

blender_capture_viewport

Viewport screenshot

blender_get_selection

Current selection/mode/active object

Declarative Write Layer (4 tools):

Tool

Description

blender_edit_nodes

Edit any node tree (add/remove/connect/disconnect/set_value) ⭐ Core

blender_edit_animation

Edit animation (keyframe/NLA/driver/shape_key/frame_range)

blender_edit_sequencer

Edit VSE video sequence (strip/transition/effect)

blender_edit_mesh

Edit mesh data (vertices/edges/faces)

Imperative Write Layer (9 tools):

Tool

Description

blender_create_object

Create scene objects (MESH/LIGHT/CAMERA/CURVE/EMPTY/ARMATURE/TEXT)

blender_modify_object

Transform/parent/visibility/rename/delete

blender_manage_material

Material create/PBR edit/assign/duplicate/delete

blender_manage_modifier

Modifier add/configure/apply/delete/reorder

blender_manage_collection

Collection create/delete/object link/hierarchy/visibility

blender_manage_uv

UV unwrap/seam/pack/layer management

blender_manage_constraints

Object/bone constraint add/configure/delete

blender_manage_physics

Physics simulation add/configure/bake

blender_setup_scene

Render engine/world environment/timeline config

Fallback Layer (5 tools):

Tool

Description

blender_execute_operator

Execute any bpy.ops.* operator

blender_execute_script

Execute arbitrary Python code (⚠️ use with caution)

blender_import_export

Import/export asset files (FBX/OBJ/GLTF/USD/Alembic/STL/etc.)

blender_render_scene

Render scene to image/video

blender_batch_execute

Execute multiple tool calls in a single request (performance optimization)

Note: All tools use blender_ prefix to avoid conflicts in multi-server environments. Tool names follow MCP specification with underscores. Payload wrapper is removed - all parameters are exposed directly as top-level inputSchema properties.

Tool Naming: All tools use the blender_ prefix to avoid conflicts in multi-server environments.

Features

  • Undo Support: All write operations push to Blender's undo stack — Ctrl+Z works correctly.

  • Localized Blender Support: Works in any Blender language. Uses English display names like "Principled BSDF" and they resolve to localized names automatically.

  • Error Reporting: Detailed error messages from the addon are surfaced in MCP tool responses.

  • Progress Notifications: MCP progress notifications for long-running operations (render, import/export). Clients can include progressToken in _meta field to receive real-time progress updates.

Progress Notifications

Blender MCP supports MCP progress notifications for long-running operations. To receive progress updates:

// Client request with progressToken
{
  "method": "tools/call",
  "params": {
    "name": "blender_render_scene",
    "arguments": {"output_path": "/tmp/render.png"},
    "_meta": {"progressToken": "render-123"}
  }
}

// Server sends progress notifications
{
  "jsonrpc": "2.0",
  "method": "notifications/progress",
  "params": {
    "progressToken": "render-123",
    "progress": 50,
    "total": 100,
    "message": "Rendering frame 50/100"
  }
}

Safety features:

  • Rate limited to 100ms minimum interval between notifications

  • Progress messages truncated to 1000 characters

  • Maximum 100 concurrent progress tokens

  • Thread-safe notification output

Known Limitations (Blender 5.1)

Limitation

Cause

VSE strip creation fails

Blender 5.1 timer context API restriction

Compositor node editing fails

Blender 5.1 timer context API restriction

Object pointer properties can't be set

MCP set_property limitation

Multi-material slot creation

MCP assign only replaces slot 0

Quick Start

New to Blender MCP? See the 5-Minute Quick Start Guide for step-by-step setup instructions.

// Create a cube
{
  "name": "MyCube",
  "object_type": "MESH",
  "primitive": "cube",
  "size": 2.0
}

// Move it
{
  "name": "MyCube",
  "location": [1, 2, 3]
}

// Add a subdivision modifier
{
  "action": "add",
  "object_name": "MyCube",
  "modifier_name": "Subdivision",
  "modifier_type": "SUBSURF",
  "settings": {"levels": 2}
}

// Read object data
{
  "name": "MyCube",
  "include": ["summary", "modifiers"]
}

// Capture viewport
{
  "shading": "SOLID",
  "format": "PNG"
}

Installation

Blender Addon

  1. Copy or symlink src/blender_mcp_addon/ to your Blender addons folder:

    • Windows: %APPDATA%\Blender\<version>\scripts\addons\blender_mcp_addon

    • macOS: ~/Library/Application Support/Blender/<version>/scripts/addons/blender_mcp_addon

    • Linux: ~/.config/blender/<version>/scripts/addons/blender_mcp_addon

  2. In Blender: Edit > Preferences > Add-ons > Search "Blender MCP" > Enable

  3. Configure and click "Start Server"

MCP Server

# Recommended: one-line install & run
uvx ageless-blender-mcp

# Or install globally
pip install ageless-blender-mcp
blender-mcp

# Or from source
uv sync
python -m blender_mcp.mcp_protocol

Supported MCP Clients

Version Compatibility

Blender Version

Status

4.2 LTS

✅ Supported

4.5 LTS

✅ Supported

5.0+

✅ Supported

5.1

✅ Supported (some API limitations, see above)

< 4.2

❌ Not Supported

See docs/versioning/support-matrix.md for details.


Related MCP server: dcc-mcp-blender

中文

用于 AI 辅助 Blender 自动化的 MCP 服务器集成。

分层工具架构

Blender MCP 采用四层工具架构29 个专用工具按意图组织:

层级

工具数量

用途

感知层

11 个工具

以可控粒度深度读取 Blender 状态

声明式写入层

4 个工具

节点编辑器(6种上下文)+ 动画 + VSE 序列编辑器 + 网格编辑

命令式写入层

9 个工具

对象/材质/修改器/UV/约束/物理/场景

后备层

5 个工具

execute_operator + execute_script + import_export + render + batch

感知层(11 个工具)

工具

描述

blender_get_objects

列出/筛选场景对象

blender_get_object_data

单对象深度数据(12 种 include 选项)

blender_get_node_tree

读取任意节点树(6 种上下文)

blender_get_animation_data

关键帧/NLA/驱动器/形态键

blender_get_materials

材质资产列表

blender_get_scene

场景级全局信息

blender_get_collections

集合层级树

blender_get_armature_data

骨架/骨骼层级/约束/姿态

blender_get_images

纹理/图片资产列表

blender_capture_viewport

视口截图

blender_get_selection

当前选择/模式/活动对象

声明式写入层(4 个工具)

工具

描述

blender_edit_nodes

编辑任意节点树(添加/移除/连接/断开/设置值)⭐ 核心

blender_edit_animation

编辑动画(关键帧/NLA/驱动器/形态键/帧范围)

blender_edit_sequencer

编辑 VSE 视频序列(片段/转场/特效)

blender_edit_mesh

编辑网格数据(顶点/边/面)

命令式写入层(9 个工具)

工具

描述

blender_create_object

创建场景对象(MESH/LIGHT/CAMERA/CURVE/EMPTY/ARMATURE/TEXT)

blender_modify_object

变换/父子/可见性/重命名/删除

blender_manage_material

材质创建/PBR 编辑/赋予/复制/删除

blender_manage_modifier

修改器添加/配置/应用/删除/排序

blender_manage_collection

集合创建/删除/对象链接/层级/可见性

blender_manage_uv

UV 展开/缝合线/打包/图层管理

blender_manage_constraints

对象/骨骼约束添加/配置/删除

blender_manage_physics

物理模拟添加/配置/烘焙

blender_setup_scene

渲染引擎/世界环境/时间线配置

后备层(5 个工具)

工具

描述

blender_execute_operator

执行任意 bpy.ops.* 操作符

blender_execute_script

执行任意 Python 代码(⚠️ 谨慎使用)

blender_import_export

导入/导出资产文件(FBX/OBJ/GLTF/USD/Alembic/STL 等)

blender_render_scene

渲染场景到图像/视频

blender_batch_execute

在单次请求中执行多个工具调用(性能优化)

注意: 所有工具使用 blender_ 前缀以避免多服务器环境下的命名冲突。工具名称符合 MCP 规范使用下划线。Payload 包装层已移除 - 所有参数直接暴露为顶层 inputSchema 属性。

工具命名: 所有工具使用 blender_ 前缀以避免多服务器环境下的命名冲突。

特性

  • 撤销支持:所有写入操作自动推入 Blender 撤销栈 — Ctrl+Z 正确回退。

  • 本地化支持:支持任何语言的 Blender。使用英文显示名如 "Principled BSDF" 会自动解析为本地化名称。

  • 错误报告:插件详细错误信息在 MCP 工具响应中可见。

  • 进度通知:支持长时间运行操作(渲染、导入导出)的 MCP 进度通知。客户端可在 _meta 字段中包含 progressToken 以接收实时进度更新。

进度通知

Blender MCP 支持长时间运行操作的 MCP 进度通知。接收进度更新:

// 客户端请求携带 progressToken
{
  "method": "tools/call",
  "params": {
    "name": "blender_render_scene",
    "arguments": {"output_path": "/tmp/render.png"},
    "_meta": {"progressToken": "render-123"}
  }
}

// 服务端发送进度通知
{
  "jsonrpc": "2.0",
  "method": "notifications/progress",
  "params": {
    "progressToken": "render-123",
    "progress": 50,
    "total": 100,
    "message": "正在渲染第 50/100 帧"
  }
}

安全特性

  • 频率限制:通知间隔最小 100ms

  • 进度消息截断至 1000 字符

  • 最多 100 个并发进度 token

  • 线程安全的通知输出

已知限制(Blender 5.1)

限制

原因

VSE 片段创建失败

Blender 5.1 定时器上下文 API 限制

合成器节点编辑失败

Blender 5.1 定时器上下文 API 限制

对象指针属性无法设置

MCP set_property 限制

多材质槽创建

MCP assign 仅替换槽 0

快速开始

初次使用? 请参阅 5 分钟快速开始指南 获取详细安装步骤。

// 创建一个立方体
{
  "name": "MyCube",
  "object_type": "MESH",
  "primitive": "cube",
  "size": 2.0
}

// 移动它
{
  "name": "MyCube",
  "location": [1, 2, 3]
}

// 添加细分修改器
{
  "action": "add",
  "object_name": "MyCube",
  "modifier_name": "Subdivision",
  "modifier_type": "SUBSURF",
  "settings": {"levels": 2}
}

// 读取对象数据
{
  "name": "MyCube",
  "include": ["summary", "modifiers"]
}

// 捕获视口
{
  "shading": "SOLID",
  "format": "PNG"
}

安装

Blender 插件

  1. src/blender_mcp_addon/ 复制或符号链接到 Blender 插件目录:

    • Windows: %APPDATA%\Blender\<版本>\scripts\addons\blender_mcp_addon

    • macOS: ~/Library/Application Support/Blender/<版本>/scripts/addons/blender_mcp_addon

    • Linux: ~/.config/blender/<版本>/scripts/addons/blender_mcp_addon

  2. 在 Blender 中:编辑 > 偏好设置 > 插件 > 搜索 "Blender MCP" > 启用

  3. 配置后点击 "启动服务器"

MCP 服务器

# 推荐:一行命令安装并运行
uvx ageless-blender-mcp

# 或全局安装
pip install ageless-blender-mcp
blender-mcp

# 或从源码
uv sync
python -m blender_mcp.mcp_protocol

支持的 MCP 客户端

版本兼容性

Blender 版本

状态

4.2 LTS

✅ 支持

4.5 LTS

✅ 支持

5.0+

✅ 支持

5.1

✅ 支持(部分 API 限制,见上方说明)

< 4.2

❌ 不支持

详见 docs/versioning/support-matrix.md


Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

Star History

Star History Chart

License

MIT License - see LICENSE for details.

Available Tools

29 tools
blender_batch_executeA
Destructive

Execute multiple operations in a single batch request. Reduces MCP round-trips for complex workflows.

Use this when: you need to perform multiple independent operations efficiently.

Do NOT use for: single operations (use the specific tool directly).

ParametersJSON Schema
NameRequiredDescriptionDefault
operationsYesList of operations to execute.
stop_on_errorNoStop on first error (default: true).
continue_on_errorNoContinue even on errors (default: false).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate destructiveHint true, so description doesn't need to restate that. Description adds context that batch reduces round-trips, but doesn't elaborate on side effects of individual operations, which is acceptable as they are independent.

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

Conciseness5/5

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

Three sentences, front-loaded with purpose, followed by usage guidance. No redundant information, every sentence adds value.

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

Completeness4/5

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

The description adequately explains the tool's purpose and usage. No output schema exists, but the tool's output (batch results) is implied. Error handling is covered by parameters. Sibling tools are many, and the batch tool clearly fills a gap.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are well-documented. The description adds no additional meaning beyond what the schema provides, so baseline of 3 is appropriate.

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

Purpose5/5

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

Clearly states it executes multiple operations in a single batch request, reducing round-trips. Differentiates from sibling tools by focusing on multiple vs single operations.

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

Usage Guidelines5/5

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

Explicitly provides when to use (multiple independent operations) and when not to use (single operations, with alternative to use specific tool directly).

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

blender_capture_viewportA
Read-onlyIdempotent

Capture a screenshot of the current 3D viewport. This is the LLM's only way to 'see' the visual result. Supports different shading modes and camera view.

Use this when: you need visual verification of changes.

Do NOT use for: scene data queries (use blender_get_scene).

ParametersJSON Schema
NameRequiredDescriptionDefault
shadingNoViewport shading mode for the capture.SOLID
camera_viewNoIf true, capture from the active camera's perspective.
formatNoImage format for the capture.PNG

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds useful context that this is the LLM's only way to 'see' visual results, but doesn't elaborate on return format or potential limitations 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.

Conciseness5/5

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

The description is remarkably concise, using only four sentences to convey purpose, usage, and exclusions. It is front-loaded with the core action and no redundant information.

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

Completeness4/5

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

Given the tool's simplicity with zero required parameters and clear annotations, the description covers the essential use case, when to use, and when not to. Mentioning it's the only visual feedback is important context. However, it could briefly mention the return format (image) since there is no output schema.

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

Parameters3/5

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

Schema description coverage is 100%, and the description merely hints at shading and camera view options without adding new meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool captures a screenshot of the current 3D viewport, which is a specific verb-resource combination. It distinguishes itself from siblings by noting it's the LLM's only way to see visual results, and contrasts with blender_get_scene for scene data queries.

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

Usage Guidelines5/5

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

Explicit 'Use this when' and 'Do NOT use for' clauses provide clear guidance on when to use the tool (visual verification) and when not to (scene data queries, directing to blender_get_scene).

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

blender_create_objectA

Create a new object in the Blender scene. Supports mesh primitives, lights, cameras, curves, empties, armatures, and text objects. Automatically linked to the specified collection.

Use this when: you need to add a new object to the scene.

Do NOT use for: modifying existing objects (use blender_modify_object), adding modifiers (use blender_manage_modifier), assigning materials (use blender_manage_material).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the new object.
object_typeNoType of object to create.MESH
primitiveNoMesh primitive shape. Only for object_type=MESH.
sizeNoSize of mesh primitive in Blender units.
segmentsNoSegments for sphere/cylinder/cone/torus.
light_typeNoLight type. Only for object_type=LIGHT.POINT
energyNoLight energy in watts. Only for LIGHT.
colorNoLight color [r,g,b] range 0-1. Only for LIGHT.
lensNoCamera focal length in mm. Only for CAMERA.
clip_startNoCamera near clip. Only for CAMERA.
clip_endNoCamera far clip. Only for CAMERA.
set_active_cameraNoSet as active scene camera. Only for CAMERA.
curve_typeNoSpline type. Only for CURVE.BEZIER
bodyNoText content. Only for TEXT.
extrudeNoExtrude depth for TEXT.
locationNo3D position [x, y, z].
rotationNoEuler rotation [x, y, z] in radians.
scaleNoScale [x, y, z].
collectionNoCollection to link to. Uses scene collection if omitted.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds context about automatic collection linking and implies state changes. However, it does not clarify behavior on repeated calls (idempotentHint=false) or potential side effects.

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

Conciseness5/5

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

Two short paragraphs: first states core purpose and supported types, second gives usage guidelines. No wasted words, front-loaded with key information.

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

Completeness4/5

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

Given 19 parameters and no output schema, the description covers the overall purpose well but does not specify what the tool returns (e.g., the created object). However, the schema and guidelines compensate for most needs.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description mentions supported object types but does not add meaning beyond parameter names and descriptions already in the schema. No additional parameter context.

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

Purpose5/5

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

The description clearly states the action (create a new object), lists supported types (mesh, light, camera, etc.), and mentions automatic collection linking. This distinguishes it from sibling tools like blender_modify_object.

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

Usage Guidelines5/5

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

Explicitly provides when-to-use (adding a new object) and when-not-to-use with specific alternative tools (blender_modify_object, blender_manage_modifier, blender_manage_material). No ambiguity.

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

blender_edit_animationA
Destructive

Edit animation data — insert/modify/delete keyframes, manage NLA strips, set drivers, control shape keys, and configure timeline settings.

Use this when: you need to create or modify animation.

Do NOT use for: reading animation data (use blender_get_animation_data).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesThe animation operation to perform.
object_nameNoTarget object name.
data_pathNoProperty path for keyframe/driver (e.g. 'location', 'rotation_euler', 'scale').
indexNoArray index for the property (-1 for all channels, 0/1/2 for X/Y/Z).
frameNoFrame number for keyframe operations.
valueNoValue for keyframe or shape key (number, array, or boolean).
interpolationNoKeyframe interpolation type.
nla_actionNoAction name for NLA strip operations.
nla_start_frameNoStart frame for NLA strip.
nla_strip_nameNoNLA strip name for modify/remove.
driver_expressionNoPython expression for driver.
shape_key_nameNoShape key name for set_shape_key.
fpsNoFrames per second (for set_frame_range).
frame_startNoStart frame (for set_frame_range or set_frame).
frame_endNoEnd frame (for set_frame_range).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations destuctiveHint=true and readOnlyHint=false are reinforced by description mentioning insert/modify/delete. No contradiction, and description adds specifics about what gets modified.

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

Conciseness5/5

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

The description is very concise: two sentences with purpose and usage guidelines, no unnecessary words. Front-loaded with the main function.

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

Completeness3/5

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

Given the complexity of the tool (15 params, 11 actions), the description is adequate for orientation but lacks details on parameter dependencies, return values, or prerequisites. No output schema to compensate.

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

Parameters3/5

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

Schema covers all 15 parameters with descriptions (100% coverage), so the description's lack of parameter detail is acceptable. No additional semantics beyond the schema.

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

Purpose5/5

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

The description clearly states it edits animation data with specific operations (keyframes, NLA strips, drivers, shape keys, timeline) and distinguishes from the sibling blender_get_animation_data for reading.

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

Usage Guidelines5/5

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

Explicitly says 'Use this when: you need to create or modify animation' and 'Do NOT use for: reading animation data (use blender_get_animation_data)', providing clear usage context and an alternative.

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

blender_edit_meshA
Destructive

Edit mesh geometry with operations like extrude, inset, bevel, loop cut, dissolve, merge, subdivide, and delete.

Use this when: you need to modify mesh topology.

Do NOT use for: UV operations (use blender_manage_uv), object transforms (use blender_modify_object).

ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameYesName of the mesh object.
actionYesMesh operation to perform.
selectionNoSelection type for delete action.
select_actionNoAction for select_all.
modeNoSelection mode for select_mode action.
thresholdNoMerge threshold for merge_vertices.
segmentsNoSegments for bevel.
number_cutsNoCuts for subdivide/loop_cut.
amountNoAmount for inset/bevel.
use_boundaryNoFor inset, inset boundary edges.
use_even_offsetNoFor inset, use even offset.
use_relative_offsetNoFor inset, use relative offset.
use_vertsNoFor dissolve, also dissolve vertices.
use_face_splitNoFor dissolve_edges, use face split.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false, so the description doesn't need to repeat safety info. It adds operation names but no further behavioral details beyond what annotations imply. Given the annotation coverage, a score of 3 is appropriate.

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

Conciseness5/5

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

Extremely concise: two sentences for purpose and usage guidelines, plus two bullet-like lines. No wasted words. Front-loaded with the primary action.

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

Completeness4/5

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

Given 14 parameters, all schema-documented, and no output schema, the description adequately covers purpose and usage. Some operation-specific parameter interactions are implied but not detailed, yet the enum values and schema make it sufficient. Slightly less than perfect due to lack of deeper examples.

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

Parameters3/5

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

Schema coverage is 100% - all 14 parameters are documented in the schema. The description does not add any parameter-specific meaning beyond listing actions. Baseline 3 is correct as the schema already handles parameter semantics.

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

Purpose5/5

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

The description clearly states 'Edit mesh geometry' and lists specific operations like extrude, inset, bevel, etc. It distinguishes from siblings such as blender_manage_uv and blender_modify_object by focusing on mesh topology editing.

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

Usage Guidelines5/5

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

Explicitly provides 'Use this when: you need to modify mesh topology.' and 'Do NOT use for: UV operations (use blender_manage_uv), object transforms (use blender_modify_object).' This gives clear context and references alternative sibling tools.

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

blender_edit_nodesA
Destructive

Edit any node tree in Blender — add/remove nodes, connect/disconnect sockets, set node input values and properties. Supports all 7 node tree contexts. Operations are executed in order within a single call.

Use this when: you need to build or modify shader, compositor, or geometry node graphs.

Do NOT use for: high-level PBR properties (use blender_manage_material), reading node trees (use blender_get_node_tree first).

ParametersJSON Schema
NameRequiredDescriptionDefault
tree_typeYesType of node tree to edit.
contextYesContext within the tree type. SHADER: OBJECT|WORLD|LINESTYLE|NODE_GROUP. COMPOSITOR: SCENE|NODE_GROUP. GEOMETRY: MODIFIER|TOOL|NODE_GROUP.
targetNoTarget name. For SHADER/OBJECT: material name. For SHADER/WORLD: world name. For GEOMETRY/MODIFIER: 'ObjectName/ModifierName'. For COMPOSITOR/SCENE: omit or scene name. For NODE_GROUP: node group name in bpy.data.node_groups.
operationsYesArray of node operations to execute in order.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true. The description adds that operations are executed in order within a single call, which is useful behavioral context. No contradictions.

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

Conciseness5/5

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

The description is brief, front-loaded with the main action, and uses bullet-like structure for usage guidelines. Every sentence adds value without redundancy.

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

Completeness4/5

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

The description covers the core functionality and usage boundaries. However, without an output schema, it could mention return values or error behavior. Still, the detailed input schema compensates.

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

Parameters3/5

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

Schema description coverage is 100%, so the description adds minimal additional meaning beyond what's already provided in the schema. It notes 'all 7 node tree contexts' but this is implicit from the enums.

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

Purpose5/5

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

The description clearly states the tool's purpose: editing node trees in Blender (add/remove nodes, connect/disconnect sockets, set values). It distinguishes itself from siblings by mentioning high-level material properties and reading node trees, which are handled by other tools.

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

Usage Guidelines5/5

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

The description explicitly provides when to use the tool (building or modifying node graphs) and when not to (PBR properties, reading node trees), with direct references to alternative tools (blender_manage_material, blender_get_node_tree).

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

blender_edit_sequencerA
Destructive

Edit the Video Sequence Editor (VSE) — add/modify/delete strips, add transitions and effects. Supports video, image, audio, text, color, and adjustment layer strips.

Use this when: you need to edit video sequences or add VSE effects.

Do NOT use for: compositor node effects (use blender_edit_nodes with tree_type=COMPOSITOR).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesThe sequencer operation to perform.
strip_typeNoType of strip to add (for add_strip action).
filepathNoFile path for VIDEO/IMAGE/AUDIO strips.
channelNoVSE channel number.
frame_startNoStart frame of the strip.
frame_endNoEnd frame of the strip.
strip_nameNoStrip name for modify/delete/move operations.
textNoText content for TEXT strips.
font_sizeNoFont size for TEXT strips.
colorNoColor [r,g,b] or [r,g,b,a] for TEXT/COLOR strips.
effect_typeNoEffect type for add_effect action.
transition_typeNoTransition type for add_transition action.
transition_durationNoDuration in frames for transitions.
settingsNoAdditional strip/effect-specific settings.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true, and the description aligns by mentioning delete operations. It adds context on the range of possible operations (add, modify, delete, effects, transitions), going beyond what annotations provide. 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.

Conciseness5/5

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

Three sentences, front-loaded with the core purpose, followed by usage guidelines. Every sentence serves a distinct purpose with no wasted words.

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

Completeness4/5

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

Given 14 parameters, 100% schema coverage, and no output schema, the description is quite complete. It covers all actions, strip types, and effects. Missing details like return values or error handling, but overall sufficient for a complex editing tool.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description does not add additional semantics for individual parameters beyond what the schema provides. It groups related operations and types at a high level, but that is more about purpose clarity.

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

Purpose5/5

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

Description clearly states the tool edits the Video Sequence Editor (VSE) with specific actions (add/modify/delete strips, add effects/transitions) and lists supported strip types. It distinguishes from the sibling tool blender_edit_nodes by explicitly excluding compositor node effects.

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

Usage Guidelines5/5

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

Provides explicit when-to-use and when-not-to-use guidance, including a direct reference to an alternative tool (blender_edit_nodes with tree_type=COMPOSITOR). This helps the agent select the correct tool.

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

blender_execute_operatorA
Destructive

Execute any Blender operator (bpy.ops.*) by name with parameters.

Use this when: you need a Blender operation not covered by other tools. Prefer specialized tools first for better validation and error messages.

Do NOT use for: object creation (use blender_create_object), script execution (use blender_execute_script), or import/export (use blender_import_export).

ParametersJSON Schema
NameRequiredDescriptionDefault
operatorYesOperator ID in 'category.name' format (e.g., 'mesh.primitive_cube_add').
paramsNoOperator parameters.
contextNoContext override (e.g., active_object, mode).

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true, readOnlyHint=false, and idempotentHint=false. The description describes running arbitrary operators but adds no additional behavioral context (e.g., potential side effects, undo implications). It does not contradict annotations, but adds limited value beyond them.

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

Conciseness5/5

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

The description is three sentences long, front-loaded with purpose, then usage context, then exclusions. Every sentence contributes value with no redundancy.

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

Completeness4/5

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

Given the tool's role as a catch-all for operators, the description adequately covers when to use it and when not to, referencing sibling tools. It does not discuss return values (no output schema), but that is acceptable as results depend on the operator. Minor improvement could mention variable outcomes.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all three parameters. The description mentions the operator ID format ('category.name'), which is already in the schema, but adds no further meaning for 'params' or 'context'. Baseline 3 is appropriate given full schema coverage.

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

Purpose5/5

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

The description clearly states the tool's purpose as executing any Blender operator by name with parameters. It distinguishes itself from sibling tools by explicitly listing what not to use it for (object creation, script execution, import/export), which is specific and helpful.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: 'Use this when you need a Blender operation not covered by other tools' and 'Prefer specialized tools first'. It also gives concrete exclusions with sibling tool names, making the decision clear.

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

blender_execute_scriptA
Destructive

Execute arbitrary Python code in Blender's Python environment. CAUTION: This tool has full access to Blender's API and filesystem.

Use only when: no other tool can accomplish the task. Try blender_execute_operator first for standard Blender operations.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesPython code to execute. Has access to bpy, mathutils, and all Blender modules.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already provide destructiveHint=true. The description adds context about full access to API and filesystem and includes a caution in caps. This reinforces and expands on the annotation without contradiction.

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

Conciseness5/5

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

Three sentences: the first states purpose, the second is a succinct caution (capitalized for emphasis), and the third gives usage guidance. No wasted words, front-loaded.

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

Completeness4/5

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

With one parameter and no output schema, the description covers purpose, caution, and usage guidance. It does not explain return values or error handling, but given the simplicity, it is sufficiently complete.

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

Parameters3/5

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

The input schema already describes the 'code' parameter with details (Python code, access to modules). The tool description adds no new meaning 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.

Purpose5/5

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

The description clearly states the tool executes arbitrary Python code in Blender's environment, which is a specific verb-resource combination. The caution and recommendation to use blender_execute_operator first distinguishes it from sibling tools.

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

Usage Guidelines5/5

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

Explicit guidance: 'Use only when: no other tool can accomplish the task. Try blender_execute_operator first for standard Blender operations.' This clearly states when and when not to use, and names an alternative.

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

blender_get_animation_dataA
Read-onlyIdempotent

Read animation data for an object or scene — keyframes, F-Curves, NLA strips, drivers, and shape keys.

Use this when: you need to understand existing animation before modifying it.

Do NOT use for: modifying animation (use blender_edit_animation).

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesObject name, or 'scene' for scene-level animation data.
includeNoWhich animation data to include.
frame_rangeNoOptional [start, end] frame range to limit keyframe data.
keyframe_detailNoIf true, return individual keyframes. Default: fcurve summaries only.
max_keyframesNoMax keyframes to return (prevents large responses).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint. The description adds context on the data types read (keyframes, F-Curves, etc.) without contradicting annotations. Some missing mention of response size or pagination, but sufficient given annotation coverage.

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

Conciseness5/5

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

Three sentences, front-loaded with purpose, followed by usage guidance and exclusion. Every sentence is necessary and concise.

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

Completeness4/5

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

For a read-only tool with 100% schema coverage and solid annotations, the description covers purpose and usage. It does not explain return format or data volume limits (max_keyframes), but these are partially addressed by the schema and default parameter values.

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

Parameters3/5

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

Schema_description_coverage is 100%, so baseline is 3. The description summarizes the data types already in the schema's 'include' enum but adds no new parameter-level detail beyond what the schema provides.

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

Purpose5/5

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

The description clearly states it reads animation data for objects/scenes, lists specific data types (keyframes, F-Curves, etc.), and distinguishes itself from the sibling tool blender_edit_animation for modifications.

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

Usage Guidelines5/5

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

Explicit 'Use this when' and 'Do NOT use for' sections provide direct guidance on when to select this tool versus the alternative blender_edit_animation.

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

blender_get_armature_dataA
Read-onlyIdempotent

Read armature/bone data — bone hierarchy, head/tail/roll positions, bone constraints, rest/pose transforms, bone groups, IK chains.

Use this when: you need bone/rig information for animation or rigging.

Do NOT use for: general object info (use blender_get_object_data).

ParametersJSON Schema
NameRequiredDescriptionDefault
armature_nameYesName of the armature object.
includeNoWhich data sections to include.
bone_filterNoGlob pattern to filter bones by name (e.g. 'Arm*' or '*_L').

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds value by detailing the specific data sections read (hierarchy, poses, constraints, etc.), which is useful context beyond the annotations. 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.

Conciseness5/5

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

Two sentences plus two usage directives, all front-loaded. Every sentence adds value with no unnecessary words.

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

Completeness4/5

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

Given the tool's simplicity (read-only, 3 params fully described in schema), the description covers purpose, usage context, and general behavior. Missing output format details but acceptable for a read tool.

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

Parameters3/5

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

Schema coverage is 100% with each parameter described. The description lists data sections that map to the include parameter, but it does not add significant meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description starts with a clear verb 'Read' and lists specific data types (bone hierarchy, head/tail/roll positions, constraints, etc.). It also distinguishes from sibling tool blender_get_object_data by explicitly stating what not to use it for.

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

Usage Guidelines5/5

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

Provides explicit 'Use this when' context (bone/rig information for animation or rigging) and a 'Do NOT use for' directive with an alternative tool name, making it very clear when to choose this tool.

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

blender_get_collectionsA
Read-onlyIdempotent

Return the collection hierarchy tree. Each collection shows name, child collections, object count, viewport/render visibility, and color tag.

Use this when: you need to understand scene organization.

Do NOT use for: listing objects (use blender_get_objects with collection filter).

ParametersJSON Schema
NameRequiredDescriptionDefault
rootNoStart from this collection. Default: Scene Collection (root).
depthNoMaximum recursion depth for the tree.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so safety profile is clear. Description adds value by specifying what information is returned (view/render visibility, color tag), going 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.

Conciseness5/5

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

Two sentences plus usage guidelines, all essential information, no wasted words. Front-loaded with the main action.

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

Completeness5/5

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

For a simple read operation with full annotations, the description covers what is returned and when to use it. No output schema needed.

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

Parameters3/5

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

Schema coverage is 100%, so description doesn't need to add much. It mentions 'collection hierarchy tree' but doesn't elaborate on 'root' or 'depth' beyond what the schema already provides.

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

Purpose5/5

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

Description clearly states it returns the collection hierarchy tree with specific details (name, children, visibility, color tag). It distinguishes from sibling tool blender_get_objects by explicitly saying not to use for listing objects.

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

Usage Guidelines5/5

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

Provides explicit 'Use this when' and 'Do NOT use for' sections, naming the alternative tool (blender_get_objects) for the excluded case.

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

blender_get_imagesA
Read-onlyIdempotent

List all images/textures in the file — name, dimensions, format, file path, packed status, color space, user count.

Use this when: you need to audit textures or find missing image files.

Do NOT use for: viewport screenshot (use blender_capture_viewport).

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter images by status.all
name_patternNoGlob pattern to filter by name.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds no behavioral details beyond what annotations provide (e.g., no mention of permissions or side effects). Score 3 as per guidelines: with annotations, bar is lower but description adds minimal extra context.

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

Conciseness5/5

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

Two sentences in first paragraph for core purpose, two in second for usage guidance. No wasted text, front-loaded with key information. Efficient and well-structured.

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

Completeness4/5

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

No output schema, but description lists returned fields. Parameters are simple with default values. Annotations cover idempotency and safety. Missing a note about empty results, but overall complete for a list tool.

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

Parameters3/5

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

Schema description coverage is 100%; both parameters have schema descriptions (filter with enum/default, name_pattern with glob pattern). Description does not add further meaning beyond schema, so baseline 3 is appropriate.

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

Purpose5/5

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

Description starts with specific verb+resource: 'List all images/textures in the file' followed by a detailed list of return fields. It clearly distinguishes from siblings (e.g., not for viewport screenshot).

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

Usage Guidelines5/5

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

Explicitly states 'Use this when: you need to audit textures or find missing image files' and 'Do NOT use for: viewport screenshot (use blender_capture_viewport).' Provides clear context and alternative.

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

blender_get_materialsA
Read-onlyIdempotent

List all materials in the file with their basic properties (name, use_nodes, user count, base PBR values).

Use this when: you need an overview of available materials.

Do NOT use for: detailed node tree structure (use blender_get_node_tree with tree_type=SHADER).

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter materials by usage status.all
name_patternNoGlob pattern to filter by name (e.g. '*Metal*').

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare safe, read-only behavior. Description adds context about returned properties (basic properties, user count, PBR values). No contradictions or missing behavioral traits.

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

Conciseness5/5

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

Three sentences: purpose, usage guideline, negative usage with alternative. Front-loaded and efficient with no unnecessary words.

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

Completeness4/5

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

Sufficient for a simple listing tool with strong annotations. Explicitly covers purpose, usage, and what it returns. Minor omission: does not state return format, but implied as list of material objects.

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

Parameters3/5

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

Schema has 100% coverage with descriptions for both parameters (filter enum and name_pattern). Description provides no additional parameter-specific semantics beyond the schema.

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

Purpose5/5

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

Clear verb 'List' with specific resource 'all materials in the file' and explicit properties (name, use_nodes, user count, base PBR values). Distinguishes from sibling blender_get_node_tree.

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

Usage Guidelines5/5

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

Explicitly states when to use ('when you need an overview of available materials') and when not to ('detailed node tree structure'), offering an alternative tool (blender_get_node_tree).

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

blender_get_node_treeA
Read-onlyIdempotent

Read the structure of any node tree — shader, compositor, or geometry nodes. Supports all 7 contexts.

Use this when: you need to understand node graph structure before editing.

Do NOT use for: editing nodes (use blender_edit_nodes).

ParametersJSON Schema
NameRequiredDescriptionDefault
tree_typeYesNode tree type.
contextYesContext: SHADER uses OBJECT|WORLD|LINESTYLE|NODE_GROUP, COMPOSITOR uses SCENE|NODE_GROUP, GEOMETRY uses MODIFIER|TOOL|NODE_GROUP.
targetNoTarget: material name (SHADER/OBJECT), world name (SHADER/WORLD), 'Object/Modifier' (GEOMETRY/MODIFIER), or node group name (NODE_GROUP).
depthNo'summary': name/type only. 'topology': connected sockets + non-default values (recommended). 'full': all data.topology
skip_defaultsNoIf True, omit inputs with default values (reduces tokens).
expand_groupsNoRecursively expand node groups.
max_depthNoMax recursion for group expansion.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly=true, idempotent=true. Description adds that it reads structure and supports all contexts, which complements annotations without contradiction.

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

Conciseness5/5

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

Extremely concise: two purpose sentences plus two usage guidelines. No wasted words. Front-loaded with core action.

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

Completeness4/5

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

No output schema, but description clarifies what is returned (node graph structure). Parameters are well-documented in schema, and annotations cover safety. Slightly lacking detail on output format, but adequate.

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

Parameters3/5

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

Schema coverage is 100% with good parameter descriptions. Tool description does not repeat param details, which is acceptable. Baseline score of 3 applies.

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

Purpose5/5

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

Clearly states verb 'read', resource 'node tree structure', and scope covering shader, compositor, geometry nodes with all 7 contexts. Distinguishes from sibling blender_edit_nodes.

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

Usage Guidelines5/5

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

Explicit 'Use this when' and 'Do NOT use for' with alternative tool named (blender_edit_nodes). Provides clear context for selection.

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

blender_get_object_dataA
Read-onlyIdempotent

Get detailed data for a single object. Use the 'include' parameter to control which data is returned, avoiding context overflow.

Use this when: you need details about a specific object.

Do NOT use for: armature bone data (use blender_get_armature_data), node tree structure (use blender_get_node_tree).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the object to inspect.
includeNoWhich data sections to include. Use 'summary' for a quick overview.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false. The description adds context by explaining that the 'include' parameter controls which data is returned to avoid context overflow, and that it fetches data for a single object. This goes beyond annotations but is not extremely detailed, so a score of 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.

Conciseness5/5

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

The description is very concise: three short sentences that cover purpose, usage guidance, and exclusions. Every sentence adds value, with no unnecessary words or repetition.

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

Completeness4/5

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

Given the tool's moderate complexity (single object data with many include options) and the presence of full schema with annotations (read-only, idempotent), the description is reasonably complete. It explains the core function and how to control output, though it does not detail what each include option returns. However, the schema’s enum values provide enough context. With no output schema, a description could add more, but the current one suffices.

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

Parameters3/5

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

The input schema already provides full descriptions for both parameters (100% coverage). The description mentions the 'include' parameter's purpose and default value, but does not add significant new meaning beyond the schema. Per guidelines, baseline is 3 when schema coverage is high.

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

Purpose5/5

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

The description clearly states 'Get detailed data for a single object' and specifies the use of the 'include' parameter to control data. It also distinguishes from siblings by mentioning what not to use for (armature bone data, node tree structure), making the purpose specific and unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit guidance: 'Use this when: you need details about a specific object' and 'Do NOT use for: armature bone data (use blender_get_armature_data), node tree structure (use blender_get_node_tree).' This clearly tells the agent when to use this tool and when to use alternatives.

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

blender_get_objectsA
Read-onlyIdempotent

List objects in the Blender scene with optional filters. Returns name and type for each object by default.

Use this as the first call to understand what exists in a scene.

Do NOT use for: detailed object properties (use blender_get_object_data), material listing (use blender_get_materials), or collection tree (use blender_get_collections).

ParametersJSON Schema
NameRequiredDescriptionDefault
type_filterNoFilter by object type (MESH, LIGHT, CAMERA, CURVE, EMPTY, etc.).
collectionNoFilter by collection name. Only returns objects in this collection.
selected_onlyNoIf true, only return currently selected objects.
visible_onlyNoIf true, only return objects visible in viewport.
name_patternNoGlob pattern to filter by name (e.g. 'SM_*' or '*_high').
include_locationNoInclude location [x, y, z] for each object (increases response size).

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, and idempotentHint. Description adds useful context: default return fields (name and type) and effect of include_location parameter.

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

Conciseness5/5

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

Three sentences, front-loaded with purpose, then usage guidance. No unnecessary words. Highly efficient.

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

Completeness5/5

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

Describes return values (name and type by default, location optionally) and differentiates from siblings. No gaps given the simplicity of the tool.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. Description does not significantly extend parameter semantics beyond what schema already provides, but it's adequate.

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

Purpose5/5

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

Description clearly states it lists objects with optional filters, returns name and type, and distinguishes from sibling tools like blender_get_object_data and blender_get_collections.

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

Usage Guidelines5/5

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

Explicitly recommends using this as the first call to understand the scene and lists alternatives for specific tasks, providing clear when-to-use and when-not-to-use guidance.

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

blender_get_sceneA
Read-onlyIdempotent

Get scene-level global information — statistics, render engine config, world environment basics, timeline/FPS, Blender version, memory usage.

Use this when: you need the high-level project overview.

Do NOT use for: object details (use blender_get_objects or blender_get_object_data).

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoWhich sections to include in the response.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description's behavioral disclosure is less critical. The description adds context about what data is retrieved, which complements the annotations without contradiction.

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

Conciseness5/5

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

Three concise sentences: first states purpose and scope, second gives usage guidance, third gives exclusion. No unnecessary words, information is front-loaded.

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

Completeness5/5

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

Given the tool's simplicity (one optional parameter, no output schema), the description completely covers what the tool does, what parameter it accepts, and how it fits with sibling tools. No gaps.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description rephrases the enum values into more descriptive language (e.g., 'render engine config' vs 'render'), adding minor semantic value. However, it doesn't explain defaults or behavior when include is missing.

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

Purpose5/5

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

Description clearly states 'Get scene-level global information' and enumerates specific categories (statistics, render engine, world, timeline, version, memory). It distinguishes from sibling tools by explicitly stating 'Do NOT use for object details' and naming alternatives.

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

Usage Guidelines5/5

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

Explicitly provides when-to-use ('high-level project overview') and when-not-to-use ('object details') with specific alternative tool names (blender_get_objects, blender_get_object_data). This leaves no ambiguity.

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

blender_get_selectionA
Read-onlyIdempotent

Return the current selection state — selected objects, active object, current interaction mode, and active tool.

Also returns node_editor selection if a Shader/Geometry/Compositor node editor is open, including selected nodes and the active node.

Use this when: you need to understand what the user is currently working on.

Do NOT use for: listing all objects (use blender_get_objects).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations (readOnlyHint, idempotentHint) indicate safe read operation. The description adds specific behavioral details: it also returns node editor selection when applicable. No contradictions.

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

Conciseness5/5

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

Two concise paragraphs. First sentence summarizes core function. Every sentence adds value. No wasted words.

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

Completeness5/5

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

Despite no output schema, description fully enumerates return values: selected objects, active object, mode, active tool, node editor selection. Complete for a getter tool.

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

Parameters4/5

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

No parameters exist, so baseline is 4. Description adds no parameter info, but none is needed.

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

Purpose5/5

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

The description clearly states it returns selected objects, active object, mode, active tool, and node editor selection if applicable. This distinguishes it from siblings like blender_get_objects.

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

Usage Guidelines5/5

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

Explicitly says when to use ('understand what the user is working on') and when not to ('listing all objects, use blender_get_objects'). Provides clear alternative.

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

blender_import_exportA

Import or export asset files in various formats — FBX, OBJ, glTF, USD, Alembic, STL, and more.

Use this when: you need to import assets into or export assets from Blender.

Do NOT use for: scene manipulation (use blender_create_object or blender_modify_object).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhether to import or export.
formatYesFile format: FBX, OBJ, GLTF, GLB, USD, USDC, USDA, ALEMBIC, STL, PLY, etc.
filepathYesAbsolute file path for import source or export destination.
settingsNoFormat-specific settings.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations indicate non-readOnly and non-destructive, but the description adds little beyond that. It doesn't discuss file overwrite behavior, scene addition on import, or potential side effects. Annotations alone suffice for basic safety but not full transparency.

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

Conciseness5/5

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

The description is two sentences plus a usage note, with no wasted words. Key information is front-loaded and efficient.

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

Completeness4/5

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

The description covers purpose, formats, and usage boundaries. It lacks details about return values or side effects (e.g., that import adds objects to the scene, export overwrites files), but given no output schema and a straightforward function, it is largely sufficient.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already details all parameters. The description lists formats but does not add new meaning to parameters like 'settings' or 'filepath'. Baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states the tool imports or exports asset files in various formats (FBX, OBJ, GLTF, USD, Alembic, STL, etc.), which matches the name and distinguishes it from scene manipulation tools.

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

Usage Guidelines5/5

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

Explicitly tells when to use (import/export) and when not to use (for scene manipulation, use blender_create_object or blender_modify_object instead), providing clear context and alternatives.

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

blender_manage_collectionA
Destructive

Create, delete, or manage collections — link/unlink objects, set parent, control visibility.

Use this when: you need to organize scene objects into collections.

Do NOT use for: reading collection data (use blender_get_collections).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesThe collection operation.
collection_nameYesName of the collection.
object_nameNoObject name for link/unlink.
parentNoParent collection name.
hide_viewportNoHide in viewport (for set_visibility).
hide_renderNoHide in render (for set_visibility).
color_tagNoColor tag for visual organization.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true, and description lists destructive actions like delete, which is consistent. While description adds context about manage operations, it does not detail side effects beyond what annotations imply. 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.

Conciseness5/5

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

Three sentences: first lists core actions, second gives use case, third provides exclusion. Front-loaded, no fluff, efficient.

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

Completeness4/5

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

Given 7 parameters and no output schema, description covers main actions and usage guidance. Could add more detail on behavior like handling existing collections, but overall adequate for a management tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description reiterates the actions but does not add significant new meaning beyond what the schema provides. Baseline of 3 is appropriate.

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

Purpose5/5

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

Description clearly states it creates, deletes, or manages collections with specific actions like link/unlink objects, set parent, control visibility. It distinguishes from sibling blender_get_collections by explicitly stating not to use for reading collection data.

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

Usage Guidelines5/5

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

Explicitly provides when to use ('organize scene objects into collections') and when not to use ('reading collection data') with an alternative tool mentioned (blender_get_collections).

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

blender_manage_constraintsA
Destructive

Add, configure, remove, enable/disable, or reorder constraints on objects or bones.

Use this when: you need to set up rigging constraints or motion control.

Do NOT use for: reading constraints (use blender_get_object_data with include=['constraints'] or blender_get_armature_data with include=['constraints']).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesThe constraint operation.
target_typeNoWhether constraint is on an object or a bone.OBJECT
target_nameYesObject name, or 'ArmatureName/BoneName' for BONE.
constraint_nameNoConstraint name.
constraint_typeNoConstraint type for add. Common: COPY_LOCATION, COPY_ROTATION, TRACK_TO, DAMPED_TRACK, IK, STRETCH_TO, CHILD_OF. Full list in bpy.types.Constraint bl_idname.
settingsNoConstraint settings as key-value pairs.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already provide destructiveHint=true and readOnlyHint=false. The description adds no further behavioral context (e.g., side effects, errors, or specific destructive actions beyond the schema enum). 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.

Conciseness5/5

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

The description is extremely concise: three sentences total, first sentence lists actions, next two provide usage boundaries. No wasted words, front-loaded with core purpose.

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

Completeness3/5

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

Given the tool has a complex 'settings' object parameter and no output schema, the description could provide more guidance on common settings keys or what happens after operations. However, the use cases and exclusions are well-covered. Adequate but not fully complete.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions. The tool description itself does not add additional semantic meaning beyond what's already in the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function: 'Add, configure, remove, enable/disable, or reorder constraints on objects or bones.' It provides specific verbs and the resource, distinguishing it from sibling tools that read constraints.

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

Usage Guidelines5/5

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

Explicit usage guidance is given: 'Use this when: you need to set up rigging constraints or motion control.' And 'Do NOT use for: reading constraints' with alternative tools (blender_get_object_data, blender_get_armature_data) named.

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

blender_manage_materialA
Destructive

Create, edit, assign, duplicate, or delete materials. For high-level PBR property editing only. The 'delete' action is destructive and irreversible.

Use this when: you need to create/configure materials or assign them to objects.

Do NOT use for: node-level shader editing (use blender_edit_nodes with tree_type=SHADER).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesThe material operation.
nameYesMaterial name.
base_colorNoBase color [r,g,b,a] range 0-1.
metallicNoMetallic value 0-1. 0=dielectric, 1=full metal.
roughnessNoRoughness value 0-1. 0=mirror, 1=diffuse.
specularNoSpecular value 0-1.
alphaNoAlpha value 0-1.
emission_colorNoEmission color [r,g,b,a].
emission_strengthNoEmission strength.
use_fake_userNoPrevent auto-deletion when unused.
object_nameNoObject name for assign/unassign.
slotNoMaterial slot index (0-based).

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses that the 'delete' action is 'destructive and irreversible,' which aligns with the annotations (destructiveHint: true). It also sets scope as 'For high-level PBR property editing only.' Since annotations already indicate destructiveHint and readOnlyHint, the description adds useful context about irreversible deletion and scope, but no contradictions.

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

Conciseness5/5

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

The description is concise: two sentences for purpose, followed by a clear usage section. Every sentence adds value, with no redundant information. The 'Do NOT use for' part is important and keeps it focused.

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

Completeness4/5

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

Given the tool has 12 parameters and no output schema, the description covers all necessary aspects: actions (create, edit, assign, etc.), scope (PBR only), and alternative tool. It lacks explanation of return values, but that's acceptable since no output schema exists. The description is sufficiently complete for an AI agent.

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

Parameters3/5

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

Schema description coverage is 100%, and the input schema provides detailed descriptions for each parameter (e.g., base_color, metallic, roughness). The description does not add additional parameter-level details beyond what the schema already provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Create, edit, assign, duplicate, or delete materials. For high-level PBR property editing only.' It specifies the verb (manage) and resource (materials), and distinguishes itself from node-level editing by explicitly stating 'Do NOT use for: node-level shader editing.' This sets it apart from sibling tools like blender_edit_nodes.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool ('when you need to create/configure materials or assign them to objects') and when not to use it ('Do NOT use for: node-level shader editing (use blender_edit_nodes with tree_type=SHADER)'). This provides clear guidance on selecting this tool over alternatives.

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

blender_manage_modifierA
Destructive

Add, configure, apply, remove, or reorder modifiers on an object. The 'apply' and 'remove' actions are destructive.

Use this when: you need to work with modifiers.

Do NOT use for: reading modifier details (use blender_get_object_data with include=['modifiers']).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesThe modifier operation.
object_nameYesName of the object.
modifier_nameNoModifier name.
modifier_typeNoModifier type for add. Common: SUBSURF, MIRROR, ARRAY, BOOLEAN, SOLIDIFY, BEVEL, SHRINKWRAP, DECIMATE, REMESH, CLOTH, ARMATURE, NODES. Full list in bpy.types.Modifier bl_idname.
settingsNoModifier settings as key-value pairs (e.g. {"levels": 3} for SUBSURF).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true. The description adds value by specifying which actions ('apply' and 'remove') are destructive, going beyond the annotation. No contradiction. However, it omits other behavioral aspects like output or progression, so 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.

Conciseness5/5

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

Three sentences, each purposeful: action list with destructiveness note, then usage guidelines. No fluff, front-loaded with core purpose. Exemplary conciseness.

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

Completeness4/5

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

For a 5-parameter tool with nested object and no output schema, the description covers actions, destructive behavior, and usage boundaries. Minor gaps: no mention of result/return, or what happens on invalid settings. Still quite complete given the schema richness.

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

Parameters3/5

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

Schema coverage is 100% with parameter descriptions. The description merely lists actions already in the enum without adding deeper meaning (e.g., what 'configure' does vs 'add'). Thus it does not elevate beyond the baseline of 3.

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

Purpose5/5

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

The description clearly states the actions (add, configure, apply, remove, reorder) on modifiers of an object, using specific verbs and resource. It distinguishes itself from the sibling tool blender_get_object_data by explicitly saying 'Do NOT use for: reading modifier details (use blender_get_object_data with include=['modifiers']).'

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

Usage Guidelines5/5

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

The description provides explicit when-to-use ('need to work with modifiers') and when-not-to-use (reading details) guidance, including a direct alternative tool with usage hint. This fully satisfies the dimension.

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

blender_manage_physicsA
Destructive

Add, configure, remove, or bake physics simulations — rigid body, cloth, soft body, fluid, particle systems, and force fields.

Use this when: you need physics simulations on objects.

Do NOT use for: reading physics data (use blender_get_object_data with include=['physics']).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesThe physics operation.
object_nameYesName of the object.
physics_typeNoPhysics type for add action.
force_field_typeNoForce field type. Only for physics_type=FORCE_FIELD.
settingsNoPhysics settings as key-value pairs.
frame_startNoBake start frame.
frame_endNoBake end frame.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true, so the agent knows it can modify/destroy data. The description adds behavioral context by enumerating actions (add, configure, remove, bake, free_bake) but doesn't elaborate on consequences of specific actions like baking or removing. Still, the combination with annotations provides sufficient transparency.

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

Conciseness5/5

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

The description is two sentences long, with the first sentence listing actions and types, and the second sentence giving usage guidance. No redundant information. Front-loaded and efficient.

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

Completeness5/5

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

Given the tool's complexity (7 parameters, nested objects, multiple actions), the description is complete: it covers purpose, usage boundaries, and behavioral cues. No output schema is present, but the description doesn't need to explain return values for a mutation tool.

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

Parameters3/5

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

Schema coverage is 100% with all parameters documented. The description adds marginal value by summarizing the tool's purpose and listing physics types, but it doesn't provide additional semantics beyond what the schema already defines. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool adds, configures, removes, or bakes physics simulations, listing specific physics types (rigid body, cloth, soft body, etc.). It uses a specific verb+resource structure that distinguishes it from sibling tools like blender_get_object_data, which is for reading physics data.

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

Usage Guidelines5/5

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

The description explicitly says 'Use this when: you need physics simulations on objects' and 'Do NOT use for: reading physics data (use blender_get_object_data with include=['physics'])'. This provides clear when-to-use and when-not-to-use guidance with an explicit alternative sibling.

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

blender_manage_uvA
Destructive

UV mapping operations — mark/clear seams, unwrap with various algorithms, pack/scale UV islands, manage UV layers.

Use this when: you need algorithmic UV unwrapping or UV layer management.

Do NOT use for: UV painting (use blender_execute_operator).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesThe UV operation.
object_nameYesName of the mesh object.
uv_map_nameNoUV map name for add/remove/set_active.
angle_limitNoAngle limit in degrees for smart_project.
island_marginNoMargin between UV islands.
correct_aspectNoCorrect for non-square textures.
selection_modeNoAuto-select edges for mark_seam.

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true, and the description adds no further behavioral context beyond the listed operations. It does not contradict annotations, but also does not elaborate on what gets destroyed or any side effects.

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

Conciseness5/5

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

The description is very concise: three lines covering operations, usage guidelines, and exclusions. Every sentence adds value, with no unnecessary detail.

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

Completeness4/5

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

For a tool with 7 parameters and no output schema, the description provides a reasonable overview of actions and usage scope. However, it lacks context on prerequisites (e.g., object must be a mesh) and does not clarify return values or side effects, which would enhance completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add any additional parameter meaning beyond what is already in the schema, so no improvement over baseline.

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

Purpose4/5

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

The description clearly states the tool handles UV mapping operations like marking seams, unwrapping, and layer management. It distinguishes itself from UV painting by referencing blender_execute_operator, but does not differentiate from other sibling tools like blender_edit_mesh or blender_modify_object.

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

Usage Guidelines5/5

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

The description explicitly states when to use ('for algorithmic UV unwrapping or UV layer management') and when not to use ('for UV painting'), with a direct alternative (blender_execute_operator). This provides clear guidance.

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

blender_modify_objectA
Destructive

Modify an existing object — transform, parent, visibility, rename, set origin, or delete. The 'delete' action is destructive and irreversible.

Use this when: you need to change an object's properties.

Do NOT use for: modifiers (use blender_manage_modifier), materials (use blender_manage_material), constraints (use blender_manage_constraints), physics (use blender_manage_physics).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the object to modify.
locationNoNew 3D position [x, y, z].
rotationNoNew Euler rotation [x, y, z] in radians.
scaleNoNew scale [x, y, z].
parentNoParent object name. Set to '' to clear parent.
visibleNoViewport visibility.
hide_renderNoHide from render.
new_nameNoRename the object.
activeNoSet as active object.
selectedNoSet selection state.
originNoSet origin point.
deleteNoIf true, delete this object. DESTRUCTIVE.
delete_dataNoWhen deleting, also delete underlying data block.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds context by specifying that the 'delete' action is destructive and irreversible, which aligns with annotations. No additional behavioral traits (e.g., side effects, auth needs) are mentioned, but the description effectively reinforces the key destructive behavior.

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

Conciseness5/5

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

The description is extremely concise: two sentences plus a short bullet list. Every sentence adds value: purpose, destructive warning, and usage guidelines. No redundant or superfluous content.

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

Completeness4/5

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

Given the tool's complexity (13 parameters, no output schema), the description covers the main purpose, destructive action, and provides alternatives. It doesn't explain return values (acceptable per rules since no output schema). Some edge cases or error conditions are missing, but overall it's sufficiently complete for an agent to select and invoke correctly.

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

Parameters3/5

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

Schema description coverage is 100% (all 13 parameters have descriptions in the input schema). The tool description does not add supplementary meaning beyond what the schema already provides, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description explicitly states 'Modify an existing object' and lists specific actions (transform, parent, visibility, rename, set origin, delete), clearly distinguishing it from sibling tools like blender_create_object, blender_manage_modifier, etc.

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

Usage Guidelines5/5

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

Provides explicit 'Use this when' and 'Do NOT use for' directives, listing specific sibling tools (blender_manage_modifier, blender_manage_material, blender_manage_constraints, blender_manage_physics), which gives clear guidance on when to use this tool vs alternatives.

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

blender_render_sceneA

Render the current scene to an image file. Supports both still images and animations.

Use this when: you need to render the scene to disk.

Do NOT use for: viewport screenshots (use blender_capture_viewport), scene setup (use blender_setup_scene).

ParametersJSON Schema
NameRequiredDescriptionDefault
output_pathYesAbsolute file path to save the rendered image.
resolution_xNoX resolution override.
resolution_yNoY resolution override.
samplesNoRender samples (Cycles only).
animationNoIf True, render animation frames.
frame_startNoStart frame for animation render.
frame_endNoEnd frame for animation render.
use_viewportNoIf True, use viewport render (EEVEE only).

TDQS

A4.2/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false (modifies), destructiveHint=false, idempotentHint=false. Description adds that it writes to disk but does not elaborate on file overwrite behavior or scene state changes. Adequate but not exceptional.

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

Conciseness5/5

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

Three sentences, front-loaded with purpose, then usage guidance and exclusions. No extraneous information.

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

Completeness4/5

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

Covers purpose, usage, and supports still/animations. Lacks mention of output format or overwrite behavior, but output_path is required and implies file creation. Adequate for the task.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents each parameter. The description does not add extra semantic context beyond what is already in the schema.

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

Purpose5/5

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

States the tool renders the current scene to an image file, supporting both still images and animations. Explicitly distinguishes from siblings like blender_capture_viewport and blender_setup_scene.

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

Usage Guidelines5/5

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

Provides explicit when-to-use ('need to render the scene to disk') and when-not-to-use guidelines with direct alternatives (viewport screenshots -> blender_capture_viewport, scene setup -> blender_setup_scene).

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

blender_setup_sceneA
Idempotent

Configure scene-level settings — render engine and quality, output resolution, world environment basics, and timeline/FPS.

Use this when: you need to configure render, output, or timeline settings.

Do NOT use for: detailed world shader editing (use blender_edit_nodes with tree_type=SHADER, context=WORLD).

ParametersJSON Schema
NameRequiredDescriptionDefault
engineNoRender engine.
samplesNoRender samples.
resolution_xNoOutput width in pixels.
resolution_yNoOutput height in pixels.
output_formatNoOutput file format.
output_pathNoOutput file/directory path.
film_transparentNoRender with transparent background.
denoisingNoEnable render denoising.
denoiserNoDenoiser type.
background_colorNoWorld background color [r,g,b,a].
background_strengthNoWorld background strength.
fpsNoFrames per second.
frame_startNoScene start frame.
frame_endNoScene end frame.
frame_currentNoSet current frame.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations (idempotentHint=true, readOnlyHint=false) are not contradicted. Description adds context about setting categories, but does not discuss potential side effects or prerequisites 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.

Conciseness5/5

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

Two core sentences plus two bullet-like usage directives. No redundancy or unnecessary details; every sentence adds value.

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

Completeness4/5

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

Given 15 parameters and no output schema, the description covers the tool's scope and usage boundaries adequately. Could mention that all parameters are optional (inferable from required:0), but is sufficient for correct invocation.

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

Parameters4/5

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

Schema coverage is 100% so baseline is 3. Description groups parameters into logical categories (render, output, world, timeline), adding semantic value beyond the individual parameter descriptions.

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

Purpose5/5

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

The description specifies the tool configures scene-level settings for render engine, output, timeline, and world basics, with clear verb 'configure' and resource 'scene-level settings'. It distinguishes from a sibling tool by excluding detailed world shader editing.

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

Usage Guidelines5/5

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

Explicitly states when to use ('configure render, output, or timeline settings') and when not to use ('detailed world shader editing') with a direct alternative tool reference.

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

TDQS

A4.3/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose with specific 'Use this when' and 'Do NOT use for' guidelines, preventing any ambiguity between overlapping operations.

Naming Consistency5/5

All tools follow a consistent 'blender_verb_noun' pattern (e.g., blender_create_object, blender_edit_mesh), with verbs that accurately describe the action.

Tool Count4/5

29 tools is on the higher side but justified given Blender's complexity. The set covers major functionality without being bloated, though a few specialized tools could be merged.

Completeness4/5

Covers core Blender workflows (modeling, animation, rendering, materials, nodes, physics). Minor gaps like grease pencil and sculpting exist but do not hinder primary use cases.

Maintenance

ActivityInactive
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ageless-h/blender-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server