mcp-blender-server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-blender-servercreate a cube and apply a blue material"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-blender-server
A Python-based Model Context Protocol (MCP) server for integrating Blender and 3D modeling capabilities with OpenClaw AI agents. This project aims to adapt and deploy blender-mcp as a dedicated MCP server for our AI Comic Studio's Phase 2 development.
Disclaimer: This is an adaptation of the original blender-mcp project. We have no official affiliation with the original blender-mcp project or its maintainers.
Features
Blender Control: Interact with Blender to create, modify, and delete 3D objects, control materials, and inspect scenes.
AI-powered 3D Generation: Integrate with AI 3D generation tools like Hunyuan3D and Hyper3D Rodin (via their APIs).
Asset Management: Download models from Sketchfab and assets from Poly Haven.
Python Code Execution: Execute arbitrary Python code within Blender.
Related MCP server: dcc-mcp-blender
Components
This project will adapt and contain the following core components from the original blender-mcp:
Blender Addon (
addon.py): A Blender addon that creates a socket server within Blender to receive and execute commands. (Will be placed in the root of this repo for easy access)MCP Server (
src/blender_mcp/server.py): The Python server that implements the Model Context Protocol and connects to the Blender addon.
Installation and Setup (Local Development)
Prerequisites
Blender 3.0 or newer
Python 3.10 or newer
uvpackage manager (recommended for dependency management)
Environment Setup
Clone the repository:
git clone https://github.com/tinhtinhcd/mcp-blender-server cd mcp-blender-serverInstall
uv(if not already installed):curl -LsSf https://astral.sh/uv/install.sh | sh export PATH="$HOME/.local/bin:$PATH" # Add uv to PATH for current sessionCreate a virtual environment and install dependencies:
uv venv source ./.venv/bin/activate # Activate the virtual environment uv pip install "mcp[cli]>=1.3.0" "supabase>=2.0.0" "tomli>=2.0.0"(Note: Additional dependencies from the original
blender-mcpproject may be added as needed.)
Running the MCP Server
To run the MCP server:
uvx mcp-blender-server(Ensure your Blender addon is also running and connected.)
Integration with OpenClaw AI Agent
This server will be configured as an MCP server for an OpenClaw AI agent. The AI agent will send commands to this server to control Blender and manage 3D assets.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Available Tools
22 toolsdownload_polyhaven_assetA
Download and import a Polyhaven asset into Blender.
Parameters:
asset_id: The ID of the asset to download
asset_type: The type of asset (hdris, textures, models)
resolution: The resolution to download (e.g., 1k, 2k, 4k)
file_format: Optional file format (e.g., hdr, exr for HDRIs; jpg, png for textures; gltf, fbx for models)
Returns a message indicating success or failure.
| Name | Required | Description | Default |
|---|---|---|---|
| asset_id | Yes | ||
| asset_type | Yes | ||
| resolution | No | 1k | |
| file_format | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose important behavioral traits such as whether the asset overwrites existing files, requires an internet connection, or has any side effects in Blender. Only the basic action and return message are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences plus a parameter list. It is front-loaded with the core purpose and uses a clear bullet format for parameters. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the parameters and basic return, but lacks context about the import process (e.g., where in Blender it appears) and prerequisites (e.g., Blender must be open). Given that an output schema exists (though not detailed), the absence of return value details is acceptable but the tool feels minimally documented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description adds meaningful examples and acceptable values for each parameter (e.g., asset_type: 'hdris, textures, models'; resolution: '1k, 2k, 4k'; file_format: 'gltf, fbx for models'). This significantly aids the agent in understanding parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Download and import'), the resource ('Polyhaven asset'), and the destination ('into Blender'). The tool name itself indicates the source (Polyhaven), distinguishing it from sibling tools like download_sketchfab_model. No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., search_polyhaven_assets first, or when not to use it). There is no mention of prerequisites or context for selection.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| target_size | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses scaling and return details, and mentions access rights. However, it does not specify side effects like overwriting existing models or network requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections, examples, and bullet points. A bit longer than necessary but every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 params, no annotations, output schema exists), the description is fairly complete, covering scaling, parameter examples, and return value hints. Could mention how to handle the returned import details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description compensates excellently by explaining each parameter with examples and required status.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it downloads and imports a Sketchfab model by UID, and explains the scaling behavior. It distinguishes from sibling tools like search_sketchfab_models and download_polyhaven_asset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides specific usage context (download by UID, scaling to target size) and includes example target_size values. However, it does not explicitly mention when not to use this tool or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_blender_codeB
Execute arbitrary Python code in Blender. Make sure to do it step-by-step by breaking it into smaller chunks.
Parameters:
code: The Python code to execute
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Mentions code execution but does not disclose potential destructive side effects, error handling, or safety precautions. Inadequate for arbitrary code execution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise two-sentence description with front-loaded purpose. However, lacks structured detail; could benefit from including safety notes or output info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of arbitrary code execution and lack of annotations, the description is incomplete. It does not explain return values, error states, or the behavior of Blender context, which are critical for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet description only restates 'The Python code to execute', adding minimal meaning beyond the parameter name. Does not provide additional details like format, limits, or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it executes arbitrary Python code in Blender, which is a specific verb and resource. Differentiates from sibling tools that handle asset importing, model generation, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a usage tip to break code into smaller chunks, but lacks explicit guidance on when to use this tool versus alternatives. No warning about potential dangers or prerequisites.
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
| Name | Required | Description | Default |
|---|---|---|---|
| text_prompt | No | ||
| input_image_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description clearly discloses the asynchronous workflow (returns job_id, status changes to DONE), the import action, and error handling. It adds context beyond the schema, though it does not cover side effects like overwriting or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections and bullet points. It is front-loaded with the main purpose and efficiently covers parameters and return values, though it could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (asynchronous generation, no annotations) and two optional parameters, the description provides sufficient context: input options, return format, and job lifecycle. It lacks details on combined text+image behavior and error message formats, but is adequate for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds meaningful semantics: text_prompt is a short description in English/Chinese, input_image_url accepts local/remote URL or None. This compensates well for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a 3D asset using Hunyuan3D from text or image and imports it into Blender. It distinguishes from siblings by naming the specific engine (Hunyuan3D vs Hyper3D) and mentioning import into Blender, which is unique among the generation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the input options (text and/or image) but provides no guidance on when to use this tool versus alternatives like generate_hyper3d_model_via_text or get_hunyuan3d_status. It does not specify prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| input_image_paths | No | ||
| input_image_urls | No | ||
| bbox_condition | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It mentions built-in materials, normalized size, and the need for re-scaling, but omits important traits: whether the tool modifies existing assets, required permissions, or side effects. The return is only described as a 'success or failure' message, lacking detail on what the generated asset reference is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise, with the main purpose stated upfront. It covers key points in a few sentences. However, some information (e.g., the return message) could be condensed without loss of clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (not shown), the description does not need to detail return values, but it only says 'message indicating success or failure,' which is vague. It misses details on error conditions, prerequisites (e.g., Blender must be running), and integration with sibling tools like import_generated_asset. Overall, it covers the basics but leaves gaps for a complex generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It clearly explains that input_image_paths require absolute paths and both must be lists even for single images, and that bbox_condition controls length/width/height ratio with a list of three ints. This adds substantial meaning beyond the schema's bare type definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a 3D asset from images using Hyper3D and imports it into Blender. It distinguishes itself from siblings like generate_hyper3d_model_via_text by specifying image input. Additional details (built-in materials, normalized size) clarify the exact output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that only one of input_image_paths or input_image_urls should be used based on the current mode (MAIN_SITE vs FAL_AI). This provides context for parameter selection. However, it does not explicitly compare to alternatives (e.g., when to use text-based generation) or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_hyper3d_model_via_textB
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text_prompt | Yes | ||
| bbox_condition | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses built-in materials, normalized size, and return format. Does not mention if the operation is synchronous or asynchronous, potential limits, or effect on Blender scene beyond import.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise with a structured 'Parameters:' section. Every sentence adds value, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core purpose and params, but lacks details on process (time, async) and impact on scene. Output schema exists but is only summarized as 'message indicating success or failure'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds significant meaning beyond schema: text_prompt requires English, bbox_condition controls L/W/H ratio and must be list of 3 floats. Schema coverage 0% so description carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it generates a 3D asset from text and imports into Blender. Does not explicitly differentiate from siblings like generate_hunyuan3d_model, but the verb+resource is specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., Hunyuan, image-based). Only specifies that text_prompt must be in English, but lacks context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hunyuan3d_statusA
Check if Hunyuan3D integration is enabled in Blender. Returns a message indicating whether Hunyuan3D features are available.
Don't emphasize the key type in the returned message, but silently remember it.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It states the tool returns a message indicating availability, which is appropriate for a read-only check. However, the instruction 'Don't emphasize the key type... but silently remember it' is unclear and could confuse the agent about how to handle the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, efficiently conveying purpose and return. However, the second sentence includes a cryptic instruction that is not clearly earned, slightly reducing conciseness. It is still relatively brief and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter tool with an output schema (not provided here), the description adequately explains the tool's function and return type. The odd instruction about key type does not detract from completeness but is not fully explained. It is reasonably complete for the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is 100%. Since there are no parameters to document, the baseline score of 4 applies. The description does not need to add parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it checks if Hunyuan3D integration is enabled in Blender, which is a specific verb-resource pair. It distinguishes from sibling tools like generate_hunyuan3d_model and poll_hunyuan_job_status by focusing on integration status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. The purpose is implied as a prerequisite check before using Hunyuan3D features, but no exclusions or alternatives are mentioned. The instruction about 'silently remember' is vague and not helpful for usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hyper3d_statusA
Check if Hyper3D Rodin integration is enabled in Blender. Returns a message indicating whether Hyper3D Rodin features are available.
Don't emphasize the key type in the returned message, but sliently remember it.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. Discloses that it returns a message about availability and adds behavioral instruction about not emphasizing the key type in the message. This adds practical context beyond a simple status check.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words. First two sentences clearly state purpose and output. Third sentence adds relevant behavioral nuance. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose and output adequately. With output schema present, return format details are not needed. The behavioral instruction about key type adds useful context, though it could be clearer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100%. Baseline for 0 parameters is 4. Description adds no parameter information, which is appropriate since none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (check if Hyper3D Rodin integration is enabled) and the resource (Blender). Distinguishes from siblings like get_hunyuan3d_status by specifying the integration name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage (check status before using Hyper3D features), but no explicit when-to-use, when-not-to-use, or alternatives mentioned. Sibling tools exist for other integrations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_object_infoC
Get detailed information about a specific object in the Blender scene.
Parameters:
object_name: The name of the object to get information about
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states 'Get detailed information' without specifying what information is returned, side effects, or error conditions. The output schema exists but is not referenced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and to the point, but lacks structure (e.g., sections) and the parameter list is redundant with the schema. No wasted words, but could be better organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter and an output schema, the description is minimal. It does not explain what 'detailed information' entails, nor does it mention constraints like object existence. Slightly under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description repeats the parameter name and a trivial description ('The name of the object to get information about') that adds no value beyond the schema title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get detailed information' and the resource 'specific object in the Blender scene', distinguishing it from sibling like 'get_scene_info' which returns overall scene data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., get_scene_info) or any prerequisites. The description lacks any context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_polyhaven_categoriesB
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)
| Name | Required | Description | Default |
|---|---|---|---|
| asset_type | No | hdris |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as idempotency, authentication requirements, rate limits, or side effects. Since there are no annotations, the description carries full burden but only minimally describes the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded, with a clear statement followed by a parameter list. No extraneous information, though the parameter list could be integrated into the sentence for even greater conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description does not need to explain return values. However, it could mention that the output is a list of category names or structures. It partially compensates for zero schema coverage on parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning by listing possible values for the asset_type parameter (hdris, textures, models, all), which is not present in the schema. This helps the agent understand valid inputs beyond the default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a list of categories for a specific asset type on Polyhaven, using a specific verb ('Get') and resource ('list of categories'). It distinguishes from sibling tools like search_polyhaven_assets or download_polyhaven_asset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. It merely states what the tool does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_polyhaven_statusA
Check if PolyHaven integration is enabled in Blender. Returns a message indicating whether PolyHaven features are available.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It says 'Returns a message' but does not disclose potential side effects or permissions, though the tool is read-only. Adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no superfluous text. Front-loaded with purpose, then return value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No parameters, and output schema exists (though not shown). The description mentions the return message, which is sufficient for a simple status check. Minor gap: does not specify the message format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; schema coverage is 100% trivially. Per guidelines, 0 params baseline is 4. The description adds no param info because none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Check if PolyHaven integration is enabled in Blender', specifying a verb and resource. It distinguishes from sibling tools like download_polyhaven_asset and search_polyhaven_assets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no explicit guidance on when to use this tool vs alternatives. The context is implied (e.g., before downloading assets), but lacks exclusion criteria or alternative tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scene_infoA
Get detailed information about the current Blender scene
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. The verb 'Get' implies a read-only operation, but the description does not explicitly state that it does not modify the scene, nor does it mention failure modes or prerequisites (e.g., an active scene). It offers basic transparency but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler or redundant information. It is front-loaded with the action and resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters) and the existence of an output schema, the description is adequate to convey the core function. It could ideally mention that it returns information about the current scene, but that is already implicit in the wording, so it is complete enough for an agent to select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and the schema description coverage is 100% (trivially). The description correctly avoids explaining parameters. According to the rubric, 0 params gives a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get detailed information about the current Blender scene' clearly specifies the action ('get') and the resource ('detailed information about the current Blender scene'), and it distinguishes itself from sibling tool get_object_info by focusing on the scene level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of exclusions or references to sibling tools like get_object_info for object-level details, leaving usage context implicit.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does disclose the return value ('thumbnail as an Image') and implies a non-destructive preview via 'visually confirm'. However, it does not explicitly state that this is a read-only operation, whether it makes a network request, or how failures are surfaced. For a simple preview tool this is acceptable but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-organized: one sentence for purpose, one for usage, one clear parameter line, and one for the return value. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one required parameter, no output schema, and simple semantics. The description covers the purpose, the parameter source, and the return type. Missing details like error cases, licensing implications, or the fact that no model data is fetched are minor for a preview thumbnail tool, but would make it even stronger.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds crucial meaning to 'uid' by defining it as the unique Sketchfab model identifier and specifying its source (search_sketchfab_models). It stops short of giving format, example, or validation constraints, but for a single self-explanatory parameter this is solid.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('preview thumbnail of a Sketchfab model'), and identifies the input (UID). It clearly distinguishes its role from sibling tools like download_sketchfab_model by framing it as visual confirmation before downloading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs when to use the tool: 'Use this to visually confirm a model before downloading.' It also tells agents where the UID comes from (search_sketchfab_models), which is contextual guidance. It does not explicitly name alternatives or when-not-to-use cases, so it misses the top of the scale.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sketchfab_statusA
Check if Sketchfab integration is enabled in Blender. Returns a message indicating whether Sketchfab features are available.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full behavioral disclosure burden. It states 'returns a message' but does not specify safety (read-only), side effects, or what the message contains beyond indicating availability. This is insufficient for complete transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, no redundancy, and front-loads the key action. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, output schema exists), the description covers the essential purpose. It could optionally mention that calling this tool is safe and has no side effects, but the current version is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, schema coverage is trivially 100%, meeting the baseline of 4. The description does not need to add parameter details as none exist, so no value is lost.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's verb ('Check') and resource ('Sketchfab integration'), and it distinguishes from sibling tools like get_polyhaven_status which check other integrations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. It is implied that this tool is for Sketchfab status, but alternatives or prerequisites are not mentioned, leaving room for ambiguity in a complex scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_viewport_screenshotA
Capture a screenshot of the current Blender 3D viewport.
Parameters:
max_size: Maximum size in pixels for the largest dimension (default: 800)
Returns the screenshot as an Image.
| Name | Required | Description | Default |
|---|---|---|---|
| max_size | No |
TDQS
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 the basic behavior (captures viewport, returns an Image) but does not mention whether the scene is modified, what image format is used, or any viewport/display requirements. For a screenshot tool this is adequate but not deeply transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and well-structured: a one-sentence purpose, a compact parameter definition, and a return note. Every part earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description is nearly complete: it states what it captures, how max_size behaves, and that it returns an Image. Minor missing details like image format or whether overlays are included keep it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the single parameter. It does so effectively by explaining that max_size is 'Maximum size in pixels for the largest dimension' and noting the default. This adds meaning beyond the bare schema property.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear, specific verb and resource: 'Capture a screenshot of the current Blender 3D viewport.' This unambiguously identifies the tool's function and distinguishes it from the generation/status/polyhaven/sketchfab siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource: use this when an image of the current Blender viewport is needed. However, there is no explicit guidance about when not to use it or how it relates to alternatives, though no sibling tool appears to provide the same screenshot capability.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| task_uuid | No | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does the work: it states the prerequisite ('after the generation task is completed'), the mode-dependent parameter behavior, and that it returns a success/failure indicator. However, it does not disclose side effects on the scene, such as whether importing with an existing name replaces or adds an object, nor does it describe error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tightly structured: one sentence of purpose, a bullet-style parameter list, a prominent mutual-exclusivity warning, and a return statement. Every line adds needed operational information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter tool with no output schema, it covers the prerequisite, parameter meaning, mode-based selection, and return status. Minor gaps remain: the exact return type is not specified ('Return if...' could be read as 'whether' versus 'the asset'), and behavior when neither/both ID fields are supplied is only partially covered by the instruction.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% coverage for parameter descriptions, but the tool description fully documents all three parameters: name as the scene object name, task_uuid for MAIN_SITE mode, request_id for FAL_AI mode, plus the critical rule that exactly one of the two IDs should be provided based on mode.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and target: 'Import the asset generated by Hyper3D Rodin after the generation task is completed.' This clearly distinguishes the tool from the sibling import_generated_asset_hunyuan and from polling/status tools, so an agent knows exactly what this tool is for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage context: call after the generation task is completed, and choose task_uuid or request_id according to the Hyper3D Rodin mode (MAIN_SITE vs FAL_AI). It stops short of explicitly contrasting with alternative tools such as import_generated_asset_hunyuan, so it does not quite earn a 5.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| zip_file_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full transparency burden. It discloses the timing prerequisite and the return behavior ('Return if the asset has been imported successfully'), and the mutation is implied by 'import'. However, it does not mention failure modes, whether an existing object with the same name is overwritten, or any side effects on the current scene.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the main action, and uses a clear parameter list and return statement. Every sentence contributes; the only minor issue is slight redundancy between 'after the generation task is completed' and the parameter note about the generate step, but overall it is well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema or annotations, the description covers the core purpose, parameters, timing, and return value. It is missing explicit edge-case behavior (e.g., invalid zip_file_url, generation not finished, duplicate names) and does not clarify the exact return format, leaving moderate gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must provide meaning for both parameters, and it does: 'name' is clarified as the scene object name, and 'zip_file_url' is explicitly tied to the generate model step. This adds practical semantics beyond the bare schema titles, though the URL format could be more precise.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Import') and names the exact resource ('asset generated by Hunyuan3D after the generation task is completed'), which clearly distinguishes it from other generation/import tools. However, it does not explicitly contrast itself with the sibling 'import_generated_asset', leaving some ambiguity about which import variant to use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a clear precondition ('after the generation task is completed') and references the 'generate model step' for obtaining zip_file_url, which gives an agent a concrete workflow. It does not explicitly name alternatives or when not to use this tool, but for a focused import tool this is adequate context.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining behavior. It discloses the status values DONE and RUN, the ResultFile3Ds field on success, and the generated ZIP/OBJ path. The polling nature and 'only proceed if final' guidance are also transparent, though failure statuses remain vaguely described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is mostly clear and front-loaded, but it repeats the same DONE-result detail twice in slightly different wording ('If status is DONE, returns...' and 'When the status is DONE, the response includes...'). This redundancy weakens an otherwise reasonably sized description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter polling tool with no output schema, the description covers the essential context: the source of job_id, meaningful statuses, and what the successful response contains. It does not enumerate all possible failed states, but 'some failed state' is sufficient for the agent to know when to stop polling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description coverage for job_id, so the description's explanation that job_id comes from the generate model step adds necessary semantic meaning. It could be stronger by stating whether the parameter is required, but the source and usage are clear enough for a single-parameter polling tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks whether a Hunyuan3D generation task is completed and explains the relevant statuses. It does not explicitly differentiate itself from get_hunyuan3d_status, though the polling-focused wording and name provide some distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It indicates this is a polling API and tells the agent to proceed only when the status is final, which gives useful context. However, it does not describe when to prefer this tool over get_hunyuan3d_status or other status-checking siblings, nor does it state explicit exclusions.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_key | No | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that this is a polling API, explains expected status values, final versus in-progress states, and failure conditions. It does not cover error handling or whether the call blocks, but it provides substantial behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well organized with mode sections and bulleted parameters. The purpose is front-loaded, and each status and guideline is relevant. Minor redundancy in the polling warnings is acceptable given the two-mode structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-mode polling tool with no output schema and no annotations, the description covers the main behavioral contract: statuses, final states, and mode-specific inputs. It does not explain how to determine which mode applies or how to handle API errors, but it is largely complete for normal usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero description coverage, so the description compensates by explaining that subscription_key belongs to MAIN_SITE and request_id belongs to FAL_AI, and that both come from a previous generate step. It could add format or requiredness details, but it gives enough meaning to choose the right parameter per mode.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and resource: 'Check if the Hyper3D Rodin generation task is completed.' It also distinguishes the two Rodin modes, but does not explicitly differentiate this polling tool from the sibling get_hyper3d_status, so it stops short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives mode-specific instructions and explicitly states when to proceed based on final statuses ('Done', 'Canceled', 'COMPLETED', or failed states). It does not name alternative tools or when not to use this one, but the polling guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_polyhaven_assetsA
Search for assets on Polyhaven with optional filtering.
Parameters:
asset_type: Type of assets to search for (hdris, textures, models, all)
categories: Optional comma-separated list of categories to filter by
Returns a list of matching assets with basic information.
| Name | Required | Description | Default |
|---|---|---|---|
| asset_type | No | all | |
| categories | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states it returns a list with basic information but omits whether it is read-only, pagination behavior, or how invalid category strings are handled. The depth is insufficient for an agent to anticipate side effects or limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one line for purpose, a parameter list, and a one-line return description. Every sentence adds value, and there is no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (two optional parameters, no required fields) and the presence of an output schema, the description is minimally adequate. However, it lacks context about valid categories and does not mention that 'all' is a valid asset_type. For a complete understanding, an agent would benefit from a note about cross-referencing category tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains both parameters: 'asset_type' with allowed values (hdris, textures, models, all) and 'categories' as an optional comma-separated list. This adds meaningful context beyond the bare schema. However, it does not specify where valid category values come from (e.g., from 'get_polyhaven_categories').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search for assets on Polyhaven with optional filtering'. It identifies a specific verb ('search') and resource ('assets on Polyhaven'). Among sibling tools, only this and 'search_sketchfab_models' perform searches, and the description differentiates by naming Polyhaven.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'search_sketchfab_models' or 'get_polyhaven_categories'. The description does not indicate prerequisites, constraints, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| categories | No | ||
| count | No | ||
| downloadable | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 behavioral disclosure. It mentions that the tool returns a formatted list but does not explicitly state that it is a read-only/non-destructive operation, nor does it disclose rate limits, data source freshness, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using a clear list format for parameters and a short statement about the return value. It front-loads the main action and avoids unnecessary detail. A minor improvement would be to use markdown for better readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, 1 required) and the presence of an output schema, the description adequately covers the essentials. It explains parameters and the return format. However, it could mention sorting or pagination details for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description adds significant value by explaining each parameter's purpose: query (text to search), categories (comma-separated list), count (max results, default 20), downloadable (only downloadable models, default True). This compensates fully for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search for models on Sketchfab with optional filtering,' which is a specific verb+resource combination. It distinguishes itself from sibling tools like search_polyhaven_assets (different platform) and download_sketchfab_model (different action).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool over alternatives, mention prerequisites, or specify contexts where it is appropriate or inappropriate. It only describes the tool's functionality without usage boundaries.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| texture_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It notes that the tool returns a success/failure message but does not specify error conditions (e.g., missing object, invalid texture ID) or side effects. Some context is given via parameter descriptions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise—one sentence for the main action, two bullet points for parameters, and one sentence for return value. No wasted words, and the most important information (what it does) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema (as indicated in context signals), the description is mostly complete. It covers the action, required parameters, and return type. Minor gaps remain around error handling and prerequisites beyond 'downloaded,' but it's sufficient for a straightforward apply operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It fully explains both parameters: object_name as 'Name of the object to apply the texture to' and texture_id as 'ID of the Polyhaven texture to apply (must be downloaded first).' This adds significant meaning beyond the schema's type-only definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (apply), the resource (Polyhaven texture), and the target (object). It effectively distinguishes this tool from siblings like download_polyhaven_asset or search_polyhaven_assets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the texture must be 'previously downloaded,' implicitly guiding usage after download_polyhaven_asset. However, it does not explicitly state when not to use or list alternatives.
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.
22 tool updates
v0.1.0- First observed
download_polyhaven_asset - First observed
download_sketchfab_model - First observed
execute_blender_code - First observed
generate_hunyuan3d_model - First observed
generate_hyper3d_model_via_images - First observed
generate_hyper3d_model_via_text - First observed
get_hunyuan3d_status - First observed
get_hyper3d_status - First observed
get_object_info - First observed
get_polyhaven_categories - First observed
get_polyhaven_status - First observed
get_scene_info - First observed
get_sketchfab_model_preview - First observed
get_sketchfab_status - First observed
get_viewport_screenshot - First observed
import_generated_asset - First observed
import_generated_asset_hunyuan - First observed
poll_hunyuan_job_status - First observed
poll_rodin_job_status - First observed
search_polyhaven_assets - First observed
search_sketchfab_models - First observed
set_texture
TDQS
Scored across 22 tools
Most tools have distinct purposes: downloading from different sources, generating via different services, checking status, etc. Some potential confusion between generation tools (Hunyuan vs Hyper3D) and between search/download for different asset stores, but descriptions clarify the differences.
All tools follow a consistent verb_noun pattern in snake_case (e.g., download_polyhaven_asset, generate_hyper3d_model_via_text). No mixing of styles or irregular naming.
22 tools is on the high side, bordering on heavy for a single server, but still manageable given the integration of multiple asset services and generation pipelines. It exceeds the typical 3-15 range but doesn't feel excessive for the scope.
Covers the full lifecycle for asset integration: search, preview, download, generation, status polling, import, and texture application. Missing object manipulation, creation of primitives, or export, which are beyond its specialized focus.
Maintenance
Related MCP Connectors
Cloud Blender for AI agents: scenes, assets, renders, MP4, STL, GLB — over hosted remote MCP.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
MCP server for AI dialogue using various LLM models via AceDataCloud
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI agents to control Blender through natural language for 3D scene creation, animation, and rendering. It provides over 550 actions and direct Python execution via a bridge to a live local Blender session.6MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI clients to control Blender's 3D workflow via an embedded MCP server.328 PyPI36MIT
- AlicenseAqualityDmaintenanceMCP server for AI-assisted Blender automation, providing layered tools for perception, declarative and imperative writing, and fallback operations.2959 PyPI5MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants like Codex or ChatGPT to inspect and control a local Blender scene, including creating objects, editing materials, setting cameras and lights, rendering previews, and saving safe copies of .blend files.MIT