Skip to main content
Glama

BlenderMCP - Blender Model Context Protocol Integration

BlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.

Official website

Full tutorial

Join the Community

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

Supporters

CodeRabbit

All supporters:

Support this project

Highlights

For the current version and changelog, see the releases page.

  • Added Hunyuan3D support

  • View screenshots for Blender viewport to better understand the scene

  • Search and download Sketchfab models

  • Support for Poly Haven assets through their API

  • Support to generate 3D models using Hyper3D Rodin

  • Run Blender MCP on a remote host

  • Telemetry for tools executed (completely anonymous)

Installing a new version (existing users)

  • 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!

Related MCP server: BlenderMCP

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 add uv to the user path in Windows (you may need to restart Claude Desktop after):

$localBin = "$env:USERPROFILE\.local\bin"
$userPath = [Environment]::GetEnvironmentVariable("Path", "User")
[Environment]::SetEnvironmentVariable("Path", "$userPath;$localBin", "User")

Otherwise installation instructions are on their website: Install uv

Linux: install uv with curl -LsSf https://astral.sh/uv/install.sh | sh (it lands in ~/.local/bin; open a new shell so it's on your PATH). On every OS, use uv's official installer above — not pip install uv, which may not create the uvx command and can hide uv inside an environment your client can't see.

⚠️ Do not proceed before installing UV

Make your client find uvx

MCP clients started from a GUI (Claude Desktop, Cursor, VS Code from the Dock/Start menu) do not inherit your terminal's PATH, so a bare "command": "uvx" can fail with spawn uvx ENOENT even though uvx works in your terminal. If that happens:

  • Find uvx's full path — which uvx (macOS/Linux) or where uvx (Windows) — and use it as "command", e.g. /opt/homebrew/bin/uvx or C:\Users\<you>\.local\bin\uvx.exe.

  • On Windows you can instead wrap it: "command": "cmd", "args": ["/c", "uvx", "blender-mcp"].

  • After any PATH or config change, fully quit and relaunch the client (Windows: quit from the system tray, not just the window; macOS: Cmd-Q).

Pin the Python version (avoid conda / pyenv / version conflicts)

uv chooses which Python runs the server. On machines with conda (auto-activated base), pyenv, or asdf — or with a newer CPython release that some dependencies do not have wheels for yet — uv can grab an interpreter that makes installation fail. Pin Python 3.11 and prefer uv-managed interpreters to avoid using whatever is on your PATH:

{
    "mcpServers": {
        "blender": {
            "command": "uvx",
            "args": ["--python", "3.11", "blender-mcp"],
            "env": { "UV_PYTHON_PREFERENCE": "only-managed" }
        }
    }
}

--python 3.11 still satisfies this package's requires-python >=3.10, and UV_PYTHON_PREFERENCE=only-managed keeps uv from selecting conda, pyenv, asdf, or system Python first. (The repo's .python-version is only a hint for contributors and does not affect uvx.) If a previous failed attempt keeps replaying after a fix, clear the cache: uv cache clean blender-mcp && uvx --refresh blender-mcp.

If uv won't work: install without uv

On locked-down machines you can skip uvx entirely with pipx, then point your client at the installed command:

pipx install blender-mcp
pipx ensurepath          # then restart your shell / client

Use the resulting absolute path as "command" (find it with which blender-mcp / where blender-mcp) and omit args.

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

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"
            ]
        }
    }
}

Use the Claude Code CLI to add the blender MCP server:

claude mcp add blender uvx blender-mcp

Cursor integration

Install MCP Server

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"
            ]
        }
    }
}

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"
            ]
        }
    }
}

Cursor setup video

⚠️ Only run one instance of the MCP server (either on Cursor or Claude Desktop), not both

Visual Studio Code Integration

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

Install in VS Code

OpenCode integration

{
  "mcp": {
    "blender-mcp": {
      "type": "local",
      "command": ["uvx", "blender-mcp"],
      "enabled": true,
      "environment": {
        "BLENDER_HOST": "localhost",
        "BLENDER_PORT": "9876"
      }   
    }
  }
}

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"

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.

Persistent API credentials

BlenderMCP supports persistent credentials via Blender Add-on Preferences:

Edit -> Preferences -> Add-ons -> Blender MCP

You can store these values there so they survive Blender restarts:

  • Sketchfab API Key

  • Hyper3D API Key

  • Hunyuan3D SecretId / SecretKey

  • Hunyuan3D API URL

For headless setups or CI, credentials can also be injected by environment variables:

  • BLENDERMCP_SKETCHFAB_API_KEY

  • BLENDERMCP_HYPER3D_API_KEY

  • BLENDERMCP_HUNYUAN3D_SECRET_ID

  • BLENDERMCP_HUNYUAN3D_SECRET_KEY

  • BLENDERMCP_HUNYUAN3D_API_URL

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

Telemetry Control

BlenderMCP collects anonymous usage data to help improve the tool. You can control telemetry in two ways:

  1. In Blender: Go to Edit > Preferences > Add-ons > Blender MCP and uncheck the telemetry consent checkbox

    • With consent (checked): Collects anonymized prompts, code snippets, and screenshots

    • Without consent (unchecked): Only collects minimal anonymous usage data (tool names, success/failure, duration)

  2. Environment Variable: Completely disable all telemetry by running:

DISABLE_TELEMETRY=true uvx blender-mcp

Or add it to your MCP config:

{
    "mcpServers": {
        "blender": {
            "command": "uvx",
            "args": ["blender-mcp"],
            "env": {
                "DISABLE_TELEMETRY": "true"
            }
        }
    }
}

All telemetry data is fully anonymized and used solely to improve BlenderMCP.

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

22 tools
download_polyhaven_assetB
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)
- user_prompt: The original user prompt that led to this tool call (for telemetry)

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

TDQS

B3.4/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 for behavioral disclosure. It only states 'Download and import into Blender' and 'Returns a message', but does not disclose potential side effects (e.g., modifying the Blender scene, network access), required permissions, or error conditions.

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

Conciseness4/5

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

The description is concise and well-structured, with a brief purpose statement followed by a clearly labeled parameter list and a return-value note. No filler or redundant text; it earns its place without unnecessary verbosity.

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

Completeness3/5

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

For a 5-parameter tool with no annotations and no output schema, the description covers purpose, parameters, and return value, but lacks usage context and behavioral details like when to use or what happens during import. It is minimally viable but has clear 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?

Despite 0% schema description coverage, the description includes a parameter list with examples (e.g., '1k, 2k, 4k' for resolution, 'hdr, exr' for HDRIs), adding semantic meaning beyond the bare schema property names.

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 'Download and import a Polyhaven asset into Blender' uses a specific verb (download/import) and resource (Polyhaven asset into Blender), clearly distinguishing it from sibling tools like search_polyhaven_assets 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 Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, when to prefer other tools, or any exclusion scenarios, leaving the agent to infer usage only from the name.

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

download_sketchfab_modelA
Download and import a Sketchfab model by its UID.
The model will be scaled so its largest dimension equals target_size.

Parameters:
- uid: The unique identifier of the Sketchfab model
- target_size: REQUIRED. The target size in Blender units/meters for the largest dimension.
              You must specify the desired size for the model.
              Examples:
              - Chair: target_size=1.0 (1 meter tall)
              - Table: target_size=0.75 (75cm tall)
              - Car: target_size=4.5 (4.5 meters long)
              - Person: target_size=1.7 (1.7 meters tall)
              - Small object (cup, phone): target_size=0.1 to 0.3

Returns a message with import details including object names, dimensions, and bounding box.
The model must be downloadable and you must have proper access rights.
ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes
target_sizeYes
user_promptNo

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses key behaviors: scaling to target_size, returning import details (object names, dimensions, bounding box), and the requirement that the model must be downloadable with proper access. It does not mention scene modification side effects or error handling, but for an import tool, this is reasonably transparent.

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

Conciseness4/5

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

The description is well-structured with a clear opening statement, a scaling note, a parameter list with examples, and return info. The examples for target_size are valuable despite adding length. It is concise enough while providing necessary details, with no fluff.

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

Completeness4/5

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

Given the tool's moderate complexity (3 params, scaling, import details), the description covers the essential aspects: what it does, scaling behavior, return message, and access requirements. It misses the user_prompt param and doesn't discuss error scenarios, but for an import tool with no output schema, it is adequately complete.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It thoroughly explains uid and target_size, including detailed examples for target_size. However, it completely omits the user_prompt parameter (present in the schema), leaving a gap. Since not all parameters are described, it only partially compensates for the missing schema descriptions.

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

Purpose5/5

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

The description clearly states the action: 'Download and import a Sketchfab model by its UID.' It specifies the verb (download/import), the resource (Sketchfab model), and the key identifier (UID). It also mentions scaling behavior, which distinguishes it from sibling tools like search or preview.

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 (you need a UID and want to import a model) but does not explicitly compare to alternatives such as search_sketchfab_models or get_sketchfab_model_preview. It does provide context about scaling and access rights, but it lacks an explicit 'use this when you have a UID' or 'use search to find UIDs' guidance.

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

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

Parameters:
- code: The Python code to execute
- user_prompt: The original user prompt that led to this tool call (for telemetry)
ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
user_promptNo

TDQS

C2.9/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 the full burden of disclosing behavioral traits. It only says code is executed in Blender and recommends step-by-step execution; it does not disclose potential side effects, scene mutation, undo behavior, error handling, or that arbitrary code can be destructive. This is a significant transparency gap for an arbitrary-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.

Conciseness4/5

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

The description is brief and front-loaded with the core purpose in the first sentence. The parameter list is concise and contains no filler, though the step-by-step advice could arguably be moved elsewhere without losing information.

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

Completeness1/5

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

For an arbitrary code execution tool with no annotations and no output schema, this description is critically incomplete. It omits execution environment details, return format, failure modes, safety warnings, undo implications, and guidance on how this tool integrates with the rest of the Blender workflow. The minimal text leaves the agent without enough context to safely or effectively invoke the tool.

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 for missing parameter meaning. It restates 'code' as 'The Python code to execute' and adds that 'user_prompt' is 'for telemetry,' but it does not explain execution context, available Blender modules, expected return values, or how the telemetry parameter affects behavior. The added value over the raw schema 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 states a specific verb ('Execute') and resource ('arbitrary Python code in Blender'), making the tool's function immediately clear. It is distinct from all sibling tools, which are specialized for asset retrieval, scene inspection, or generation.

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 only usage guidance is 'Make sure to do it step-by-step by breaking it into smaller chunks,' which is a how-to instruction rather than a when-to-use statement. There is no mention of when to prefer this tool over sibling tools or which operations are better handled by specialized tools.

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

generate_hunyuan3d_modelA
Generate 3D asset using Hunyuan3D by providing either text description, image reference, 
or both for the desired asset, and import the asset into Blender.
The 3D asset has built-in materials.

Parameters:
- text_prompt: (Optional) A short description of the desired model in English/Chinese.
- input_image_url: (Optional) The local or remote url of the input image. Accepts None if only using text prompt.

Returns: 
- When successful, returns a JSON with job_id (format: "job_xxx") indicating the task is in progress
- When the job completes, the status will change to "DONE" indicating the model has been imported
- Returns error message if the operation fails
ParametersJSON Schema
NameRequiredDescriptionDefault
text_promptNo
user_promptNo
input_image_urlNo

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries full burden. It discloses asynchronous behavior (returns job_id indicating task in progress), completion semantics (status changes to DONE when imported), error handling, and built-in materials. This goes beyond simple mutation and gives the agent an accurate picture of the tool's lifecycle.

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

Conciseness5/5

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

The description is well-structured: a one-sentence purpose, a short note on materials, a focused parameter list, and a clear return/status list. Every sentence earns its place; no fluff or repetition of schema defaults.

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

Completeness4/5

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

The description covers the main flow (generation, async job, completion, import), which is good for a tool with no output schema. However, it could be more complete by referencing how to check job status (e.g., poll_hunyuan_job_status) and by documenting the missing user_prompt parameter. Given the tool's complexity, this is a minor gap but not fatal.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaning for text_prompt and input_image_url, but entirely omits the third schema parameter 'user_prompt'. This is a significant gap: the agent knows how to fill two of three fields, but has no guidance for the third. Partial compensation, not complete.

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

Purpose5/5

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

The description states a specific verb ('Generate') and a specific resource ('3D asset using Hunyuan3D'), and explicitly notes the result is imported into Blender. This differentiates from sibling tools like generate_hyper3d_model_via_text and import_generated_asset_hunyuan.

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

Usage Guidelines4/5

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

The description clearly indicates the tool is used for generating Hunyuan3D assets from text and/or image, and that it also imports into Blender. While it doesn't explicitly mention alternatives or when not to use it, the context implies differentiation from Hyper3D generation tools and separate import tools. This meets 'clear context, no exclusions' level.

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

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
user_promptNo
bbox_conditionNo
input_image_urlsNo
input_image_pathsNo

TDQS

A4.7/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses key behaviors: the model has built-in materials, the generated model has a normalized size (implying potential re-scaling is needed), and it imports into Blender. It does not mention error scenarios or side effects beyond a success/failure message, but the core behaviors are covered 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 structured with a brief intro sentence followed by bullet-point-like parameter details. Every sentence earns its place: it covers purpose, output characteristics, parameter semantics, and usage constraint without fluff. It is compact yet complete.

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?

There is no output schema, but the description states it 'Returns a message indicating success or failure.' It covers the necessary context for a generation tool: input modes, size normalization, and Blender import. It omits details like expected processing time or network requirements (which might be derived from mode), but given the tool's complexity and the rich parameter explanation, it is nearly 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?

The schema has zero parameter descriptions, so the description must explain each. It does so thoroughly: 'input_image_paths' and 'input_image_urls' are described as absolute paths and URLs, with format and mode requirements. 'bbox_condition' is explained as a list of ints of length 3 controlling the Length/Width/Height ratio. While 'user_prompt' is not explicitly described, it is optional and has a default; the description still adds substantial meaning well beyond schema field names.

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: 'Generate 3D asset using Hyper3D by giving images of the wanted asset, and import the generated asset into Blender.' It specifies the verb (generate), resource (Hyper3D), and action (import into Blender), and distinguishes itself from the text-based sibling by the input type (images vs. text).

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

Usage Guidelines5/5

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

The description explicitly states when to use which input mode: 'Required if Hyper3D Rodin in MAIN_SITE mode' and 'FAL_AI mode', and enforces mutual exclusivity: 'Only one of {input_image_paths, input_image_urls} should be given at a time, depending on the Hyper3D Rodin's current mode.' It also provides the needed condition for bbox_condition. This gives clear and decisive usage guidance.

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
user_promptNo
bbox_conditionNo

TDQS

A3.7/5.0
Behavior3/5

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

The description discloses that the asset has built-in materials and normalized size, and that it imports into Blender. However, it does not mention side effects like whether it replaces existing objects or requires permissions. With no annotations, this partial transparency leaves some ambiguity.

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

Conciseness5/5

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

The description is concise and well-structured: two sentences of overview followed by a bulleted parameter list. It avoids redundancy and is easy to parse.

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 no output schema, the description does not need to explain return values, but it omits important context such as expected side effects on the Blender scene (e.g., whether it adds a new object) and the meaning of user_prompt. This makes it adequate but not fully complete.

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

Parameters4/5

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

The description explains text_prompt and bbox_condition (e.g., 'Controls the ratio between [Length, Width, Height]'), adding value beyond the schema. However, it omits the third parameter (user_prompt) entirely, so coverage is incomplete.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Generate 3D asset using Hyper3D by giving description of the desired asset, and import the asset into Blender.' It distinguishes from siblings like generate_hunyuan3d_model by explicitly mentioning Hyper3D and the dual generation+import action.

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 specify when to use this tool versus alternatives (e.g., generate_hunyuan3d_model). It only hints at usage with 're-scaling after generation can be useful,' but lacks explicit guidance on selection criteria.

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

get_hunyuan3d_statusB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
user_promptNo

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are present, so the description carries full behavioral burden. It does disclose the return type ('message indicating whether Hunyuan3D features are available') and frames this as a non-mutating check. However, it doesn't clarify whether the function ever enables anything, what happens if Blender isn't running, or what the message structure looks like. Acceptable baseline disclosure, but with no annotations, more depth would help.

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 front-loaded sentences, zero wasted words. The description efficiently conveys the check subject, the environment, and the output behavior.

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

Completeness3/5

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

Given the tool's low complexity (one assertion, simple message return, no output schema, no nested objects), the description covers the essentials: what's checked and what's returned. The completeness is dragged down by the completely unexplained user_prompt parameter, which an agent must somehow resolve. Adequate but with a visible gap.

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

Parameters1/5

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

Schema description coverage is 0% and the description makes no mention of the user_prompt parameter, whose purpose is genuinely confusing for a status check. An agent given this description cannot tell whether to provide a prompt, why it defaults to an empty string, or what behavior changes if it's populated. Since the schema provides no help and the description adds zero clarification, this is a significant failure.

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

Purpose5/5

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

The description uses a specific verb ('Check') and resource ('Hunyuan3D integration in Blender') and clearly distinguishes this from sibling tools like get_hyper3d_status and get_polyhaven_status by naming the specific integration. The outcome ('whether Hunyuan3D features are available') makes the tool's scope unambiguous.

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

Usage Guidelines3/5

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

The purpose implies this is a pre-flight check before using Hunyuan3D generation features, giving clear contextual timing. However, there's no explicit when-to-use-vs-alternatives guidance, and no mention that siblings like poll_hunyuan_job_status serve a different phase of the workflow. The usage context is implied rather than stated.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_promptNo

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, but the description explicitly says it 'checks' and 'returns a message', indicating a read-only operation. It does not mention failure modes or side effects, but for a status check this is acceptable.

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, consisting of two clear sentences that convey the tool's function without unnecessary detail.

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 main function and output, but omits any explanation of the 'user_prompt' parameter, which is a significant gap for a status-checking tool.

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

Parameters2/5

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

The schema includes a 'user_prompt' parameter, but the description does not explain its purpose or why a status check would need it. This leaves the parameter's semantics unclear.

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 Hyper3D Rodin integration is enabled and returns a message about availability. It is distinct from sibling tools that generate or download models.

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 implies the tool is for checking integration status, but it does not explicitly state when to use it over alternatives. However, the purpose 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.

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

Parameters:
- object_name: The name of the object to get information about
- user_prompt: The original user prompt that led to this tool call (for telemetry)
ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameYes
user_promptNo

TDQS

B3.2/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 for behavioral disclosure. It only says 'Get detailed information' and does not state that the operation is read-only, whether it can fail, or what exactly is returned. This is a minimal but not fully transparent description.

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 main description is one clear sentence, followed by concise parameter annotations. No redundant words or filler; every sentence earns its place. The structure is front-loaded and easy to scan.

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

Completeness3/5

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

Given the tool's simplicity (one required parameter, no output schema, no annotations), the description is adequate but minimal. It defines purpose and parameters, but does not describe the return value structure or any edge cases, leaving the agent partially in the dark about what to 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?

Schema description coverage is 0%, but the description compensates by explaining both parameters: object_name clarifies the target object, and user_prompt explains its telemetry purpose. This adds meaning beyond the property titles in the schema, though it could give more detail on object name lookup.

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 verb ('Get') and resource ('detailed information about a specific object in the Blender scene'), distinguishing it from siblings like get_scene_info. It lacks a fuller explanation of what 'information' includes, but the core purpose is unambiguous.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as get_scene_info or execute_blender_code. The description implies usage for object-level queries but offers no exclusions, prerequisites, or comparisons.

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)
- user_prompt: The original user prompt that led to this tool call (for telemetry)
ParametersJSON Schema
NameRequiredDescriptionDefault
asset_typeNohdris
user_promptNo

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It clearly indicates this is a read-only retrieval operation ('Get a list'), but it does not disclose details such as network dependency, potential rate limits, caching, or error behavior. For a simple list endpoint, this is 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 highly concise: one purpose sentence followed by a clear, minimal parameter list. Every element earns its place, and the most critical information (what the tool does) is front-loaded.

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

Completeness4/5

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

For a tool with two parameters and no output schema or annotations, the description provides all essential information: purpose, asset_type choices, and user_prompt semantics. The lack of any note about return format or when this might be called in a workflow is a minor gap, but overall the description is sufficient.

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%, so the description fully compensates by explaining both parameters: asset_type with its allowed enum-like values (hdris, textures, models, all) and user_prompt with its telemetry purpose. This adds significant meaning beyond the bare schema names and defaults.

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

Purpose5/5

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

The description uses a specific verb+resource construction ('Get a list of categories for a specific asset type on Polyhaven') and clearly distinguishes this tool from siblings like search_polyhaven_assets or download_polyhaven_asset. The asset_type parameter options (hdris, textures, models, all) further clarify its scope.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives, nor any mention of exclusions or prerequisites. The intended use case is only implied by the tool's name and purpose, which is not sufficient for a dedicated usage guideline dimension.

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

get_polyhaven_statusB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
user_promptNo

TDQS

B3.3/5.0
Behavior3/5

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

The description indicates a read-only check ('Check if' and 'Returns a message') without stating side effects or permissions. Since no annotations are present, it partly relies on implication, but it is likely 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?

The description is concise—two sentences with no redundant information. It efficiently conveys the tool's purpose and output.

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 covers the core function and return type (a message) but omits details about the output format and the meaning of the user_prompt parameter. The overall context is incomplete for a full understanding.

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

Parameters1/5

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

The sole parameter 'user_prompt' has no description, and its purpose is entirely unclear. The schema provides no details, and the description does not mention it, leaving it unexplained and likely unused.

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 checks if PolyHaven integration is enabled in Blender, which is specific and distinct from other status tools like get_hyper3d_status or 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 Guidelines3/5

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

The description implies when to use it (when checking PolyHaven availability) but does not explicitly contrast with alternatives or provide conditional guidance. It is somewhat clear but lacks explicit direction.

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

Parameters:
- user_prompt: The original user prompt that led to this tool call (required for telemetry)
ParametersJSON Schema
NameRequiredDescriptionDefault
user_promptYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of disclosing side effects or behavioral traits. It only says 'Get' which implies read-only, but does not explicitly state that the operation is non-destructive, does not modify the scene, or has any telemetry side effects beyond the user_prompt parameter (which is not mentioned in the description).

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, concise sentence that communicates the tool's purpose without unnecessary words or fluff.

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 is minimal and does not specify what 'detailed information' includes or what the return format is. Since there is no output schema, the description should ideally explain the nature of the returned data, but it does not. This is a significant gap for a getter tool.

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

Parameters3/5

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

The tool description does not mention parameters, but the input schema provides a complete description for the single parameter 'user_prompt' (required for telemetry). Since schema coverage is 100%, the baseline of 3 applies, and the description adds no additional meaning.

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: 'Get detailed information about the current Blender scene.' This is a specific verb+resource (get + scene info) and distinguishes it from sibling tools that deal with textures, models, or other assets.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention any conditions, prerequisites, or situations where this tool is preferred over siblings. It simply states what it does.

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

get_sketchfab_model_previewA
Get a preview thumbnail of a Sketchfab model by its UID.
Use this to visually confirm a model before downloading.

Parameters:
- uid: The unique identifier of the Sketchfab model (obtained from search_sketchfab_models)

Returns the model's thumbnail as an Image for visual confirmation.
ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes
user_promptNo

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must convey behavior. It mentions retrieving a thumbnail and its purpose but does not state whether the operation is read-only or any side effects. It is fairly transparent for a simple read operation.

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 with two clear sentences, avoiding unnecessary details while covering the essential purpose and usage.

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?

It adequately describes the return value as an Image for visual confirmation. For a simple tool, it provides enough context, though it lacks potential error scenarios or prerequisites. Given the simplicity, it is reasonably complete.

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

Parameters3/5

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

The description explains the 'uid' parameter as the identifier obtained from search_sketchfab_models, adding meaningful context beyond the schema. However, the 'user_prompt' parameter is left unexplained, leaving a gap in 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?

Clearly states it retrieves a preview thumbnail for a Sketchfab model, specifying the action and resource. It distinguishes from sibling tools like search_sketchfab_models and download_sketchfab_model by focusing on preview retrieval.

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 instructs to use it to visually confirm a model before downloading, providing a clear use case. It does not mention when not to use it, but the guidance is sufficient for the intended purpose.

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
user_promptNo

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description must carry the behavioral burden. It discloses that this is a read-only status check and that it returns a message, but it does not clarify whether any network request occurs, whether authentication is needed, or what the exact return format looks like. For a simple status check this is acceptable but not detailed.

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

Conciseness5/5

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

The description is two short, front-loaded sentences with no filler. Every phrase contributes meaning, and it is appropriately sized for a simple status-check tool.

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

Completeness3/5

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

The tool is simple and the description adequately covers its core purpose and return type, but the unexplained user_prompt parameter creates a completeness gap. An output schema is not present, so the description's mention of returning a message is useful, yet the parameter semantics remain underspecified.

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

Parameters2/5

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

The only parameter, user_prompt, has 0% schema description coverage and is not mentioned in the tool description at all. The description does not clarify why the parameter exists, how it affects the status check, or what values are expected, leaving the agent to guess.

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 whether the Sketchfab integration is enabled in Blender and returns a message about feature availability. It uses a specific verb+resource structure that distinguishes it from sibling status tools like get_polyhaven_status 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 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 search_sketchfab_models or download_sketchfab_model. There are no explicit conditions, prerequisites, or with/without contexts mentioned.

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)
- user_prompt: The original user prompt that led to this tool call (for telemetry)

Returns the screenshot as an Image.
ParametersJSON Schema
NameRequiredDescriptionDefault
max_sizeNo
user_promptNo

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description should disclose side effects and limitations. It mentions the return type but does not elaborate on potential failures, impact on the scene, or whether the screenshot is taken in background. It adds some transparency 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.

Conciseness4/5

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

The description is concise and well-structured: it starts with the purpose, then lists parameters, and ends with the return type. It is front-loaded and avoids unnecessary detail.

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 two parameters, the description covers the basics, but the default value mismatch and lack of error handling make it incomplete. It does not mention any conditions under which the tool might fail or any additional context.

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

Parameters3/5

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

The description explains both parameters, which is necessary since the schema lacks descriptions. However, there is a contradiction: the description states max_size default is 800 while the schema says 1000, which could mislead the agent. It adds meaning but with a flaw.

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

Purpose5/5

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

The description clearly states the tool captures a screenshot of the Blender viewport with a specific verb and resource, distinguishing it from other tools in the list. It is not a tautology and provides a clear action.

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?

It does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or conditions. The usage is implied (if you need a screenshot of the viewport), but no alternatives are named.

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

A4.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that it returns a success indicator ('Return if the asset has been imported successfully') and enforces a parameter exclusivity constraint. However, it does not describe side effects (e.g., scene modifications), failure modes, or necessary preconditions, leaving some ambiguity for a mutation-like operation.

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, structured with a parameters list and a note on exclusivity. Every sentence provides value: purpose, parameter explanations, and usage constraint. No fluff or redundancy.

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

Completeness4/5

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

For a simple 3-parameter tool with no output schema, the description covers the essential aspects: target resource, when to use, parameter semantics, and return status. It could be more explicit about prerequisites (e.g., an active scene) but is sufficiently complete given the tool's simplicity.

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

Parameters5/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, and it does thoroughly. It explains 'name' as the object name in scene, and crucially distinguishes 'task_uuid' (for MAIN_SITE mode) from 'request_id' (for FAL_AI mode), including the conditional rule that only one should be provided. This adds significant meaning beyond 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 verb 'Import' and the resource 'asset generated by Hyper3D Rodin after the generation task is completed'. It distinguishes from the sibling 'import_generated_asset_hunyuan' by specifying 'Hyper3D Rodin', making the purpose unambiguous.

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

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 ('after the generation task is completed') and provides explicit usage guidance on parameter selection: 'Only give one of {task_uuid, request_id} based on the Hyper3D Rodin Mode!'. It does not explicitly mention alternatives or when not to use, but the context is clear enough for an agent to select correctly.

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

import_generated_asset_hunyuanA
Import the asset generated by Hunyuan3D after the generation task is completed.

Parameters:
- name: The name of the object in scene
- zip_file_url: The zip_file_url given in the generate model step.

Return if the asset has been imported successfully.
ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
zip_file_urlYes

TDQS

A4.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of transparency. It mentions the return value ('Return if the asset has been imported successfully') but does not clarify side effects, error handling, or whether the import modifies or replaces existing assets. The lack of detail on failure modes or permissions leaves 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 concise and well-structured, with a clear purpose statement followed by a simple parameter list and return hint. No unnecessary words or redundant information.

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

Completeness4/5

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

The description explains the tool's purpose, usage timing, and return value, which is adequate for a straightforward import operation. It does not elaborate on exception cases or specific outcome details, but given no output schema, it sufficiently conveys the expected result.

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 description provides explicit meanings for both parameters: 'name: The name of the object in scene' and 'zip_file_url: The zip_file_url given in the generate model step.' Since the schema offers no descriptions, this covers 100% of parameters, adding necessary semantic clarity.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Import the asset generated by Hunyuan3D after the generation task is completed.' It specifies the resource (asset) and action (import) and differentiates from siblings like generate or poll by focusing on importing a generated asset.

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 temporal guidance ('after the generation task is completed') and ties the zip_file_url to the generation step ('given in the generate model step'), which implies when to use this tool. It does not explicitly mention alternatives, but the context is sufficient for typical usage.

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

poll_hunyuan_job_statusA
Check if the Hunyuan3D generation task is completed.

For Hunyuan3D:
    Parameters:
    - job_id: The job_id given in the generate model step.

    Returns the generation task status. The task is done if status is "DONE".
    The task is in progress if status is "RUN".
    If status is "DONE", returns ResultFile3Ds, which is the generated ZIP model path
    When the status is "DONE", the response includes a field named ResultFile3Ds that contains the generated ZIP file path of the 3D model in OBJ format.
    This is a polling API, so only proceed if the status are finally determined ("DONE" or some failed state).
ParametersJSON Schema
NameRequiredDescriptionDefault
job_idNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries full behavioral disclosure burden. It discloses the possible statuses ('DONE', 'RUN', and a failed state), states that it returns ResultFile3Ds on success, and identifies itself as a polling API. This is transparent for a read-only status check, though it could mention error handling or timeout behavior.

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 redundantly worded. It repeats the ResultFile3Ds information twice: once in a bullet point and again in a separate sentence. The overall structure mixes bullet points and prose, making it less scannable. It could be trimmed to two or three concise sentences without losing information.

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

Completeness4/5

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

For a simple polling tool with one parameter and no output schema, the description adequately covers what the tool returns (status and optional result path), how to interpret statuses, and when to stop polling. It lacks explicit examples of failure states or timeout guidance, but these are minor gaps given the tool's simplicity.

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 schema only defines job_id as a string with no description, and schema description coverage is 0%. The description compensates fully by explaining that job_id is 'the job_id given in the generate model step', providing precise provenance and context for the parameter.

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: checking if a Hunyuan3D generation task is completed. It uses a specific verb ('check'), names the resource ('Hunyuan3D generation task'), and distinguishes it from sibling tools like poll_rodin_job_status or get_hunyuan3d_status by explicitly mentioning Hunyuan3D and its polling nature.

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 practical usage guidance: it explains that this is a polling API and instructs to 'only proceed if the status are finally determined'. It also tells when the result is ready (when status is 'DONE'). However, it does not explicitly mention when not to use this tool or point to alternative tools like get_hunyuan3d_status, so it misses a clear exclusion.

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?

With no annotations, the description carries the full behavioral disclosure burden. It discloses mode-specific statuses, progress states, failure conditions, and terminal states: 'Done', 'Canceled', 'COMPLETED', 'IN_PROGRESS', and 'IN_QUEUE'. It does not describe exact response shape or polling timeout/block behavior, but the core decision logic is clear.

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

Conciseness4/5

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

The description is well organized into two mode sections with clear parameter and status explanations. It is still reasonably tight, though the 'polling API, so only proceed' caution is repeated in both sections, which slightly reduces conciseness.

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

Completeness4/5

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

Given the absence of annotations and output schema, the description covers the important status logic, failure conditions, and decision rule with enough clarity for an agent. It is slightly incomplete because it does not differentiate itself from the sibling get_hyper3d_status tool or describe the response structures in more detail.

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

Parameters4/5

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

The input schema contains two arbitrary string fields with no descriptions and 0% schema coverage. The description compensates by explaining that subscription_key belongs to MAIN_SITE mode and request_id belongs to FAL_AI mode, both obtained from the generate step. It still does not explicitly state that exactly one parameter is required depending on mode.

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

Purpose5/5

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

The description opens with a specific verb-resource pair: checking whether the Hyper3D Rodin generation task is completed. It clearly separates behavior across MAIN_SITE and FAL_AI modes, which makes the tool's role in the generation pipeline obvious and distinguishes it from sibling generation/import tools.

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 gives useful usage context: it is a polling API, should be called when checking generation status, and should only proceed when terminal statuses are observed. However, it does not explicitly name alternatives such as get_hyper3d_status or describe when this tool is not appropriate.

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
- user_prompt: The original user prompt that led to this tool call (for telemetry)

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

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool returns a list of matching assets with basic information and mentions that user_prompt is for telemetry, which is useful behavioral context. However, it does not explicitly state whether the operation is read-only, safe to call, or if there are any side effects, rate limits, or additional behavioral quirks that an agent should know.

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

Conciseness5/5

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

The description is compact and well-structured: a one-sentence purpose statement followed by a concise parameter list. There is no filler or redundancy; every word adds value. It is appropriately sized for the tool's simplicity.

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 search tool with three parameters and no output schema, the description is fairly complete. It states the return type (list of matching assets with basic information) and parameter semantics. Minor gaps remain, such as what 'basic information' includes or whether pagination/limits apply, but these are not critical for basic invocation.

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 schema has no descriptions and 0% coverage, but the description fully compensates by explaining each parameter: asset_type lists its allowed values (hdris, textures, models, all), categories is described as 'optional comma-separated list', and user_prompt is clarified as the original prompt for telemetry. This adds significant meaning beyond the bare schema definitions.

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: 'Search for assets on Polyhaven with optional filtering.' It uses a specific verb ('search') and resource ('Polyhaven assets'), and the parameter list clarifies the scope. This distinguishes it from sibling search tools like search_sketchfab_models by explicitly naming the platform.

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 context (when you need to search Polyhaven assets) but does not explicitly state when to prefer this over alternatives, nor does it provide exclusions or comparisons to sibling search tools. The presence of sibling tools like search_sketchfab_models makes this distinction important, but the description relies on the tool name to convey it.

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
user_promptNo
downloadableNo

TDQS

A3.5/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 states that a 'formatted list' is returned, but does not disclose whether this makes network calls, whether results are live, pagination behavior, error handling, or any rate limits or auth requirements.

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 the core purpose, followed by a tidy parameter list and a one-line return summary. There is no filler or redundant elaboration; every line communicates useful 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 absence of an output schema and annotations, the description should more thoroughly explain the return format and any special search behavior. It also fails to document the user_prompt parameter, which is a clear gap in completeness for a moderately parameterized 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 description adds meaningful semantics for four of the five parameters: query text, comma-separated categories, maximum count, and downloadable filter. However, it completely omits the user_prompt parameter that appears in the schema, so the semantic coverage is not complete.

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

Purpose5/5

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

The description opens with a specific action and resource: 'Search for models on Sketchfab with optional filtering.' This clearly distinguishes it from sibling tools like download_sketchfab_model and get_sketchfab_model_preview, which serve different purposes.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool vs alternatives such as search_polyhaven_assets or download_sketchfab_model. Usage is only implied by the phrase 'Search for models on Sketchfab'; there are no context cues, exclusions, or alternative tool references.

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
user_promptNo

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 carries the full burden. It tells us it mutates an object by applying a texture and returns a simple success/failure message. However, it doesn't disclose important behavioral traits like whether the operation is undoable, whether it overwrites existing materials, or what failure conditions exist. It doesn't contradict annotations, but it's a minimal description 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.

Conciseness5/5

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

The description is brief, with a clear one-sentence summary, a short parameter list, and a note about the return value. Every sentence earns its place without extraneous 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 straightforward apply operation, the description is mostly complete. It explains the prerequisite (texture downloaded), the parameters, and a brief note on the return value. However, it lacks details on edge cases and the 'user_prompt' parameter remains unexplained. It's adequate but leaves some gaps for a tool with three parameters and no annotations.

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%, but the description does explain both parameters in the text. It adds meaning beyond the schema by stating that texture_id is a Polyhaven texture and that it must be downloaded first. However, it fails to explain the third parameter, 'user_prompt', which is in the schema but not mentioned in the description. This omission is a gap.

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

Purpose5/5

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

The description uses a specific verb+resource: 'Apply a previously downloaded Polyhaven texture to an object.' It clearly indicates the action (apply), the resource (Polyhaven texture), and the target (an object). This is unambiguous and distinguishes it from the many sibling tools, which deal with searching, downloading, or generating models.

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 specifies 'previously downloaded' and 'must be downloaded first', giving clear context that the texture must already be downloaded. It doesn't explicitly mention alternatives, but the sibling list shows many related tools. It also doesn't state when NOT to use this tool, though the exclusion is logically implied by the download-first requirement. The description clearly explains the context but omits an explicit alternative.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 22 tool updatesv1.6.0
    • First observeddownload_polyhaven_asset
    • First observeddownload_sketchfab_model
    • First observedexecute_blender_code
    • First observedgenerate_hunyuan3d_model
    • First observedgenerate_hyper3d_model_via_images
    • First observedgenerate_hyper3d_model_via_text
    • First observedget_hunyuan3d_status
    • First observedget_hyper3d_status
    • First observedget_object_info
    • First observedget_polyhaven_categories
    • First observedget_polyhaven_status
    • First observedget_scene_info
    • First observedget_sketchfab_model_preview
    • First observedget_sketchfab_status
    • First observedget_viewport_screenshot
    • First observedimport_generated_asset
    • First observedimport_generated_asset_hunyuan
    • First observedpoll_hunyuan_job_status
    • First observedpoll_rodin_job_status
    • First observedsearch_polyhaven_assets
    • First observedsearch_sketchfab_models
    • First observedset_texture

TDQS

A3.6/5.0

Scored across 22 tools

Disambiguation3/5

Tools are mostly distinct by service (Polyhaven, Sketchfab, Hyper3D, Hunyuan3D), but there is overlap between generate_hyper3d_model_via_text/images and generate_hunyuan3d_model (which also accepts images). import_generated_asset is ambiguous because it doesn't specify the service, unlike import_generated_asset_hunyuan.

Naming Consistency3/5

Naming is predominantly verb_noun with snake_case, but there are inconsistencies: poll_rodin_job_status uses 'rodin' instead of 'hyper3d', import_generated_asset lacks a service qualifier, and set_texture is vague. The pattern is mostly readable but not uniformly applied.

Tool Count4/5

22 tools is on the higher end but appropriate given the server integrates four asset services (Polyhaven, Sketchfab, Hyper3D, Hunyuan3D) plus core scene inspection and code execution. Each integration requires status, search/download, generation, and polling tools, so the count is justified.

Completeness4/5

The tool surface covers the full asset pipeline lifecycle: search, preview, download, generate, poll, import, and status checks for each integration, plus scene/object info. Missing direct object manipulation tools (e.g., update/delete) are compensated by execute_blender_code, but dedicated tools would be more complete.

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