Skip to main content
Glama

Blender MCP — AI-Powered Blender Automation

Control Blender with natural language through MCP. Tell Claude to create a steampunk robot with glowing eyes and watch it build in Blender.

Get started in 2 minutes

Download

What it is

blender-mcp-*.mcpb

MCP server for Claude Desktop

Blender

3D app (install separately, never bundled)

blender_bridge_addon.py (optional)

Live viewport only — skip for headless use

Steps

  1. Download the .mcpb from Releases

  2. Drag it into Claude Desktop (Settings → MCP Servers → Install from file)

  3. Install Blender if you have not already

  4. Restart Claude Desktop and try: Create a red cube on a gray floor with a sun lamp.

That is enough for most tools — the server runs Blender headless in the background.

Optional — live viewport: install the bridge addon in Blender to watch the scene update while you chat. See INSTALL.md.

Other install methods (npx mcpb, manual config, developer setup): INSTALL.md

Related MCP server: BlenderMCP

How it runs

Mode

Host app

When

Headless (default)

blender --background subprocess

Batch export, CI, agents without a display; VSE, geonodes, most mesh ops

Live GUI (optional)

Blender + bridge addon

Watch the agent build; viewport screenshots; sculpt with live feedback

Per-tool override

prefer_session=False

Batch jobs force headless even if bridge is connected

You do not need to open Blender's UI for most MCP tools — the server spawns headless Blender automatically and falls back from live session when no bridge is connected.

Install Blender separately; it is never bundled. Override path with BLENDER_EXECUTABLE.

Watch or batch — Most tools run headless. Use blender_session start + the bridge addon only if you want the viewport to update live. See INSTALL.md.

Hands-in / Hands-out

Direction

Artifacts

Notes

Hands-in

Natural-language scene prompts

Agent instructions; blender_ai_* script generation

Hands-in

.blend, image refs, mesh files

Webapp upload or tool params

Hands-in

Rodin / Tripo / Hunyuan mesh URLs

blender_ai_generate and related tools

Hands-in

Inline bpy scripts

blender_script_execute, handler-backed tools

Hands-out

.glb, .gltf, .fbx, .obj, .usd

blender_exportheadless

Hands-out

.vrm, VRChat-ready avatars

Export + validation pipeline — headless

Hands-out

.blend (saved scene)

After agent edit session — headless or live bridge

Hands-out

Viewport PNG, MP4 (VSE), Gaussian splats

blender_render, blender_vse, splat tools — headless

Fleet pipelines (downstream)

Downstream MCP

Takes from blender-mcp

godot-mcp

.glb / .gltf game assets

vrchat-mcp

.vrm after validation

tahoma2d-mcp

Rendered image sequences / GP output

freecad-mcp

.step via intermediate export

unity3d-mcp

.fbx / .glb for Unity import

Features

  • Natural-language 3D creation — scenes, meshes, materials, lighting, animation

  • Live GUI bridge — watch the agent build in Blender while you chat

  • 48+ MCP tools — mesh edit, sculpt, geonodes, compositor, VSE, export (GLB, VRM, VRChat, Unity)

  • Generative AI hooks — Rodin/Tripo/Hunyuan mesh generation and vision refine

  • Webapp dashboard — scene explorer, agent lab, materials, mesh/splat pipeline

  • Fleet-ready — FastMCP 3.2, .mcpb packaging, Prometheus metrics, optional Docker

What You Can Do

Try these in Claude Desktop after install:

Create a red cube on a gray floor with a sun lamp and render a viewport screenshot.

Build a simple chair with wood material and export as GLB.

Start a live Blender session and add a sphere with a metallic blue shader.

Documentation

Doc

Contents

Installation

All install methods, prerequisites, bridge setup

Configuration

Env vars, Claude Desktop env block

Tool Reference

Capabilities and tool catalog

Development

Contributing, just, lint, build

Troubleshooting

Common errors and fixes

Architecture

System design

Roadmap

Planned improvements

Monitoring

Prometheus / Grafana / Loki

Docker

Optional container deploy

Extended guides: docs/DOCUMENTATION_INDEX.md

Webapp and Native App

Dashboard (optional): .\start.ps1http://localhost:10848 — see INSTALL.md.

Tauri desktop installer (~15 MB, no Python required): just build-native — see docs/DEVELOPMENT.md.

Requirements

  • Claude Desktop (or any MCP client for manual config)

  • Blender 3.0+ — installed separately, never bundled; override with BLENDER_EXECUTABLE

  • LLM (optional) — Ollama, LM Studio, or cloud API for script generation; see INSTALL.md

  • OS: Windows, macOS, Linux

  • Python 3.12+ — only for Options C/D (clone-from-source)

License

MIT — FlowEngineer sandraschi. Free for personal and commercial use.

Available Tools

71 tools
add_to_collectionB

Add an object to a collection.

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("add_to_collection", {"collection_name": "MyCollection", "object_name": "Cube"})
ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameYes
collection_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the mutation is expected. The description adds the return format (success/message/data) but does not disclose side effects, failure modes, or whether the collection is created if missing. This is adequate given the simple operation, but not rich.

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

Conciseness5/5

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

The description is concise and well-structured, with a one-line summary, a return format section, and a code example. No redundant text; every element serves a purpose.

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

Completeness3/5

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

The tool is simple (2 string params, no nested objects) and has an output schema, so little beyond the basics is needed. However, the description could be more complete by clarifying the relationship to existing collections/objects and any error behavior, especially given the large set of sibling tools in the Blender domain.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain the parameters beyond their names. 'collection_name' and 'object_name' are self-explanatory at a high level, but no details are given about what constitutes a valid name, whether the object must already exist, or how collections are referenced. The example shows sample values but adds no semantic depth.

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?

Description clearly states 'Add an object to a collection' with a specific verb and resource. It distinguishes from sibling 'create_collection' (which creates collections) and 'construct_object' (which creates objects), though it does not explicitly mention the relationship to existing objects/collections.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., collection must exist), nor does it contrast with related tools like 'create_collection' or 'manage_object_repo'. The example provides usage context but not decision criteria.

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

agentic_blender_workflowA

Execute autonomous multi-step Blender workflows via FastMCP 3.1 SEP-1577 sampling.

The client LLM plans and executes a 3D workflow step-by-step, autonomously calling Blender capability probes to inform each decision, looping until the goal is achieved or max_steps is exhausted.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_stepsNoMaximum LLM-tool reasoning loops (default: 5)
workflow_promptYesNatural language description of the 3D workflow goal
available_operationsNoOptional list of operation names to constrain the plan

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

It discloses the looping behavior and the max_steps stopping condition, which is useful given annotations are all false. However, it does not mention potential side effects on the Blender scene, what 'capability probes' entail, or resource/permission implications, leaving the agent under-informed for a tool that executes arbitrary workflows.

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

Conciseness4/5

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

The description is compact at two sentences, with the main action front-loaded. The reference to 'FastMCP 3.1 SEP-1577 sampling' adds jargon, but the text remains focused and readable.

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

Completeness3/5

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

With an output schema present, return-value explanation is not needed. Yet the tool is complex and has an available_operations parameter not mentioned in the prose; also absent are side-effect warnings, failure behavior, and differentiation from many similar Blender workflow siblings. The description is adequate but not fully complete.

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

Parameters3/5

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

Schema coverage is 100% and each parameter already has a meaningful description. The prose does not add further semantic value to workflow_prompt, max_steps, or available_operations, so a baseline of 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Execute autonomous multi-step Blender workflows'. It distinguishes this tool from siblings like 'blender_workflow' by emphasizing the agentic, looped, sampling-driven behavior.

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

Usage Guidelines4/5

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

The description clearly conveys the context for use: autonomous, multi-step 3D workflows where the client LLM plans and loops. It does not provide explicit when-not-to-use guidance or name alternatives, so it misses the top bar, but the intended use case is clear.

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

ai_chatA
Read-onlyIdempotent

Chat with the Blender AI assistant. Provides natural-language help with Blender operations.

Uses the blender-expert SKILL.md as system context so the LLM knows available tools and workflows. Uses ctx.sample() when the host supports sampling; falls back to Ollama.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesThe user's chat message.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable context about using the blender-expert SKILL.md as system context and the fallback mechanism via ctx.sample()/Ollama, providing insight into operational 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 compact and well-structured: first sentence states purpose, second explains system context, third details model fallback. Every sentence adds distinct 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?

For a chat tool with a simple schema, full annotation coverage, and an output schema, the description is sufficient. It explains both functionality and operational details, though it could benefit from mentioning limitations or scenarios where other tools are preferred.

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 fully covers the single 'message' parameter with a clear description. The tool description does not add parameter-specific details, but none are necessary given the schema's completeness.

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

Purpose4/5

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

The description clearly states the tool's function: 'Chat with the Blender AI assistant' and 'Provides natural-language help with Blender operations.' It identifies it as a conversational tool, distinguishing it from action-oriented siblings like script_execute. However, it doesn't explicitly differentiate from the similarly named conversational_blender_assistant.

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

Usage Guidelines2/5

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

No explicit when-to-use guidance or alternative references are provided. The description implies it is for natural-language help but does not explain when to choose it over blender_help or other assistant-like tools.

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

blender_addonsA

Manage Blender addons (portmanteau). Prefer this tool over manage_blender_addons.

Operations:

  • list_addons / list_installed: List installed addons (requires Blender).

  • install_addon: Install from local addon_path (path to .py or folder).

  • install_from_url / install_url: Download and install from addon_url (ZIP or .py).

  • install_known: Install from known registry by addon_name.

  • uninstall_addon: Uninstall addon by addon_name.

  • enable / disable: Enable or disable an installed addon module.

  • search: Return known add-on URLs for a query (e.g. gaussian splat).

  • info: Show known addons registry and addons directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
addon_urlNoFor install_from_url (https URL to .zip or .py).
operationNolist_addons | list_installed | install_addon | install_from_url | install_known | ...list_addons
addon_nameNoFor uninstall_addon, enable, disable, install_known.
addon_pathNoFor install_addon (local path).
search_queryNoFor search (e.g. "gaussian splat").
enable_on_installNoEnable addon after install operations.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

Annotations provide no safety hints (all false), so the description carries the burden. It discloses that list requires Blender and describes operations, but doesn't specify side effects like network access, file deletion, or config changes. It gives basic behavioral context but lacks depth.

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

Conciseness4/5

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

The description is structured with an introductory purpose sentence and a bulleted operation list. It is slightly long but information-dense; no wasted words. The redundant list_addons/list_installed pair is minor.

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 a complex operation set and output schema present, the description covers all main operation categories and parameter mappings. It notes Blender requirement and known registry, but could mention enable_on_install behavior or error scenarios. Still nearly complete for selection and 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 provides descriptions for all parameters (100% coverage), but the description enriches them by mapping operations to specific parameters (e.g., install_from_url uses addon_url, install_addon uses addon_path). It also clarifies 'install_known' and 'search' 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?

Description clearly states the tool manages Blender addons and enumerates specific operations (list, install, uninstall, enable/disable, search, info). It explicitly distinguishes itself from sibling manage_blender_addons with 'Prefer this tool over manage_blender_addons.'

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

Usage Guidelines5/5

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

Explicitly advises preference over manage_blender_addons, which serves as an alternative. The operation list provides clear context for which action to invoke, mapping operations to parameters.

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

blender_ai_generateA

Generate 3D meshes via external AI backends and import into Blender.

Backends (set API keys in environment):

  • tripo: TRIPO_API_KEY

  • rodin: RODIN_API_KEY or HYPER3D_API_KEY

  • hunyuan: HUNYUAN3D_API_KEY (+ optional HUNYUAN3D_API_URL)

Operations:

  • generate: text/image-to-3D, poll, download, import

  • list_backends: show configured backends and env var names

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("blender_ai_generate", {"operation": "generate", "prompt": "a red chair"})
ParametersJSON Schema
NameRequiredDescriptionDefault
promptNo
backendNotripo
operationNogenerate
image_pathNo
object_nameNo
poll_timeoutNo
output_formatNoglb

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations are all false, so the description carries the transparency burden. It discloses that external AI backends are used, that API keys are required, and that the generate operation involves polling and import. It also details the return format and gives an example. This goes beyond basic mutation info, though it doesn't mention potential network delays, costs, or failure modes.

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

Conciseness5/5

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

The description is well-structured with sections for backends, operations, return format, and examples. It front-loads the main purpose, then provides necessary operational details without unnecessary fluff. Every section contributes useful 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 complexity (multiple backends, operations, API keys), the description covers key aspects: backends, env vars, operations, return format, and a usage example. It doesn't detail every parameter or error handling, but with the input schema present and an output schema, it's reasonably complete for an AI agent to use effectively.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain parameters. It only shows an example using operation and prompt, and the operations list implies prompt/image_path. However, backend, object_name, poll_timeout, and output_format are not described. The agent must infer their meanings from names and defaults, which is insufficient for a 7-parameter tool.

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

Purpose5/5

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

The description opens with a specific and clear statement: 'Generate 3D meshes via external AI backends and import into Blender.' It also enumerates distinct operations (generate, list_backends), which further clarifies its scope. This clearly distinguishes it from sibling tools like blender_mesh or blender_import that handle mesh operations or imports without AI generation.

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

Usage Guidelines4/5

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

The description communicates when to use the tool: when you need AI-based 3D generation from text/image with backend options, and it explains backend configuration via environment keys. It doesn't explicitly exclude alternatives or name sibling tools, but the context is clear enough that an agent would know to use this for AI generation versus manual modeling/import.

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

blender_animationB

PORTMANTEAU PATTERN RATIONALE: Consolidates 17 related animation operations into single interface. Prevents tool explosion while maintaining full animation workflow functionality from basic keyframes to advanced character rigging. Follows FastMCP 2.14.3 best practices.

Comprehensive animation system for Blender supporting keyframes, shape keys, actions, constraints, and baking.

Animation Categories:

Basic Animation (7 operations):

  • set_keyframe: Insert keyframes for location/rotation/scale at specific frames

  • animate_location: Create movement animation between start/end frames

  • animate_rotation: Create rotation animation with customizable curves

  • animate_scale: Create scale animation with interpolation control

  • play_animation: Start/stop viewport playback for preview

  • set_frame_range: Define timeline start/end frames for scene

  • clear_animation: Remove all keyframes from object (destructive)

Shape Keys (VRM facial expressions) (4 operations):

  • list_shape_keys: Display all morph targets on mesh object

  • set_shape_key: Set blend value (0.0-1.0) for shape key

  • keyframe_shape_key: Insert keyframe for shape key animation

  • create_shape_key: Create new shape key from current mesh state

Action Management (4 operations):

  • list_actions: Show all animation actions in blend file

  • create_action: Generate new action clip for object animation

  • set_active_action: Assign action to object for playback

  • push_to_nla: Push action to NLA track for layering/compositing

Interpolation & Timing (2 operations):

  • set_interpolation: Set keyframe interpolation type (LINEAR, BEZIER, BOUNCE, ELASTIC, CONSTANT)

  • set_easing: Configure easing curves (AUTO, EASE_IN, EASE_OUT, EASE_IN_OUT)

Constraints (2 operations):

  • add_constraint: Add transform constraints to objects

  • add_bone_constraint: Add pose constraints to armature bones

Baking for Export (2 operations):

  • bake_action: Convert constraints to keyframes for export compatibility

  • bake_all_actions: Consolidate NLA strips into single action

ParametersJSON Schema
NameRequiredDescriptionDefault
frameNoFrame number for keyframe insertion. Default: 1. Range: 1 to 10000.
scaleNoTarget scale factors (x, y, z) for keyframes. Required for: "set_keyframe" (scale), "animate_scale".
valueNoShape key blend value. Range: 0.0 to 1.0. Default: 1.0. Required for: "set_shape_key", "keyframe_shape_key".
easingNoKeyframe easing mode. One of: "AUTO", "EASE_IN", "EASE_OUT", "EASE_IN_OUT". Default: "AUTO".AUTO
from_mixNoWhether to create shape key from current mix. Default: False.
locationNoTarget location coordinates (x, y, z) for keyframes. Required for: "set_keyframe" (location), "animate_location".
rotationNoTarget rotation values (degrees) for keyframes. Required for: "set_keyframe" (rotation), "animate_rotation".
bone_nameNoTarget bone name within armature for pose operations. Required for: "add_bone_constraint", bone targeting in constraints.
data_pathNoFCurve data path for interpolation operations. Default: auto-detected.
end_frameNoEnding frame for animation ranges. Default: 60. Must be > start_frame.
end_scaleNoEnding scale for animation. Default: (2, 2, 2).
influenceNoConstraint influence factor. Range: 0.0 to 1.0. Default: 1.0.
operationNoThe animation operation to perform. Must be one of: "set_keyframe", "animate_location", "animate_rotation", "animate_scale", "play_animation", "set_frame_range", "clear_animation", "list_shape_keys", "set_shape_key", "keyframe_shape_key", "create_shape_key", "list_actions", "create_action", "set_active_action", "push_to_nla", "set_interpolation", "set_easing", "add_constraint", "add_bone_constraint", "bake_action", "bake_all_actions". - Basic operations: "set_keyframe", "animate_*", "play_animation", "set_frame_range", "clear_animation" - Shape key operations: "list_shape_keys", "set_shape_key", "keyframe_shape_key", "create_shape_key" - Action operations: "list_actions", "create_action", "set_active_action", "push_to_nla" - Interpolation: "set_interpolation", "set_easing" - Constraints: "add_constraint", "add_bone_constraint" - Baking: "bake_action", "bake_all_actions"set_keyframe
bake_typesNoTypes of data to bake. One of: "POSE", "OBJECT", "ALL". Default: "POSE".POSE
track_nameNoNLA track name for action placement. Default: auto-generated.
action_nameNoName for new or existing action. Required for: "create_action", "set_active_action", "push_to_nla".
object_nameNoTarget object name for animation operations. Required for most operations.
start_frameNoStarting frame for animation ranges. Default: 1. Must be < end_frame.
start_scaleNoStarting scale for animation. Default: (1, 1, 1).
target_boneNoName of target bone for bone constraints.
target_nameNoName of target object for constraint. Required for all constraint operations.
end_locationNoEnding location for animation. Default: (5, 0, 0).
end_rotationNoEnding rotation for animation. Default: (360, 0, 0).
armature_nameNoTarget armature name for bone-specific operations. Required for: "add_bone_constraint", bone targeting in constraints.
interpolationNoKeyframe interpolation type. One of: "CONSTANT", "LINEAR", "BEZIER", "SINE", "QUAD", "CUBIC", "QUART", "QUINT", "EXPO", "CIRC", "BACK", "BOUNCE", "ELASTIC". Default: "BEZIER".BEZIER
visual_keyingNoInclude visual transforms in baking. Default: True.
shape_key_nameNoName of shape key for morph operations. Required for: "set_shape_key", "keyframe_shape_key", "create_shape_key".
start_locationNoStarting location for animation. Default: (0, 0, 0).
start_rotationNoStarting rotation for animation. Default: (0, 0, 0).
constraint_typeNoType of constraint to add. One of: "COPY_ROTATION", "COPY_LOCATION", "COPY_SCALE", "TRACK_TO", "DAMPED_TRACK", "LOCKED_TRACK", "STRETCH_TO", "CLAMP_TO", "TRANSFORM", "CHILD_OF". Default: "COPY_ROTATION".COPY_ROTATION
target_armatureNoName of target armature for bone constraints.
clear_constraintsNoRemove constraints after baking. Default: False.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior1/5

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

The description explicitly labels 'clear_animation' as '(destructive)', but the annotations declare destructiveHint: false. This is a direct contradiction. The annotation system is designed to convey this safety information, and the description contradicts it, which is a serious inconsistency.

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

Conciseness3/5

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

The description is well-structured with clear category headers and bullet lists, making it navigable for a complex 32-parameter tool. However, it includes an unnecessary 'PORTMANTEAU PATTERN RATIONALE' paragraph that adds meta-narrative rather than operational guidance, and the overall length is verbose.

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 high complexity (32 parameters, 21 operations), the description provides a comprehensive overview of all operation categories, which is highly useful for orientation. An output schema exists, so return values are covered. Minor gaps remain, such as not describing side effects for baking operations or constraint behaviors, but overall it is complete for a tool of this scale.

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%, with each parameter already thoroughly documented in the input schema (e.g., ranges, defaults, required-for mapping). The tool description adds no extra parameter semantics beyond grouping operations by category, which is marginal value, so the baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states 'Comprehensive animation system for Blender supporting keyframes, shape keys, actions, constraints, and baking' and enumerates 17 operations across categories, providing a specific verb+resource. However, it does not explicitly differentiate from sibling tools like blender_rigging or blender_shapekeys, though the portmanteau rationale explains the consolidation rationale.

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

Usage Guidelines3/5

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

The description implies usage by listing operation categories (e.g., Basic Animation, Shape Keys, Constraints) and notes when certain parameters are required for specific operations. However, it does not provide explicit when-to-use vs. alternatives guidance, nor does it mention exclusions or when to prefer sibling tools such as blender_shapekeys or blender_rigging.

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

blender_api_docsA
Read-onlyIdempotent

Look up Blender Python API documentation for an identifier.

Examples: Mesh, bpy.types.Mesh, bpy.ops.mesh.primitive_cube_add.

Use before writing bpy scripts to reduce hallucinated API calls.

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("blender_api_docs", {"identifier": "bpy.types.Object"})
ParametersJSON Schema
NameRequiredDescriptionDefault
searchNo
identifierNobpy.types.Object

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds value by specifying the return format (dict with success, message, data) and the intent to reduce hallucinated API calls. This is consistent with annotations and adds context 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.

Conciseness4/5

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

The description is compact and well-structured with examples and a return format section. While the Python code example is somewhat redundant, it doesn't waste space. Overall it is appropriately sized and front-loaded with purpose.

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

Completeness3/5

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

For a simple lookup tool with an output schema, the description includes return format and usage intent, which is good. However, the unclear role of 'search' leaves a gap in completeness, making it not fully self-sufficient.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It explains the 'identifier' parameter through examples, but the 'search' parameter is never mentioned or clarified. This leaves significant ambiguity for a two-parameter tool, and the description fails to fully compensate for the schema gap.

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

Purpose5/5

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

The description clearly states the tool's function: 'Look up Blender Python API documentation for an identifier.' It provides concrete examples (Mesh, bpy.types.Mesh, bpy.ops.mesh.primitive_cube_add) that illustrate scope. This distinguishes it from sibling tools that generate scripts or manipulate Blender scenes.

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

Usage Guidelines4/5

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

The description explicitly says 'Use before writing bpy scripts to reduce hallucinated API calls,' which gives clear context on when to use. It does not mention when not to use or alternatives, but the primary use case is well-stated.

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

blender_atlasingA

Advanced material and texture atlasing for VR performance optimization.

Reduces draw calls by intelligently merging materials and textures into atlas layouts, critical for mobile VR performance on Quest and similar devices.

ParametersJSON Schema
NameRequiredDescriptionDefault
paddingNoPadding between atlas regions in pixels
operationNoAtlasing operation typecreate_material_atlas
atlas_infoNoPre-calculated atlas information for UV layout
atlas_sizeNoSize of atlas texture (512, 1024, 2048, 4096)
output_pathNoPath for atlas texture output//material_atlas.png
target_meshNoTarget mesh object (defaults to active)
max_materialsNoMaximum materials for draw call optimization
texture_pathsNoList of texture files for texture atlas
combine_similarNoMerge materials with similar properties
combine_by_colorNoMerge materials with similar base colors
preserve_normalsNoMaintain normal map assignments during optimization

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint false and destructiveHint false, so the tool is known to mutate state but not destroy it. The description adds that it 'merges materials and textures' and 'reduces draw calls,' which gives some behavior context. However, it does not disclose potential side effects like modification of existing materials or assets, reversibility, or whether it changes the scene permanently. This is a moderate level of transparency.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the core purpose, and every sentence is informative. It avoids fluff and clearly communicates the tool's value proposition.

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 (11 parameters, output schema, four operation types), the description provides a high-level use case and motivation but does not detail the different operations or typical workflows. However, the rich schema and annotations fill most gaps, so only a slight deduction is warranted.

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%, meaning all 11 parameters have detailed descriptions in the schema. The tool description itself adds no parameter-level details beyond the schema, so it meets the baseline but does not enhance parameter understanding. No gaps to compensate.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'material and texture atlasing for VR performance optimization' and 'Reduces draw calls by intelligently merging materials and textures.' It uses specific verbs and identifies the resource, but does not explicitly distinguish itself from sibling tools like blender_materials or blender_textures, so it falls short of a perfect 5.

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

Usage Guidelines4/5

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

The description provides clear usage context: 'critical for mobile VR performance on Quest and similar devices.' This implies when to use the tool (VR optimization scenarios) but does not explicitly mention alternatives or situations where it should not be used, so it scores just below the 5 threshold.

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

blender_batchC

Batch image and mesh export operations.

Operations:

  • resize: resize images matching pattern (default *.png)

  • convert: convert image formats in input_dir

  • export: export mesh objects whose names contain name_pattern

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("blender_batch", {"operation": "resize", "input_dir": "C:/images"})
ParametersJSON Schema
NameRequiredDescriptionDefault
widthNo
heightNo
patternNo*.png
input_dirNo
operationNoresize
output_dirNo
name_patternNo
export_formatNoglb
source_formatNojpg
target_formatNopng

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

Annotations are all false, so the description carries the burden of disclosing side effects. It does not state whether files are overwritten, whether a Blender session is required, or any limitations. The operations imply file writes and modifications, but no explicit behavioral disclosure is provided.

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

Conciseness4/5

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

The description is appropriately concise: an intro, a three-item bullet list, a return format line, and a code example. It is well-structured and front-loads the main purpose, with no unnecessary verbosity.

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

Completeness2/5

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

For a tool with 10 parameters and three distinct operations, the description is too sparse. It lacks per-operation parameter mapping, prerequisites, and edge-case behavior. The standard return format and output schema existence do not compensate for the missing operational detail.

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

Parameters2/5

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

With 0% schema coverage, the description must compensate. It explains 'pattern' defaulting to *.png and 'name_pattern' for export, but leaves unclear key parameters like width/height, source_format/target_format, and output_dir. The example demonstrates input_dir usage, but many params remain semantically opaque.

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 'Batch image and mesh export operations' and enumerates three specific operations (resize, convert, export), which defines a concrete scope. It differentiates from siblings like blender_export by focusing on batch and multi-type operations, though it doesn't explicitly contrast each mode.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives is given. The name implies batch use, and the operation list suggests scenarios, but there is no mention of exclusions or when to prefer a sibling like blender_export or script_execute.

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

blender_cameraA

Create and control cameras in Blender scenes.

Supports multiple operations through the operation parameter:

  • create_camera: Create a new camera

  • set_active_camera: Set the active camera

  • set_camera_lens: Adjust camera lens and sensor settings

ParametersJSON Schema
NameRequiredDescriptionDefault
fovNoField of view in degrees
lensNoCamera lens focal length in mm
clip_endNoFar clipping distance
locationNoCamera position coordinates
rotationNoCamera rotation angles in degrees
operationNoCamera operation typecreate_camera
clip_startNoNear clipping distance
camera_nameNoName for the cameraCamera
sensor_widthNoCamera sensor width in mm
target_locationNoTarget position for look_at operations

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

Annotations are all false (readOnlyHint=false, destructiveHint=false, etc.), so the description itself must disclose behavioral traits. It only lists operations without explaining side effects, such as modifying the current scene, creating new objects, or affecting the active camera state. For example, 'Create a new camera' does not state that it adds a camera to the scene or require existing context.

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

Conciseness5/5

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

The description is concise, front-loaded with the core purpose, and uses a bulleted list for operations. Every sentence contributes useful information, and there is no redundant text.

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?

An output schema exists, so return values are adequately documented elsewhere. However, the description lacks guidance on which parameters apply to each operation, which is important given 10 parameters and 3 operations. For instance, it doesn't explain that camera_name is needed for set_active_camera. This is a clear gap in 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 baseline is 3. The description adds some value by implying which parameters are relevant for each operation (e.g., set_camera_lens uses lens and sensor_width), but it does not clarify which parameters are required per operation. The parameter descriptions in the schema already cover individual meanings.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb and resource ('Create and control cameras in Blender scenes') and enumerates three distinct operations via the operation parameter. This differentiates it from siblings like blender_scene or blender_lighting, which target other aspects of Blender.

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

Usage Guidelines4/5

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

The description provides clear usage context by explaining that multiple operations are supported and listing them. While it does not explicitly name alternatives or exclusions, the camera-specific focus makes it evident when to use this tool. However, it could be improved by contrasting with other scene tools.

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

blender_compositorC

Compositor graph operations for post-processing.

Operations:

  • enable: turn on compositor nodes with render layers -> composite wiring

  • add_node: add a compositor node

  • connect_nodes: connect two compositor nodes

  • glow: add a glow/glare effect chain

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("blender_compositor", {"operation": "enable"})
ParametersJSON Schema
NameRequiredDescriptionDefault
to_nodeNo
from_nodeNo
glow_sizeNo
node_nameNo
node_typeNoCompositorNodeBlur
operationNoenable
to_socketNo
location_xNo
location_yNo
from_socketNo
glow_qualityNo
use_sequencerNo
glow_thresholdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations are all false, providing no safety profile. The description only gives surface-level operations (e.g., 'add a compositor node') without disclosing side effects, required Blender state, or reversibility. It does include the return format for success/message/data, but that's not behavioral context.

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

Conciseness4/5

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

The description is well-structured with a bullet list, return format section, and example. It is concise and scannable, though the 'Operations' list could be slightly more compact if parameters were documented elsewhere.

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

Completeness2/5

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

Given 13 parameters, 4 operations, no schema descriptions, and no annotations, the description falls short. It provides an overview and an example but omits parameter semantics, per-operation prerequisites, and broader Blender context needed to invoke it reliably.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not map any of the 13 parameters to operations. Some parameters are inferable (e.g., from_node/to_node for connect_nodes) but not explicitly documented, leaving users to guess the roles of glow_size, use_sequencer, etc.

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 'Compositor graph operations for post-processing' and enumerates specific sub-operations (enable, add_node, connect_nodes, glow) with short explanations. While it doesn't explicitly contrast with sibling tools, the compositor focus distinguishes it from other Blender tools.

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

Usage Guidelines3/5

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

The description implies usage for post-processing via the opening line and provides a simple example. However, it lacks explicit guidance on when to choose this tool over siblings like blender_render or blender_shaders, and does not explain when to use each sub-operation beyond their brief descriptions.

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

blender_downloadA

Download from URL and import, or get supported formats info (portmanteau).

Operations:

  • download: Download from url and optionally import into scene (requires url)

  • info: Supported file formats and usage examples

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoFor download - URL to download from (http/https)
timeoutNoFor download - timeout in seconds (1-300)
operationNoOne of download, infodownload
custom_filenameNoFor download - custom filename without extension
import_into_sceneNoFor download - import into current scene

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

Description notes 'requires url' and 'optionally import into scene', adding some behavioral context. But annotations are all false and provide no safety hints, so the description carries the burden; it doesn't disclose potential side effects of importing into the scene or what happens on failure.

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

Conciseness4/5

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

Two paragraphs with a structured operation list. The term 'portmanteau' is distracting and unexplained, but the overall text is compact and includes only the essentials.

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 two operations and their key requirements. With an output schema present and fully documented parameters, it is complete enough to guide usage; it lacks explicit failure behavior, but that is likely handled by the 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 descriptions cover all parameters (100%), providing a solid baseline. The description clarifies that 'operation' switches between download and info and that 'url' is expected for download, but adds no new syntax or format details 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?

Clearly states it downloads from URL and optionally imports, or provides file format info. Distinguishes from sibling import tools by emphasizing the URL source and offering a distinct info operation.

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

Usage Guidelines4/5

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

The operation list clearly indicates when to use download vs info, and the 'requires url' note implies the precondition for download. However, it does not explicitly exclude alternatives like blender_import for local files, so there's clear context but no direct when-not guidance.

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

blender_exportB

Export Blender scenes and objects to interchange and game-engine formats.

Operations:

  • export_gltf / export_glb / export_fbx / export_obj / export_stl / export_usd / export_vrm

  • export_unity / export_vrchat / export_unreal (platform presets)

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("blender_export", {"operation": "export_glb", "output_path": "C:/out/model.glb"})
ParametersJSON Schema
NameRequiredDescriptionDefault
operationNoexport_glb
file_formatNoGLB
output_pathNo
global_scaleNo
object_namesNo
apply_transformsNo
include_materialsNo
include_animationsNo
use_mesh_modifiersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

Annotations provide no behavioral hints (all false), so the description carries the full burden. It discloses the return format but does not mention file system effects, overwrite behavior, or prerequisites like a running Blender instance. Since this tool writes files, the lack of any behavioral disclosure beyond operations is insufficient.

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

Conciseness4/5

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

The description is well-structured with a short intro, a bulleted list of operations, and an example. It is concise and free of excess verbiage, though the example code block and return format section add some length.

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

Completeness2/5

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

Given the tool has 9 parameters and a nontrivial set of operations, the description is incomplete. It omits parameter semantics, does not explain platform preset differences, and does not mention limitations or requirements. The output schema covers return format, but overall the description leaves significant gaps for a tool of this complexity.

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

Parameters2/5

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

Schema coverage is 0%, and the description only illustrates 'operation' and 'output_path' via an example, leaving other parameters (global_scale, apply_transforms, include_materials, etc.) unexplained. While the operation list adds some value, it does not compensate for the undocumented parameters, which are critical for effective use.

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: 'Export Blender scenes and objects to interchange and game-engine formats.' It lists specific operations (e.g., export_gltf, export_fbx, export_unity) that distinguish it from siblings like blender_import and blender_render. The verb 'Export' is specific and the resource is well-defined.

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

Usage Guidelines4/5

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

The description provides clear context on when to use the tool (exporting scenes/objects to various formats), which is implied by the operation list and example. However, it does not explicitly state when not to use it or mention alternatives like blender_import, so it lacks explicit exclusion guidance.

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

blender_export_presetsB

Platform-specific export presets for VR avatar deployment.

Handles the critical differences between VR platforms (scale, format, bone limits) ensuring your avatars work correctly in VRChat, Resonite, and Unity environments.

ParametersJSON Schema
NameRequiredDescriptionDefault
platformNoTarget VR platform ("VRCHAT", "RESONITE", "UNITY", etc.)VRCHAT
operationNoExport preset operation typeexport_with_preset
check_bonesNoValidate bone count and naming in validation
check_scaleNoValidate scale settings in validation
output_pathNoExport output path (without extension)//export
preset_nameNoName for custom preset creation
base_platformNoPlatform to base custom preset onVRCHAT
target_objectsNoList of object names to export/validate
apply_modifiersNoApply modifiers before export
check_materialsNoValidate material compatibility in validation
custom_settingsNoCustom settings for preset creation
include_texturesNoInclude textures in export
include_materialsNoInclude materials in export

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

With all annotation hints set to false (readOnly, idempotent, destructive), the description must disclose behavioral traits, but it does not. It does not mention whether the tool exports files, modifies the scene, creates presets, or has side effects. The operation parameter indicates multiple modes, but the description leaves the agent unaware of these behaviors.

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

Conciseness4/5

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

The description is concise and front-loaded, with two sentences that communicate the core purpose without jargon or fluff. It earns its place, though it lacks structure (e.g., no bullets or operation list) that might aid scannability.

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

Completeness2/5

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

The tool is complex with 13 parameters and multiple operations (export, validate, get presets, create custom), but the description does not mention these operations or how the tool fits into a broader workflow. The output schema exists, so return values are covered, but the overall context of what the tool actually does beyond 'handling differences' is incomplete.

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 adds some high-level context by referencing scale, format, and bone limits, which loosely maps to check_scale, check_bones, and platform settings, but it does not provide detailed parameter semantics beyond what the schema already offers. Overall, the schema carries the load.

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

Purpose4/5

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

The description clearly identifies the tool as providing platform-specific export presets for VR avatar deployment, mentioning specific platforms (VRChat, Resonite, Unity) and critical aspects (scale, format, bone limits). This distinguishes it from general export tools like blender_export, though it does not explicitly contrast with siblings.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool: when deploying avatars to VR platforms and needing to handle platform-specific differences. It implies usage scenarios but does not provide explicit when-not-to-use guidance or mention alternatives, so it falls just short of a 5.

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

blender_furnitureB

Create furniture and complex objects in Blender.

Supports multiple operations through the operation parameter:

  • create_chair: Create chairs (dining, office, armchair, etc.)

  • create_table: Create tables (dining, coffee, desk, etc.)

  • create_bed: Create beds (single, double, bunk, etc.)

  • create_sofa: Create sofas and couches

  • create_cabinet: Create cabinets and storage

  • create_shelf: Create bookshelves and shelving

  • create_desk: Create desks and workstations

  • create_stool: Create stools and bar stools

  • create_room: Create room with walls, floor, ceiling, windows, doors

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the furniture objectFurniture
styleNoStyle (modern, classic, rustic, industrial, etc.)modern
widthNo
heightNo
lengthNo
bed_typeNosingle
has_doorNo
locationNoPosition coordinates
materialNoMaterial type (wood, metal, fabric, etc.)wood
desk_typeNooffice
operationNoFurniture creation operationcreate_chair
room_typeNoliving
sofa_typeNothree_seater
chair_typeNodining
dimensionsNoBase dimensions (width, depth, height)
shelf_typeNobookshelf
stool_typeNobar
table_typeNodining
has_windowsNo
cabinet_typeNokitchen
window_countNo
wall_thicknessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

Annotations provide no safety hints (all false). The description only says 'in Blender' and 'create', without disclosing side effects, whether it modifies the current scene, or any permissions needed. No additional behavioral context is provided.

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

Conciseness4/5

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

The description is concise and well-structured with a bullet list of operations, front-loading the core purpose. It avoids unnecessary prose, though it could have added brief parameter guidance without becoming verbose.

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

Completeness2/5

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

Given the high complexity (22 parameters, many operation-specific) and low schema coverage, the description is incomplete. It does not explain how operation selection affects parameters, room creation specifics, or any output behavior. An output schema exists, but that does not cover usage semantics for each operation.

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

Parameters2/5

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

Schema description coverage is only 27%, so the description must compensate for poorly documented parameters. It does not explain which parameters apply to which operation, nor does it add meaning beyond listing operation values. This leaves many type-specific parameters (e.g., bed_type, has_door) ambiguous.

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

Purpose5/5

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

The description clearly states the tool creates furniture and complex objects in Blender, with a specific verb and resource. Listing supported operations (chairs, tables, beds, sofas, etc.) distinguishes it from sibling tools by targeting a specific object category.

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

Usage Guidelines3/5

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

The description implies usage by listing supported operations, so an agent knows this tool is for furniture creation. However, it lacks explicit guidance on when to use this tool versus alternatives like construct_object or blender_mesh, and does not mention exclusions or prerequisites.

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

blender_geonodesB

Geometry Nodes graph operations (procedural modeling).

Operations:

  • create_group: create or reuse a GeometryNodeTree

  • add_node: add a node to the group

  • connect_nodes: wire two nodes in the group

  • assign_modifier: attach node group to an object as Geometry Nodes modifier

  • add_input: expose a group input socket

  • list_node_types: common GeometryNode types for agents

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("blender_geonodes", {"operation": "create_group", "group_name": "MyNodes"})
ParametersJSON Schema
NameRequiredDescriptionDefault
to_nodeNo
from_nodeNo
node_nameNo
node_typeNoGeometryNodeMeshCube
operationNocreate_group
to_socketNo
group_nameNoGeoNodes
input_nameNoInput
location_xNo
location_yNo
from_socketNo
object_nameNo
socket_typeNoNodeSocketFloat
default_valueNo
modifier_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

Annotations are all false, so no safety profile is provided. The description lists mutating operations (e.g., assign_modifier, add_node) but does not disclose side effects such as modifying the Blender scene, requiring an open project, or potential failure modes. The return format is mentioned but redundant given the output schema.

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

Conciseness4/5

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

The description is well-structured with a bullet list of operations, a return format note, and an example. It is concise and front-loaded, though the return format section is redundant since an output schema exists.

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

Completeness2/5

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

The tool is complex with 15 parameters and 6 distinct operations, but the description only lists operations without explaining operation sequences (e.g., create_group before add_node), parameter dependencies, or preconditions. The example covers only one operation, leaving significant operational gaps.

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

Parameters2/5

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

With 0% schema description coverage for 15 parameters, the description must compensate, but it only partially does. The operation names hint at relevant parameters (e.g., connect_nodes implies from_node/to_node) and the example uses group_name, but there is no explicit mapping of parameters to operations or clarification of required vs. optional fields.

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 defines the tool as 'Geometry Nodes graph operations (procedural modeling)' and lists six specific operations (create_group, add_node, etc.), distinguishing it from sibling tools like blender_modifiers or blender_shaders. The enumerated operations make the purpose concrete and actionable.

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

Usage Guidelines4/5

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

The description provides clear domain context ('Geometry Nodes graph operations') and an example call, which implies usage. However, it does not explicitly mention when to choose this tool over alternatives or state any exclusions. This meets the 'clear context, no exclusions' level.

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

blender_grease_pencilA

PORTMANTEAU RATIONALE: Consolidates 12 Grease Pencil 2D animation operations into a single tool.

Operations:

  • create: Create a new Grease Pencil object with layer and initial frame

  • draw_stroke: Draw strokes (LINE, BOX, CIRCLE, ARC, CURVE) with color/thickness

  • convert: Convert Grease Pencil to MESH, CURVE, or new GP strokes

  • set_material: Create and assign GP material with stroke/fill color

  • set_layer: Create, reorder, lock, toggle visibility of GP layers

  • animate_stroke: Keyframe stroke properties (location, rotation, scale) over time

  • onion_skinning: Enable/disable onion skin with before/after frame count

  • add_modifier: Apply GP modifiers (BUILD, NOISE, SIMPLIFY, SMOOTH)

  • fill_region: Fill enclosed stroke regions with color

  • interpolate: Generate in-between frames between two GP frames

  • delete_strokes: Remove strokes from a GP frame by selection type

  • list_layers: List all layers and frame info on a GP object

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for new GP object (used by: create)GPencil
colorNoRGBA stroke color 0-1 (used by: draw_stroke, set_material)
widthNoBox width (used by: draw_stroke BOX)
cyclicNoClose the stroke (used by: draw_stroke)
heightNoBox height (used by: draw_stroke BOX)
pointsNoPoint coordinates for LINE/CURVE strokes (used by: draw_stroke)
radiusNoCircle radius (used by: draw_stroke CIRCLE)
locationNoPlacement location (used by: create)
svg_pathNoFile path to SVG (used by: import_svg)
to_layerNoTarget layer (used by: set_layer)
gp_objectNoTarget GP object name (used by: draw_stroke, convert, set_material, etc.)
operationNoThe GP operation to performcreate
thicknessNoStroke thickness (used by: draw_stroke)
fill_colorNoRGBA fill color 0-1 (used by: set_material, fill_region)
from_layerNoSource layer for transfer (used by: set_layer)
layer_nameNoTarget layer name (used by: draw_stroke, set_layer, animate_stroke)GP_Layer
stroke_typeNoLINE|BOX|CIRCLE|ARC|CURVE (used by: draw_stroke)LINE
target_typeNoMESH|CURVE|GP_STROKES (used by: convert)MESH
after_framesNoFrames after current (used by: onion_skinning)
frame_numberNoFrame number for drawing (used by: draw_stroke, interpolate)
before_framesNoFrames before current (used by: onion_skinning)
keep_originalNoKeep original after conversion (used by: convert)
material_nameNoName for new material (used by: set_material)
modifier_typeNoBUILD|NOISE|SIMPLIFY|SMOOTH (used by: add_modifier)BUILD
selection_typeNoALL|VISIBLE|INVERT (used by: delete_strokes)ALL
modifier_settingsNoJSON string of modifier settings (used by: add_modifier)
interpolation_framesNoNumber of in-between frames (used by: interpolate)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior1/5

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

The description lists 'delete_strokes: Remove strokes from a GP frame' which is a destructive behavior, yet annotations declare destructiveHint=false. This contradicts the annotation's implication that the tool is not destructive. No other behavioral context (e.g., side effects, prerequisites) is disclosed.

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

Conciseness4/5

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

The description is well-structured with a clear rationale header and a bulleted operation list. It is somewhat long but each line conveys a distinct operation, so the length is justified. The use of markdown makes it scannable.

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 (27 params, 12 operations), the description provides a solid overview but does not fully explain prerequisites or operation-specific parameter requirements. However, the input schema and output schema cover many details, making the description sufficient for selection and basic 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% with each parameter already describing its 'used by' operation, so the baseline is 3. The description adds value by grouping operations into a coherent list, giving agents a high-level understanding of how parameters fit together across the 12 operations.

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 consolidates 12 Grease Pencil operations and provides an explicit list of operations, each with a brief verb+resource description. This distinguishes it from sibling tools focused on mesh, materials, or other Blender domains, leaving no doubt about its purpose.

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

Usage Guidelines3/5

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

The description implies usage through its operation list ('Use for Grease Pencil 2D animation operations') but does not explicitly mention alternatives or when not to use. It names no sibling tools or exclusions, so guidance is present but indirect.

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

blender_helpA
Read-onlyIdempotent

Get help, list tools, search, tool info, or categories (portmanteau).

Operations:

  • help: Comprehensive help for tools/functions (use function_name, category, detail_level)

  • list_tools: List all tools, optionally filtered by category

  • search: Search tools by name or description (use query)

  • tool_info: Detailed info for one tool (use tool_name)

  • categories: List all categories with tool counts

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoFor search - search term
categoryNoFor help/list_tools - category filter
operationNoOne of help, list_tools, search, tool_info, categorieshelp
tool_nameNoFor tool_info - tool to describe
detail_levelNoFor help - brief, normal, detailednormal
function_nameNoFor help - specific function name

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful behavioral detail by explaining what each operation does and which parameters it consumes, going beyond the raw schema. It doesn't cover edge cases or error behavior, but for a read-only help tool, this is not a significant gap.

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

Conciseness5/5

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

The description is about 120 words and structured as a clear bullet-like list. The first sentence provides a concise overview, and each operation line is purposeful and directly informative. No redundant or filler language.

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?

The tool has 5 operations and 6 optional parameters, and the description covers every operation with its parameter mapping. Since an output schema exists, return-value details are not needed. The description fully addresses the tool's scope as a help/meta utility, making it complete for an agent to invoke correctly.

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

Parameters5/5

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

Although schema coverage is 100%, the schema's parameter descriptions are terse and generic (e.g., 'For help - specific function name'). The description significantly enriches semantics by linking operations to parameters, e.g., 'help: Comprehensive help... (use function_name, category, detail_level)' and 'list_tools: List all tools, optionally filtered by category'. This mapping is the key value and is not present 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?

The description opens with 'Get help, list tools, search, tool info, or categories', clearly stating the tool's five distinct operations. It distinguishes itself from sibling tools by being the meta-help/utility tool, not a specific Blender feature.

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

Usage Guidelines4/5

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

The description explicitly maps each operation to its relevant parameters, e.g., 'search: Search tools by name or description (use query)' and 'tool_info: Detailed info for one tool (use tool_name)'. This provides clear usage context within the tool, though it does not explicitly contrast it with sibling tools like blender_api_docs. Still, the operations define their own usage sufficiently.

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

blender_importA

Import 3D files into Blender scenes.

Supports multiple operations through the operation parameter:

  • import_[format]: Import files in any supported format (FBX, OBJ, GLTF, STL, PLY, etc.)

  • import_cad: Import CAD files (STEP, STP, IGES, IGS) with automatic conversion

  • link_asset: Link external assets without importing

CAD IMPORT FEATURES:

  • Automatic STEP/STP conversion using Mayo, FreeCAD, or online tools

  • Mesh quality control (low/medium/high)

  • Scale adjustment for unit conversion

  • Direct integration with robotics-mcp CAD converter

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathNoPath to the file to import
operationNoImport operation typeimport_fbx
asset_nameNoLinkedAsset
file_formatNoFormat of the file (FBX, OBJ, GLTF, CAD, etc.)FBX
global_scaleNoGlobal scale factor for import
mesh_qualityNoMesh quality for CAD conversion (low, medium, high)medium
import_shadingNoImport material shading
cad_scale_factorNoScale factor for CAD unit conversion
use_custom_normalsNoImport custom normals
cad_conversion_toolNoCAD conversion tool (auto, mayo, freecad, online)auto

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations only contain false flags, so the description carries the burden. It adds useful context like automatic STEP/STP conversion with Mayo/FreeCAD/online tools and direct integration with robotics-mcp CAD converter, but it does not disclose side effects on the scene or potential failure modes.

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

Conciseness5/5

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

The description is well-structured with a front-loaded purpose statement, bullet lists for operations and CAD features, and no redundant or filler content. Each line adds meaningful 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?

Given the tool's complexity (10 parameters, output schema exists), the description covers operations and CAD specifics adequately. It does not mention prerequisites like an active Blender session, but the output schema and detailed operation list make it sufficiently complete for an agent to select and invoke.

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

Parameters4/5

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

Schema coverage is high (90%), but the description enriches the operation parameter by enumerating possible values (import_[format], import_cad, link_asset) and explains the purpose of mesh_quality, cad_scale_factor, and cad_conversion_tool in the CAD features section.

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 'Import 3D files into Blender scenes' and elaborates with specific operations (import_[format], import_cad, link_asset). This distinguishes it from related tools like blender_export and provides a clear scope.

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

Usage Guidelines2/5

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

The description lists operation types within the tool but gives no explicit guidance on when to use this tool versus alternatives such as import_cad_file or blender_export. There are no exclusions or comparisons to siblings.

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

blender_jobsA

Async job queue for long-running Blender Python scripts (renders, bakes, sims).

Operations:

  • submit: queue script, returns job_id immediately

  • status: poll job by job_id

  • list: recent jobs

  • cancel: cancel pending/running job

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("blender_jobs", {"operation": "submit", "script": "import bpy; print('hello')"})
ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
job_idNo
scriptNo
timeoutNo
operationNostatus
script_nameNoasync_job
prefer_sessionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Description discloses async behavior ('returns job_id immediately'), cancel semantics, and the standard return format (success, message, data). This adds meaningful context beyond the annotations, though it omits details like error handling or whether cancel truly kills remote jobs.

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

Conciseness5/5

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

Well-organized with a brief summary, bulleted operations, return format, and a single example. Every section serves a purpose and there is no redundant or filler content.

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

Completeness4/5

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

Covers the core use case, operations, return format, and a practical example, making the tool largely self-contained. The few undocumented parameters prevent a perfect score, but overall it provides enough context for an agent to invoke it correctly.

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

Parameters3/5

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

The operations list and example clarify the 'operation' and 'script' parameters, but the remaining parameters (limit, job_id, timeout, script_name, prefer_session) are not explained. With schema description coverage at 0%, the description only partially compensates for the lack of structured documentation.

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 explicitly states 'Async job queue for long-running Blender Python scripts' and lists the four operations (submit, status, list, cancel), making its purpose unmistakable. This clearly distinguishes it from synchronous script execution and other Blender-specific siblings.

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

Usage Guidelines4/5

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

The 'long-running' qualifier and examples (renders, bakes, sims) indicate when to use this queueing tool. However, it does not explicitly mention alternatives like script_execute or state when not to use it, leaving the exclusion guidance implicit.

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

blender_lightingA

PORTMANTEAU PATTERN RATIONALE: Consolidates 7 related lighting operations into single interface. Prevents tool explosion while maintaining full lighting workflow from basic lights to professional HDRI setups. Follows FastMCP 2.14.3 best practices.

Professional lighting system for Blender supporting all light types, HDRI environments, and lighting rigs.

Light Creation (4 operations):

  • create_sun: Generate directional sunlight with shadow control for outdoor scenes

  • create_point: Create omnidirectional point light for general illumination

  • create_spot: Generate focused spotlight with beam angle and softness control

  • create_area: Create rectangular area light for soft, realistic shadows

Lighting Setups (2 operations):

  • setup_three_point: Create professional three-point lighting rig (key, fill, rim lights)

  • setup_hdri: Configure HDRI environment lighting with world background

Light Management (1 operation):

  • adjust_light: Modify properties of existing lights (energy, color, position, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoPhysical size of area lights. Default: 1.0. Range: 0.01 to 100.0. Larger sizes = softer, more realistic shadows. Only used for: "create_area".
colorNoLight color as RGB values. Default: (1, 1, 1) (white). Range: 0.0 to 1.0 per channel. Used for: all light creation and adjustment.
energyNoLight intensity/energy multiplier. Default: 1.0. Range: 0.0 to 100.0. Higher values = brighter light. Used for: all light creation and adjustment.
locationNo3D position coordinates (x, y, z) in world space. Default: (5, 5, 5). Used for: all "create_*" operations.
rotationNoRotation angles in degrees (x, y, z) around each axis. Default: (0, 0, 0). Primarily affects: "create_spot" for beam direction.
operationNoThe lighting operation to perform. Must be one of: "create_sun", "create_point", "create_spot", "create_area", "setup_three_point", "setup_hdri", "adjust_light". - Light creation: "create_*" operations (use: light_name, location, rotation, energy, color + type-specific params) - Lighting setups: "setup_*" operations (use: minimal parameters, auto-position lights) - Light adjustment: "adjust_light" (use: light_name + properties to modify)create_sun
spot_sizeNoBeam angle in degrees for spot lights. Default: 45.0. Range: 1.0 to 180.0. Smaller angles = more focused beam. Only used for: "create_spot".
light_nameNoName for the new light object. Default: "Light". Must be unique in scene. Required for: all "create_*" and "adjust_light" operations.Light
light_typeNoType of light for creation operations. One of: "SUN", "POINT", "SPOT", "AREA". Default: "SUN". Auto-detected from operation when possible.SUN
spot_blendNoEdge softness for spot lights. Default: 0.15. Range: 0.0 to 1.0. Higher values = softer beam edges. Only used for: "create_spot".
shadow_soft_sizeNoShadow softness for sun lights. Default: 0.1. Range: 0.0 to 10.0. Higher values = softer shadows. Only used for: "create_sun".

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

With annotations all false (readOnlyHint=false, destructiveHint=false, etc.), the description carries the burden of disclosing behavior. It states operations such as 'Generate directional sunlight', 'Create point light', and 'Modify properties of existing lights', clearly indicating mutating effects. It also notes operation-specific parameters like spot_size and shadow_soft_size, adding context beyond the annotations.

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

Conciseness3/5

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

The description starts with a 'PORTMANTEAU PATTERN RATIONALE' paragraph that explains tool design philosophy rather than usage. While the subsequent operation breakdown is well-structured with bullet points, the meta rationale adds length without helping an agent select or invoke the tool, making it less concise than optimal.

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 operations and 11 parameters, the description covers all operations and indicates which parameters apply to each. It implicitly communicates that it operates within Blender, consistent with sibling tools. Given the output schema exists, the lack of return-value details is acceptable. It does not mention prerequisites like an active Blender session, but this appears to be common across the sibling set.

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

Parameters3/5

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

The input schema has 100% coverage with detailed descriptions for all 11 parameters, including usage notes like 'Only used for: create_area'. The description groups parameters by operation (create_* vs setup_* vs adjust_light), which reinforces the mapping but does not add materially new semantics beyond what the schema already provides. 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 identifies the tool as a 'Professional lighting system for Blender' and enumerates seven distinct lighting operations (create_sun, create_point, create_spot, create_area, setup_three_point, setup_hdri, adjust_light). This separates it from sibling tools like blender_camera or blender_render by focusing specifically on lighting.

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

Usage Guidelines3/5

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

The description implies this is the consolidated tool for all lighting tasks, explaining that it consolidates 7 operations to prevent tool explosion. However, it does not explicitly state when to use this over alternatives or list exclusions, leaving usage guidance implied rather than explicit.

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

blender_logsA
Read-onlyIdempotent

View recent logs or log buffer statistics (portmanteau).

Operations:

  • view: Recent log entries with optional filters (level_filter, module_filter, limit, since_minutes, include_details)

  • stats: Log buffer statistics (total entries, time range, level distribution)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoFor view - max entries (1-100)
operationNoOne of view, statsview
level_filterNoFor view - DEBUG, INFO, WARNING, ERROR, CRITICAL
module_filterNoFor view - partial module name match
since_minutesNoFor view - logs from last N minutes
include_detailsNoFor view - include function/line in output

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds operational behavior by describing what each operation does, including the stats output (total entries, time range, level distribution), which goes beyond the annotations without contradicting them.

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

Conciseness5/5

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

The description is compact, starting with a clear one-sentence purpose and using a bulleted list for operations. Every sentence contributes meaning, with no unnecessary filler.

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

Completeness4/5

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

Given the read-only nature, full schema coverage, and presence of an output schema, the description sufficiently explains the tool's functionality and parameter applicability. It does not discuss limitations or integration details, but these are not critical for a well-annotated read-only log tool.

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

Parameters4/5

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

The input schema has 100% parameter description coverage, so baseline is 3. The description adds value by explicitly grouping parameters under 'view' and 'stats', clarifying which parameters apply to which operation and what the stats operation returns, which the schema does not fully convey.

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

Purpose5/5

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

The description clearly states 'View recent logs or log buffer statistics' with a specific verb and resource. It then details two distinct operations (view and stats), making the tool's purpose unambiguous and distinguishable from sibling tools like show_logs_app.

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

Usage Guidelines3/5

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

The description provides operation-specific parameter groupings (view vs stats) but does not explicitly state when to use this tool instead of siblings such as show_logs_app or blender_status. There are no alternative/exclusion statements, so guidance is only implied.

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

blender_materialsA

Create and manage PBR materials in Blender.

Supports multiple operations through the operation parameter:

  • create_fabric: Create fabric material (velvet, silk, cotton, linen, etc.)

  • create_metal: Create metal material (gold, silver, brass, copper, etc.)

  • create_wood: Create wood material (oak, pine, mahogany, walnut, etc.)

  • create_glass: Create glass material (clear, tinted, frosted, stained)

  • create_ceramic: Create ceramic material (porcelain, ceramic, terra_cotta)

  • assign_to_object: Assign existing material to object

  • create_from_preset: Create material from predefined preset

ParametersJSON Schema
NameRequiredDescriptionDefault
iorNoIndex of refraction (1.0-2.5)
nameNoName for the new materialMaterial
metallicNoMetallic property (0-1)
operationNoMaterial operation typecreate_fabric
roughnessNoSurface roughness (0-1)
wood_typeNoType of wood (oak, pine, mahogany, walnut, cherry, beech)oak
anisotropyNoSurface anisotropy for brushed effects (0-1)
base_colorNoBase color as RGB values (0-1)
glass_typeNoType of glass (clear, tinted, frosted, stained)clear
glossinessNoSurface glossiness (0-1)
metal_typeNoType of metal (gold, silver, brass, copper, iron, aluminum)gold
silk_sheenNoSheen intensity for silk materials (0-1)
fabric_typeNoType of fabric (velvet, silk, cotton, linen, brocade, satin, wool)velvet
grain_scaleNoScale of wood grain pattern (0.1-5.0)
object_nameNoName of object for assignment
preset_nameNoName of material preset to use
sub_surfaceNoSubsurface scattering amount (0-1)
weave_scaleNoScale of weave pattern (0.1-10.0)
ceramic_typeNoType of ceramic (porcelain, ceramic, terra_cotta)porcelain
transmissionNoLight transmission amount (0-1)
material_nameNoName of material for assignment
normal_strengthNoNormal map intensity (0-1)
velvet_softnessNoSoftness for velvet materials (0-1)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

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

The description says 'create and manage' which implies modifications to the Blender scene, but it does not disclose side effects, required permissions, reversibility, or what gets destroyed/changed. Annotations provide no safety hints (all false), leaving the description to carry the burden, and it does not.

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

Conciseness5/5

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

The description is concise and well-structured: a one-sentence summary followed by a bulleted list of operations. Every line adds information, and the format is easy to scan.

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

Completeness3/5

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

The description provides a solid high-level overview but misses critical operational context: it does not indicate which parameters apply to each operation (e.g., which parameters are used for create_metal vs create_fabric). An output schema exists to cover return values, but the description still leaves uncertainty about parameter usage per operation.

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

Parameters4/5

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

The input schema already covers parameter descriptions at 100%, so baseline is 3. The description adds value by explaining the operation parameter's enum values in plain language and grouping them by material type, which helps agents select the right operation. It does not map all parameters to operations, but the schema descriptions handle this.

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 'Create and manage PBR materials in Blender' and enumerates specific operation types (create_fabric, create_metal, etc.), making the scope explicit. It distinguishes itself from sibling tools like blender_textures or blender_shaders by focusing on PBR material creation and assignment.

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

Usage Guidelines4/5

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

The description provides clear context: it is for creating and managing PBR materials, with a list of sub-operations. However, it does not explicitly state when to use this tool over alternatives (e.g., blender_shaders or blender_textures) or provide exclusion criteria, so it falls short of a 5.

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

blender_materials_bakingA

Convert non-standard (VRM/MToon) shaders to PBR textures.

Essential for VRM avatars moving into Resonite, Unity, or other PBR-based environments. Prevents "Semantic Dilution" of artistic intent.

ParametersJSON Schema
NameRequiredDescriptionDefault
marginNoPixel margin for UV island bleeding
bake_typeNoType of bake ("combined", "albedo", "normal", "roughness")combined
operationNoBaking operation typebake_toon_to_pbr
output_dirNoOutput directory for baked textures//bakes
resolutionNoBake texture resolution (512, 1024, 2048, 4096)
target_meshNoSpecific mesh object to process (defaults to active)
create_backupNoCreate backup of original materials
max_atlas_sizeNoMaximum atlas texture size for consolidation
preserve_lightingNoTry to maintain original lighting in conversions
remove_unused_uvsNoClean up unused UV space during consolidation

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

Annotations are all false, leaving the description to carry the burden. The description only states the conversion outcome but doesn't disclose side effects such as file writes, material modifications, or whether original materials are backed up. The mention of 'Prevents Semantic Dilution' is a value proposition, not a behavioral disclosure.

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

Conciseness5/5

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

Two concise sentences: the first gives the core function, the second gives the use case. No redundant words, and the marketing-like 'Semantic Dilution' phrase adds a memorable rationale.

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

Completeness3/5

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

Given the tool's complexity (10 params, multiple operations), the description is somewhat thin. It focuses on one operation (convert shaders) but doesn't mention other operations like consolidate_materials or optimize_for_mobile. Output schema covers return values, but the description doesn't address when to use different operations or what side effects occur, leaving gaps.

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?

All 10 parameters have schema descriptions (100% coverage), so the baseline is 3. The description doesn't elaborate on parameter meanings beyond the schema, but the high-level purpose helps interpret parameters like 'operation' and 'bake_type' in the context of converting VRM/MToon to PBR.

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

Purpose5/5

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

The description opens with 'Convert non-standard (VRM/MToon) shaders to PBR textures,' which clearly states the tool's action and target. It distinguishes from sibling tools like blender_shaders or blender_materials by focusing on conversion to PBR, and the Resonite/Unity context adds specificity.

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

Usage Guidelines4/5

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

The phrase 'Essential for VRM avatars moving into Resonite, Unity, or other PBR-based environments' provides a clear when-to-use context. However, it doesn't name alternatives or specify when not to use, so it's not a 5.

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

blender_meshC

PORTMANTEAU PATTERN RATIONALE: Consolidates 9 related mesh operations into single interface. Prevents tool explosion while maintaining full primitive creation and object management functionality. Follows FastMCP 2.14.3 best practices.

Create and manipulate mesh objects in Blender with comprehensive primitive support.

Core Operations:

  • create_cube: Generate cube primitive with customizable dimensions

  • create_sphere: Generate sphere primitive with vertex control

  • create_cylinder: Generate cylinder primitive with radius/depth control

  • create_cone: Generate cone primitive with radius/depth control

  • create_plane: Generate plane primitive for ground/floor surfaces

  • create_torus: Generate torus primitive with ring/tube radius control

  • create_monkey: Generate Suzanne (monkey) primitive for testing

  • duplicate_object: Create copies of existing objects with transforms

  • delete_object: Remove objects from scene by name

  • extrude: Extrude mesh region along +Z in edit mode

  • inset: Inset selected faces

  • bevel_modifier: Add bevel modifier to mesh object

  • subdivide: Subdivide mesh edges

  • merge_vertices: Merge by distance (remove doubles)

  • delete_faces: Delete selected faces in edit mode

  • join: Join multiple mesh objects into one

  • separate_loose: Separate loose parts to new objects

  • triangulate: Convert quads to triangles

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the new object or object to delete. Must be unique in scene.Object
depthNoHeight/depth parameter for 3D primitives (cylinder, cone). Default: 2.0. Range: 0.01 to 100.0.
scaleNoScale factors along each axis (x, y, z). Default: (1, 1, 1). Applied after object creation.
radiusNoRadius parameter for curved primitives (sphere, cylinder, cone, torus). Default: 1.0. Range: 0.01 to 100.0.
distanceNo
locationNoWorld-space coordinates (x, y, z) for object placement. Default: (0, 0, 0). Used for all create operations.
verticesNoVertex count for curved surfaces (sphere, cylinder). Default: 32. Range: 3 to 256. Higher values = smoother surfaces.
operationNoThe mesh operation to perform. Must be one of: "create_cube", "create_sphere", "create_cylinder", "create_cone", "create_plane", "create_torus", "create_monkey", "duplicate_object", "delete_object". - "create_*": Create new primitive objects (require: name, may use: location, scale, radius, depth, vertices) - "duplicate_object": Copy existing object (requires: source_name, name) - "delete_object": Remove object from scene (requires: name)create_cube
thicknessNo
join_namesNo
bevel_widthNo
inset_depthNo
source_nameNoName of source object for duplication operations. Required for "duplicate_object" operation.
bevel_segmentsNo
merge_distanceNo
prefer_sessionNo
primitive_typeNoType of primitive for create operations. One of: "cube", "sphere", "cylinder", "cone", "plane", "torus", "monkey". Auto-detected from operation if not specified.cube
subdivide_cutsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior1/5

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

The description explicitly lists destructive operations such as 'delete_object: Remove objects from scene by name' and 'delete_faces: Delete selected faces', yet the annotations declare destructiveHint=false. This is a direct contradiction. Additionally, the description omits behavioral details like requirements for edit mode or permanence of deletions.

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

Conciseness2/5

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

The description opens with a meta 'PORTMANTEAU PATTERN RATIONALE' that is not operationally useful and bloats the entry. The core description is then buried behind this rationale. While the operation list is structured with bullets, the overall length and unnecessary rationale make it less concise and front-loaded.

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

Completeness2/5

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

With 18 parameters and many operations, the description lacks essential context such as prerequisites (e.g., needing an object in edit mode for extrude/inset), selection requirements, coordinate systems, and the mapping of parameters to operations beyond create/duplicate/delete. The output schema exists, so return values need not be explained, but the operational context is still insufficient.

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

Parameters2/5

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

Schema parameter description coverage is only 50%. The description adds some value by specifying parameter requirements for create/duplicate/delete operations (e.g., 'create_* require: name'), but it fails to explain many parameters such as distance, thickness, join_names, bevel_width, inset_depth, bevel_segments, merge_distance, prefer_session, and subdivide_cuts, which remain undocumented in both schema and description.

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

Purpose4/5

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

The description clearly states the tool creates and manipulates mesh objects in Blender with primitive support, and enumerates specific operations. However, it confusingly claims to consolidate '9 related mesh operations' while listing 18, and does not explicitly distinguish itself from sibling tools like blender_scene or blender_transform.

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

Usage Guidelines2/5

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

No direct guidance is given on when to use this tool versus alternatives. The portmanteau rationale mentions preventing tool explosion, but it does not specify scenarios or exclusions. For a tool with many overlapping siblings, this is a significant gap.

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

blender_modifiersA

Apply and manage mesh modifiers in Blender.

Supports multiple operations through the operation parameter:

  • add_subsurf: Add subdivision surface modifier

  • add_bevel: Add bevel modifier

  • add_mirror: Add mirror modifier

  • add_solidify: Add solidify modifier

  • add_array: Add array modifier

  • add_boolean: Add boolean modifier

  • add_decimate: Add decimation modifier

  • add_displace: Add displacement modifier

  • add_wave: Add wave modifier

  • remove_modifier: Remove a modifier

  • apply_modifier: Apply modifier to mesh

  • get_modifiers: List all modifiers on object

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoCount/repetitions (for array)
widthNoWidth/thickness (for solidify, bevel)
levelsNoSubdivision levels (for subsurf)
offsetNoOffset distance (for solidify)
segmentsNoNumber of segments (for bevel, screw)
operationNoModifier operation typeadd_subsurf
angle_limitNoAngle limit in degrees (for edge split)
object_nameNoName of object to modify
modifier_nameNoName of modifier to operate on
modifier_typeNoType of modifier to addSUBSURF
render_levelsNoRender subdivision levels
merge_thresholdNoMerge threshold (for mirror)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Annotations provide no safety hints (readOnlyHint, destructiveHint are all false), so the description carries the transparency burden. It lists operations like apply_modifier and remove_modifier without warning about their potentially destructive/irreversible nature. It does reveal basic behavior through operation names, but lacks details on side effects, permissions, or workflow consequences.

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

Conciseness5/5

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

The description is concise and well-structured. It opens with a clear one-sentence summary, then lists operations in a scannable bullet format. No redundant or filler content; every line adds informational 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 covers all intended operations and parameter categories sufficiently for a tool of this complexity. It could be more explicit about which parameters are required for each operation and whether object_name is mandatory. An output schema exists, so return value details are not necessary. The main gap is missing prerequisites or interaction notes, showing slight incompleteness.

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

Parameters4/5

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

The schema already provides descriptions for all 12 parameters (100% coverage). The description adds value by enumerating the valid values for the 'operation' parameter and implicitly linking parameters to operations (e.g., add_array uses count, add_subsurf uses levels). This goes beyond the schema's generic 'Modifier operation type' description.

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

Purpose5/5

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

The description clearly states 'Apply and manage mesh modifiers in Blender' with a specific verb and resource. It distinguishes itself from sibling tools like blender_mesh and construct_object by focusing exclusively on modifiers. The list of supported operations further clarifies the tool's scope.

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

Usage Guidelines3/5

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

The described operations imply when the tool should be used (e.g., add_subsurf for subdivision, remove_modifier for removal), but there is no explicit guidance on when to prefer this tool over alternatives. No exclusions or alternative tool references are provided, making the usage context implicit rather than explicit.

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

blender_particlesA

Create and manage particle systems and effects.

Supports multiple operations through the operation parameter:

  • create_particle_system: Create basic particle system

  • create_hair_particles: Create hair/fur particles

  • create_fire_effect: Create fire/smoke particles

  • create_water_effect: Create water/splash particles

  • control_emission: Control particle emission settings

  • bake_particles: Bake particle simulation

  • set_particle_physics: Configure particle physics

ParametersJSON Schema
NameRequiredDescriptionDefault
lifetimeNoLifetime of each particle in frames
end_frameNoFrame when emission ends
operationNoParticle operation typecreate_particle_system
object_nameNoName of object to add particles to
start_frameNoFrame when emission starts
emission_rateNoParticles emitted per frame
particle_sizeNoSize of individual particles
particle_countNoTotal number of particles

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations are all false (readOnlyHint=false, etc.), leaving the description to carry the burden. The description lists multiple mutating operations (create, bake, control, set) which implies scene modification, but it does not disclose side effects like overwriting existing particles, performance costs of baking, or prerequisites. It adds some context beyond annotations but not rich behavioral detail.

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

Conciseness4/5

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

The description is efficiently structured with a one-sentence summary followed by a bulleted list of operations. It is slightly long due to the list, but each line earns its place and information is easy to scan. Front-loading the core purpose works well.

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 multi-operation complexity and the presence of an output schema, the description effectively outlines what operations are available. It does not explain when to choose each operation, but the operation names are self-descriptive. It lacks a note on prerequisites (e.g., object existence), but the parameter schema and output schema fill in most 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 parameters are already well-documented. The description adds value by listing the valid values for the 'operation' parameter, which the schema does not provide as an enum. This helps the agent understand the operation sub-types beyond the schema's generic 'Particle operation type'.

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

Purpose5/5

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

The description clearly states 'Create and manage particle systems and effects' and enumerates specific operations (create, control, bake, set physics), using a specific verb plus resource. It distinguishes itself from sibling tools by focusing exclusively on particle-related functionality.

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

Usage Guidelines3/5

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

The description implies usage through its title and operation list, but it does not explicitly state when to use this tool versus closely related siblings like blender_physics or blender_animation. No alternatives or exclusions are mentioned, so guidance is only implied.

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

blender_physicsA

Enable and configure physics simulations for objects.

Supports multiple operations through the operation parameter:

  • enable_rigid_body: Add rigid body physics to object

  • enable_cloth: Add cloth simulation to object

  • enable_soft_body: Add soft body simulation to object

  • enable_fluid: Add fluid simulation to object

  • bake_physics: Bake physics simulation to keyframes

  • add_force_field: Add force field to scene

  • set_rigid_body_constraint: Add constraints between objects

  • configure_world: Set up physics world settings

ParametersJSON Schema
NameRequiredDescriptionDefault
massNoObject mass in kg
frictionNoFriction coefficient (0-1)
operationNoPhysics operation typeenable_rigid_body
bouncinessNoBounciness/restitution (0-1)
object_nameNoName of object to apply physics to
physics_typeNoType of physics (RIGID_BODY, CLOTH, SOFT_BODY, FLUID)RIGID_BODY
damping_linearNoLinear damping
collision_shapeNoCollision shape type (MESH, BOX, SPHERE, etc.)MESH
damping_angularNoAngular damping
rigid_body_typeNoRigid body type (ACTIVE, PASSIVE)ACTIVE

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

Annotations provide no positive hints (readOnlyHint false, destructiveHint false, etc.), leaving the description to carry the burden of behavioral disclosure. The description lists operations like 'bake_physics' and 'add_force_field' but does not explain side effects, such as overwriting existing physics settings, modifying keyframes, or potentially non-reversible actions. For a mutation tool, this is a significant gap.

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

Conciseness5/5

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

The description is a concise, structured bullet list. The opening sentence states the purpose, followed by a clear enumeration of operations. No wasted words; every line earns its place. It is front-loaded and easily scannable.

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

Completeness3/5

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

Given the tool's complexity (10 parameters, 7 distinct operations) and no positive annotations, the description is minimally adequate but incomplete. It does not explain which parameters apply to which operations, whether operations are mutually exclusive, or any dependencies (e.g., object must exist). An output schema exists but is not shown; the description could still benefit from usage scenarios or operation-specific parameter notes.

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

Parameters4/5

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

Schema coverage is 100% for all 10 parameters, so the baseline is 3. The description goes beyond schema by listing valid values for the 'operation' parameter (enable_rigid_body, enable_cloth, etc.) and implicitly maps operations to physics types. This adds meaningful context that the schema's generic 'Physics operation type' lacks, enhancing parameter understanding.

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

Purpose5/5

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

The description states a clear purpose: 'Enable and configure physics simulations for objects.' It then enumerates specific operations, distinguishing it from sibling tools like blender_particles or blender_modifiers. The verb 'enable/configure' plus resource 'physics simulations' is specific and unambiguous.

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

Usage Guidelines3/5

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

The description implies usage for physics-related tasks but does not explicitly state when to use this tool over alternatives, nor does it mention exclusions or prerequisites. It lists operations but without context like 'use enable_rigid_body for rigid body dynamics' or 'bake for animation export.' This is implied guidance at best.

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

blender_renderA

PORTMANTEAU PATTERN RATIONALE: Consolidates rendering operations into a single interface.

Render Operations:

  • render_preview: Generate high-quality single frame preview

  • render_turntable: Create 360-degree object rotation animation

  • render_animation: Render full timeline animation sequence

  • render_current_frame: Render only the current timeline frame

  • screenshot_viewport: Capture viewport for agent vision (prefers live GUI session)

  • render_multi_angle: Render N stills from orbit angles for review loops

  • set_engine: Configure Cycles/EEVEE engine, samples, device

  • configure_layers: Enable render passes on a view layer

  • setup_post_processing: EEVEE bloom, SSAO, motion blur, DOF

Return Format

Standard string with operation result details

Examples

await call_tool("blender_render", {"operation": "render_preview", "output_path": "C:/render/output.png"})
ParametersJSON Schema
NameRequiredDescriptionDefault
anglesNo
deviceNoGPU
framesNo
samplesNo
use_dofNo
use_ssaoNo
frame_endNo
operationNorender_preview
use_bloomNo
layer_nameNoViewLayer
output_dirNo
file_formatNoPNG
frame_startNo
output_pathNo
resolution_xNo
resolution_yNo
shading_modeNoSOLID
camera_radiusNo
elevation_degNo
render_engineNoCYCLES
use_denoisingNo
prefer_sessionNo
use_motion_blurNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, so the agent knows mutations are possible. The description adds a little context, such as 'screenshot_viewport: ... prefers live GUI session', but does not disclose side effects like changing Blender settings or writing files beyond the operation names. It does not contradict the annotations.

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

Conciseness4/5

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

The description is well-structured with a bullet list and example, making it easy to scan. The inclusion of 'PORTMANTEAU PATTERN RATIONALE' is unnecessary meta-commentary, but the rest is informative and front-loaded with the 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 23 parameters with no schema descriptions, the description is not fully complete. It lists operations but does not map which parameters are relevant for each operation, nor does it clarify the distinction between output_path and output_dir. The presence of an output schema helps with return values, but the parameter mapping gap remains.

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?

With 0% schema coverage, the description must compensate. It partially does by explaining operations that map to parameters (e.g., 'set_engine' covers render_engine/samples/device, 'setup_post_processing' covers bloom/SSAO/motion blur/DOF). However, many parameters like output_dir, frame_start, resolution, and elevation_deg are left undefined, so the compensation is incomplete.

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 'consolidates rendering operations into a single interface' and lists concrete sub-operations like render_preview, render_turntable, and render_animation. This makes it unmistakably the rendering-focused tool, distinguishing it from siblings like blender_animation or blender_scene.

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

Usage Guidelines3/5

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

The description implies usage via the operation list (e.g., use 'render_preview' for a single frame), and the example shows a typical call. However, it never explicitly says when to prefer this tool over alternatives or when not to use it, leaving the agent to infer the context.

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

blender_riggingB

PORTMANTEAU PATTERN RATIONALE: Consolidates 11 related rigging operations into single interface. Prevents tool explosion while maintaining full character rigging workflow from armature creation to humanoid mapping. Follows FastMCP 2.14.3 best practices.

Complete character rigging system for Blender supporting armatures, bones, IK, skinning, and humanoid standards.

Armature Operations (4 operations):

  • create_armature: Generate new skeleton object with customizable positioning

  • add_bone: Add individual bones to existing armature with parent/child relationships

  • create_bone_ik: Set up inverse kinematics constraints for realistic joint movement

  • create_basic_rig: Auto-generate complete biped character rig with standard bone structure

Bone Management (3 operations):

  • list_bones: Display all bones in armature with hierarchy and properties

  • pose_bone: Set bone transformations in pose mode for animation

  • set_bone_keyframe: Insert keyframes for bone animation at specific frames

Pose & Animation (1 operation):

  • reset_pose: Return armature to rest pose, clearing all pose transformations

Skinning & Weights (2 operations):

  • transfer_weights: Copy vertex weights between meshes using various projection methods

  • manage_vertex_groups: Create, rename, mirror, or remove vertex groups for weight painting

Standards & Compatibility (1 operation):

  • humanoid_mapping: Apply VRChat/Unity humanoid bone naming and structure standards

ParametersJSON Schema
NameRequiredDescriptionDefault
headNoStarting point coordinates for new bone creation. Required for: "add_bone". Defines bone origin in 3D space.
tailNoEnding point coordinates for new bone creation. Required for: "add_bone". Defines bone length and direction.
frameNoTimeline frame number for keyframe insertion. Default: 1. Range: 1-10000. Corresponds to animation timeline frames.
locationNo3D position coordinates (x, y, z) for armature placement. Default: (0, 0, 0). Used for: "create_armature".
rotationNoEuler rotation angles in degrees (x, y, z) for bone posing. Default: (0, 0, 0). Used for: "pose_bone". Range: -180 to 180 degrees.
bone_nameNoName of bone to create, modify, or pose. Required for bone-specific operations. Must be unique within armature.Bone
connectedNoWhether new bone connects directly to parent tail. Default: False. True creates seamless bone chain, False allows bone gaps.
operationNoThe rigging operation to perform. Must be one of: "create_armature", "add_bone", "create_bone_ik", "create_basic_rig", "list_bones", "pose_bone", "set_bone_keyframe", "reset_pose", "transfer_weights", "manage_vertex_groups", "humanoid_mapping". - Armature operations: "create_armature", "add_bone", "create_bone_ik", "create_basic_rig" - Bone operations: "list_bones", "pose_bone", "set_bone_keyframe" - Pose operations: "reset_pose" - Skinning operations: "transfer_weights", "manage_vertex_groups" - Standards operations: "humanoid_mapping"create_armature
group_nameNoTarget vertex group name. Required for most group operations.
auto_renameNoWhether to automatically rename bones to standard names. Default: True. False preserves original bone names while adding mapping.
parent_boneNoName of parent bone for hierarchy. Optional for "add_bone". Creates bone chain when specified.
pole_targetNoEmpty object name for IK pole target. Optional for "create_bone_ik". Controls IK chain bending direction for natural joint movement.
source_meshNoSource mesh object name for weight transfer. Required for: "transfer_weights". Mesh containing vertex weights to copy from.
target_boneNoName of target bone for IK constraint. Required for: "create_bone_ik". Defines which bone the IK chain reaches toward.
target_meshNoTarget mesh object name for weight transfer. Required for: "transfer_weights". Mesh to receive copied vertex weights.
chain_lengthNoNumber of bones in IK chain. Default: 2. Range: 1-10. Longer chains provide more flexible but complex IK solutions.
max_distanceNoMaximum transfer distance for weight projection. Default: 0.1. Range: 0.001-10.0. Larger values capture more distant geometry.
source_groupNoSource group name for operations like mirror. Required for: "mirror".
armature_nameNoTarget armature object name. Required for most operations. Must exist in scene for bone operations.Armature
rotation_modeNoEuler angle rotation order. One of: "XYZ", "XZY", "YXZ", "YZX", "ZXY", "ZYX". Default: "XYZ". Affects how rotation values are interpreted.XYZ
mapping_presetNoHumanoid bone mapping standard. One of: "VRCHAT", "UNITY", "BLENDER". Default: "VRCHAT". Defines target bone naming convention.VRCHAT
new_group_nameNoNew name for rename operations. Required for: "rename".
vertex_indicesNoList of vertex indices for group assignment. Optional for "assign". Defaults to empty list for manual weight painting.
group_operationNoVertex group management operation. One of: "create", "rename", "mirror", "remove", "assign". Required for: "manage_vertex_groups".create
transfer_methodNoWeight projection algorithm. One of: "NEAREST_FACE", "RAY_CAST", "NEAREST_VERTEX". Default: "NEAREST_FACE". "RAY_CAST" most accurate but slower.NEAREST_FACE

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

Annotations are all false, so the description carries the burden. It discloses the portmanteau design and lists operation names, but does not mention that operations are selected via the 'operation' parameter, nor describe side effects like scene modification or irreversibility (e.g., manage_vertex_groups can remove groups, reset_pose clears transformations). The description focuses on what operations exist, not how the tool behaves.

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

Conciseness3/5

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

The description is well-structured with clear categories, but the opening 'PORTMANTEAU PATTERN RATIONALE' paragraph is largely meta-commentary that does not aid invocation. The bullet lists are useful but partially duplicate the schema's operation enum. It earns a middle score due to organization but is padded with non-essential rationale.

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 (25 parameters, 11 operations), the description provides a high-level overview and grouping but fails to explain that exactly one operation is executed per call based on the 'operation' parameter, or that parameters are conditional per operation. The output schema exists but is not shown, so the description carries some burden. It is adequate but leaves practical usage flow implicit.

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's categorization of operations helps associate parameters with operations, but it does not add parameter-specific meaning beyond the schema. The parameter descriptions in the schema already cover usage details, so the description neither compensates nor detracts significantly.

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 identifies the tool as a 'Complete character rigging system for Blender' and enumerates all 11 operations across five categories. This gives a specific verb (rigging), resource (Blender armatures/bones), and distinguishes it from any sibling tool since no other rigging-specific tool is listed.

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

Usage Guidelines3/5

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

The description implies usage when character rigging is needed and lists operations grouped by workflow stage, but it does not provide explicit when-to-use vs alternatives or exclusions. It lacks statements like 'For animation keyframing, use blender_animation instead.' The rationale about preventing tool explosion gives context but no actionable guidance.

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

blender_sceneB

Comprehensive scene management for Blender.

Supports multiple operations through the operation parameter:

  • create_scene: Create a new scene

  • list_scenes: List all scenes in the file

  • clear_scene: Clear all objects from current scene

  • set_active_scene: Set the active scene

  • link_object_to_scene: Link object to a scene

  • create_collection: Create a new collection

  • add_to_collection: Add object to collection

  • set_active_collection: Set the active collection

  • set_view_layer: Set active view layer

  • setup_lighting: Set up scene lighting

  • setup_camera: Set up scene camera

  • set_render_settings: Configure render resolution

ParametersJSON Schema
NameRequiredDescriptionDefault
locationNoPosition as [x, y, z] for camera/light
rotationNoRotation as [x, y, z] for camera
operationNoScene operation typelist_scenes
layer_nameNoName for view layer operations
light_typeNoType of light (SUN, POINT, SPOT, AREA)SUN
scene_nameNoName for scene operationsNewScene
object_nameNoName of object for linking operations
resolution_xNoRender width in pixels
resolution_yNoRender height in pixels
collection_nameNoName for collection operations

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior1/5

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

The annotation states destructiveHint=false, but the description explicitly lists 'clear_scene: Clear all objects from current scene', which is a destructive operation. This is a direct contradiction between the description and the annotations. Additionally, the description does not disclose other behavioral traits such as parameter requirements per operation or side effects beyond the operation list.

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 efficiently structured with a one-sentence summary followed by a bulleted list of operations. Each line is concise and adds direct information. There is no unnecessary verbosity, and the front-loaded summary provides immediate orientation.

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

Completeness2/5

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

Despite having an output schema and comprehensive parameter descriptions, the tool description does not explain which parameters apply to which operations. For example, setup_camera likely requires 'location' and 'rotation', but this mapping is absent. The description also omits information about default behaviors, prerequisites, or how the output varies by operation, making it incomplete for a tool with this complexity.

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

Parameters3/5

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

The input schema already has 100% description coverage for all 10 parameters, with clear descriptions like 'Position as [x, y, z] for camera/light'. The tool description adds no additional parameter semantics beyond listing the operations, which map to the 'operation' enum already present in the schema. Baseline of 3 is appropriate since the schema does the heavy lifting.

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

Purpose5/5

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

The description clearly identifies the tool as a comprehensive scene manager for Blender and enumerates 12 specific operations with brief explanations, such as 'clear_scene: Clear all objects from current scene'. This makes the tool's purpose unmistakable and distinguishes it from sibling tools that focus on singular operations.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus the many sibling tools that appear to cover the same operations (e.g., create_scene, list_scenes, set_active_scene, create_collection). No exclusions or alternative recommendations are given, leaving the agent to infer when the dispatcher-style tool is preferred over individual tools.

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

blender_sculptA

Sculpt mode operations for organic mesh editing.

Operations:

  • enter: switch object to sculpt mode

  • exit: leave sculpt mode (default back to OBJECT)

  • set_brush: assign brush with strength and radius

  • dynotopo: enable/disable dynamic topology

  • symmetrize: mirror sculpt along an axis

  • mask_clear: clear sculpt mask

  • remesh_voxel: apply voxel remesh modifier

  • list_brushes: common sculpt brush names

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("blender_sculpt", {"operation": "enter", "object_name": "Cube"})
ParametersJSON Schema
NameRequiredDescriptionDefault
radiusNo
strengthNo
operationNoenter
adaptivityNo
brush_nameNoGrab
voxel_sizeNo
object_nameNo
target_modeNoOBJECT
prefer_sessionNo
enable_dynotopoNo
detail_resolutionNo
symmetrize_directionNoNEGATIVE_X

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations are all false, providing little safety information, so the description carries the burden of disclosing behavior. It adds useful context like 'dynotopo: enable/disable dynamic topology' and 'exit: leave sculpt mode (default back to OBJECT)', which hint at state changes. However, it does not disclose potential side effects of operations like 'mask_clear' or 'remesh_voxel', nor does it mention prerequisites (e.g., an active mesh object) or error conditions beyond a generic return format.

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

Conciseness5/5

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

The description is well-organized with a short intro, a bulleted operation list, a return format section, and a code example. Every element serves a purpose: the bullets cover all operations, the return format sets expectations, and the example clarifies invocation. It is concise without unnecessary fluff.

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

Completeness3/5

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

Given the tool's complexity (12 parameters, multi-operation dispatcher), the description is not fully complete. It provides a comprehensive operation list and an example, and the output schema covers return values. However, it omits critical details such as required parameters per operation, parameter ranges, and the meaning of ambiguous fields like prefer_session and adaptivity. This leaves the agent with reasonable but incomplete guidance.

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

Parameters3/5

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

With 0% schema_description_coverage and 12 parameters, the description must compensate. It partially does by mapping operations to parameters (e.g., 'set_brush: assign brush with strength and radius' corresponds to strength and radius; 'remesh_voxel' implies voxel_size). The example shows usage of operation and object_name. However, many parameters like adaptivity, prefer_session, target_mode, and detail_resolution are not explained, leaving ambiguity for the agent.

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

Purpose5/5

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

The description clearly states 'Sculpt mode operations for organic mesh editing' and enumerates a specific list of operations (enter, exit, set_brush, dynotopo, symmetrize, mask_clear, remesh_voxel, list_brushes) with short verb+resource explanations. It distinguishes itself from sibling tools by focusing exclusively on sculpt mode, which is a unique domain in the toolset.

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

Usage Guidelines4/5

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

The description establishes clear usage context by stating the tool is for 'Sculpt mode operations' and providing operation-specific details such as 'enter: switch object to sculpt mode' and 'exit: leave sculpt mode (default back to OBJECT)'. It implicitly tells the agent when to use this tool (when sculpt-related actions are needed) versus alternatives, but it does not explicitly name alternative tools or state 'when not to use' conditions.

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

blender_selectionA
Read-onlyIdempotent

Select objects and elements in Blender scenes.

Supports multiple operations through the operation parameter:

  • select_objects: Select specific objects by name

  • select_by_type: Select all objects of a specific type

  • select_by_material: Select objects using a specific material

  • select_all: Select all objects in scene

  • select_none: Deselect all objects

  • invert_selection: Invert current selection

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoSelection mode (REPLACE, ADD, SUBTRACT)REPLACE
operationNoSelection operation typeselect_objects
object_typeNoType of objects to select (MESH, CURVE, LIGHT, etc.)MESH
object_namesNoList of object names to select
active_objectNoObject to set as active after selection
material_nameNoMaterial name to select objects by

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is covered. The description adds the list of supported operations, which is useful context, but it does not describe selection mode interactions or any other behavioral details beyond what the operation names imply.

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, uses a clear bulleted list, and every sentence serves a purpose. It efficiently communicates the tool's capabilities without redundancy or fluff.

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

Completeness4/5

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

The tool is low-complexity, the schema covers all parameters, and annotations cover safety. The description lists all supported operations, making it complete for understanding the tool's main behavior. Minor gap: no mention of selection mode (REPLACE/ADD/SUBTRACT) semantics, but that is a parameter detail covered by the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter is already documented. The description adds a semantic grouping of operations to parameters, but it doesn't provide additional meaning beyond the schema descriptions. Baseline 3 is appropriate when schema fully covers parameters.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Select objects and elements in Blender scenes.' It lists specific operations (select_objects, select_by_type, etc.) that make its scope and function unambiguous, distinguishing it from generic Blender tools.

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

Usage Guidelines3/5

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

The description implies usage by listing the available operations, but it does not explicitly explain when to use this tool versus alternatives, nor does it provide exclusions or when-not-to-use guidance. The context is clear for simple selection tasks, but it lacks explicit guidance relative to sibling tools.

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

blender_sessionA

Manage a Blender GUI session from the MCP server.

Operations:

  • status: check whether a Blender GUI is running under MCP control

  • start: launch Blender GUI (optionally opening a .blend file)

  • stop: kill the managed Blender GUI process

  • run_script: execute a Python snippet in the running Blender session (requires the bridge addon to be enabled in Blender)

  • demo: run a named built-in demo in Blender via the bridge Available demos: living_room_with_car, driver_training, garden, house_interior

ParametersJSON Schema
NameRequiredDescriptionDefault
scriptNofor run_script — Python code to execute in Blender
timeoutNofor run_script/demo — seconds to wait for bridge response
demo_nameNofor demo — which demo to runliving_room_with_car
operationNostatus | start | stop | run_script | demostatus
blend_fileNofor start — path to a .blend file to open (optional)
script_nameNofor run_script — label for the scriptmcp_script

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

The description reveals key behavioral details beyond the annotations (all false), such as 'stop: kill the managed Blender GUI process' and the bridge addon requirement for run_script. This provides helpful context about side effects and prerequisites. No contradictions with annotations were found.

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

Conciseness5/5

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

The description is a well-organized bulleted list with clear sub-points. Each line serves a purpose: defining the tool's scope, listing operations, and noting prerequisites. There is no redundancy or filler, making it efficient and easy to scan.

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

Completeness4/5

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

Given the tool's multi-operation complexity, the description covers all operations, their parameters, and the bridge addon prerequisite. An output schema exists, so return value details are not needed. Minor gaps such as error handling or behavior when Blender is not running are not addressed, but overall completeness is adequate.

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

Parameters4/5

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

The input schema already provides operation-specific descriptions for every parameter (100% coverage). The description adds value by listing the available demo names for demo_name and grouping parameters by operation, which helps disambiguate. However, it does not drastically enrich parameter meaning beyond the schema's existing 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 begins with 'Manage a Blender GUI session from the MCP server', which is a specific verb+resource statement. It then lists five distinct operations (status, start, stop, run_script, demo), making the tool's scope unambiguous. Although it doesn't explicitly differentiate from siblings, the operation list clearly distinguishes it from single-purpose tools like blender_render or script_execute.

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

Usage Guidelines3/5

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

The description implies when to use the tool by enumerating operations, but it does not explicitly state when to prefer this tool over alternatives such as script_execute or blender_status. It does provide a useful prerequisite for run_script (bridge addon enabled), but lacks exclusionary guidance or reference to sibling tools.

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

blender_shadersB

Shader node graph operations for materials.

Operations:

  • create_material: create a node-based material

  • create_node: add a shader node to an existing material

  • connect_nodes: wire two shader nodes together

  • list_node_types: return common ShaderNode type names

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("blender_shaders", {"operation": "create_material", "material_name": "MyMat"})
ParametersJSON Schema
NameRequiredDescriptionDefault
to_nodeNo
from_nodeNo
node_nameNo
node_typeNoShaderNodeBsdfPrincipled
operationNocreate_material
to_socketNo
location_xNo
location_yNo
clear_nodesNo
from_socketNo
shader_typeNoShaderNodeBsdfPrincipled
material_nameNo
node_propertiesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint all false, so the description adds context with the return format ('Standard dict with keys: success, message, data') and example usage. However, it does not disclose potential side effects (e.g., whether connect_nodes replaces existing links, or if clear_nodes has impact). The added value is moderate.

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

Conciseness3/5

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

The description is moderately concise, with a summary line and a bullet list of operations. However, the structure is a bit informal and the return format is embedded in markdown rather than clearly separated. It's not overly verbose but lacks professional organization.

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

Completeness2/5

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

Given the tool's complexity (13 parameters, multiple operations, no parameter descriptions in schema), the description is incomplete. It does not explain which parameters are relevant for each operation, how operations chain together, or any requirements. An agent would struggle to correctly invoke operations beyond the simple example.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It partially does by listing operations and showing an example with material_name, but it does not explain the roles of most parameters (e.g., from_socket, to_socket, node_properties, clear_nodes). With 13 parameters and multiple operations, the description is insufficient for mapping parameters to operations.

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

Purpose4/5

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

The description clearly states it is for 'Shader node graph operations for materials' and lists four concrete operations (create_material, create_node, connect_nodes, list_node_types). This provides a specific verb+resource scope and differentiates from sibling tools like blender_materials by focusing on the shader node graph, though it doesn't explicitly name alternatives.

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

Usage Guidelines3/5

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

The description includes a list of operations which implies what the tool can be used for, but it does not explicitly state when to use this tool versus alternatives or provide exclusions. The examples show a minimal invocation, but no guidance on choosing between operations or handling prerequisites.

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

blender_shapekeysB

Comprehensive shape key management for facial animation and VRM avatars.

Handles viseme creation for lip sync, blink animations, facial expressions, and VRM compliance checking for VR platforms.

ParametersJSON Schema
NameRequiredDescriptionDefault
frameNoAnimation frame to set weights at
operationNoShape key operation typecreate_viseme_shapekeys
target_meshNoTarget mesh object (defaults to active)
viseme_typeNoType of viseme system ("vrm", "standard", "custom")vrm
base_visemesNoBase viseme weights for expression
blink_weightNoBlink component weight for expression
auto_generateNoWhether to auto-generate basic viseme shapes
viseme_weightsNoDictionary of viseme names to weights (0.0-1.0)
base_expressionNoBase expression shape key to start from
blink_intensityNoHow closed the eyes should be (0.0-1.0)
expression_nameNoName for the facial expressionexpression
eyelid_verticesNoSpecific vertex indices for eyelid control
include_statisticsNoInclude deformation statistics in analysis
additional_modifiersNoAdditional shape key modifiers

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

Annotations include readOnlyHint=false, destructiveHint=false, and idempotentHint=false, but the description adds no behavioral details such as side effects on mesh shape keys, reversibility, or prerequisites like existing meshes. It only lists use cases without disclosing mutation behavior or error conditions beyond what annotations imply.

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

Conciseness4/5

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

Two sentences, front-loaded with the general purpose and then listing specific capabilities. It is concise and readable, though the word 'Comprehensive' is somewhat generic and the description could be tightened further.

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

Completeness2/5

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

Given the tool's complexity—14 parameters, an operation enum, and a rich schema—the description is too high-level. It does not explain how operations map to parameters, default behaviors, or what 'VRM compliance checking' entails, leaving the agent to infer critical selection and invocation details from the schema alone.

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%, with all 14 parameters documented including the operation enum and per-parameter descriptions. The tool description itself adds no parameter-specific meaning, so the baseline score of 3 applies.

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

Purpose5/5

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

Description clearly identifies the tool's purpose as 'shape key management for facial animation and VRM avatars' and enumerates specific capabilities: viseme creation for lip sync, blink animations, facial expressions, and VRM compliance checking. This distinguishes it from sibling tools like blender_animation, blender_rigging, and blender_vrm_metadata.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives such as blender_animation or blender_vrm_metadata. The description implies usage for facial/VRM shape key work, but does not state exclusions, prerequisites, or alternative scenarios.

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

blender_splattingB

Advanced Gaussian Splatting (3DGS) management for hybrid environments.

Supports importing real-world captures, cleaning them up, and preparing them for VR platforms like Resonite for immersive experiences.

ParametersJSON Schema
NameRequiredDescriptionDefault
radiusNoRadius/size of crop volume
crop_typeNoCrop volume type ("sphere", "box", "cylinder")sphere
file_pathNoPath to .ply or .spz splat file (for import_gs)
operationNoSplatting operation typeimport_gs
sh_degreeNoSpherical harmonics degree (0-3)
invert_cropNoWhether to invert crop selection
setup_proxyNoCreate performance proxy for large splats
center_pointNoCenter point for cropping
target_formatNoExport format ("ply" or "spz")ply
decimation_ratioNoMesh simplification ratio (0.1 = 10% of faces)
density_thresholdNoMinimum density for collision mesh generation
include_collisionNoExport collision mesh with splat
optimize_for_mobileNoApply mobile VR optimizations
smoothing_iterationsNoLaplacian smoothing passes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

All annotations are false, leaving the description to carry the transparency burden. The description mentions 'cleaning them up,' which hints at modification, but it fails to disclose that operations like crop_and_clean may alter or delete splat data, nor does it explain export side effects or any prerequisites.

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

Conciseness4/5

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

The description is concise and well-structured, with the key term 'Gaussian Splatting' front-loaded. The only minor issue is the word 'Advanced,' which adds little substance, but overall it is efficient.

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

Completeness2/5

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

Given the tool's complexity (14 parameters, 7-operation enum), the description is too sparse. It only covers import/cleanup/prepare, omitting operations like worldlabs, generate_collision_mesh, create_proxy, and optimize_for_vr. The output schema exists, but the description still leaves significant context unaddressed.

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

Parameters3/5

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

The schema provides full descriptions for all 14 parameters (100% coverage), so the description adds no additional parameter-level meaning. This matches the baseline of 3, as the description does not need to compensate for schema gaps.

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

Purpose5/5

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

The description uses a specific verb+resource ('Gaussian Splatting management') and lists concrete actions (importing, cleaning, preparing for VR), which clearly differentiates it from sibling tools like blender_import or blender_mesh. It also names the target platform (Resonite), making the purpose unmistakable.

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

Usage Guidelines3/5

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

The description provides clear context by mentioning hybrid environments and VR platforms, implying when the tool is useful. However, it does not explicitly state when to use this tool over alternatives or give any exclusions, so guidance is only implicit.

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

blender_statusA
Read-onlyIdempotent

System status and monitoring (portmanteau).

Operations:

  • status: MCP server, Blender, system, and performance summary

  • system_info: Detailed OS, Python, env, and resources

  • health_check: Blender availability, resources, tool registration

  • performance_monitor: Sample CPU/memory/disk over duration_seconds (max 60)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
formatNo"json" for webapp dict (status only); "text" for report stringtext
operationNostatus | system_info | health_check | performance_monitorstatus
duration_secondsNoFor performance_monitor — sampling duration (1-60)
include_performanceNoFor status — include performance section
include_system_infoNoFor status — include system section
include_blender_infoNoFor status — include Blender section

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds behavioral specifics like performance_monitor sampling CPU/memory/disk over a max 60-second duration and health_check checking tool registration, which enriches the annotations without contradicting them.

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

Conciseness5/5

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

The description is compact and well-organized: a one-line summary followed by a bulleted list of operations. Each operation is described in a few words, with no redundant phrasing. It is front-loaded and earns every sentence.

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

Completeness4/5

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

Given the tool's moderate complexity (7 optional parameters, output schema, and annotations), the description covers all operations and key constraints. It does not explain return formats in detail, but the presence of an output schema makes that unnecessary. A brief note on when to prefer this over sibling status tools would push it higher.

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 86%, meaning most parameters already have descriptive documentation. The description's mention of 'duration_seconds (max 60)' and the operation list adds minimal extra value beyond the schema's own parameter descriptions, such as 'For performance_monitor — sampling duration (1-60)'. It does not meaningfully enhance parameter understanding.

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

Purpose5/5

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

The description opens with 'System status and monitoring' and then enumerates four concrete operations (status, system_info, health_check, performance_monitor), each with a clear output scope. This clearly distinguishes it from sibling tools like server_info or blender_help, even though it doesn't explicitly name alternatives.

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

Usage Guidelines4/5

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

The description provides context for each operation, making it clear what the tool can be used for (e.g., health_check for Blender availability, performance_monitor for sampling). However, it does not explicitly state when NOT to use this tool or point to alternative tools for overlapping needs, such as server_info for server details.

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

blender_texturesB

Create and manage textures in Blender.

Supports multiple operations through the operation parameter:

  • create_[type]: Create procedural textures (noise, voronoi, musgrave, wave, checker, brick, gradient)

  • assign_texture: Assign texture to material

  • bake_texture: Bake textures from objects

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the textureTexture
widthNoTexture width in pixels
heightNoTexture height in pixels
operationNoTexture operation typecreate_noise
image_pathNoPath to image file for image textures
object_nameNoName of object for UV operations
texture_typeNoType of procedural textureNOISE
material_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

Annotations provide no safety hints (readOnly=false, destructive=false, etc.), so the description must carry the burden of behavioral disclosure. It lists operations but does not explain side effects (e.g., whether baking overwrites existing textures, required scene setup, or whether assignment modifies materials irreversibly).

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 and well-structured: a one-sentence purpose followed by bullet points for operations. Every sentence earns its place, and the format makes it easy to scan.

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

Completeness2/5

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

This is a multi-operation tool with 8 parameters, but the description does not map parameters to operations (e.g., assign_texture likely needs object_name and material_name; bake_texture needs object_name). It also doesn't mention image_path for image textures. The output schema exists but doesn't compensate for these operational dependencies.

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

Parameters4/5

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

Schema description coverage is high (88%), giving a baseline of 3. The description adds meaningful semantics for the 'operation' parameter by enumerating valid values and their effects, which is not present in the schema. It also clarifies 'texture_type' options. This adds real value beyond the schema.

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

Purpose4/5

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

The description states 'Create and manage textures in Blender' and lists specific operations (create, assign, bake), which clearly identifies the tool's purpose and distinguishes it from sibling tools like blender_materials. The 'manage' verb is a bit broad, but the operation list adds precision.

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

Usage Guidelines3/5

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

The description implies when to use the tool (for texture creation, assignment, and baking) but does not explicitly discuss alternatives or when not to use it. Sibling tools like blender_shaders and blender_materials exist, but no comparison is offered.

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

blender_transformA

Transform objects in 3D space.

Supports multiple operations through the operation parameter:

  • set_location: Set object position

  • set_rotation: Set object rotation (degrees)

  • set_scale: Set object scale

  • translate: Move object by offset

  • rotate: Rotate object by angle

  • scale: Scale object by factor

  • apply_transform: Apply transforms to mesh

  • reset_transform: Reset transforms to identity

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
zNo
spaceNoCoordinate space (WORLD, LOCAL, CURSOR, PARENT)WORLD
scale_xNo
scale_yNo
scale_zNo
relativeNoApply transformation relative to current values
operationNoTransform operation typeset_location
rotation_xNo
rotation_yNo
rotation_zNo
object_namesNoName(s) of object(s) to transform

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

With annotations all false, the description carries the burden of behavioral disclosure. It adds value by listing operations like apply_transform and reset_transform, which hint at mesh mutation and identity resets. However, it does not elaborate on consequences such as whether transforms are destructive or reversible, or how space and relative affect behavior. Still, it goes beyond annotations by exposing the operation set.

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

Conciseness5/5

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

The description is concise and well-structured: a one-sentence overview followed by a bulletized list of operations. Every bullet is short and informative. No fluff or redundancy, making it easy to parse.

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

Completeness2/5

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

Despite an output schema, the description is incomplete given the complexity (13 parameters, 8 operations, no enums). It doesn't mention that object_names is required, how rotation angles are specified (degrees vs radians for operations other than set_rotation), or how the space parameter influences coordinates. It also doesn't explain the behavior of relative or the effect of apply_transform. This would leave an agent uncertain about correct invocation.

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

Parameters3/5

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

Schema coverage is low (31%), so the description must compensate. The operation list gives semantic meaning to the operation parameter, but it does not explain how x, y, z, rotation_x, rotation_y, rotation_z, scale_x, scale_y, scale_z map to different operations. Parameter names are somewhat self-explanatory, but the description doesn't clarify the interplay, leaving ambiguity.

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 'Transform objects in 3D space' which clearly states the resource and action. It lists eight specific operations, distinguishing it from sibling tools like blender_selection or blender_scene. The verb 'transform' is specific and the scope is unambiguous.

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

Usage Guidelines3/5

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

The description implies usage by enumerating operations that can be performed, but it does not explicitly state when to use this tool versus alternatives. There are no exclusions or prerequisites, and it doesn't guide the agent on choosing between set_location vs translate or when to use apply_transform. The context is clear enough but guidance is implicit.

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

blender_uvB

Manage UV mapping and texture coordinates.

Supports multiple operations through the operation parameter:

  • unwrap: Unwrap UV coordinates

  • smart_project: Smart UV projection

  • cube_project: Cube projection

  • cylinder_project: Cylindrical projection

  • sphere_project: Spherical projection

  • reset_uvs: Reset UV coordinates

  • get_uv_info: Get UV mapping information

ParametersJSON Schema
NameRequiredDescriptionDefault
marginNoMargin between UV islands
operationNoUV operation typeunwrap
object_nameNoName of object to work with
unwrap_methodNoUnwrapping method (ANGLE_BASED, CONFORMAL, etc.)ANGLE_BASED

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations do not indicate read-only or destructive behavior, so the description carries some burden. It discloses the operation variants but does not specify which operations mutate or have side effects (e.g., reset_uvs is destructive implicitly). No contradiction with annotations.

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

Conciseness5/5

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

Concise bulleted list with a clear purpose statement. Every item provides useful information with no redundancy or fluff.

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

Completeness3/5

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

Given the tool's complexity (7 operations, 4 params), the description is adequate but lacks details on prerequisites, error conditions, or when specific operations are appropriate. The output schema reduces the need for return-value documentation, but more context on object requirements would be helpful.

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 covers all parameters, but the description enriches the 'operation' parameter by enumerating allowed values. This adds value beyond the vague schema description 'UV operation type'.

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 manages UV mapping and texture coordinates, listing seven specific operations. This distinguishes it from sibling tools like blender_mesh or blender_textures, though 'manage' is somewhat generic.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. The operation list implies usage contexts (e.g., 'unwrap' for UV unwrapping), but no exclusions or comparisons to sibling tools are provided.

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

blender_validationA
Read-onlyIdempotent

Comprehensive validation tools for avatars and 3D models.

Performs pre-flight checks to ensure models meet platform requirements for VRChat, Resonite, Unity, and other 3D platforms.

ParametersJSON Schema
NameRequiredDescriptionDefault
operationNoValidation operation typevalidate_avatar
bone_limitNoCustom bone count limit override
object_nameNo
check_riggingNoWhether to validate bone structure and rigging
check_texturesNoWhether to validate texture requirements
material_limitNoCustom material count limit override
check_materialsNoWhether to validate materials and draw calls
polycount_limitNoCustom polycount limit override
target_platformNoTarget platform ("vrchat", "resonite", "unity", "generic")vrchat
check_transformsNoWhether to check for unapplied transforms

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no significant behavioral context beyond 'performs pre-flight checks', which aligns with the annotations but does not disclose additional traits like output format or side effects (though output schema exists).

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

Conciseness5/5

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

The description is only two sentences, front-loaded with the tool's primary function. It avoids redundancy and lists multiple target platforms in a compact manner, making every word earn its place.

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

Completeness4/5

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

Given the 10 parameters, an operation enum, and an output schema, the description provides sufficient high-level context. It does not enumerate each operation, but the schema's operation enum covers that detail. The description is complete enough for selecting and invoking the tool, though it could briefly mention the variety of checks available.

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 90%, so the baseline is 3. The tool description itself adds no parameter explanations, but the input schema already documents most parameters with descriptions. The description does not compensate for the single undocumented parameter (object_name), but overall the schema carries the burden.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Comprehensive validation tools for avatars and 3D models' with a specific verb (validation) and resource (avatars/3D models). It emphasizes 'pre-flight checks' for platform requirements, which differentiates it from sibling tools like blender_mesh or blender_export that focus on other activities.

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

Usage Guidelines4/5

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

The phrase 'pre-flight checks to ensure models meet platform requirements' gives clear context for when to use (before platform upload). However, it does not explicitly mention when not to use or name alternative tools, so it stops short of full exclusionary guidance.

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

blender_vision_refineA

Agent vision refinement loop: capture, review bundle, apply fixes.

Operations:

  • capture: viewport PNG + base64 for vision models

  • review_bundle: screenshot + multi-angle stills + scene summary + refinement prompt

  • apply_script: run corrective bpy script after vision model feedback

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("blender_vision_refine", {"operation": "capture", "output_path": "C:/shot.png"})
ParametersJSON Schema
NameRequiredDescriptionDefault
goalNo
anglesNo
scriptNo
operationNocapture
output_dirNo
output_pathNo
resolution_xNo
resolution_yNo
include_multi_angleNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

The annotations are all false and provide little safety context, so the description carries the burden. It discloses what each operation outputs but does not mention side effects like file writes, executing arbitrary scripts, or scene modifications.

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

Conciseness4/5

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

The description is well-structured with a bullet list, return format, and an example. It is concise but could be improved by mapping parameters to each operation.

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

Completeness2/5

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

With 9 parameters and three distinct operations, the description does not clarify which parameters apply to which operation, nor does it detail the output schema beyond a generic dict. This is insufficient for reliable tool selection and invocation.

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

Parameters2/5

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

Schema description coverage is 0%, and only output_path and operation are illustrated. There is no explanation for goal, angles, script, resolution, include_multi_angle, or output_dir, leaving invocation ambiguous.

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

Purpose5/5

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

The description clearly identifies the tool as an 'Agent vision refinement loop' with three specific operations: capture, review_bundle, and apply_scripts. This distinguishes it from sibling tools like blender_render or script_execute.

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

Usage Guidelines4/5

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

The description provides clear context for a vision-model-driven refinement workflow. It does not explicitly name alternatives or exclusions, but the operational steps make the intended use case evident.

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

blender_vrm_metadataC

Comprehensive VRM metadata management for avatar configuration.

Handles all VRM-specific settings required for proper avatar functionality in VRChat, VRoid Studio, and other VRM-compatible platforms.

ParametersJSON Schema
NameRequiredDescriptionDefault
offset_xNoFirst person X offset from head bone
offset_yNoFirst person Y offset from head bone
offset_zNoFirst person Z offset from head bone (typically 0.1-0.2)
operationNoVRM metadata operation typeset_first_person_offset
output_pathNoPath for metadata export//vrm_metadata.json
target_meshNoSpecific mesh for facial operations
blink_shape_keyNoShape key name for blink animationblink
include_look_atNoInclude look-at data in export
target_armatureNoSpecific armature to modify
viseme_mappingsNoCustom viseme to shape key mappings
look_at_settingsNoEye tracking look-at configuration
include_spring_bonesNoInclude spring bone data in export
spring_bone_settingsNoSpring bone physics configuration

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.5/5.0
Behavior2/5

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

The description makes broad claims ('Comprehensive', 'Handles all VRM-specific settings') without detailing any behavioral traits such as side effects, file writes, scene modifications, or required context. Annotations have all hints set to false, so there is no contradiction, but the description carries the full burden and fails to disclose specifics beyond the generic 'management' concept.

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

Conciseness3/5

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

The description is two sentences and brief, but the first sentence largely restates the tool name ('VRM metadata management') and the second adds platform context. It is not bloated, but the limited content could have been used more effectively to list the operation modes or key capabilities.

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

Completeness2/5

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

Given the tool's complexity with 13 parameters, 5 operation modes, and an output schema, the description is too sparse. It does not explain the different operations, how parameters interact, or what the output schema contains. An agent would need to inspect the schema carefully to understand the tool's capabilities, and the description does little to orient or guide that exploration.

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 provides 100% coverage with detailed descriptions for all 13 parameters, including defaults and enums. The tool description adds no additional parameter information, so the baseline of 3 is appropriate. The description does not mislead or contradict the schema.

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

Purpose3/5

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

The description states 'Comprehensive VRM metadata management for avatar configuration' which indicates the general domain but does not specify the actual operations (set first-person offset, blink viseme mappings, spring bones, look-at, export) that are shown in the schema. It is not a tautology, but the verb 'management' is broad and the description relies heavily on the schema to convey what the tool actually does.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus other Blender tools. It mentions target platforms (VRChat, VRoid Studio) but gives no exclusions, alternatives, or context for choosing among the different operations. The agent is left to infer usage from the schema and enum values.

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

blender_vseA

PORTMANTEAU PATTERN RATIONALE: Consolidates 20 VSE operations into a single interface. Prevents tool explosion while providing full video editing: strip management, timeline editing, effects, and rendering. Follows FastMCP 3.x best practices.

Blender's built-in Video Sequence Editor (VSE) exposed as MCP tools. Add video/audio/image strips, apply transitions, trim, cut, move, and render to video.

Strip Creation (7 operations):

  • add_movie: Add a video/MP4 file as a movie strip

  • add_sound: Add an audio file (WAV, MP3, etc.) as a sound strip

  • add_image_sequence: Add a folder of images as an image sequence strip

  • add_scene: Add a 3D scene as a strip (compositing)

  • add_color: Add a solid color matte strip

  • add_text: Add a text overlay strip

  • add_effect: Add a transition/filter effect between strips

Strip Editing (6 operations):

  • delete_strip: Remove a strip by name

  • cut_strip: Cut a strip at a specific frame

  • trim_strip: Set strip start/end frames (trim handles)

  • move_strip: Move a strip to a different channel or frame

  • mute_strip: Mute or unmute a strip

  • lock_strip: Lock or unlock a strip

Properties (3 operations):

  • set_speed: Change playback speed (creates speed effect strip)

  • set_blend: Set blend mode and opacity (ALPHA_OVER, CROSS, ADD, etc.)

  • set_transform: Set position, scale, rotation of a strip

Information (2 operations):

  • list_strips: List all strips in the timeline with properties

  • get_timeline_info: Get timeline frame range, FPS, strip count, channels

Rendering (1 operation):

  • render_video: Render the VSE timeline to a video file (H264/MPEG4)

Cleanup (1 operation):

  • clear_vse: Remove all strips from the timeline

ParametersJSON Schema
NameRequiredDescriptionDefault
fpsNoFrames per second. Default: 30. Used for: render_video.
lockNoTrue to lock, False to unlock. Default: True. Used for: lock_strip.
muteNoTrue to mute, False to unmute. Default: True. Used for: mute_strip.
textNoText content. Required for: add_text.
codecNoVideo codec. Options: H264, H265, THEORA, AV1. Default: H264.H264
frameNoFrame number for placement/cutting. Default: 1.
lengthNoStrip duration in frames. Default: 120. Used for: add_color, add_text, add_effect.
channelNoVSE channel number (higher = on top). Default: 1.
color_bNo
color_gNo
color_rNo
qualityNoEncoding quality. Options: BEST, GOOD, MEDIUM. Default: MEDIUM. Used for: render_video.MEDIUM
scale_xNo
scale_yNo
cut_typeNoCut type. SOFT (preserves handles) or HARD (snaps). Default: SOFT.SOFT
filepathNoPath to video or audio file. Required for: add_movie, add_sound.
rotationNoStrip rotation in degrees. Used for: set_transform.
containerNoVideo container format. Options: MPEG4, AVI, QUICKTIME, OGG, MKV. Default: MPEG4.MPEG4
directoryNoDirectory path for image sequences. Required for: add_image_sequence.
font_sizeNoFont size in points. Default: 48. Used for: add_text.
frame_endNoEnd frame for render range. Default: 250.
operationNoThe VSE operation to perform.list_strips
blend_typeNoBlend mode. Options: ALPHA_OVER, CROSS, ADD, SUBTRACT, MULTIPLY, SCREEN, OVERLAY, DARKEN, LIGHTEN, etc. Default: ALPHA_OVER.ALPHA_OVER
fit_methodNoHow to fit media. FIT (maintains aspect), FILL (crops), STRETCH. Default: FIT.FIT
position_xNo
position_yNo
scene_nameNoSource 3D scene name. Required for: add_scene.
strip_nameNoTarget strip name for editing operations. Required for most edit ops.
audio_codecNoAudio codec. Options: AAC, MP3, PCM, VORBIS, FLAC. Default: AAC. Used for: render_video.AAC
blend_alphaNoOpacity 0.0-1.0. Default: 1.0.
effect_typeNoEffect type. Options: CROSS, WIPE, GLOW, TRANSFORM, SPEED, ADJUSTMENT, GAUSSIAN_BLUR, TEXT, COLOR, MULTICAM. Default: CROSS.CROSS
frame_startNoStart frame for trim or render range. Default: 1.
output_pathNoOutput file path (.mp4 recommended). Required for: render_video.
strip1_nameNoFirst strip name for effect creation. Required for: add_effect.
strip2_nameNoSecond strip name for effect creation. Required for: add_effect.
resolution_xNo
resolution_yNo
speed_factorNoPlayback speed multiplier. 2.0 = double speed, 0.5 = half speed. Default: 1.0.
audio_bitrateNoAudio bitrate in kbps. Default: 192. Used for: render_video.
include_audioNoInclude audio track from video. Default: True. Used for: add_movie.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

Annotations are all false, so the description carries the full burden. It lists operations like clear_vse and delete_strip but does not disclose that these are destructive or that all operations mutate the current Blender session. There is no mention of side effects, permissions, or whether changes are reversible. The 'Follows FastMCP 3.x best practices' note adds no behavioral insight.

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

Conciseness3/5

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

The description is long (around 500 words) and includes a 'PORTMANTEAU PATTERN RATIONALE' that is partially redundant with the first paragraph. However, the categorized operation list is necessary for a 20-operation tool. The structure is clear, but some sentences could be trimmed without losing value.

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

Completeness3/5

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

Given the complexity (40 parameters, 20 operations), the description provides a comprehensive op list and categories. However, it does not explain how the 'operation' parameter dispatches sub-operations, what the default operation is (list_strips), or the execution context (e.g., requires running Blender). It also omits behavioral details about state persistence and error conditions. Adequate but with 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?

With 78% schema coverage, the baseline is 3. The description adds operation-to-parameter mappings (e.g., 'add_movie' requires 'filepath', 'add_effect' uses 'strip1_name' and 'strip2_name'), which is critical for a portmanteau tool with 40 parameters. This helps the agent select the right parameters per operation beyond what the schema alone 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 the tool exposes Blender's Video Sequence Editor as MCP tools, with a specific verb ('add', 'apply', 'trim', 'cut', 'move', 'render') and resource (VSE). It distinguishes itself from sibling tools like blender_compositor and blender_render by focusing on VSE operations.

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

Usage Guidelines4/5

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

The description explicitly says it consolidates 20 VSE operations to prevent tool explosion, which implies when to use this tool (for video editing tasks). It provides categorized operation lists that guide sub-operation selection. However, it does not explicitly mention when NOT to use it or name alternative tools.

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

blender_workflowA

Execute multiple Blender operations in a single call (macro/batch).

This tool enables complex workflows without multiple round-trips to the MCP server. Operations are executed sequentially, with optional variable passing between steps.

OPERATIONS:

  • list_templates: List available workflow templates

  • get_template: Get details of a specific template

  • execute: Execute a workflow (from steps or template)

STEP FORMAT: Each step is a dict with:

  • tool: The blender tool name (e.g., "blender_mesh")

  • operation: The operation within that tool

  • ...other parameters for that operation

  • as: (optional) Store result with this name for later steps

  • if_result: (optional) Only run if previous result contains this string

VARIABLE REFERENCES: Use $varname to reference results from previous steps. Use ${varname.field} to reference specific fields from JSON results.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsNoList of operation steps to execute (for execute)
paramsNoParameters to override in template steps
templateNoName of predefined template to use (for execute)
operationNoWorkflow operation (execute, list_templates, get_template)list_templates
stop_on_errorNoStop execution on first error (default: True)
template_nameNoTemplate name (for get_template)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With all annotations false, the description carries the burden. It discloses sequential execution, optional variable passing, and conditional step execution via 'if_result'. It does not mention potential side effects on Blender state, but as a workflow orchestrator, effects depend on the underlying operations.

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

Conciseness4/5

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

The description is well-structured with sections (OPERATIONS, STEP FORMAT, VARIABLE REFERENCES) and each sentence provides necessary information. While somewhat lengthy, no unnecessary fluff is present.

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

Completeness4/5

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

For a complex orchestration tool, the description covers operations, step syntax, and variable references, and the output schema likely handles return values. It lacks explicit error behavior details, but stop_on_error is in the schema. Given the tool's complexity, it is reasonably complete.

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

Parameters4/5

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

The input schema covers all parameters with basic descriptions (100% coverage), but the description adds substantial meaning by detailing the step format ('tool', 'operation', 'as', 'if_result') and variable reference syntax ($varname and ${varname.field}), which are not obvious from the schema alone.

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

Purpose5/5

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

The description opens with 'Execute multiple Blender operations in a single call (macro/batch)', clearly stating the tool's purpose. It lists specific operations (list_templates, get_template, execute) and distinguishes from siblings by emphasizing multi-step workflow execution.

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

Usage Guidelines4/5

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

It provides clear context: 'This tool enables complex workflows without multiple round-trips to the MCP server', implying use for multi-operation workflows. However, it does not explicitly name alternatives or state when not to use it, leaving some ambiguity versus tools like blender_batch or script_execute.

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

clear_sceneA
Destructive

Remove all objects from the current scene.

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("clear_scene")
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

The annotation destructiveHint=true already covers the destructive nature. The description adds value by specifying the return format (keys: success, message, data) and providing a usage example, which goes beyond the annotation.

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 and well-structured: a one-sentence purpose, return format, and example. Every line adds value without redundancy.

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

Completeness5/5

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

For a zero-parameter destructive action with annotations and an output schema (implied by the return format description), the description fully covers purpose, return, and usage. No critical information is missing.

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

Parameters4/5

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

This tool has zero parameters, so the description need not explain any. The schema is empty and coverage is 100%, meeting the baseline for no-parameter tools.

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

Purpose5/5

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

The description uses a specific verb ('Remove') and a clear resource ('all objects from the current scene'). It unambiguously distinguishes this tool from siblings like create_scene or set_active_scene.

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

Usage Guidelines3/5

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

The description implies usage (when you need to clear the current scene) but does not explicitly state when to prefer this over alternatives or any exclusions. It's clear enough for a straightforward destructive action, but no explicit guidance is given.

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

config_getA
Read-onlyIdempotent

Return current webapp config (LLM provider, URLs, selected model, etc.).

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("config_get")
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by disclosing the return format ('Standard dict with keys: success, message, data') and providing a Python example. It does not mention auth or failure modes, but for a zero-param read-only tool, this is adequate.

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

Conciseness5/5

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

The description is brief, front-loaded with the purpose, and includes a helpful return-format note and short example. Every sentence earns its place; no fluff or redundancy.

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

Completeness5/5

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

For a zero-parameter, read-only tool with comprehensive annotations and an output schema, the description is complete. It states what the tool returns, gives sample keys, and provides an invocation example, leaving no significant gaps for an agent to infer.

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

Parameters4/5

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

The tool has zero parameters and an empty schema, so the baseline is 4. The description adds no parameter-specific semantics because there are none to describe. It correctly does not attempt to invent parameters.

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

Purpose5/5

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

The description starts with a specific verb and resource: 'Return current webapp config', enumerating example contents (LLM provider, URLs, selected model). This clearly distinguishes it from the sibling config_set (write operation) by implying it is the read counterpart.

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

Usage Guidelines3/5

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

The description implies usage (to retrieve configuration) but does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions. For a simple getter, the purpose makes usage fairly evident, but explicit sibling differentiation (e.g., 'use config_set to modify') is missing.

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

config_setA

Update webapp config. Pass keys: server_host, server_port, theme, auto_sync, notifications, llm.

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("config_set", {"theme": "dark"})
ParametersJSON Schema
NameRequiredDescriptionDefault
llmNo
themeNo
auto_syncNo
server_hostNo
server_portNo
notificationsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate this is a non-read-only, non-destructive mutation. The description adds value by specifying the return format (standard dict with keys success, message, data) and providing an example. However, it does not disclose whether updates merge with existing config or overwrite it, which is a significant behavioral gap for a config setter.

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

Conciseness4/5

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

The description is concise and well-structured: a one-sentence purpose, a return format section, and an example. It is easy to scan and contains no fluff, though the example could be considered optional given the schema.

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

Completeness3/5

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

With 6 optional parameters and no output schema shown in the prompt, the description includes return format and an example, which helps. However, it lacks information about update semantics (merge vs overwrite), default behavior, and side effects, leaving gaps for an AI agent to invoke it correctly without additional context.

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

Parameters2/5

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

The schema has no descriptions for the 6 parameters (0% coverage), so the description must compensate. It lists the key names (server_host, server_port, theme, auto_sync, notifications, llm) but does not explain their semantics or allowed values beyond what the schema already shows. This is insufficient compensation for the lack of schema descriptions.

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

Purpose5/5

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

The description clearly states the tool updates webapp config, uses a specific verb 'Update', and lists the distinct keys that can be set. This differentiates it from the sibling tool config_get, which is presumably for reading config.

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

Usage Guidelines4/5

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

The description provides clear context that this tool is for updating webapp configuration, making the use case obvious. However, it does not explicitly mention alternatives or when not to use it, such as reading config with config_get, but the context is sufficient.

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

construct_objectA

PORTMANTEAU PATTERN RATIONALE: Consolidates natural language 3D construction into single agentic interface. Prevents tool explosion while enabling infinite 3D creativity through LLM-generated Blender scripts. Follows FastMCP 2.14.3 best practices.

Universal 3D object construction using natural language and LLM-generated Blender scripts.

This revolutionary tool enables creation of any 3D object through natural language descriptions by leveraging FastMCP 2.14.3 sampling to request SOTA LLM generation of Blender Python code.

Agentic Workflow:

  1. Analysis: Parse natural language description and scene context

  2. Sampling Request: Ask MCP client (SOTA LLM) to generate Blender Python script

  3. Code Generation: LLM creates production-ready Blender automation code

  4. Validation: Security and syntax validation of generated code

  5. Execution: Safe execution in Blender with error handling

  6. Iteration: Request refinements if needed (up to max_iterations)

Supported Complexity Levels:

  • simple: Basic primitives, basic transforms, simple materials

  • standard: Complex meshes, modifiers, materials, basic animation

  • complex: Advanced geometry, rigging, physics, complex materials/textures

Style Presets:

  • realistic: Physically accurate materials, lighting, proportions

  • stylized: Artistic interpretation, exaggerated features, cartoon-like

  • lowpoly: Minimal geometry, optimized for performance

  • scifi: Futuristic design, metallic materials, glowing effects

ParametersJSON Schema
NameRequiredDescriptionDefault
ctxYesFastMCP context for sampling and conversational responses
nameNoName for the created object in Blender scene. Default: "ConstructedObject"ConstructedObject
complexityNoComplexity level for script generation. One of: "simple", "standard", "complex". Default: "standard". Affects detail level and operation complexity.standard
descriptionNoNatural language description of object to create Examples: "a robot like Robbie from Forbidden Planet", "a medieval castle", "a sleek sports car"a simple cube
style_presetNoOptional style guidance. One of: "realistic", "stylized", "lowpoly", "scifi". Default: None (let LLM decide based on description).
max_iterationsNoMaximum refinement iterations if initial script fails. Default: 3. Higher values allow more complex objects but increase processing time.
reference_objectsNoExisting Blender objects to use as reference for style/consistency. Default: None. LLM will analyze these objects for consistent styling.
allow_modificationsNoWhether LLM can modify existing scene objects. Default: True. Set to False for conservative construction that only adds new objects.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

The description goes beyond the raw annotations by detailing the multi-step workflow: analysis, sampling request to an LLM, code generation, validation, execution, and iteration. It highlights 'Security and syntax validation' and 'Safe execution in Blender with error handling.' Since annotations already indicate the tool is not read-only and not idempotent, the description adds useful context about the LLM involvement and safety measures, though it does not explicitly warn that the tool may modify existing scene objects.

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

Conciseness3/5

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

The description is quite verbose and front-loaded with a 'PORTMANTEAU PATTERN RATIONALE' section that discusses design rationale and FastMCP best practices, which is not directly actionable for an agent selecting the tool. While the sections are well-organized and the content is relevant, several sentences could be trimmed to improve brevity without losing essential guidance.

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 complex tool with 8 parameters and an output schema, the description covers a lot: the agentic workflow, supported complexity levels, style presets, and iteration behavior. It lacks some operational prerequisites (e.g., Blender must be running) and explicit alternatives, but given the rich schema and annotations, the description is largely complete for an agent to understand scope and capabilities.

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

Parameters4/5

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

The input schema provides 100% coverage, but the description adds meaningful semantic depth by explaining the complexity levels ('simple', 'standard', 'complex') with concrete examples and the style presets ('realistic', 'stylized', 'lowpoly', 'scifi'). This helps agents choose appropriate parameter values beyond the schema's minimal descriptions. The workflow section also clarifies how max_iterations fits into the process.

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

Purpose5/5

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

The description clearly states that this tool performs 'Universal 3D object construction using natural language and LLM-generated Blender scripts.' It uses a specific verb ('construction') and resource ('3D object'), and distinguishes itself by positioning as the consolidated natural-language interface, preventing tool explosion. This differentiates it from siblings like generate_blender_script or script_execute by emphasizing its agentic, LLM-driven approach.

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

Usage Guidelines4/5

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

The description provides clear context on when to use the tool: for natural language 3D construction across varying complexity levels and with style presets. It explains the agentic workflow and supported complexity levels, which implies usage scenarios. However, it does not explicitly state when not to use it or mention alternative tools (e.g., 'for direct script execution use script_execute'), leaving exclusion guidance implied rather than explicit.

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

conversational_blender_assistantA
Read-onlyIdempotent

Conversational Blender assistant with SEP-1577 multi-step sampling.

The LLM may probe capabilities to give accurate, operation-specific answers before responding. Falls back gracefully when sampling is not available.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_stepsNoMaximum reasoning loops (default: 3 — keeps it snappy)
user_queryYesNatural language question about Blender operations
context_levelNo"basic" | "comprehensive" | "detailed"comprehensive

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare read-only and idempotent behavior; the description adds valuable behavioral context such as probing capabilities before responding and graceful fallback when sampling is unavailable. No contradiction with annotations is present.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the tool's role, and contains no filler or redundant repetition of schema/annotations. The SEP-1577 reference is technical but 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?

With annotations and an output schema present, the description sufficiently conveys the core behavior of answering Blender questions via multi-step sampling and fallback. It does not mention sibling alternatives for selection clarity, but the core usage context is adequately covered.

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

Parameters3/5

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

The input schema provides full descriptions for all three parameters (100% coverage), including defaults and formatting hints for context_level. The description adds no extra parameter-specific meaning, but the baseline 3 is appropriate since the schema already carries the burden.

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

Purpose4/5

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

The description clearly identifies the tool as a conversational Blender assistant for answering natural-language Blender questions, mentioning SEP-1577 multi-step sampling and capability probing. This distinguishes it from some siblings like blender_help, though the core verb 'answer' is implied rather than explicit.

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

Usage Guidelines3/5

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

The description implies use for conversational Blender questions requiring multi-step reasoning, but it does not explicitly state when to use this tool versus alternatives like ai_chat or blender_help, nor does it provide exclusions or when-not-to-use guidance.

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

create_collectionB

Create a new collection.

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("create_collection", {"collection_name": "MyCollection"})
ParametersJSON Schema
NameRequiredDescriptionDefault
collection_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

Annotations provide only that the tool is not read-only, not idempotent, and not destructive. The description adds the return format and an example but does not disclose side effects, error handling (e.g., duplicate collection names), or any prerequisites/permissions. This leaves significant behavioral ambiguity.

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

Conciseness5/5

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

The description is appropriately concise, leading with the primary purpose, followed by a clearly structured return format section and a practical example. Every section earns its place with no redundancy or unnecessary verbosity.

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

Completeness3/5

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

For a simple one-parameter tool, the description covers the basic operation and return format. However, it lacks context about what a collection is in the surrounding domain (Blender), what happens on failure, and how this fits into the broader workflow. The output schema helps but the description remains incomplete for fully autonomous selection.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate for explaining the parameter. It only offers an example value ('MyCollection') without describing naming rules, length limits, or uniqueness requirements. This adds minimal semantic value beyond the raw schema.

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

Purpose5/5

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

The description clearly states the action: 'Create a new collection.' This is a specific verb-resource pair that distinguishes the tool from related siblings like add_to_collection, which implies adding to an existing collection rather than creating a new one.

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

Usage Guidelines3/5

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

The description implies usage when a new collection is needed, but it does not explicitly state when to use this tool versus alternatives such as add_to_collection. No when-not-to-use or exclusion conditions are provided, so the guidance remains implicit and minimal.

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

create_sceneA

Create a new Blender scene with the specified name.

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("create_scene", {"scene_name": "MyScene"})
ParametersJSON Schema
NameRequiredDescriptionDefault
scene_nameNoNewScene

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

The annotations (all false) indicate this is a mutation but not destructive. The description adds the return format but does not disclose other behavioral traits like what happens if the scene name already exists, whether the new scene becomes active, or any side effects. This is some added value over annotations but not comprehensive.

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

Conciseness5/5

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

The description is succinct and well-structured: a clear first sentence stating purpose, a return format note, and a practical example. Every sentence adds value, with no redundant or verbose wording.

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

Completeness3/5

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

While the tool is simple and has an output schema, the description leaves gaps about important edge cases and side effects, such as behavior when the scene name already exists or whether the created scene is set active. Given sibling tools like set_active_scene, this context would improve completeness.

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

Parameters4/5

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

The input schema has scene_name with a default but no description (coverage 0%). The description clarifies that the name is used for the new scene and provides a concrete example ('MyScene'), effectively compensating for the schema's lack of parameter documentation.

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

Purpose5/5

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

The description clearly states that the tool creates a new Blender scene with a specified name, using a specific verb ('Create') and resource ('Blender scene'). This unambiguously distinguishes it from sibling tools like list_scenes, set_active_scene, and clear_scene.

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

Usage Guidelines3/5

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

The usage context is implied: you use this when you need a new scene. However, it does not explicitly mention alternatives or when not to use this tool (e.g., when you need to switch active scene, use set_active_scene). There is no explicit when-to-use vs alternatives guidance beyond the apparent purpose.

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

export_for_mcp_handoffA

Export a repository asset with platform-specific optimisations for cross-MCP handoff.

Supported targets: vrchat (FBX), resonite (GLB). asset_id must exist in ~/.blender-mcp/repository/. Writes actual export files to a temp directory and returns their paths.

Return Format

Standard dict with keys: success, asset_id, target_mcp, primary_files, supporting_files

Examples

await call_tool("export_for_mcp_handoff", {"asset_id": "...", "target_mcp": "vrchat"})
ParametersJSON Schema
NameRequiredDescriptionDefault
ctxYes
asset_idYes
target_mcpYes
quality_levelNohigh
include_metadataNo
optimization_presetNoautomatic

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations provide no behavioral hints (all false), so the description bears the burden. It discloses that the tool 'Writes actual export files to a temp directory and returns their paths', which is a key side effect. It also implies non-destructive behavior by writing to temp, matching annotations. Lacks explicit error handling info but is sufficiently transparent.

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

Conciseness5/5

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

The description is well-organized and front-loaded: first sentence states purpose, then bullets cover targets, prerequisite, behavior, return format, and an example. Every line adds value and the structure aids quick understanding.

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 (file-writing side effects, multiple parameters, no helpful annotations), the description covers the essential elements: purpose, supported targets, prerequisite, temp-file behavior, return format, and a usage example. It falls short on optional parameter semantics and error cases, but is still reasonably complete for selection and initial invocation.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It explains asset_id (must exist in repository) and target_mcp (lists allowed values 'vrchat' and 'resonite'). However, it leaves ctx, quality_level, include_metadata, and optimization_preset entirely undocumented, even though some have defaults. This partial compensation is useful but incomplete.

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 verb and resource ('Export a repository asset with platform-specific optimisations for cross-MCP handoff') and lists supported targets (vrchat with FBX, resonite with GLB). This differentiates it from generic export tools like blender_export and provides a specific, actionable purpose.

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

Usage Guidelines4/5

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

The description provides clear context: it is for cross-MCP handoff to specific targets and requires asset_id to exist in the repository. However, it does not explicitly mention alternative tools or when not to use it. The prerequisite is stated, which is valuable guidance.

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

generate_blender_scriptB

Generate a Blender Python script from a natural language prompt using a local LLM (Ollama).

Return Format

Standard dict with keys: success, script, error

Examples

await call_tool("generate_blender_script", {"prompt": "create a cube at origin", "model": "llama3.2"})
ParametersJSON Schema
NameRequiredDescriptionDefault
modelNollama3.2
promptYes
ollama_urlNohttp://localhost:11434

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations are all false, so the description carries the burden of disclosure. It does mention the return format (success, script, error) and the generation nature (not execution), but fails to disclose prerequisites like Ollama running or potential failure modes. Moderate transparency, but not rich enough to fully anticipate behavior.

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

Conciseness5/5

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

The description is concise and well-structured with a clear purpose line, a return format section, and a practical example. Every section adds value, and the formatting aids quick understanding. No wasted words.

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

Completeness3/5

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

For a simple generation tool, the description covers purpose, return format, and an example. However, it lacks error conditions, prerequisites (e.g., Ollama availability), and differentiation from similar siblings. Given the 3 parameters and output schema, additional context on when to use this tool and what could go wrong would improve completeness.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not systematically explain the parameters. The example shows 'prompt' and 'model' in use, but does not define ollama_url or clarify the meaning of 'model' beyond being a parameter. This is insufficient for a 3-parameter tool where the description must compensate.

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

Purpose4/5

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

The description clearly states the tool generates a Blender Python script from a natural language prompt using Ollama, with a specific verb and resource. It adds specificity by mentioning 'Blender Python script' and 'local LLM (Ollama)', but does not explicitly distinguish it from similar siblings like blender_ai_generate.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. The description implies use when a natural language prompt needs to be converted to a Blender script, but sibling tools that might overlap (e.g., blender_ai_generate) are not mentioned, offering no exclusion criteria or decision framework.

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

import_cad_fileB

Import CAD files (STEP, IGES) into Blender with automatic conversion.

This function handles the complete pipeline:

  1. Detect CAD file format

  2. Convert to mesh format using appropriate tool

  3. Import converted mesh into Blender

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYesPath to CAD file
cad_formatNoCAD format (STEP, STP, IGES, IGS)STEP
global_scaleNoBlender import scale
mesh_qualityNoMesh quality (low, medium, high)medium
scale_factorNoCAD unit conversion scale
import_shadingNoImport material shading
conversion_toolNoConversion tool to use (auto, mayo, freecad, online)auto
use_custom_normalsNoImport custom normals

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

Annotations are all false, providing no meaningful safety profile. The description outlines the conversion pipeline but does not disclose potential side effects, prerequisites, error behavior, or whether external tools/services are required. It adds procedural detail but lacks consequential 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 compact, front-loads the main purpose, and uses a numbered list for the pipeline. Every sentence contributes useful information without unnecessary verbosity.

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

Completeness3/5

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

The tool is complex with a multi-step pipeline and 8 parameters, but the description covers only high-level steps. Prerequisites, mesh destination, and error cases are omitted. However, full schema parameter coverage and an output schema mitigate some gaps.

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?

All 8 parameters have schema descriptions (100% coverage), so the baseline is 3. The description adds no extra parameter-level meaning, only referencing an 'appropriate tool' which maps to conversion_tool without clarifying distinctions like global_scale vs scale_factor.

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 ('Import CAD files') and specific formats (STEP, IGES), with a numbered pipeline that further defines the scope. This distinguishes it from generic import tools like 'blender_import'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The pipeline is described, but there are no exclusions, conditions, or references to other import tools, leaving usage context only implied by the CAD-specific name.

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

intelligent_3d_processingC

Intelligent batch 3D scene processing via FastMCP 3.1 SEP-1577 multi-step sampling.

The LLM autonomously queries material, modeling, and IO capabilities to build a processing pipeline tailored to each scene's needs.

ParametersJSON Schema
NameRequiredDescriptionDefault
scenesYesList of scene dicts (keys: name, objects, format, etc.)
max_stepsNoMaximum reasoning loops (default: 5)
processing_goalYesWhat to achieve (e.g. "optimize all scenes for real-time rendering")
processing_strategyNo"adaptive" | "parallel" | "sequential"adaptive
available_operationsYesOperations the orchestrator may use

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations are all false and provide no positive safety profile. The description mentions multi-step sampling and autonomous capability queries, but does not disclose side effects, whether scenes are modified, or how other tools may be invoked. The jargon 'SEP-1577' adds no behavioral clarity.

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

Conciseness4/5

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

The description is two sentences and reasonably compact. However, the first sentence includes unexplained jargon ('FastMCP 3.1 SEP-1577') that could be removed without losing meaning.

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

Completeness2/5

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

This is a complex autonomous tool, yet the description is sparse, lacking usage scenarios, expected side effects, and explanation of the multi-step orchestration. The output schema exists, but the description does not sufficiently cover the tool's operational context.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already explains scenes, processing_goal, and available_operations. The description adds no parameter-specific meaning, so it merely meets the 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 identifies the tool as 'Intelligent batch 3D scene processing' and mentions autonomous pipeline building, which conveys the primary function. However, it does not explicitly differentiate from siblings like agentic_blender_workflow or blender_batch, so it falls short of fully distinguishing the tool.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives. The description explains what the tool does but gives no context on suitable use cases, prerequisites, or exclusions.

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

list_local_modelsA
Read-onlyIdempotent

Discover local LLM models from Ollama and LM Studio.

Return Format

Standard dict with keys: success, summary, result

Examples

await call_tool("list_local_models")
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the return format (standard dict with success/summary/result) and uses the verb 'Discover,' reinforcing a safe, read-only operation. 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, front-loads the purpose, and provides a structured 'Return Format' section and an example. Every part serves a purpose, and the structure makes it easy to scan.

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

Completeness5/5

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

For a zero-parameter, read-only list tool, the description fully covers the action, sources, and return format. It is complete enough for an agent to select and invoke the tool correctly. The presence of an output schema further avoids the need to explain return values.

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

Parameters4/5

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

The tool has zero parameters, so the schema is fully self-explanatory. The description does not need to add parameter details, and the baseline of 4 applies. It does not attempt to explain non-existent parameters.

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

Purpose4/5

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

The description clearly states the tool's action ('Discover') and resource ('local LLM models from Ollama and LM Studio'). It is specific and distinguishes the tool from generic model tools, but it does not explicitly differentiate from the sibling tool 'llm_models'.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or contextual scenarios. The description simply states what it does, leaving usage inference to the agent.

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

list_scenesA
Read-onlyIdempotent

List all scenes in the current Blender file.

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("list_scenes")
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe read behavior is disclosed. The description adds the 'current Blender file' scope and a generic return format ('success, message, data') but does not provide deeper context about the contents of 'data' or pagination/limits. This is marginal added value beyond the annotations and likely the output schema.

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

Conciseness5/5

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

The description is appropriately concise: a single purpose statement followed by structured 'Return Format' and 'Examples' sections. Every sentence serves a purpose, and key information (purpose, return shape, usage example) is front-loaded without fluff.

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

Completeness5/5

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

For a zero-parameter read-only listing tool, the description is fully adequate. It states the scope (current Blender file), provides the return format, includes an example invocation, and benefits from an available output schema. No further details are needed for effective use.

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

Parameters4/5

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

The tool has zero parameters, and the schema coverage is 100% (empty). Per the rubric, a baseline of 4 is appropriate since there are no parameter semantics to document. The description adds no parameter-level information, but that is not 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 starts with a specific verb and resource: 'List all scenes in the current Blender file.' This clearly distinguishes it from sibling tools such as create_scene, set_active_scene, and clear_scene, and there is no ambiguity about what the tool does.

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

Usage Guidelines3/5

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

The description implies its usage through the purpose statement but does not explicitly state when to use it versus alternatives like scene_get_hierarchy or set_active_scene. There are no exclusions or alternative references, so the guidance is only implicit.

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

llm_modelsB

Portmanteau: list, pull, or remove Ollama models (CRUD for local LLM models).

Operations:

  • list: return installed Ollama model names (and LM Studio if reachable).

  • pull: pull model from Ollama registry (requires model_name). Slow for large models.

  • remove: delete an Ollama model from disk (requires model_name).

ParametersJSON Schema
NameRequiredDescriptionDefault
operationNolist, pull, or removelist
model_nameNorequired for pull and remove (e.g. llama3.2, codellama)
ollama_urlNoOllama API base URLhttp://localhost:11434

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior1/5

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

The description discloses that remove deletes a model from disk and pull is slow, which is valuable behavioral context. However, it directly contradicts the annotations' destructiveHint=false, since removal is inherently destructive. This inconsistency is a severe transparency failure.

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

Conciseness5/5

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

The description is well-structured with a one-line summary followed by a bulleted list of operations. Each sentence provides necessary information with no fluff, making it appropriately sized and front-loaded.

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

Completeness4/5

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

The description covers all three operations, parameter requirements, performance implications, and the scope (Ollama and LM Studio). Given the tool's moderate complexity and the presence of an output schema, it is nearly complete, though edge cases like unreachable API URLs are not addressed.

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

Parameters3/5

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

Schema coverage is 100%, so all three parameters (operation, model_name, ollama_url) are already described in the schema. The description adds little beyond a performance note for pull and restates the model_name requirement, which the schema already covers. 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 as a 'Portmanteau' for list, pull, or remove Ollama models, with specific verbs (list, pull, remove) and resource (Ollama models). It enumerates operations and details each one, distinguishing it from sibling list_local_models by including pull and remove actions.

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

Usage Guidelines3/5

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

The description offers operation-specific guidance (e.g., model_name required for pull/remove, pull is slow for large models) which implies when each operation should be used. However, it does not explicitly discuss alternatives, such as when to prefer sibling list_local_models for simple listing, so usage exclusions are missing.

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

manage_asset_libraryA

PORTMANTEAU: Poly Haven + Sketchfab asset discovery and import (fleet subprocess Blender).

Operations:

  • info: Capabilities and env vars (SKETCHFAB_API_TOKEN).

  • polyhaven_categories: List category counts for hdris | textures | models.

  • polyhaven_search: Search catalog (uses api.polyhaven.com/assets).

  • polyhaven_import: Download + import — HDRIs set as world env; textures/models via files API bundles.

  • sketchfab_search: Sketchfab v3 search (requires token).

  • sketchfab_import: Download + import glTF from Sketchfab (requires token + downloadable model).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoResults page for polyhaven_search.
queryNoSketchfab search query.
asset_idNoPoly Haven asset slug (e.g. venice_sunset) or Sketchfab UID for import.
operationNoWhich operation to run.info
asset_typeNoFor Poly Haven: hdris, textures, models, or all (search).hdris
categoriesNoOptional comma-separated Poly Haven categories filter.
resolutionNo1k | 2k | 4k | 8k | 16k where applicable.4k
file_formatNoFor HDRIs: hdr | exr. For models: gltf | fbx | blend preference chain start.
model_preferNoPreferred model package: gltf, fbx, or blend.gltf
search_limitNoMax Sketchfab results (1-100).
sketchfab_uidNoModel UID for sketchfab_import.
sketchfab_tokenNoOptional; defaults to SKETCHFAB_API_TOKEN env.
downloadable_onlyNoSketchfab search filter.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses significant behavior beyond the all-false annotations: it launches subprocess Blender ('fleet subprocess'), downloads and imports assets (HDRIs set as world env, textures/models via files API bundles), and requires tokens for Sketchfab. It doesn't mention scene side effects, but the import behavior is explicitly stated.

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

Conciseness5/5

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

The description is compact: a one-sentence preamble plus a bulleted list of six operations. Each line delivers a distinct capability or prerequisite (tokens, env vars, import behavior), with zero filler and the core purpose front-loaded.

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

Completeness4/5

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

For a complex 13-parameter, six-operation tool, the description covers the main purpose, operations, prerequisites (tokens, env vars), and import behaviors. An output schema exists, so return value details are not needed, but it could still expand on error handling or local repository integration.

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?

With 100% schema description coverage, the baseline is 3. The description adds operational context (e.g., asset_id used for both Poly Haven and Sketchfab, downloadable_only filter), but it largely restates schema descriptions rather than providing new syntax or examples.

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

Purpose5/5

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

The opening line explicitly defines the tool as a composition of Poly Haven and Sketchfab asset discovery/import, then enumerates five concrete operations. This clearly distinguishes it from sibling tools like list_local_models or blender_import.

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

Usage Guidelines4/5

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

The operation list implies strong usage context (search vs import, Poly Haven vs Sketchfab, token requirements), but it never explicitly states when not to use this tool or names alternatives like list_local_models. Clear context, no exclusions.

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

manage_blender_addonsA

Blender addon management (compatibility alias — prefer blender_addons).

Operations mirror blender_addons: search, install_known, install_url, list_installed, enable, disable, info.

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("manage_blender_addons", {"operation": "search", "query": "gaussian splat"})
ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
queryNo
operationNosearch
addon_nameNo
enable_afterNo
enabled_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations are all neutral (no readOnly/destructive flags), so the description carries the burden. It discloses the return format and that operations mirror blender_addons, but it does not describe side effects of operations like install/disable, nor does it explain permission requirements. The alias relationship adds some transparency, but details are deferred to the sibling tool.

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

Conciseness5/5

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

The description is compact, front-loaded with the alias notice, and uses clear sections for return format and examples. Every sentence contributes, and the example demonstrates real usage without redundancy. It is a model of concise documentation.

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

Completeness3/5

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

For a compatibility alias with an output schema, the description provides the essential operation list and return format, which is useful. However, it lacks parameter-to-operation mapping and details on operation effects, though an agent can consult the primary blender_addons tool. Given the complexity (6 params, 0% schema descriptions), more explanation would be needed for full self-sufficiency.

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

Parameters2/5

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

The input schema has 6 parameters with 0% description coverage, requiring the description to compensate. It provides an operation list and one example (operation=search, query), but does not explain parameters like url, addon_name, enable_after, or enabled_only. The operation names imply some usage, but this is insufficient for a 6-parameter tool.

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

Purpose5/5

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

The description clearly identifies the tool as a Blender addon management compatibility alias, explicitly listing the operations it mirrors (search, install_known, etc.). It also distinguishes itself from the sibling tool blender_addons by stating that blender_addons is preferred, making the purpose and relationship 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?

Explicitly states 'prefer blender_addons', giving clear guidance on when to use the alternative instead. It also notes that operations mirror blender_addons, so the agent knows this alias is functionally equivalent, which is strong usage direction.

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

manage_object_constructionA

AI-powered object construction and modification via sampling.

  • construct: natural language → Blender Python → execute in scene

  • construct_and_save: construct then immediately save to repository

  • modify: find stored script for object, sample modification, validate, execute

Requires a client that supports MCP sampling (Claude Desktop, Antigravity, etc.)

Return Format

Standard dict with keys: success, message, object_name, scene_objects_created

Examples

await call_tool("manage_object_construction", {"operation": "construct", "description": "A red cube", "name": "MyCube"})
ParametersJSON Schema
NameRequiredDescriptionDefault
ctxYes
nameNoConstructedObject
operationNoconstruct
complexityNostandard
descriptionNo
object_nameNo
style_presetNo
max_iterationsNo
preserve_originalNo
reference_objectsNo
allow_modificationsNo
modification_descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With all annotation hints false, the description carries the transparency burden. It discloses that scripts are executed in the scene, that modifications are validated, and that construct_and_save persists to a repository. However, it does not elaborate on side effects, failure handling, or whether operations are reversible, leaving notable gaps.

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

Conciseness4/5

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

The description is well-structured with bullet points, a return format section, and a worked example. It is reasonably concise and front-loaded, though the code block and extra headings add length without significantly increasing clarity.

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

Completeness2/5

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

Despite an output schema and a return format note, the tool is complex (12 params, 0% schema coverage, no annotations). The description gives a high-level overview but omits param semantics, usage prerequisites beyond sampling, and edge cases. It is insufficient for fully autonomous selection and invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It explains the operation values and provides an example mapping operation, description, and name, but leaves most of the 12 parameters (complexity, style_preset, max_iterations, reference_objects, allow_modifications, etc.) undefined. The required ctx parameter is also opaque.

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

Purpose5/5

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

The description uses a specific verb ('AI-powered object construction and modification via sampling') and enumerates three concrete operations (construct, construct_and_save, modify) with pipelines. It clearly distinguishes this tool from more specialized Blender tools by emphasizing the sampling-based natural-language workflow.

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

Usage Guidelines4/5

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

The description states a prerequisite (client supporting MCP sampling) and provides an example call. It explains the three operation modes but does not explicitly name alternatives or specify when not to use this tool. It is clear enough for an agent to infer appropriate contexts, but lacks explicit exclusions.

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

manage_object_repoA

Object repository management: save, load, search, list_objects.

  • save: export Blender object to ~/.blender-mcp/repository/ with metadata

  • load: append saved object into current scene with optional transforms

  • search: filter index by query, category, tags, quality

  • list_objects: return full index

Repository location: ~/.blender-mcp/repository/

Return Format

Standard dict with keys: success, message, objects

Examples

await call_tool("manage_object_repo", {"operation": "list_objects"})
ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
limitNo
queryNo
scaleNo
authorNo
publicNo
versionNo
categoryNogeneral
positionNo
object_idNo
operationNolist_objects
complexityNo
descriptionNo
min_qualityNo
object_nameNo
target_nameNo
quality_ratingNo
object_name_displayNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

With all annotations false, the description carries full responsibility for disclosing side effects. It states that save exports to disk and load appends to the current scene, and it provides the return format. It does not mention overwrite behavior or selection requirements, but the main behavioral traits are covered.

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

Conciseness5/5

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

The description is well-structured: it opens with the purpose, uses a bullet list for operations, includes the repository location, return format, and a concrete example. Every sentence contributes value with no filler.

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

Completeness2/5

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

For a tool with 18 optional parameters and four distinct operations, this description is under-specified. It lacks per-operation parameter explanations, examples for save/load/search, and details about input requirements. The return format in the description mitigates only a small part of the completeness gap.

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

Parameters2/5

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

The schema has 18 parameters with 0% description coverage, so the description must compensate. It only mentions 'operation', 'query', 'category', 'tags', 'quality', and 'optional transforms' indirectly. Most parameters (e.g., author, public, version, complexity, target_name) remain unexplained, leaving a significant gap.

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

Purpose5/5

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

The description states a specific verb ('manage') on a resource ('object repository') and then enumerates four concrete operations: save, load, search, list_objects. It also names the repository path, making it distinct from sibling asset or addon management tools.

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

Usage Guidelines3/5

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

The description implies usage through the operation list and repository path, but it does not explicitly state when to prefer this tool over alternatives like manage_asset_library, nor does it mention prerequisites or exclusions. Usage context is clear but not fully explicit.

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

scene_get_hierarchyA
Read-onlyIdempotent

Get the full scene hierarchy as a JSON-formatted string.

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("scene_get_hierarchy")
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare this as read-only, idempotent, and non-destructive, covering the safety profile. The description adds that the return is a JSON-formatted string with a specific dict structure, but no additional behavioral context like performance, data size, or error cases. This is adequate but not extensive.

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

Conciseness5/5

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

The description is extremely concise: one sentence for purpose, a return format note, and a simple example. Every component is useful and nothing is wasted, making it an efficiently structured description.

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

Completeness5/5

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

For a simple zero-parameter, read-only tool with a clear output schema and strong annotations, the description is complete. It explains what it returns and provides an example, which is sufficient for an agent to invoke and understand the 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?

There are zero parameters, and the schema is fully covered (100%), so the description has no parameter semantics to add. Baseline 4 is appropriate for a no-parameter tool.

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

Purpose4/5

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

The description clearly states the tool gets the full scene hierarchy as a JSON string, using a specific verb and resource. However, it does not explicitly distinguish this from sibling tools like list_scenes or blender_scene, which may overlap somewhat in scope.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description gives an example but lacks contextual cues about when this is the right choice, such as when a full hierarchy is needed versus just listing scenes.

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

script_executeC

Execute Python script in Blender (headless).

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesPython script source (Blender/bpy API).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations provide no safety hints (all false), so the description carries the burden. It adds only 'headless', which is minimal. It does not disclose that executing arbitrary code can have broad side effects, modify scene state, or be potentially destructive, nor does it warn about error handling or permissions.

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

Conciseness5/5

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

A single sentence with no wasted words, front-loaded with the primary action and resource. Concise and well-structured.

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

Completeness2/5

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

Despite having one well-documented parameter and an output schema, the tool's complexity as arbitrary code execution warrants more context. The description lacks details about the execution environment, scope of access, side effects, or when to use specialized sibling tools. This is a powerful tool and the description is too sparse.

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

Parameters3/5

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

The schema covers 100% of the sole parameter with the description 'Python script source (Blender/bpy API)'. The tool description adds no additional parameter meaning, so the baseline of 3 applies.

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

Purpose4/5

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

The description clearly states the tool executes Python scripts in Blender headless, with a specific verb and resource. It doesn't explicitly differentiate from sibling tools, but the purpose is unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus the many sibling tools. It doesn't mention that this is for arbitrary scripts not covered by specialized tools, nor does it give exclusions or alternatives.

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

server_infoA
Read-onlyIdempotent

Return Blender MCP server information, version, and status.

Return Format

JSON string with keys: name, version, status, blender_executable, blender_status, platform, python_version

Examples

await call_tool("server_info")
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by specifying the exact return format (JSON string with keys: name, version, status, etc.), which goes beyond the annotations and clarifies what the agent will receive.

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

Conciseness5/5

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

The description is highly concise: one opening sentence, a brief return-format section, and a short example. Every element earns its place without redundancy, and key 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?

For a zero-parameter, read-only info tool, the description is complete: it states the purpose, lists the return keys, and provides a usage example. The presence of an output schema also reduces the need to explain return values further.

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

Parameters4/5

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

The input schema has zero parameters, so the baseline is 4. The description adds meaning by showing an example call (`await call_tool("server_info")`) and documenting the return shape, which is sufficient for a parameterless tool.

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

Purpose5/5

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

The description uses a specific verb ('Return') and clear resource ('Blender MCP server information, version, and status'). It unambiguously distinguishes from sibling tools like blender_status by focusing on the MCP server itself rather than Blender state.

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

Usage Guidelines3/5

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

The description implies usage as a simple server info query and provides a code example, but it does not explicitly state when to use this tool vs alternatives (e.g., blender_status) or any exclusions. Since it is a zero-parameter diagnostic tool, guidance is minimal but not misleading.

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

set_active_sceneA

Set the active scene by name.

Return Format

Standard dict with keys: success, message, data

Examples

await call_tool("set_active_scene", {"scene_name": "Scene"})
ParametersJSON Schema
NameRequiredDescriptionDefault
scene_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false (write operation) and destructiveHint=false (not destructive). The description adds the return format ('Standard dict with keys: success, message, data'), but does not disclose potential side effects, error conditions, or that it changes the global active scene state. This provides some value beyond annotations but leaves gaps.

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

Conciseness4/5

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

The description is concise and front-loaded with the main action. It uses clear markdown sections for return format and examples, which are easy to scan. The example is redundant with the schema? but adds clarity. Slight penalty for not including usage guidance, but overall well-structured for its size.

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

Completeness3/5

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

The tool is simple (one parameter) and has an output schema, so the description does not need to explain return values beyond what schema provides. However, it lacks critical context: it does not mention that the scene must already exist, that this is a write operation affecting Blender's active state, or how it interacts with other scene tools. This makes it minimally adequate but incomplete.

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

Parameters4/5

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

The schema has a single required parameter 'scene_name' with no description. The description compensates by stating the action is 'by name' and provides a concrete example: {"scene_name": "Scene"}. This clarifies the expected format and semantics, though it does not detail constraints like case sensitivity or existence requirements.

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: 'Set the active scene by name.' It uses a specific verb ('set') and a clear resource ('active scene'), and the tool name matches. This distinguishes it from sibling tools like create_scene, list_scenes, and clear_scene, which have different purposes.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., the scene must exist), related tools, or any exclusions. The only context is the action itself and an example, which implies usage but does not explicit.

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

show_blender_status_appA
Read-onlyIdempotent

Show Blender MCP server status as a rich dashboard card.

Return Format

Prefab card with KPIs and system status

Examples

await call_tool("show_blender_status_app")
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds value by disclosing the return format ('Prefab card with KPIs and system status'), which is not captured in annotations or an output schema. No contradictions with annotations.

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

Conciseness5/5

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

The description is compact and front-loaded, with the purpose in the first sentence, followed by a Return Format section and an Example. Every section is useful and there is no redundant or filler text.

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

Completeness4/5

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

For a zero-parameter, no-output-schema tool, the description provides sufficient context: what it shows, the return format, and an invocation example. It could elaborate on what specific KPIs or status metrics are included, but the information is adequate for an agent to select and call the tool correctly.

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

Parameters4/5

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

The tool takes zero parameters, and the schema is an empty object, so there are no parameter semantics to document. The description does not need to compensate for any schema gaps, giving a baseline score of 4.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Show Blender MCP server status as a rich dashboard card.' The verb 'Show' plus the resource 'Blender MCP server status' and output format 'rich dashboard card' make it specific and distinguishable from sibling tools like show_tools_app or show_logs_app.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives such as blender_status or server_info. It relies purely on the name and purpose, without saying 'use this when...' or 'instead of...'.

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

show_logs_appB
Read-onlyIdempotent

Show recent log entries as a scrollable Prefab card.

Return Format

Prefab card with timestamped log entries

Examples

await call_tool("show_logs_app", {"limit": 10})
ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
level_filterNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior, so the safety profile is clear. The description adds the return format (timestamped log entries in a Prefab card) but does not disclose behaviors like filter handling or potential volume limits. This is acceptable but not rich.

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

Conciseness4/5

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

The description is concise and well-structured, opening with a clear purpose, then a return format section, and a practical example. It uses headings and a code block effectively, with no wasted words.

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

Completeness3/5

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

For a simple read-only tool with two optional parameters and no output schema, the description covers the basic purpose and return format, but omits the meaning of 'level_filter' and any pagination/limitation behaviors. It is largely sufficient for basic use but incomplete for advanced cases. Sibling differentiation is also missing.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only mentions 'limit' in the example without explaining its semantics, and 'level_filter' is entirely absent. The defaults in the schema provide some info, but the description adds little value beyond what the schema already shows.

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

Purpose4/5

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

The description states 'Show recent log entries' with a specific output format (scrollable Prefab card), which clearly identifies the tool's function. It does not explicitly differentiate from sibling tools like 'blender_logs', but the tool name and phrasing are sufficiently specific.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. No mention of use cases, exclusions, or relationships to sibling tools. The example shows how to call it but does not contextualize when it should be preferred.

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

show_tools_appA
Read-onlyIdempotent

List all tools organized by category as a Prefab card.

Return Format

Prefab card with Headings per category and Rows per tool

Examples

await call_tool("show_tools_app")
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds the return format (Prefab card with Headings/Rows), which is valuable because there is no output schema. This provides behavior expectations 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?

The description is concise and well-structured: a one-line purpose statement followed by Return Format and Example sections. Every sentence earns its place, and the example clarifies invocation.

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, no-parameter tool with comprehensive annotations, the description covers purpose, output structure, and a usage example. There is no apparent gap that would prevent correct invocation or interpretation of results.

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

Parameters4/5

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

The tool has zero parameters and an empty schema, so there are no parameter semantics to clarify. The baseline of 4 is appropriate because the description cannot add value where no parameters exist.

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

Purpose5/5

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

The description clearly states 'List all tools organized by category as a Prefab card,' combining a specific verb and resource. This distinguishes it from siblings like show_logs_app, which focus on logs rather than tool listing.

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

Usage Guidelines3/5

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

The description implies usage for discovering available tools but does not explicitly state when to use it versus alternatives or provide exclusion criteria. The example call is useful for invocation but not situational guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv0.11.1
    • Addedai_chat
    • Changedgenerate_blender_script4 fields changed
      • addedOutput schema / additionalProperties
        Added value: +true
      • removedOutput schema / properties
        Removed value: -{
        -  "result": {
        -    "type": "string"
        -  }
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "result"
        -]
      • removedOutput schema / x-fastmcp-wrap-result
        Removed value: -true
    • Changedllm_models4 fields changed
      • addedOutput schema / additionalProperties
        Added value: +true
      • removedOutput schema / properties
        Removed value: -{
        -  "result": {
        -    "type": "string"
        -  }
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "result"
        -]
      • removedOutput schema / x-fastmcp-wrap-result
        Removed value: -true
    • Addedshow_blender_status_app
    • Addedshow_logs_app
    • Addedshow_tools_app
  2. 15 tool updatesv0.5.0
    • Changedblender_addons3 fields changed
      • changedInput schema / properties / addon_name / description
        Previous value: -"For uninstall_addon."New value: +"For uninstall_addon, enable, disable, install_known."
      • changedInput schema / properties / enable_on_install / description
        Previous value: -"For install_addon."New value: +"Enable addon after install operations."
      • changedInput schema / properties / operation / description
        Previous value: -"list_addons | install_addon | install_from_url | uninstall_addon | search"New value: +"list_addons | list_installed | install_addon | install_from_url | install_known | ..."
    • Addedblender_ai_generate
    • Addedblender_api_docs
    • Addedblender_batch
    • Addedblender_compositor
    • Changedblender_export10 fields changed
      • removedInput schema / properties / apply_transforms / description
        Removed value: -"Apply object transforms before export"
      • addedInput schema / properties / file_format
        Added value: +{
        +  "default": "GLB",
        +  "type": "string"
        +}
      • removedInput schema / properties / global_scale / description
        Removed value: -"Global scale factor for export"
      • removedInput schema / properties / include_animations / description
        Removed value: -"Include animations in export"
      • removedInput schema / properties / include_materials / description
        Removed value: -"Include materials in export"
      • removedInput schema / properties / object_names / description
        Removed value: -"List of specific object names to export (None = all objects)"
      • changedInput schema / properties / operation / default
        Previous value: -"export_fbx"New value: +"export_glb"
      • removedInput schema / properties / operation / description
        Removed value: -"Export operation type"
      • removedInput schema / properties / output_path / description
        Removed value: -"Path where to save the exported file"
      • removedInput schema / properties / use_mesh_modifiers / description
        Removed value: -"Apply mesh modifiers before export"
    • Addedblender_geonodes
    • Addedblender_jobs
    • Changedblender_mesh9 fields changed
      • addedInput schema / properties / bevel_segments
        Added value: +{
        +  "default": 2,
        +  "type": "integer"
        +}
      • addedInput schema / properties / bevel_width
        Added value: +{
        +  "default": 0.1,
        +  "type": "number"
        +}
      • addedInput schema / properties / distance
        Added value: +{
        +  "default": 0.5,
        +  "type": "number"
        +}
      • addedInput schema / properties / inset_depth
        Added value: +{
        +  "default": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / join_names
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedInput schema / properties / merge_distance
        Added value: +{
        +  "default": 0.001,
        +  "type": "number"
        +}
      • addedInput schema / properties / prefer_session
        Added value: +{
        +  "default": true,
        +  "type": "boolean"
        +}
      • addedInput schema / properties / subdivide_cuts
        Added value: +{
        +  "default": 2,
        +  "type": "integer"
        +}
      • addedInput schema / properties / thickness
        Added value: +{
        +  "default": 0.1,
        +  "type": "number"
        +}
    • Changedblender_render23 fields changed
      • addedInput schema / properties / angles
        Added value: +{
        +  "default": 4,
        +  "type": "integer"
        +}
      • addedInput schema / properties / camera_radius
        Added value: +{
        +  "default": 5,
        +  "type": "number"
        +}
      • addedInput schema / properties / device
        Added value: +{
        +  "default": "GPU",
        +  "type": "string"
        +}
      • addedInput schema / properties / elevation_deg
        Added value: +{
        +  "default": 25,
        +  "type": "number"
        +}
      • removedInput schema / properties / file_format / description
        Removed value: -"Output image format. One of: \"PNG\", \"JPEG\", \"TIFF\", \"EXR\", \"HDR\", \"WEBP\".\nDefault: \"PNG\". \"EXR\" recommended for post-processing, \"PNG\" for previews."
      • removedInput schema / properties / frame_end / description
        Removed value: -"Ending frame number for animation rendering. Default: 250.\nMust be greater than frame_start. Corresponds to timeline frame numbers."
      • removedInput schema / properties / frame_start / description
        Removed value: -"Starting frame number for animation rendering. Default: 1.\nMust be less than frame_end. Corresponds to timeline frame numbers."
      • removedInput schema / properties / frames / description
        Removed value: -"Number of frames for turntable animation. Default: 60. Range: 8 to 360.\nHigher values create smoother rotation but increase render time."
      • addedInput schema / properties / layer_name
        Added value: +{
        +  "default": "ViewLayer",
        +  "type": "string"
        +}
      • removedInput schema / properties / operation / description
        Removed value: -"The render operation to perform. Must be one of: \"render_preview\",\n\"render_turntable\", \"render_animation\", \"render_current_frame\".\n- \"render_preview\": Single frame with custom settings (uses: output_path, resolution_*, file_format, render_engine, samples)\n- \"render_turntable\": 360° rotation animation (uses: output_dir, frames, resolution_*, file_format, render_engine, samples)\n- \"render_animation\": Full timeline render (uses: output_dir, frame_start, frame_end, resolution_*, file_format, render_engine, samples)\n- \"render_current_frame\": Current frame only (uses: output_path, resolution_*, file_format, render_engine, samples)"
      • removedInput schema / properties / output_dir / description
        Removed value: -"Directory path for multi-frame output. Required for: \"render_turntable\", \"render_animation\".\nDirectory must exist and be writable. Files named with frame numbers."
      • removedInput schema / properties / output_path / description
        Removed value: -"File path for single frame output. Required for: \"render_preview\", \"render_current_frame\".\nFormat: absolute path with extension (.png, .jpg, .exr). Directory must exist."
      • addedInput schema / properties / prefer_session
        Added value: +{
        +  "default": true,
        +  "type": "boolean"
        +}
      • removedInput schema / properties / render_engine / description
        Removed value: -"Blender render engine. One of: \"CYCLES\", \"EEVEE\", \"WORKBENCH\".\nDefault: \"CYCLES\". \"EEVEE\" fastest, \"CYCLES\" most realistic, \"WORKBENCH\" technical."
      • removedInput schema / properties / resolution_x / description
        Removed value: -"Horizontal resolution in pixels. Default: 1920. Range: 64 to 8192.\nCommon values: 1920 (FHD), 3840 (4K), 7680 (8K)."
      • removedInput schema / properties / resolution_y / description
        Removed value: -"Vertical resolution in pixels. Default: 1080. Range: 64 to 8192.\nMaintains aspect ratio with resolution_x for standard formats."
      • removedInput schema / properties / samples / description
        Removed value: -"Render quality samples for Cycles/EEVEE. Default: 128. Range: 1 to 4096.\nHigher values reduce noise but increase render time. Use 16-32 for previews."
      • addedInput schema / properties / shading_mode
        Added value: +{
        +  "default": "SOLID",
        +  "type": "string"
        +}
      • addedInput schema / properties / use_bloom
        Added value: +{
        +  "default": true,
        +  "type": "boolean"
        +}
      • addedInput schema / properties / use_denoising
        Added value: +{
        +  "default": true,
        +  "type": "boolean"
        +}
      • addedInput schema / properties / use_dof
        Added value: +{
        +  "default": false,
        +  "type": "boolean"
        +}
      • addedInput schema / properties / use_motion_blur
        Added value: +{
        +  "default": false,
        +  "type": "boolean"
        +}
      • addedInput schema / properties / use_ssao
        Added value: +{
        +  "default": true,
        +  "type": "boolean"
        +}
    • Addedblender_sculpt
    • Addedblender_shaders
    • Changedblender_validation2 fields changed
      • addedInput schema / properties / object_name
        Added value: +{
        +  "default": "",
        +  "type": "string"
        +}
      • changedInput schema / properties / operation / enum
        Previous value: -[
        -  "validate_avatar",
        -  "validate_model",
        -  "check_polycount",
        -  "check_materials",
        -  "check_rigging",
        -  "check_transforms",
        -  "check_textures"
        -]New value: +[
        +  "validate_avatar",
        +  "validate_model",
        +  "validate_geometry",
        +  "check_manifold",
        +  "check_polycount",
        +  "check_materials",
        +  "check_rigging",
        +  "check_transforms",
        +  "check_textures"
        +]
    • Addedblender_vision_refine
    • Changedmanage_blender_addons6 fields changed
      • removedInput schema / properties / addon_name / description
        Removed value: -"Addon name for install_known / enable / disable"
      • removedInput schema / properties / enable_after / description
        Removed value: -"Enable addon after installation (default True)"
      • removedInput schema / properties / enabled_only / description
        Removed value: -"For list_installed, only show enabled addons"
      • removedInput schema / properties / operation / description
        Removed value: -"Operation to perform (see above)"
      • removedInput schema / properties / query / description
        Removed value: -"Search query for 'search' operation"
      • removedInput schema / properties / url / description
        Removed value: -"URL for install_url operation"
  3. 58 tool updatesv0.1.0
    • First observedadd_to_collection
    • First observedagentic_blender_workflow
    • First observedblender_addons
    • First observedblender_animation
    • First observedblender_atlasing
    • First observedblender_camera
    • First observedblender_download
    • First observedblender_export
    • First observedblender_export_presets
    • First observedblender_furniture
    • First observedblender_grease_pencil
    • First observedblender_help
    • First observedblender_import
    • First observedblender_lighting
    • First observedblender_logs
    • First observedblender_materials
    • First observedblender_materials_baking
    • First observedblender_mesh
    • First observedblender_modifiers
    • First observedblender_particles
    • First observedblender_physics
    • First observedblender_render
    • First observedblender_rigging
    • First observedblender_scene
    • First observedblender_selection
    • First observedblender_session
    • First observedblender_shapekeys
    • First observedblender_splatting
    • First observedblender_status
    • First observedblender_textures
    • First observedblender_transform
    • First observedblender_uv
    • First observedblender_validation
    • First observedblender_vrm_metadata
    • First observedblender_vse
    • First observedblender_workflow
    • First observedclear_scene
    • First observedconfig_get
    • First observedconfig_set
    • First observedconstruct_object
    • First observedconversational_blender_assistant
    • First observedcreate_collection
    • First observedcreate_scene
    • First observedexport_for_mcp_handoff
    • First observedgenerate_blender_script
    • First observedimport_cad_file
    • First observedintelligent_3d_processing
    • First observedlist_local_models
    • First observedlist_scenes
    • First observedllm_models
    • First observedmanage_asset_library
    • First observedmanage_blender_addons
    • First observedmanage_object_construction
    • First observedmanage_object_repo
    • First observedscene_get_hierarchy
    • First observedscript_execute
    • First observedserver_info
    • First observedset_active_scene

TDQS

C2.9/5.0
Disambiguation2/5

Many tools overlap heavily: standalone create_collection, list_scenes, clear_scene duplicate operations inside blender_scene; blender_addons and manage_blender_addons are aliases; construct_object and manage_object_construction both build objects from natural language. Agents will struggle to pick the right tool when the same capability is exposed through multiple entry points.

Naming Consistency2/5

Naming mixes conventions: verb_noun (create_collection, list_scenes), noun_specific (blender_mesh, blender_scene), generic (config_get, server_info), and verbose portmanteaus (agentic_blender_workflow, intelligent_3d_processing). The blender_ prefix is used inconsistently, and there is no clear predictable pattern across the tool set.

Tool Count1/5

71 tools is an extreme count, far exceeding even the 50+ threshold for a mismatch. While many tools consolidate operations via portmanteau patterns, the sheer number of exposed tools overwhelms context windows and makes selection impractical for an agent.

Completeness5/5

The set covers an exceptionally broad range of Blender workflows: modeling, animation, rigging, materials, rendering, VSE, sculpt, physics, import/export, AI generation, asset repositories, and platform validation. Despite some missing micro-features (e.g., explicit file save), the surface is remarkably complete for its stated purpose.

Maintenance

ActivityActive
ResponsivenessSlow

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

  • A
    license
    B
    quality
    D
    maintenance
    Connects Blender to Claude AI through the Model Context Protocol (MCP), enabling prompt-assisted 3D modeling, scene creation, and manipulation.
    17
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Connects Blender to Claude AI through the Model Context Protocol (MCP), enabling prompt-assisted 3D modeling, scene creation, and manipulation directly from Claude.
    17
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    BlenderMCP enables Claude AI to directly interact with and control Blender for prompt-assisted 3D modeling, scene creation, and manipulation. It supports object and material control, scene inspection, and execution of Python code through natural language commands.
    17
    MIT

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/sandraschi/blender-mcp'

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