Skip to main content
Glama
ZachHandley

blender-mcp-enhanced

by ZachHandley

BlenderMCP Enhanced - Advanced Blender AI Integration

🚀 Enhanced fork of BlenderMCP with shared context, geometry nodes, and advanced tool chaining capabilities.

BlenderMCP Enhanced connects Blender to Claude AI through the Model Context Protocol (MCP), enabling sophisticated AI-assisted 3D modeling, procedural geometry creation, and persistent multi-turn workflows.

Enhanced Features

🔄 Shared Context & Persistence

  • Persistent variables between tool calls - no more isolated script execution

  • Object & material handles for seamless cross-tool references

  • Operation history tracking with automatic cleanup

  • Multi-turn conversations that build on previous work

🔧 Geometry Nodes Support

  • AI-driven procedural modeling with sophisticated geometry node networks

  • Blender 4.x compatibility with automatic interface handling

  • Parametric object creation (tables, chairs, organic shapes, complex geometry)

  • Auto-handle generation for seamless tool chaining

Advanced Tool Chaining

  • 13 new MCP tools for context management and procedural modeling

  • Enhanced asset downloads with automatic handle creation

  • Intelligent operation tracking and debugging capabilities

  • Script registry system for reusable Python code libraries

Related MCP server: BlenderMCP

📦 Installation (Enhanced Version)

uvx install blender-mcp-enhanced

From Source

uvx install git+https://github.com/zachhandley/blender-mcp-enhanced.git

For Development

git clone https://github.com/zachhandley/blender-mcp-enhanced.git
cd blender-mcp-enhanced
uvx install .

🙏 Credits

Enhanced by: Zach Handley (zachhandley.com)

  • Added shared context and persistent variables system

  • Integrated comprehensive geometry nodes support

  • Enhanced tool chaining and operation tracking

Original Project: Based on BlenderMCP by the community


Original Description:

We have no official website. Any website you see online is unofficial and has no affiliation with this project. Use them at your own risk.

Full tutorial

Join the Community

Give feedback, get inspired, and build on top of the MCP: Discord

Supporters

Warp, the intelligent terminal for developers

Available for MacOS, Linux, & Windows

Other supporters:

CodeRabbit

Satish Goda

All supporters:

Support this project

Release notes (1.2.0)

  • View screenshots for Blender viewport to better understand the scene

  • Search and download Sketchfab models

Previously added features:

  • Support for Poly Haven assets through their API

  • Support to generate 3D models using Hyper3D Rodin

  • For newcomers, you can go straight to Installation. For existing users, see the points below

  • Download the latest addon.py file and replace the older one, then add it to Blender

  • Delete the MCP server from Claude and add it back again, and you should be good to go!

Features

  • Two-way communication: Connect Claude AI to Blender through a socket-based server

  • Object manipulation: Create, modify, and delete 3D objects in Blender

  • Material control: Apply and modify materials and colors

  • Scene inspection: Get detailed information about the current Blender scene

  • Code execution: Run arbitrary Python code in Blender from Claude

Components

The system consists of two main components:

  1. Blender Addon (addon.py): A Blender addon that creates a socket server within Blender to receive and execute commands

  2. MCP Server (src/blender_mcp/server.py): A Python server that implements the Model Context Protocol and connects to the Blender addon

Installation

Prerequisites

  • Blender 3.0 or newer

  • Python 3.10 or newer

  • uv package manager:

If you're on Mac, please install uv as

brew install uv

On Windows

powershell -c "irm https://astral.sh/uv/install.ps1 | iex" 

and then

set Path=C:\Users\nntra\.local\bin;%Path%

Otherwise installation instructions are on their website: Install uv

⚠️ Do not proceed before installing UV

Environment Variables

The following environment variables can be used to configure the Blender connection:

  • BLENDER_HOST: Host address for Blender socket server (default: "localhost")

  • BLENDER_PORT: Port number for Blender socket server (default: 9876)

Example:

export BLENDER_HOST='host.docker.internal'
export BLENDER_PORT=9876

Claude for Desktop Integration

Use the modern Claude CLI for the easiest setup:

claude mcp add blender uvx blender-mcp-enhanced

Manual Setup

Watch the setup instruction video (Assuming you have already installed uv)

Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json to include the following:

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

Cursor Integration

For Mac users, go to Settings > MCP and paste the following

  • To use as a global server, use "add new global MCP server" button and paste

  • To use as a project specific server, create .cursor/mcp.json in the root of the project and paste

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

For Windows users, go to Settings > MCP > Add Server, add a new server with the following settings:

{
    "mcpServers": {
        "blender": {
            "command": "cmd",
            "args": [
                "/c",
                "uvx",
                "blender-mcp-enhanced"
            ]
        }
    }
}

Cursor setup video

⚠️ Only run one instance of the MCP server at a time (Claude Desktop, Cursor, Codex, or VS Code), not multiple simultaneously

Codex Integration

For Codex users, you can add the MCP server using the CLI:

codex mcp add blender uvx blender-mcp-enhanced

Or manually configure in your Codex settings with:

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

Visual Studio Code Integration

Prerequisites: Make sure you have Visual Studio Code installed before proceeding.

Install in VS Code

Installing the Blender Addon

  1. Download the addon.py file from this repo

  2. Open Blender

  3. Go to Edit > Preferences > Add-ons

  4. Click "Install..." and select the addon.py file

  5. Enable the addon by checking the box next to "Interface: Blender MCP"

Usage

Starting the Connection

BlenderMCP in the sidebar

  1. In Blender, go to the 3D View sidebar (press N if not visible)

  2. Find the "BlenderMCP" tab

  3. Turn on the Poly Haven checkbox if you want assets from their API (optional)

  4. Click "Connect to Claude"

  5. Make sure the MCP server is running in your terminal

Using with Claude

Once the config file has been set on Claude, and the addon is running on Blender, you will see a hammer icon with tools for the Blender MCP.

BlenderMCP in the sidebar

Capabilities

  • Get scene and object information

  • Create, delete and modify shapes

  • Apply or create materials for objects

  • Execute any Python code in Blender

  • Download the right models, assets and HDRIs through Poly Haven

  • AI generated 3D models through Hyper3D Rodin

Example Commands

Here are some examples of what you can ask Claude to do:

  • "Create a low poly scene in a dungeon, with a dragon guarding a pot of gold" Demo

  • "Create a beach vibe using HDRIs, textures, and models like rocks and vegetation from Poly Haven" Demo

  • Give a reference image, and create a Blender scene out of it Demo

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

  • "Get information about the current scene, and make a threejs sketch from it" Demo

  • "Make this car red and metallic"

  • "Create a sphere and place it above the cube"

  • "Make the lighting like a studio"

  • "Point the camera at the scene, and make it isometric"

🚀 Enhanced Examples (New in this Fork)

Persistent Multi-Turn Workflows

  • "Create a cube, store it as 'my_cube', then in the next prompt scale it by 2"

  • "Download a wood texture, save the material handle, then apply it to all selected objects"

  • "Create 5 different objects, store them all, then arrange them in a circle using their handles"

Geometry Nodes Procedural Modeling

  • "Create a simple procedural table using geometry nodes"

  • "Use geometry nodes to create a parametric chair with exposed height and width controls"

  • "Generate a noise-deformed sphere with geometry nodes and exposed strength parameter"

  • "Create points distributed on a sphere surface with controllable density"

  • "Build a procedural car using geometry node networks"

Script Registry System

  • "Register a lighting setup script for reuse across projects"

  • "Create and store utility scripts for material creation, then execute them when needed"

  • "Build a library of geometry node templates and execute them by name"

  • "Store scene analysis scripts in different categories and run them on-demand"

Advanced Tool Chaining

  • "Download a Poly Haven texture, create a procedural object with geometry nodes, and apply the texture"

  • "Generate multiple objects with Hyper3D, store their handles, then create a scene composition"

  • "Create a procedural building, get its dimensions, then create matching furniture to scale"

Hyper3D integration

Hyper3D's free trial key allows you to generate a limited number of models per day. If the daily limit is reached, you can wait for the next day's reset or obtain your own key from hyper3d.ai and fal.ai.

Troubleshooting

  • Connection issues: Make sure the Blender addon server is running, and the MCP server is configured on Claude, DO NOT run the uvx command in the terminal. Sometimes, the first command won't go through but after that it starts working.

  • Timeout errors: Try simplifying your requests or breaking them into smaller steps

  • Poly Haven integration: Claude is sometimes erratic with its behaviour

  • Have you tried turning it off and on again?: If you're still having connection errors, try restarting both Claude and the Blender server

Technical Details

Communication Protocol

The system uses a simple JSON-based protocol over TCP sockets:

  • Commands are sent as JSON objects with a type and optional params

  • Responses are JSON objects with a status and result or message

Limitations & Security Considerations

  • The execute_blender_code tool allows running arbitrary Python code in Blender, which can be powerful but potentially dangerous. Use with caution in production environments. ALWAYS save your work before using it.

  • Poly Haven requires downloading models, textures, and HDRI images. If you do not want to use it, please turn it off in the checkbox in Blender.

  • Complex operations might need to be broken down into smaller steps

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Disclaimer

This is a third-party integration and not made by Blender. Made by Siddharth

Available Tools

30 tools
clear_context_scriptsA
Clear context scripts from the registry.

Args:
    category: Optional category to clear. If None, clears all categories.
    script_name: Optional specific script to clear. Requires category to be specified.
    clear_permanent: If True, also clears permanent scripts. If False (default), only clears temporary scripts.

Returns:
    Confirmation message
ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNo
script_nameNo
clear_permanentNo

TDQS

A4.1/5.0
Behavior4/5

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

The description discloses key behaviors: clearing all categories when category is None, and the effect of clear_permanent on temporary vs permanent scripts. No annotations exist, so this is sufficient for transparency, though it could mention reversibility.

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

Conciseness5/5

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

The description is short (4 sentences) and structured with purpose, Args, and Returns. Every sentence adds value, and the purpose is front-loaded.

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

Completeness3/5

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

The description explains the core functionality and parameter behavior, but lacks details on the return value ('Confirmation message' is vague) and potential side effects (e.g., impact on running scripts).

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

Parameters4/5

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

With 0% schema coverage, the description adds meaning by explaining each parameter's role and constraints (e.g., script_name requires category) beyond the schema's field names and types.

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 'Clear context scripts from the registry' uses a specific verb ('clear') and resource ('context scripts from the registry'), distinguishing it from siblings like 'clear_shared_context' which clears shared context.

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

Usage Guidelines3/5

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

The description explains parameter behavior (e.g., 'script_name requires category to be specified') but does not explicitly state when to use this tool over alternatives like 'clear_shared_context' or when not to use it.

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

clear_shared_contextA
Clear shared context. Useful for starting fresh.

Parameters:
- section: What to clear (all, variables, objects, materials, operations, history)
ParametersJSON Schema
NameRequiredDescriptionDefault
sectionNoall

TDQS

A3.5/5.0
Behavior2/5

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

No annotations exist, so the description must fully disclose behavior. It only states 'Clear shared context' without discussing side effects, reversibility, or required permissions, leaving 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 extremely concise at two sentences, front-loading the purpose and immediately following with parameter details. No unnecessary words.

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

Completeness3/5

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

For a simple tool with one parameter, the description covers the basic action and parameter options. However, it lacks clarity on what 'shared context' encompasses and any operational considerations, making it merely 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 parameter 'section' is described with explicit possible values (all, variables, objects, materials, operations, history), adding crucial meaning beyond the schema which only provides a default.

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

Purpose5/5

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

The description clearly states the verb 'clear' and the resource 'shared context', with the additional phrase 'Useful for starting fresh' reinforcing its purpose. It is distinct from sibling tools like 'clear_context_scripts' which target a different resource.

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?

Only minimal guidance is provided ('Useful for starting fresh'), but no explicit when-to-use or when-not-to-use instructions, nor alternatives compared to sibling tools.

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

complete_geometry_nodeA
Create a complete geometry node network for procedural modeling.

This tool enables AI-driven procedural modeling by creating sophisticated geometry node networks.
Perfect for creating parametric objects like tables, chairs, organic shapes, and complex procedural geometry.

Parameters:
- object_name: Name of the object to apply geometry nodes to (will be created if doesn't exist)
- nodes: List of node definitions, each containing:
  - type: Node type (e.g., "GeometryNodeMeshCube", "GeometryNodeSubdivisionSurface")
  - location: [x, y] position in node editor (optional)
  - label: Custom label for the node (optional)
  - inputs: Dict of input values {input_name: value} (optional)
  - properties: Dict of node properties {property_name: value} (optional)
- links: List of connections between nodes:
  - from_node: Source node index (int) or name (str)
  - from_socket: Source socket name (str) or index (int)
  - to_node: Target node index (int) or name (str)
  - to_socket: Target socket name (str) or index (int)
- input_sockets: Interface inputs for the node group (optional):
  - name: Input name
  - type: Socket type (e.g., "VALUE", "VECTOR", "GEOMETRY")
  - value: Default value (optional)

Example for a simple procedural table:
nodes = [
    {"type": "NodeGroupInput", "location": [0, 0]},
    {"type": "GeometryNodeMeshCube", "location": [200, 200], "inputs": {"Size": [2, 0.1, 1]}},
    {"type": "GeometryNodeMeshCube", "location": [200, 0], "inputs": {"Size": [0.1, 1.8, 0.1]}},
    {"type": "GeometryNodeJoinGeometry", "location": [400, 100]},
    {"type": "NodeGroupOutput", "location": [600, 100]}
]
links = [
    {"from_node": 1, "from_socket": "Mesh", "to_node": 3, "to_socket": 0},
    {"from_node": 2, "from_socket": "Mesh", "to_node": 3, "to_socket": 0},
    {"from_node": 3, "from_socket": "Geometry", "to_node": 4, "to_socket": "Geometry"}
]

Returns success message with details about the created node network.
ParametersJSON Schema
NameRequiredDescriptionDefault
linksYes
nodesYes
object_nameYes
input_socketsNo

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It mentions that the object will be created if it doesn't exist and returns a success message, but lacks details on side effects, error conditions, or any destructive actions that might occur.

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 brief overview, parameter details, and a concrete example. However, it is somewhat lengthy and could be more concise by shortening the example or removing redundant phrasing.

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 complexity (4 parameters, nested objects) and lack of output schema, the description covers the main aspects including parameter explanations and a complete example. It lacks mention of error handling, limitations, or behavior when object already exists, but is still fairly complete.

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

Parameters5/5

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

Schema description coverage is 0%, but the description fully explains each parameter with detailed structure: object_name, nodes (with subfields), links, and input_sockets. An example demonstrates usage, adding significant value beyond the schema.

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

Purpose5/5

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

The description clearly states 'Create a complete geometry node network for procedural modeling' with specific verb (create) and resource (geometry node network). It distinguishes from sibling tools like get_geometry_nodes_status and clear_context_scripts, which have different purposes.

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

Usage Guidelines3/5

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

The description implies usage by saying 'Perfect for creating parametric objects...' but lacks explicit guidance on when to use this tool versus alternatives, and does not mention when not to use it.

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

create_material_handleA
Create a handle for a material to reference in future operations.
This allows you to easily reference materials across multiple tool calls.

Parameters:
- handle: The handle name to create (e.g., 'wood_mat', 'metal_shader')
- material_name: The name of the Blender material
ParametersJSON Schema
NameRequiredDescriptionDefault
handleYes
material_nameYes

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so the description carries the full burden. It describes that a handle is created and provides parameter examples, but does not mention error conditions (e.g., handle already exists, material not found) or return value. Adequate but not comprehensive.

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

Conciseness5/5

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

The description is concise: a brief purpose statement, followed by a sentence on benefit, then parameter descriptions. No fluff, front-loaded, 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?

The tool has two required parameters and no output schema. The description explains the parameters but does not specify the return value or expected behavior upon success/failure. Given the complexity, this is a notable gap.

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

Parameters4/5

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

The description adds value beyond the input schema: it explains that 'handle' is the name to create with examples, and 'material_name' is the name of the Blender material. This context helps the agent understand parameter semantics better than the bare schema.

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

Purpose5/5

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

The description clearly states the purpose: 'Create a handle for a material to reference in future operations.' It specifies the resource (material) and action (create handle), and distinguishes from siblings like create_object_handle and list_material_handles.

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 explains when to use the tool: 'to easily reference materials across multiple tool calls.' It does not explicitly state when not to use or mention alternatives, but the context is clear enough for an agent to infer usage.

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

create_object_handleA
Create a handle for an object to reference in future operations.
This allows you to easily reference objects across multiple tool calls.

Parameters:
- handle: The handle name to create (e.g., 'my_cube', 'main_character')
- object_name: The name of the Blender object
ParametersJSON Schema
NameRequiredDescriptionDefault
handleYes
object_nameYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided; description only states creation action. Does not disclose behavior if handle already exists, object missing, or any side effects. Leaves agent guessing about idempotency and error handling.

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

Conciseness4/5

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

Two short, front-loaded sentences with purpose followed by parameter details. Efficient with no fluff, though could be slightly more compact.

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

Completeness3/5

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

Adequate for a simple creation tool with only 2 parameters. Explains purpose and parameter meanings but omits return value, error conditions, and behavior edge cases.

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 has 0% coverage; description adds meaningful explanations for both parameters: handle (with example names) and object_name (clear reference to Blender object). Adds value beyond 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 states 'Create a handle for an object to reference in future operations' — a specific verb (create) and resource (handle for an object). Clearly distinguishes from siblings like list_object_handles and create_material_handle.

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?

Provides context ('easily reference objects across multiple tool calls') but lacks explicit guidance on when not to use or alternatives. No mention of prerequisites or conflicts with other tools.

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

download_polyhaven_assetA
Download and import a Polyhaven asset into Blender.

Parameters:
- asset_id: The ID of the asset to download
- asset_type: The type of asset (hdris, textures, models)
- resolution: The resolution to download (e.g., 1k, 2k, 4k)
- file_format: Optional file format (e.g., hdr, exr for HDRIs; jpg, png for textures; gltf, fbx for models)

Returns a message indicating success or failure.
ParametersJSON Schema
NameRequiredDescriptionDefault
asset_idYes
asset_typeYes
resolutionNo1k
file_formatNo

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only states that the tool returns a success or failure message, omitting crucial behavioral traits such as whether it modifies the scene destructively, requires authentication, or has rate limits. For a download/import tool, this is insufficient.

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

Conciseness4/5

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

The description is concise and well-structured with a clear purpose statement followed by a parameter list. Every sentence earns its place, and there is no unnecessary verbosity. Slight improvement could be front-loading more critical behavioral info.

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 lack of output schema and annotations, the description is moderately complete. It covers all parameters and return value, but misses behavioral context (e.g., whether it replaces existing assets, if it requires a Blender scene to be active). The sibling import_generated_asset suggests similar functionality, but no comparison is provided.

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

Parameters4/5

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

The description adds significant meaning beyond the input schema, which has 0% coverage of property descriptions. It provides concrete examples for resolution (1k, 2k, 4k) and file_format (hdr, exr, jpg, etc.), and clarifies asset_type values. However, it does not explain the meaning of asset_id beyond 'ID of the asset', which is minimal.

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 (download and import) and the resource (Polyhaven asset into Blender). It distinguishes itself from sibling tools like download_sketchfab_model and search_polyhaven_assets by specifying Polyhaven as the source.

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

Usage Guidelines3/5

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

The description lists parameters but does not provide explicit guidance on when to use this tool versus alternatives. It implies usage through the name and parameters (e.g., specifying asset_type) but lacks context like prerequisites or when not to use.

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

download_sketchfab_modelC
Download and import a Sketchfab model by its UID.

Parameters:
- uid: The unique identifier of the Sketchfab model

Returns a message indicating success or failure.
The model must be downloadable and you must have proper access rights.
ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided; description must carry the burden. Lacks disclosure of side effects (e.g., scene modification, object creation) and does not detail the return format beyond 'success or failure message'.

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

Conciseness4/5

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

Description is concise but the parameter line is redundant with the schema. Structure is adequate but could be improved by removing the parameter section.

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

Completeness2/5

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

Given no annotations and no output schema, the description omits important behavioral details (e.g., what importing entails, return value specifics). Only covers basic purpose and a precondition.

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?

Only parameter 'uid' is described as 'The unique identifier of the Sketchfab model', which adds no meaning beyond the schema. Schema coverage is 0%.

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

Purpose5/5

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

Clearly states the action (download and import), the resource (Sketchfab model), and the key identifier (UID). Distinguishes from siblings like search_sketchfab_models and get_sketchfab_status.

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

Usage Guidelines2/5

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

Mentions prerequisites (model must be downloadable, proper access rights) but does not provide guidance on when to use versus alternatives, nor when not to use.

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

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

Now includes shared context between executions! You can use:
- shared['variable_name'] = value  # Store variables for later use
- get_object('handle_name')       # Get stored object references
- get_material('handle_name')     # Get stored material references
- store_object('handle', 'obj_name')    # Store object reference
- store_material('handle', 'mat_name')  # Store material reference

Parameters:
- code: The Python code to execute
ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose all behavioral traits. It mentions shared context but does not describe potential side effects, security implications, or error handling, which are critical for a code execution tool.

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 somewhat verbose with the shared context explanation and could be more concise. It front-loads the main action but includes a long list of helper functions.

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 code execution tool, the description covers basic usage and shared context, but lacks details on return values, error behavior, or limitations. No output schema is present, increasing the need for description 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 0%, but the description explains that 'code' is Python code and provides examples of shared context usage. However, it does not add significant meaning beyond the parameter name.

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 executes arbitrary Python code in Blender, with step-by-step guidance and shared context. It distinguishes from siblings like execute_context_script by emphasizing arbitrary code.

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 a guideline to break code into smaller chunks, but lacks explicit when-to-use or when-not-to-use guidance, and does not mention alternative tools.

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

execute_context_scriptC
Execute a previously registered Python script in Blender.

Args:
    script_name: Name of the script to execute (without .py extension)
    category: Category/folder the script is in (default: "default")

Returns:
    Script execution results
ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNodefault
script_nameYes

TDQS

C2.9/5.0
Behavior2/5

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

While 'execute' implies side effects (running a script in Blender), the description does not disclose what changes occur (e.g., scene modifications, object creation) or whether the operation is destructive. No annotations are provided, so the description carries the full burden, but it omits critical behavioral details.

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

Conciseness4/5

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

The description is relatively concise with a clear structure including 'Args' and 'Returns' sections. It front-loads the primary action. However, the 'Returns' section is vague ('Script execution results') and could be more specific without adding much length.

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

Completeness3/5

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

For a tool with 2 parameters and moderate complexity, the description explains the inputs but fails to describe the execution behavior or the structure of the return value. With no output schema, the missing 'Returns' details are a gap. Sibling tools like 'execute_blender_code' are not differentiated, leaving the agent without full context to choose 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 description adds meaning beyond the schema by noting that script_name excludes the '.py' extension and that category defaults to 'default'. However, it does not clarify where scripts are located, valid category values, or the format of valid script names. At 0% schema coverage, the baseline is lower, but the description provides some helpful clarification.

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

Purpose4/5

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

The description clearly states the action ('execute'), the resource ('previously registered Python script'), and the context ('in Blender'). It distinguishes from siblings like 'register_context_script' and 'list_context_scripts', though it could be more specific about what execution entails beyond running.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives (e.g., 'execute_blender_code'). No mention of prerequisites such as the script needing to be registered first or that the category must exist. The description is purely parameter-focused without contextual usage advice.

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

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

Parameters:
- input_image_paths: The **absolute** paths of input images. Even if only one image is provided, wrap it into a list. Required if Hyper3D Rodin in MAIN_SITE mode.
- input_image_urls: The URLs of input images. Even if only one image is provided, wrap it into a list. Required if Hyper3D Rodin in FAL_AI mode.
- bbox_condition: Optional. If given, it has to be a list of ints of length 3. Controls the ratio between [Length, Width, Height] of the model.

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

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, description discloses that the asset has built-in materials and normalized size needing rescaling, and returns a success/failure message. This is moderate but lacks details on potential side effects, overwrite behavior, or resource limits.

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?

Well-structured with main purpose first, then parameter details. Some redundancy ('wrap it into a list' repeated) but overall concise and readable.

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

Completeness4/5

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

Given no output schema or annotations, the description covers essential aspects: input parameters, mode logic, return type, and a practical note about scaling. Lacks details on generation time, supported image formats, but adequate 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.

Parameters5/5

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

Schema coverage is 0%, so description fully compensates by explaining each parameter's meaning: absolute paths vs URLs, mode dependency, mutual exclusivity, and optional bbox_condition with ratio semantics. This adds significant value beyond the schema's type/title fields.

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 generates a 3D asset from images and imports it into Blender, using specific verb and resource. It distinguishes from sibling 'generate_hyper3d_model_via_text' by specifying images as input.

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

Usage Guidelines4/5

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

Provides explicit guidance on parameter mutual exclusivity and mode-dependent requirements ('Only one of {input_image_paths, input_image_urls} should be given at a time'). However, it does not explicitly compare to alternative tools (e.g., when to use text vs images), though the distinction is implicit in the name.

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

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

Parameters:
- text_prompt: A short description of the desired model in **English**.
- bbox_condition: Optional. If given, it has to be a list of floats of length 3. Controls the ratio between [Length, Width, Height] of the model.

Returns a message indicating success or failure.
ParametersJSON Schema
NameRequiredDescriptionDefault
text_promptYes
bbox_conditionNo

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description bears full responsibility. It discloses that the model has built-in materials, normalized size, and returns a success/failure message, but omits behavioral details such as scene modification impact, permission requirements, or whether generation is synchronous.

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

Conciseness4/5

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

The description is brief at four sentences, with the main action first followed by notable attributes and parameter details. It is front-loaded and efficient, though the parameter explanations could be integrated more tightly.

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 moderately complex (generates and imports a 3D model) with no output schema. The description states the return is a success/failure message but does not specify how to reference the generated object in Blender, whether it is automatically selected, or how it interacts with operations like 'import_generated_asset'.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaningful context: text_prompt should be a short English description; bbox_condition is optional, must be a list of three floats controlling Length/Width/Height ratio. This goes beyond the raw schema, though more detail on float range could help.

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: generating a 3D asset using Hyper3D from a text description and importing it into Blender. The sibling tool 'generate_hyper3d_model_via_images' confirms differentiation by input modality.

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 that this tool is for text-based generation but does not explicitly state when to use it versus the image-based alternative. No exclusions or prerequisites are mentioned, leaving usage guidance implicit.

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

get_geometry_nodes_statusA

Check the status of Geometry Nodes support in Blender.

Returns information about Blender version and geometry nodes capabilities.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided; description implies read-only but does not explicitly state no side effects or auth needs.

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 concise sentences, no wasted words. Could be more structured but efficient.

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?

Lacks output schema; description only vaguely mentions return info. Could specify return format or structure.

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?

No parameters exist; schema coverage is 100%, so description adds no param info beyond what's already clear.

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 checks Geometry Nodes support and returns version/capabilities. Distinct from sibling tools like get_scene_info.

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

Usage Guidelines3/5

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

No explicit guidance on when to use or alternatives, but the simple status-check nature implies straightforward usage.

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

get_hyper3d_statusA

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It adds a behavioral instruction about not emphasizing the key type, but lacks other context like side effects or auth needs.

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

Conciseness5/5

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

Three sentences, each adding value: purpose, return type, and a behavioral note. No waste, front-loaded key info.

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 0-parameter tool with no output schema, the description adequately covers purpose, return value, and an important behavioral constraint. Complete for the tool's simplicity.

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

Parameters4/5

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

No parameters, schema coverage is trivial (100%). Baseline score of 4 is appropriate as description adds no param info beyond schema.

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

Purpose5/5

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

The description clearly states the tool checks Hyper3D Rodin integration status in Blender, distinguishing it from sibling status tools like get_sketchfab_status and get_polyhaven_status.

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

Usage Guidelines3/5

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

No explicit guidance on when to use or alternatives, but the purpose is clear enough for a simple status check tool.

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

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

Parameters:
- object_name: The name of the object to get information about
ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description bears full responsibility for behavioral disclosure. It implies a read-only operation but does not specify what 'detailed information' includes, error handling for non-existent objects, or any side effects. The description is too vague.

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

Conciseness3/5

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

The description is very short and front-loaded with the purpose, which is good for conciseness. However, it could be more structured (e.g., separate sections for behavior and parameters). It earns its place but lacks depth.

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 absence of an output schema, annotations, and a simple single-parameter input, the description is insufficiently complete. It does not explain the return format or content, which is critical for an AI agent to use the tool 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 compensate. It adds minimal clarity by stating 'The name of the object' for `object_name`, but does not explain format, constraints, or impact of invalid names. With only one parameter, the contribution is marginal.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'detailed information about a specific object in the Blender scene', which distinguishes it from sibling tools like get_scene_info (broader) or get_geometry_nodes_status (different focus).

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 alternatives (e.g., get_scene_info). No explicit context or exclusion criteria are given, leaving the agent to infer usage from the name alone.

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

get_operation_historyB
Get recent operation history for debugging.

Parameters:
- count: Number of recent operations to show (default 10)
ParametersJSON Schema
NameRequiredDescriptionDefault
countNo

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must carry full behavioral disclosure. It only states it returns recent operation history, but does not mention whether it is read-only, if it has side effects, what format the history is in, or how often it updates. This lack of detail may lead to incorrect assumptions.

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, consisting of two short sentences that convey the purpose and parameter details with zero wasted words. It is front-loaded with the core action.

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 getter with one parameter and no output schema, the description covers the basic purpose and parameter. However, it omits details about what constitutes 'operation history', whether it is persistent, and how results are structured, which may be important for debugging tasks.

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

Parameters4/5

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

The description fully explains the only parameter 'count' as 'Number of recent operations to show (default 10)', which adds meaning beyond the schema's default value and type. Despite schema description coverage being 0%, the tool description compensates well.

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 retrieves recent operation history for debugging. The verb 'get' and resource 'operation history' are specific, and the purpose distinguishes it from sibling tools like get_object_info or get_scene_info, which have different focus.

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 phrase 'for debugging' provides some usage context, but there are no explicit instructions on when to use this tool versus alternatives. No exclusions or alternatives are mentioned, which limits guidance for the agent.

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

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

Parameters:
- asset_type: The type of asset to get categories for (hdris, textures, models, all)
ParametersJSON Schema
NameRequiredDescriptionDefault
asset_typeNohdris

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not state that the operation is read-only or non-destructive, nor does it mention potential errors or rate limits. The agent cannot infer safety or side effects from this description alone.

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

Conciseness5/5

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

The description is concise and front-loaded, with two sentences clearly stating the purpose and then a focused parameter list. Every sentence adds value without redundancy.

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

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 with one optional parameter, the description does not specify the return format (e.g., an array of category strings). Given no output schema, the agent might be uncertain about the response structure, making it slightly incomplete.

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

Parameters5/5

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

The input schema has one parameter with type string and default value, but the description adds critical meaning by listing the allowed values ('hdris, textures, models, all'), which the schema does not provide as enums. This compensates for the 0% schema description coverage.

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

Purpose5/5

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

The description clearly states the tool retrieves a list of categories for a specific asset type on Polyhaven, distinguishing it from sibling tools like search_polyhaven_assets or download_polyhaven_asset. The verb 'Get' and resource 'categories for a specific asset type' are specific and unambiguous.

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

Usage Guidelines2/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives, such as indicating it should be used before searching or downloading assets. No context about prerequisites or when not to use it is given.

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

get_polyhaven_statusA

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

The description discloses that it returns a message indicating availability, and it is a read-only operation with no side effects. Since no annotations are provided, the description carries the full burden and does so adequately.

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, efficient, and free of unnecessary information. It is front-loaded with the core purpose.

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

Completeness5/5

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

Given no parameters and no output schema, the description is complete. It explains the tool's behavior and return value, and sibling tools are sufficiently different.

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 no parameters, and the input schema coverage is 100%. The description adds no parameter information, but baseline 4 is appropriate as there is nothing to add.

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 checks if PolyHaven integration is enabled in Blender. It uses a specific verb ('Check') and resource ('PolyHaven integration enabled'), and is distinct from sibling tools like get_polyhaven_categories or download_polyhaven_asset.

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 (e.g., before using PolyHaven features) but does not explicitly state when to use it versus alternatives like get_polyhaven_categories or other status tools. However, for a simple status check, 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.

get_scene_infoB

Get detailed information about the current Blender scene

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

The description implies a read-only operation but does not explicitly state it is non-destructive or require any special permissions. With no annotations, the description carries the full burden of behavioral disclosure, yet it remains minimal.

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

Conciseness5/5

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

The description is a single, clear sentence with no wasted words, efficiently conveying the tool's purpose.

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 description lacks detail about what 'detailed information' includes, such as scene properties or metadata. Given no output schema, the agent may need more context to understand the return format.

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

Parameters4/5

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

Since there are no parameters and schema coverage is 100%, the description does not need to add parameter details. The baseline of 4 is appropriate for zero-parameter tools.

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

Purpose4/5

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

The description uses the verb 'get' and specifies the resource 'detailed information about the current Blender scene', clearly indicating the tool's function. It distinguishes itself from sibling tools like 'get_object_info' which focus on objects.

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 such as 'get_object_info' or 'get_geometry_nodes_status', leaving the agent without contextual selection cues.

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

get_shared_contextA

Get the current shared context state - shows persistent variables, object handles, material handles, and operation history that persists between tool calls.

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?

No annotations provided, so the description carries the full burden. It explicitly lists the contents returned (variables, handles, history), which is transparent about the tool's 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?

Single sentence, effectively front-loaded with the verb and resource, no wasted words.

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

Completeness5/5

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

For a tool with no parameters, no output schema, and simple getter behavior, the description sufficiently covers what the agent can expect.

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

Parameters4/5

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

No parameters exist, so baseline is 4. The description adds context by naming what the retrieval includes.

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 gets the current shared context state, listing specific components like persistent variables, object handles, material handles, and operation history. It distinctly separates from sibling tools like clear_shared_context.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. As a simple getter, usage is implied but not stated.

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

get_sketchfab_statusB

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It notes it returns a message but doesn't specify if it's a boolean, string, or the exact content. No side effects are mentioned, but it's implied to be non-destructive.

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 concise sentences with front-loaded purpose. Efficient, though could be slightly more explicit about the return format.

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 tool with no output schema, the description adequately covers the purpose and behavior. It could mention the return type (e.g., boolean or string) for 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?

No parameters exist, and schema coverage is 100%. The description adds value by explaining the purpose but doesn't need to compensate for missing param info.

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

Purpose4/5

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

The description clearly states the tool checks if Sketchfab integration is enabled in Blender, using a specific verb and resource. It is distinct from sibling tools like download_sketchfab_model, but doesn't explicitly differentiate.

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, nor any prerequisites or exclusions. The description only states what it does, not when it's appropriate.

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

get_viewport_screenshotA
Capture a screenshot of the current Blender 3D viewport.

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

Returns the screenshot as an Image.
ParametersJSON Schema
NameRequiredDescriptionDefault
max_sizeNo

TDQS

A4.1/5.0
Behavior4/5

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

The description mentions that it returns an Image and defines the max_size parameter. No annotations are provided, so the description adequately covers the read-only nature and output format. It does not disclose potential errors or viewport requirements, but this is acceptable for a straightforward capture tool.

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

Conciseness4/5

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

The description is short and to the point, front-loading the main purpose and including parameter details. Could be slightly more structured, but it is efficient and clear.

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

Completeness4/5

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

Given the tool's simplicity (one optional parameter, no output schema), the description covers the essentials: what it does, its parameter meaning, and return type. Missing details like resolution bounds or behavior on failure, but not critical for a basic screenshot 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 schema provides only type and default for max_size; the description adds 'Maximum size in pixels for the largest dimension', which clarifies its purpose. With 0% schema coverage, the description effectively compensates.

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

Purpose5/5

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

The description clearly states 'Capture a screenshot of the current Blender 3D viewport', specifying the verb 'capture' and the resource 'screenshot of viewport'. It distinguishes well from sibling tools that deal with scenes, objects, or scripts.

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

Usage Guidelines3/5

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

No explicit guidance on when to use or avoid this tool. The description is self-contained but lacks context about alternatives or prerequisites. However, the tool is simple and its purpose is obvious.

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

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

Parameters:
- name: The name of the object in scene
- task_uuid: For Hyper3D Rodin mode MAIN_SITE: The task_uuid given in the generate model step.
- request_id: For Hyper3D Rodin mode FAL_AI: The request_id given in the generate model step.

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

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral transparency. It only states that the tool imports an asset and returns success status. It does not disclose potential side effects, error conditions, permission requirements, or what happens if the asset does not exist. This is insufficient for a mutation tool.

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

Conciseness4/5

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

The description is concise with four short sentences, front-loading the purpose. The parameter explanations are clear but slightly verbose; still, every sentence adds value. It is well-structured for quick comprehension.

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 (3 parameters, no output schema, no annotations), the description covers the basic purpose and parameter usage but lacks behavioral transparency and completeness. It does not explain the return value format beyond 'Return if the asset has been imported successfully', which is vague. More details on errors and expected outcomes are needed.

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

Parameters4/5

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

With 0% schema description coverage, the description compensates by explaining each parameter: name is 'The name of the object in scene', task_uuid and request_id are linked to their respective modes. This adds meaning beyond the schema's raw titles and defaults. However, it lacks details like allowed formats or uniqueness constraints.

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: importing an asset generated by Hyper3D Rodin. It distinguishes itself from sibling tools like generate_hyper3d_model_via_text and generate_hyper3d_model_via_images, which handle generation instead. The verb 'import' is specific to this action.

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

Usage Guidelines4/5

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

The description provides explicit guidance on parameter selection: 'Only give one of {task_uuid, request_id} based on the Hyper3D Rodin Mode!' It implies the tool should be used after generation, but does not explicitly state when not to use it or what alternative approaches exist. The context is clear enough for most use cases.

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

list_context_scriptsA
List all registered context scripts.

Args:
    category: Optional category to filter by. If None, lists all scripts.

Returns:
    List of available scripts with metadata
ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNo

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries the burden. It states it returns a list with metadata, but does not explicitly confirm it is a read-only operation or describe any side effects. Adequate but could be more explicit about safety.

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

Conciseness5/5

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

Two sentences plus simple Args/Returns structure. No unnecessary words, front-loaded purpose. Efficient.

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

Completeness4/5

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

For a simple list tool with no output schema, the description covers the key behavior: listing scripts with optional filter. However, it does not specify the format of the returned metadata, which could be useful. Overall 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?

Schema has no descriptions (0% coverage). Description adds meaning: 'Optional category to filter by. If None, lists all scripts.' This clarifies the parameter's purpose, though it does not enumerate possible categories.

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

Purpose5/5

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

Description clearly states it lists all registered context scripts, with optional category filtering. This distinguishes it from siblings like 'execute_context_script' (execution) and 'register_context_script' (registration).

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 listing is the sole purpose, but does not provide explicit guidance on when to use this tool versus alternatives like 'clear_context_scripts' or 'get_shared_context'. No when-not-to-use or context hints.

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

list_material_handlesA
List all material handles and their details.
Shows which materials you can reference with get_material() in scripts.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries burden. It states listing and details but does not specify what details or confirm read-only nature. Adequate but minimal.

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

Conciseness5/5

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

Two short sentences, front-loaded with action, zero wasted words. Highly efficient.

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

Completeness4/5

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

For a zero-parameter tool without output schema, the description covers purpose and usage. Could elaborate on return details but is sufficient for agent decision.

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

Parameters4/5

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

No parameters present; schema coverage 100%. Baseline 4 applies as description adds no needed parameter info.

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 lists all material handles and details, and explicitly links to get_material() usage, distinguishing it from siblings like list_object_handles.

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

Usage Guidelines4/5

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

It explains when to use (to know materials for get_material()), but does not explicitly exclude other scenarios or mention alternatives. The context is clear.

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

list_object_handlesA
List all object handles and their details.
Shows which objects you can reference with get_object() in scripts.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

No annotations provided, so the description carries full burden. It accurately describes the behavior as listing handles and their details, and clarifies that these handles are references for get_object(). Though it doesn't explicitly state read-only nature, listing is inherently safe.

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

Conciseness5/5

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

Two sentences, no redundant words, front-loaded with the action and resource. Every sentence adds value.

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

Completeness4/5

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

Given no parameters and no output schema, the description adequately covers the tool's purpose. It mentions the key output (handles and details) and how they relate to scripting. Could mention if any filtering or sorting is possible, but for a simple list it's sufficient.

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

Parameters3/5

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

No parameters exist in the input schema, so schema description coverage is 100%. The description adds no parameter information because none needed; baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states it lists all object handles and their details, and explicitly connects this to the get_object() function, distinguishing it from sibling tools like create_object_handle or get_object_info.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives (e.g., get_object_info for a specific handle). The description implies it's for browsing handles, but does not mention exclusions or when not to use it.

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

poll_rodin_job_statusA
Check if the Hyper3D Rodin generation task is completed.

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

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

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

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

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Discloses polling nature, returned statuses, and failure conditions. Could mention no side effects but still strong.

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?

Well-structured with clear mode sections and bullet points. Length is appropriate for the detail provided. Front-loaded with purpose.

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

Completeness4/5

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

Given no output schema, the description adequately covers return values for both modes. Includes all relevant statuses. Could mention error handling but sufficient for a polling 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?

Adds significant meaning beyond the 0%-coverage schema: maps subscription_key to MAIN_SITE mode and request_id to FAL_AI mode. Explains the relationship between parameters and modes clearly.

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 checks if the Hyper3D Rodin generation task is completed. Distinguishes two modes and explains return values. Differentiates from sibling tools like generate_hyper3d_model_via_text and get_hyper3d_status.

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

Usage Guidelines4/5

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

Explicitly says it's a polling API and should only proceed when status is final. Provides when to consider done or failed. Lacks explicit comparison to alternatives like get_hyper3d_status.

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

register_context_scriptA
Register a Python script for later execution in Blender.

Args:
    script_name: Name for the script (without .py extension)
    script_content: The Python code to save
    category: Category/folder to organize scripts (default: "default")
    permanent: If True, script survives context clearing operations (default: False)

Returns:
    Success/error message
ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNodefault
permanentNo
script_nameYes
script_contentYes

TDQS

A3.8/5.0
Behavior3/5

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

The description adds behavioral traits beyond parameter names, such as the 'permanent' flag effect (survives context clearing) and the fact that it registers for later execution. However, it does not mention overwriting behavior, permissions, or limits, and no annotations are present to supplement.

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 front-loaded with the purpose, followed by a clear bullet-style list of parameters and return value. Every sentence adds value with no redundancy or unnecessary detail.

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

Completeness4/5

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

For a tool with 4 parameters (2 required) and no output schema, the description covers all parameters and mentions the return type (success/error message). It does not elaborate on potential errors or prerequisites (e.g., Blender must be running), but it is sufficiently complete for an agent to understand core usage.

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

Parameters4/5

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

With 0% schema coverage, the description explains all four parameters: script_name (without .py), script_content (Python code), category (default 'default'), and permanent (survives clearing). This adds meaning beyond the schema, but does not specify exact constraints or format requirements for script_content.

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

Purpose5/5

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

The description clearly states the verb 'Register' and resource 'Python script for later execution in Blender', distinguishing it from sibling tools like 'execute_context_script' (run script) and 'list_context_scripts' (list scripts).

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. It does not mention that scripts can be executed later with execute_context_script or that clear_context_scripts removes them, leaving the agent to infer usage from context.

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

search_polyhaven_assetsA
Search for assets on Polyhaven with optional filtering.

Parameters:
- asset_type: Type of assets to search for (hdris, textures, models, all)
- categories: Optional comma-separated list of categories to filter by

Returns a list of matching assets with basic information.
ParametersJSON Schema
NameRequiredDescriptionDefault
asset_typeNoall
categoriesNo

TDQS

A3.8/5.0
Behavior2/5

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

No annotations provided. Description states it returns a list but does not disclose safety traits (e.g., read-only), rate limits, or any side effects, which is insufficient for a tool with no 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?

Description is short and front-loaded, but the bullet list repeats parameter info that could be integrated concisely. Still, no wasted sentences.

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

Completeness3/5

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

Covers basic parameters and output, but lacks details on result limits, pagination, or ordering, which are common for search tools. 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?

Schema coverage is 0%, but description adds meaningful explanations for both parameters: asset_type lists allowed values, categories describes format and default null, compensating for lack of 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 'Search for assets on Polyhaven' with specific verb and resource, and distinguishes from sibling tools like download_polyhaven_asset or get_polyhaven_categories.

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?

Description implies usage for searching with optional filtering, but does not provide when-not-to-use guidance or compare to alternatives.

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

search_sketchfab_modelsA
Search for models on Sketchfab with optional filtering.

Parameters:
- query: Text to search for
- categories: Optional comma-separated list of categories
- count: Maximum number of results to return (default 20)
- downloadable: Whether to include only downloadable models (default True)

Returns a formatted list of matching models.
ParametersJSON Schema
NameRequiredDescriptionDefault
countNo
queryYes
categoriesNo
downloadableNo

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It mentions 'optional filtering' and returns a 'formatted list,' but omits details like read-only nature, error handling, pagination, or API rate limits. The description is insufficient for a search 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 concise: a one-sentence purpose followed by a clear bullet list of parameters. It is front-loaded with the main action and avoids unnecessary fluff. Every sentence adds value.

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

Completeness3/5

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

The description covers the search function and all parameters, but lacks detail on the return value ('formatted list' is vague) and does not address error cases or rate limits. With no output schema, more detail on result structure would be expected for full completeness.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It explains each parameter: 'query' as search text, 'categories' as optional comma-separated list, 'count' as max results with default 20, and 'downloadable' as filter with default true. This adds meaning beyond the schema's bare titles, though it could be more specific (e.g., valid categories).

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 'Search for models on Sketchfab with optional filtering,' specifying both the action (search) and the resource (Sketchfab models). This distinguishes it from sibling tools like 'download_sketchfab_model' and 'get_sketchfab_status.'

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as when to prefer searching versus downloading or using other context scripts. It lacks explicit context or exclusions.

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

set_textureA
Apply a previously downloaded Polyhaven texture to an object.

Parameters:
- object_name: Name of the object to apply the texture to
- texture_id: ID of the Polyhaven texture to apply (must be downloaded first)

Returns a message indicating success or failure.
ParametersJSON Schema
NameRequiredDescriptionDefault
texture_idYes
object_nameYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, so description must fully disclose behavior. It only states success/failure message, but does not mention error cases (e.g., missing object, invalid texture_id) or side effects.

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

Conciseness5/5

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

Short and direct, with two sentences and a structured parameter list. No unnecessary information.

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

Completeness3/5

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

Given the simplicity of the tool (2 params, no output schema), the description covers the core functionality and parameter semantics. However, lacks error handling details and prerequisites beyond downloading.

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 description must compensate. It explains texture_id as 'ID of the Polyhaven texture' and object_name as 'Name of the object', which adds basic meaning 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?

Clearly states the action: apply a Polyhaven texture to an object, specifying it must be downloaded first. Distinguishes from sibling tools like download_polyhaven_asset and search_polyhaven_assets.

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

Usage Guidelines4/5

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

Explicitly states prerequisite (texture must be downloaded first), which guides when to use. No explicit when-not-to-use or alternatives, but context is clear.

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

TDQS

A3.6/5.0
Disambiguation4/5

Most tools have distinct purposes, but some pairs like get_object_info and get_scene_info or clear_context_scripts and clear_shared_context could cause confusion despite different scopes.

Naming Consistency5/5

All 30 tools follow a consistent verb_noun snake_case pattern, making it easy to predict tool names.

Tool Count4/5

30 tools is slightly above the ideal range, but each tool serves a clear and distinct purpose, justifying its inclusion.

Completeness3/5

The server covers many integrations and has generic code execution, but lacks core operations like object creation, modification, or rendering, which may require workarounds.

Maintenance

ActivityInactive
ResponsivenessNo issues

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, enabling AI-assisted 3D modeling, scene creation, and manipulation through natural language commands.
    17
    2
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Connects Blender to Claude AI through the Model Context Protocol (MCP), enabling prompt-assisted 3D modeling, scene creation, and manipulation.
    17
    MIT
  • 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

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/ZachHandley/blender-mcp-enhanced'

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