Skip to main content
Glama

Blender MCP

모든 LLM에 Blender 연결

AI 기반의 프롬프트 지원 3D 모델링, 씬 생성 및 조작.

PyPI Downloads PyPI Version License: MIT Discord

웹사이트 · 전체 튜토리얼 · Discord · 릴리스 · 후원하기

후원자

CodeRabbit Kevin Guanche Darias

모든 후원자: 이 프로젝트 후원하기


빠른 시작

세 단계: uv 설치, MCP 클라이언트를 서버에 연결, Blender 애드온 설치.

1. uv 설치

# macOS
brew install uv

# Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

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

경고: uv를 설치하기 전에는 진행하지 마세요. 공식 설치 프로그램을 사용하세요 — pip install uv아닙니다.

2. 클라이언트에 MCP 서버 추가

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

클라이언트별 지침과 원클릭 설치 버튼은 아래 MCP 클라이언트 설정을 참조하세요.

3. Blender 애드온 설치

uvx blender-mcp install-addon

그런 다음 Blender에서: 편집 → 기본 설정 → 애드온Interface: Blender MCP 활성화.

4. 연결

Blender의 3D 뷰포트에서 N을 누르고 → BlenderMCP 탭을 열고 → Start MCP Server를 클릭하세요. 끝입니다 — Claude에게 무언가를 만들라고 요청하세요.

참고: MCP 서버는 하나의 인스턴스만 실행하세요 (Cursor 또는 Claude Desktop 중 하나), 둘 다 실행하지 마세요.


Related MCP server: BlenderMCP

목차


기능

양방향 통신

소켓 기반 서버를 통해 Claude AI를 Blender에 연결

객체 조작

Blender에서 3D 객체 생성, 수정 및 삭제

재질 제어

재질과 색상 적용 및 수정

씬 검사

현재 Blender 씬에 대한 상세 정보 얻기

코드 실행

Claude에서 Blender로 임의의 Python 코드 실행

에셋 및 모델 생성

Poly Haven 에셋, Sketchfab 모델, Hyper3D Rodin 및 Hunyuan3D를 통한 AI 생성 3D 모델

구성 요소

시스템은 두 가지 주요 구성 요소로 구성됩니다:

  1. Blender 애드온 (addon.py) — 명령을 수신하고 실행하기 위해 Blender 내에 소켓 서버를 생성하는 Blender 애드온

  2. MCP 서버 (src/blender_mcp/server.py) — Model Context Protocol을 구현하고 Blender 애드온에 연결하는 Python 서버


설치

사전 요구 사항

  • Blender 3.0 이상

  • Python 3.10 이상

  • uv 패키지 관리자

macOS

brew install uv

Windows

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

그런 다음 Windows에서 uv를 사용자 경로에 추가하세요 (Claude Desktop을 다시 시작해야 할 수 있습니다):

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

Linux

curl -LsSf https://astral.sh/uv/install.sh | sh

~/.local/bin에 설치됩니다 — PATH에 반영되도록 새 셸을 여세요.

그 외의 설치 방법은 웹사이트를 참조하세요: uv 설치

모든 OS에서 uv의 위 공식 설치 프로그램을 사용하세요 — pip install uv가 아닙니다. pip install uvuvx 명령을 생성하지 않을 수 있고, 클라이언트가 볼 수 없는 환경에 uv를 숨길 수 있습니다.

경고: uv를 설치하기 전에는 진행하지 마세요.

클라이언트가 uvx를 찾도록 설정

GUI에서 시작된 MCP 클라이언트(Claude Desktop, Cursor, Dock/시작 메뉴의 VS Code)는 터미널의 PATH를 상속하지 않으므로, 단순한 "command": "uvx"는 터미널에서 uvx가 작동하더라도 spawn uvx ENOENT 오류로 실패할 수 있습니다. 이런 경우:

  • uvx의 전체 경로를 찾으세요 — which uvx (macOS/Linux) 또는 where uvx (Windows) — 그리고 이를 "command"로 사용하세요, 예: /opt/homebrew/bin/uvx 또는 C:\Users\<you>\.local\bin\uvx.exe.

  • Windows에서는 대신 래퍼를 사용할 수 있습니다: "command": "cmd", "args": ["/c", "uvx", "blender-mcp"].

  • PATH 또는 구성 변경 후에는 클라이언트를 완전히 종료하고 다시 시작하세요 (Windows: 창이 아닌 시스템 트레이에서 종료, macOS: Cmd+Q).

Python 버전 고정

conda / pyenv / 버전 충돌을 피하세요.

uv는 서버를 실행할 Python을 선택합니다. conda(자동 활성화된 base), pyenv 또는 asdf가 있는 머신에서 — 또는 일부 의존성이 아직 휠을 제공하지 않는 최신 CPython 릴리스가 있는 경우 — uv가 설치를 실패하게 만드는 인터프리터를 선택할 수 있습니다. Python 3.11을 고정하고 uv 관리 인터프리터를 선호하여 PATH에 있는 것을 사용하지 않도록 하세요:

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

--python 3.11은 이 패키지의 requires-python >=3.10을 여전히 충족하며, UV_PYTHON_PREFERENCE=only-managed는 uv가 conda, pyenv, asdf 또는 시스템 Python을 먼저 선택하지 않도록 합니다. (저장소의 .python-version은 기여자를 위한 힌트일 뿐이며 uvx에는 영향을 주지 않습니다.)

수정 후에도 이전의 실패한 시도가 계속 반복되면 캐시를 지우세요:

uv cache clean blender-mcp && uvx --refresh blender-mcp

uv 없이 설치

제한된 머신에서는 pipx로 uvx를 완전히 건너뛸 수 있습니다. 그런 다음 클라이언트를 설치된 명령에 연결하세요:

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

결과 절대 경로를 "command"로 사용하고(which blender-mcp / where blender-mcp로 찾기) args는 생략하세요.

환경 변수

다음 환경 변수를 사용하여 Blender 연결을 구성할 수 있습니다:

변수

기본값

설명

BLENDER_HOST

localhost

Blender 소켓 서버의 호스트 주소

BLENDER_PORT

9876

Blender 소켓 서버의 포트 번호

예시:

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

MCP 클라이언트 설정

Claude for Desktop

설정 안내 비디오 보기 (uv를 이미 설치했다고 가정)

**Claude → 설정 → 개발자 → 구성 편집 → claude_desktop_config.json**으로 이동하여 다음을 포함하세요:

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

Claude Code CLI를 사용하여 blender MCP 서버를 추가하세요:

claude mcp add blender uvx blender-mcp

Cursor

Install MCP Server

macOS설정 → MCP로 이동하여 다음을 붙여넣으세요:

  • 전역 서버로 사용하려면 "add new global MCP server" 버튼을 사용하여 붙여넣으세요

  • 프로젝트별 서버로 사용하려면 프로젝트 루트에 .cursor/mcp.json을 만들고 붙여넣으세요

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

Windows설정 → MCP → Add Server로 이동하여 다음 설정으로 새 서버를 추가하세요:

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

Cursor 설정 비디오

참고: MCP 서버는 하나의 인스턴스만 실행하세요 (Cursor 또는 Claude Desktop 중 하나), 둘 다 실행하지 마세요.

Visual Studio Code

사전 요구 사항: 계속하기 전에 Visual Studio Code가 설치되어 있는지 확인하세요.

Install in VS Code

OpenCode

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

Antigravity

{
  "mcpServers": {
    "blender-mcp": {
      "command": "uvx",
      "args": ["blender-mcp"],
      "env": {
        "BLENDER_HOST": "localhost",
        "BLENDER_PORT": "9876"
      }
    }
  }
}

Blender 애드온 설치

1. 권장 — 터미널에서 다음을 실행하세요:

uvx blender-mcp install-addon

이 명령은 애드온을 blender_mcp.py로 Blender 애드온 폴더에 복사합니다. 작성된 위치를 출력하고, 교체하는 파일의 .bak을 유지합니다.

선택 사항: uvx blender-mcp addon-paths는 감지된 Blender 애드온 폴더를 나열합니다. BLENDERMCP_ADDONS_DIR=/path/to/scripts/addons로 대상 폴더를 재정의하세요.

2. Blender 열기

3. 편집 → 기본 설정 → 애드온으로 이동

4. Interface: Blender MCP 활성화 ("Blender MCP" 검색). 아직 나타나지 않으면 **Install…**을 클릭하고 복사된 blender_mcp.py / addon.py를 선택하거나 Blender를 다시 시작하세요.

5. 수동 대안 — 위 명령이 Blender 설치를 찾지 못하거나 직접 수행하는 것을 선호하는 경우: 이 저장소에서 addon.py를 다운로드 → Blender에서 편집 → 기본 설정 → 애드온 → Install… → 다운로드한 addon.py 선택 → 활성화.

그런 다음 Blender 사이드바에서 BlenderMCP 탭을 열고(3D 뷰포트에서 N 누르기) Start MCP Server를 클릭하세요. 아래 연결 시작을 참조하세요.

업그레이드 (기존 사용자)

새 사용자는 빠른 시작으로 바로 가세요. 기존 사용자는 아래를 참조하세요.

1. 다음을 실행하여 애드온 파일을 업데이트하세요:

uvx blender-mcp install-addon
uvx blender-mcp addon-paths   # optional: list detected Blender addons folders

2. Blender에서: 기본 설정 → 애드온Interface: Blender MCP를 비활성화하고 다시 활성화하세요 (또는 Blender를 다시 시작), 그런 다음 Start MCP Server를 다시 클릭하세요.

3. 서버 패키지 자체를 새로 고쳐야 하는 경우 Claude에서 MCP 서버를 삭제하고 다시 추가하세요.

참고: MCP 서버는 자체적으로 Blender 애드온 파일을 수정하지 않습니다. 시작할 때 설치된 애드온이 번들 복사본보다 오래되었는지 확인하고 업데이트 방법을 로그로 기록합니다. 실제로 쓰는 것은 install-addon이며, 교체하는 파일의 .bak을 유지합니다. 궤적 캡처는 execute_code 폴백을 통해 이전에 로드된 애드온에서도 계속 작동합니다.


사용법

연결 시작

BlenderMCP in the sidebar

  1. Blender에서 3D 뷰 사이드바로 이동합니다(보이지 않으면 N 키를 누르세요).

  2. BlenderMCP 탭을 찾습니다.

  3. 사용하려는 체크박스를 켭니다(자세한 내용은 아래 Capabilities 참조).

  4. Connect to Claude를 클릭합니다.

  5. 터미널에서 MCP 서버가 실행 중인지 확인합니다.

Claude와 함께 사용하기

Claude에 구성 파일이 설정되고 Blender에서 애드온이 실행되면 Blender MCP용 도구가 있는 망치 아이콘이 표시됩니다.

BlenderMCP in the sidebar

Capabilities

  • 씬 및 오브젝트 정보 가져오기

  • 셰이프 생성, 삭제 및 수정

  • 오브젝트에 머티리얼 적용 또는 생성

  • Blender에서 모든 Python 코드 실행

  • Poly Haven을 통해 적합한 모델, 에셋 및 HDRI 다운로드

  • Sketchfab에서 모델 검색 및 다운로드

  • Hyper3D RodinHunyuan3D을 통한 AI 생성 3D 모델

예시 명령어

Claude에게 요청할 수 있는 작업의 몇 가지 예시는 다음과 같습니다:

프롬프트

데모

"용이 금 항아리를 지키는 던전에서 로우 폴리 씬을 만들어 줘"

Watch

"Poly Haven의 HDRI, 텍스처, 바위 및 식물 같은 모델을 사용해 비치 무드를 만들어 줘"

Watch

참조 이미지를 주고, 그 이미지로 Blender 씬을 만들어 줘

Watch

"현재 씬에 대한 정보를 가져와서 threejs 스케치를 만들어 줘"

Watch

"Hyper3D를 통해 정원 노움 3D 모델을 생성해 줘"

"이 차를 빨간색 메탈릭으로 만들어 줘"

"구를 만들고 큐브 위에 배치해 줘"

"조명을 스튜디오처럼 만들어 줘"

"카메라를 씬을 향하게 하고 아이소메트릭으로 만들어 줘"


영구 API 자격 증명

BlenderMCP는 Blender 애드온 환경설정을 통한 영구 자격 증명을 지원합니다:

Edit → Preferences → Add-ons → Blender MCP

Blender를 다시 시작해도 유지되도록 다음 값을 여기에 저장할 수 있습니다:

  • Sketchfab API Key

  • Hyper3D API Key

  • Hunyuan3D SecretId / SecretKey

  • Hunyuan3D API URL

헤드리스 설정이나 CI의 경우 환경 변수로도 자격 증명을 주입할 수 있습니다:

변수

BLENDERMCP_SKETCHFAB_API_KEY

BLENDERMCP_HYPER3D_API_KEY

BLENDERMCP_HUNYUAN3D_SECRET_ID

BLENDERMCP_HUNYUAN3D_SECRET_KEY

BLENDERMCP_HUNYUAN3D_API_URL


문제 해결

문제

해결 방법

연결 문제

Blender 애드온 서버가 실행 중이고 MCP 서버가 Claude에 구성되어 있는지 확인하세요. 터미널에서 uvx 명령을 실행하지 마세요. 때로는 첫 번째 명령이 전달되지 않을 수 있지만, 그 후에는 작동하기 시작합니다.

시간 초과 오류

요청을 단순화하거나 더 작은 단계로 나누어 보세요.

Poly Haven 통합

Claude는 때때로 동작이 불안정할 수 있습니다.

껐다 켜보셨나요?

여전히 연결 오류가 발생한다면 Claude와 Blender 서버를 모두 다시 시작해 보세요.

기술 세부 사항

통신 프로토콜

이 시스템은 TCP 소켓을 통한 간단한 JSON 기반 프로토콜을 사용합니다:

  • 명령type과 선택적 params가 있는 JSON 객체로 전송됩니다.

  • 응답statusresult 또는 message가 있는 JSON 객체입니다.

제한 사항 및 보안 고려 사항

경고: execute_blender_code 도구는 Blender에서 임의의 Python 코드를 실행할 수 있게 해주며, 강력하지만 잠재적으로 위험할 수 있습니다. 프로덕션 환경에서 주의해서 사용하세요. 사용하기 전에 항상 작업을 저장하세요.

  • Poly Haven은 모델, 텍스처 및 HDRI 이미지를 다운로드해야 합니다. 사용하지 않으려면 Blender의 체크박스에서 꺼 주세요.

  • 복잡한 작업은 더 작은 단계로 나누어야 할 수 있습니다.

텔레메트리 제어

BlenderMCP는 도구 개선을 돕기 위해 익명 사용 데이터를 수집합니다. 텔레메트리 동의는 기본적으로 켜져 있으며, 두 가지 방법으로 끌 수 있습니다:

1. Blender에서Edit → Preferences → Add-ons → Blender MCP로 이동하여 텔레메트리 동의 체크박스를 해제하세요.

  • 동의함(체크됨, 기본값): 수집되는 데이터에 대한 자세한 내용은 TnC를 확인하세요.

2. 환경 변수 — 다음을 실행하여 모든 텔레메트리를 완전히 비활성화합니다:

DISABLE_TELEMETRY=true uvx blender-mcp

또는 MCP 구성에 추가합니다:

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

텔레메트리 데이터는 이름이나 계정과 연결되지 않습니다. BlenderMCP 개선, 연구 및 AI 모델 훈련에 사용될 수 있습니다.

수집되는 내용과 텔레메트리를 켠 상태로 두면 부여하는 라이선스에 대한 전체 세부 정보는 TERMS_AND_CONDITIONS.md에 있습니다.


피드백

우리는 Blender MCP에 대한 피드백을 적극적으로 찾고 있습니다. 의견이 있으시면 여기에서 공유해 주세요.

더 자세한 피드백이 있다면 여기에서 통화를 예약할 수 있습니다 — 프로젝트에서 여러분을 표시해 드리겠습니다.

커뮤니티 참여

피드백을 제공하고, 영감을 얻고, MCP 위에 구축하세요: Discord

기여

기여는 언제나 환영합니다! 자유롭게 Pull Request를 제출해 주세요.

면책 조항

이것은 타사 통합이며 Blender가 만든 것이 아닙니다. Siddharth가 만들었습니다.


Star History

Blender MCP가 유용하다면, 저장소에 스타를 남겨 주세요

Available Tools

21 tools
download_polyhaven_assetA

Download and import a Polyhaven asset into Blender.

Parameters:

  • asset_id: The ID of the asset to download

  • asset_type: The type of asset (hdris, textures, models)

  • resolution: The resolution to download (e.g., 1k, 2k, 4k)

  • file_format: Optional file format (e.g., hdr, exr for HDRIs; jpg, png for textures; gltf, fbx for models)

Returns a message indicating success or failure.

ParametersJSON Schema
NameRequiredDescriptionDefault
asset_idYes
asset_typeYes
resolutionNo1k
file_formatNo

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. It does state that the tool downloads and imports into Blender and returns a success/failure message. However, it does not disclose side effects like modifying the current Blender scene, network requirements, or whether the operation could overwrite existing objects. This is adequate but leaves gaps.

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

Conciseness4/5

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

The description is well-structured: a one-sentence purpose, a concise parameter block with examples, and a return-value note. It is front-loaded and every line adds value given the schema has no descriptions. The parameter list is slightly long but justified by the lack of schema documentation.

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

Completeness3/5

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

All parameters are covered and the return behavior is stated, which is good for a tool with no output schema. However, the description omits useful context such as where asset_id comes from, whether the import modifies the existing scene, and any dependency on Blender being open. Given no annotations and no output schema, this is a clear gap.

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

Parameters4/5

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

The input schema has 0% description coverage, so the parameter list in the description is the primary source of semantic information. It provides meaningful examples and allowed values for asset_type, resolution, and file_format, including asset-type-specific formats. Asset_id is under-specified (only 'The ID of the asset to download'), but the overall parameter documentation compensates well for 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 opens with a specific verb and resource: 'Download and import a Polyhaven asset into Blender.' This clearly distinguishes the tool from siblings like search_polyhaven_assets (searching) and download_sketchfab_model (different source platform). No ambiguity about what this tool does.

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

Usage Guidelines3/5

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

The description makes it clear this is for Polyhaven assets, which implies when to use it versus Sketchfab or Hunyuan tools. However, it does not explicitly state when to prefer this over search_polyhaven_assets or set_texture, nor does it mention preconditions such as needing an asset_id from a prior search. Usage context is present but only implied.

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.

Parameters:

  • uid: The unique identifier of the Sketchfab model

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

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description only mentions return type (message) and prerequisites. It does not disclose side effects (e.g., scene modification), idempotency, rate limits, or error handling beyond success/failure.

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

Conciseness4/5

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

Description is short and presents action first, then parameter and return. It could group the prerequisite line more efficiently, but overall is well-structured and not verbose.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema, description covers the basic action and prerequisites but lacks usage guidance and behavioral context, making it minimally complete.

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?

Coverage is 0%, so description must compensate. However, it merely restates 'uid: The unique identifier of the Sketchfab model' from the schema without adding format, examples, or constraints.

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

Purpose5/5

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

The description clearly states it downloads and imports a Sketchfab model by UID, distinguishing it 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.

Usage Guidelines4/5

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

Specifies prerequisites (model must be downloadable, proper access rights) and return value, but does not explicitly mention when to use this tool over alternatives or that the UID likely comes from search_sketchfab_models.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the burden falls on the description. It does disclose that the tool can run arbitrary Python code, which implies broad power and risk, and the 'step-by-step' warning hints that long or complex executions need caution. However, it does not mention possible destructive scene mutations, absence of undo, execution limits, or error behavior, so the disclosure is only partially complete.

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

Conciseness4/5

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

The description is short and front-loaded with the core purpose. The step-by-step instruction is useful, and the parameter note is simple. The phrase 'step-by-step by breaking it into smaller chunks' is slightly redundant, but overall the text is efficient and easy to scan.

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

Completeness2/5

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

For an arbitrary code execution tool with no annotations and no output schema, the description leaves important gaps: there is no indication of what the tool returns, how failures surface, what Python objects are available in scope, or whether the execution mutates the Blender scene permanently. The minimal description does not give an agent enough context to safely and correctly invoke this powerful tool in varied situations.

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. The line 'code: The Python code to execute' adds only marginally more than the schema property title 'Code' and the tool name itself. It does not explain expected code environment details such as whether Blender's bpy module is pre-imported, how results or errors are returned, or whether there are execution limits.

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 a specific action and resource: 'Execute arbitrary Python code in Blender.' The word 'arbitrary' signals this is a general-purpose escape hatch, and no sibling tool has the same role, so an agent can immediately distinguish it from the other scene, asset, and model-generation tools.

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

Usage Guidelines2/5

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

There is no guidance on when to prefer this tool over the many specialized sibling tools. The instruction to break work into smaller chunks is about how to structure execution, not about choosing this tool over alternatives. The only implied guidance is that 'arbitrary' means it can be used for tasks the other tools don't cover, but that is not made explicit.

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
input_image_urlNo

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries full behavioral burden and does well: it discloses asynchronous job submission via job_id, eventual DONE status meaning the model has been imported, error returns, and built-in materials. Could mention scene impact, but key behavior is covered.

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

Conciseness5/5

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

Well-structured with front-loaded purpose, a compact Parameters section, and a Returns section. Every sentence adds value with no filler or repetition.

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

Completeness4/5

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

Provides enough context for a generation-and-import workflow: inputs, async behavior, success condition, and error handling. It does not explicitly point to poll_hunyuan_job_status for status checking, but the job_id and DONE status make the flow inferable.

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%, but the description fully compensates by defining text_prompt as an optional short English/Chinese description and input_image_url as an optional local/remote URL that accepts None. It also clarifies the relationship between the two: either text, image, or both.

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

Purpose5/5

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

States a specific action, resource, and method: generate a 3D asset using Hunyuan3D from text, image, or both, and import it into Blender. This distinguishes it from sibling generation tools like generate_hyper3d_model_via_text/images and from standalone 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?

Clearly indicates when to use the tool (Hunyuan3D generation with auto-import) and how to choose inputs (text, image, or both). It does not explicitly name sibling alternatives or state when-not-to-use, but the context is clear enough for selection.

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

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It usefully mentions built-in materials, normalized sizing that may require re-scaling, that the asset is imported into Blender, and that a success/failure message is returned. However, it does not disclose whether generation is asynchronous, whether a job ID is produced, or what side effects occur beyond the import, which could be significant for an agent deciding how to proceed.

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 clear one-line purpose, a few meaningful behavioral notes, and a bullet-like parameter section. Every sentence adds value without redundancy, and the most important invocation constraints are placed prominently.

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 key parameters and gives relevant behavioral context, but it does not explain how an agent can determine the current Hyper3D Rodin mode, what image requirements exist, or what the success/failure message contains. Since there is no output schema and sibling polling tools exist, the lack of async/job details leaves some ambiguity for correct 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 input schema has 0% description coverage, so the description fully compensates. It explains that input_image_paths must be absolute paths, that single values must still be wrapped in a list, that the three-element bbox_condition controls Length/Width/Height ratio, and that the two input parameters are mutually exclusive based on the current mode. This is strong parameter-level guidance.

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 and resource: 'Generate 3D asset using Hyper3D by giving images' and 'import the generated asset into Blender.' It clearly distinguishes itself from the sibling text-based generation tool by emphasizing image input, so an agent can identify when this tool is relevant.

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 concrete guidance on parameter selection: input_image_paths is for MAIN_SITE mode, input_image_urls is for FAL_AI mode, and exactly one must be provided. It does not explicitly name alternative generation tools or state when not to use this tool, but the image-vs-text distinction is clear enough to infer the primary use case.

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

generate_hyper3d_model_via_textA

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

Parameters:

  • text_prompt: A short description of the desired model in English.

  • bbox_condition: Optional. If given, it has to be a list of floats of length 3. Controls the ratio between [Length, Width, Height] of the model.

Returns a message indicating success or failure.

ParametersJSON Schema
NameRequiredDescriptionDefault
text_promptYes
bbox_conditionNo

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by disclosing that the tool imports the asset into Blender, that materials are built-in, that the model size is normalized and may need rescaling, and that it returns a success/failure message. It does not mention whether generation is asynchronous, whether it blocks, or how the imported object can be referenced afterward, but it provides substantial useful behavior context.

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

Conciseness5/5

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

The description is compact and well-structured: purpose and side effect first, then relevant model characteristics, then parameter details, then return value. Every sentence adds information, and there is no redundant restatement of schema fields or filler.

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

Completeness4/5

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

For a two-parameter tool with no annotations and no output schema, the description is nearly complete. It covers input semantics, generated asset characteristics, the Blender import side effect, and the return message. Minor gaps are lack of clarification about asynchronous behavior and how the agent can locate or reference the imported asset after success.

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

Parameters4/5

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

Schema description coverage is 0%, so the description's parameter notes are essential. It explains that text_prompt must be a short English description, and that bbox_condition is optional, must be a list of floats of length 3, and controls the Length/Width/Height ratio. This adds meaningful semantic detail beyond the raw schema, though ranges or a more precise ratio explanation would strengthen it further.

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'), the specific service (Hyper3D), the input mode (description/text), and the side effect (import into Blender). It also adds useful purpose details: built-in materials and normalized size. This clearly distinguishes it from image-based generation like generate_hyper3d_model_via_images, even though that sibling is not named.

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

Usage Guidelines3/5

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

The description implies when to use the tool: when you have a textual description of a 3D asset and want it generated and imported into Blender. However, it does not explicitly contrast with generate_hyper3d_model_via_images, import_generated_asset, or the other generation tools. No when-not-to-use guidance or alternative selection criteria are provided.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose that the tool returns a message about Hunyuan3D feature availability, but it does not explain the message format, the meaning of 'key type,' or any side effects/auth requirements. The instruction to 'silently remember it' is ambiguous.

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 short and the core purpose is front-loaded. However, the first two sentences are somewhat redundant ('Check if enabled' vs 'Returns message indicating whether available'), and the final sentence about not emphasizing the key type is unclear and may confuse rather than help.

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

Completeness4/5

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

For a zero-parameter status check with no output schema, the description gives enough to invoke the tool correctly: it checks Hunyuan3D integration and returns an availability message. The incomplete area is the vague 'key type' mention, but the low complexity keeps the gap minor.

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

Parameters4/5

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

The tool has zero parameters and the empty input schema covers 100% of the parameter space. With no params, the description does not need to add param semantics beyond the baseline.

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 and resource: 'Check if Hunyuan3D integration is enabled in Blender.' It also specifies the return value as a message about feature availability. This clearly differentiates it from sibling status tools such as get_hyper3d_status and get_sketchfab_status by naming the Hunyuan3D integration.

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 use case is implied from the description: call it when you need to know whether Hunyuan3D is enabled. However, it does not explicitly mention alternatives or provide when-not-to-use guidance, relying on sibling names to distinguish which status tool to pick.

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

get_hyper3d_statusA

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/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 carry the behavioral burden. It does disclose that the tool returns a status message and includes an unusual instruction about not emphasizing the 'key type' and silently remembering it. However, 'key type' is undefined, and the description does not explicitly confirm the operation is read-only or mention any prerequisites or side effects.

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

Conciseness3/5

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

The first two sentences are concise and front-loaded with the core purpose and return behavior. The third sentence about the 'key type' is short but confusing, contains a typo ('sliently'), and is not clearly connected to the rest of the description, preventing a higher score.

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 zero-parameter status tool with no output schema, the description gives the essential high-level behavior: it checks integration availability and returns a message. Still, the meaning of 'key type' is unexplained and no guidance is offered about what the agent should do with that remembered information, leaving some context incomplete.

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

Parameters4/5

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

The tool has zero parameters, so the schema already provides complete parameter information. The description adds no parameter details, but none are needed; this matches the baseline of 4 for tools with no parameters.

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

Purpose5/5

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

The description states a specific action ('Check if Hyper3D Rodin integration is enabled'), a specific resource ('in Blender'), and the expected result ('Returns a message indicating whether Hyper3D Rodin features are available'). This clearly distinguishes it from sibling tools like get_sketchfab_status and get_hunyuan3d_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 intended use is reasonably clear from the tool name and the phrase 'Hyper3D Rodin integration', and sibling tools imply alternatives for other services. However, there is no explicit guidance about when to prefer this tool over siblings or exclusions, so the usage guidance remains mostly 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_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

ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description is the only source for behavior. 'Get' implies a read-only operation, which is helpful, but there is no disclosure about errors, missing objects, or what 'detailed information' includes. This is adequate but leaves room for surprise.

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

Conciseness4/5

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

The description is short and front-loaded with the core purpose, and the parameter note earns its place given the schema's lack of documentation. The parameter list is slightly redundant with the schema, but it does not waste 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 one-parameter tool, the description provides the essential calling information and a clear purpose. However, with no output schema, it does not clarify what 'detailed information' returns, leaving an agent without expectations about the response contents.

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

Parameters4/5

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

The input schema provides only the parameter name with no description (0% coverage), but the tool description adds a functional definition: 'object_name: The name of the object to get information about'. This meaningfully clarifies the sole parameter, though it does not address exact-name matching or behavior for nonexistent objects.

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', the resource 'detailed information', and the specific scope 'specific object in the Blender scene'. It distinguishes this from scene-level tools like get_scene_info, though it does not explicitly name or contrast siblings.

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 about when to use this tool versus alternatives. Sibling tools like execute_blender_code or get_scene_info could overlap, but the description provides no exclusions or contextual selection criteria.

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

get_polyhaven_categoriesA

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

Parameters:

  • asset_type: The type of asset to get categories for (hdris, textures, models, all)

ParametersJSON Schema
NameRequiredDescriptionDefault
asset_typeNohdris

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It accurately signals a read-only operation ('Get a list'), but it does not disclose return format, network dependency, or error behavior. For a simple list operation this is adequate but not rich.

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

Conciseness4/5

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

The description is compact, with the core action front-loaded and a structured parameter list. However, the parameter list partially duplicates the schema, even though it adds the allowed values.

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

Completeness4/5

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

With one optional parameter and no output schema, the description covers the main semantic need: what categories are for and the allowed asset types. It lacks an explicit return-format note, but 'list of categories' implies an array of names. Minor gap: no statement about the default when asset_type is omitted, though the schema covers this.

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's Parameters section provides the accepted values for asset_type (hdris, textures, models, all), which the schema omits. This adds critical meaning beyond the schema's bare string type and default.

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

Purpose5/5

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

The description states 'Get a list of categories for a specific asset type on Polyhaven' – a precise verb+resource. This clearly distinguishes it from siblings like search_polyhaven_assets, download_polyhaven_asset, and get_polyhaven_status, which concern asset search, download, and service 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?

No guidance on when to use this tool versus alternatives. It does not specify a workflow (e.g., fetch categories before searching assets) or any exclusions. The parameter list is not usage guidance.

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

get_polyhaven_statusA

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It states the tool 'returns a message' about feature availability, which implies a read-only status query, but it does not disclose whether it queries Blender state or makes network calls, nor possible errors. The non-mutating nature is inferred from 'Check' rather than stated.

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

Conciseness5/5

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

Two short sentences with no filler. The primary action is front-loaded, and the return behavior is separated in the second sentence.

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

Completeness4/5

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

For a zero-parameter status check, the description provides the essential purpose and return information. It lacks an explicit statement of the message format or error behavior, and no output schema compensates, so it is not fully specified.

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

Parameters4/5

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

The tool has zero parameters, so there is nothing to document. The baseline of 4 applies because schema coverage is complete and the description correctly says nothing about parameters.

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

Purpose5/5

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

The description uses the specific verb 'Check' with the resource 'PolyHaven integration in Blender', making the operation immediately clear. It names PolyHaven, distinguishing it from sibling status tools like get_sketchfab_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 Guidelines3/5

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

The description implies the tool is a capability check but gives no explicit guidance on when to invoke it or when to prefer a sibling status tool. There is no mention of using it before PolyHaven asset operations or an alternative. This is acceptable but relies on inference.

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

get_scene_infoB

Get detailed information about the current Blender scene

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description must carry the full behavioral burden. 'Get' weakly implies a read-only operation, but it does not disclose what 'detailed information' contains, whether it errors under certain conditions, or whether it requires a valid Blender context. It provides very little beyond the tool name itself.

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

Conciseness5/5

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

A single clear sentence with no filler or redundancy. The key components—verb, resource, and scope—are all present and front-loaded. Nothing extra needs to be trimmed.

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

Completeness2/5

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

This is a zero-parameter tool with no annotations and no output schema, so the description is the only source of behavioral and return-value information. Saying only 'detailed information' leaves the agent uncertain about what fields or values will be returned, making the definition incomplete for a tool that provides scene info.

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 is empty, so there are no parameters to document. With a parameter count of 0, the baseline of 4 is appropriate because no parameter meaning needs to be added by the description.

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

Purpose4/5

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

The description states a clear verb ('Get') and resource ('current Blender scene'), making the basic purpose understandable. However, 'detailed information' is vague about exactly what scene data is included, and it does not explicitly differentiate from get_object_info, though scene vs. object is an implied distinction.

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 context is implied: use this when you need detailed scene-level information. But there is no guidance on when not to use it, no mention of alternatives like get_object_info, and no prerequisites such as requiring an open Blender scene or active session.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral transparency burden. It does communicate a non-mutating status check and a message return, but it does not state whether the check is local-only or queries Sketchfab, nor any side-effect or error behavior. This is adequate but not rich.

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

Conciseness5/5

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

Two short sentences, front-loaded with the purpose and followed by the return behavior. No filler or duplication beyond a mild redundancy between 'enabled' and 'available'.

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

Completeness4/5

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

For a zero-parameter status check with no output schema, the description covers the essential aspects: what is checked and what the caller receives. It could be more specific about the exact structure/form of the returned message, but nothing critical is missing.

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

Parameters4/5

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

The tool has zero parameters, so there is nothing for the description to document. The schema already covers 100% of the empty parameter surface, earning the zero-parameter baseline of 4.

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

Purpose5/5

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

The description uses a specific verb ('Check') and resource ('Sketchfab integration in Blender'), and clarifies the outcome ('Returns a message indicating whether Sketchfab features are available'). It is unambiguous and distinguishable from sibling status tools for other integrations by naming the exact integration.

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?

Usage context is implied: an agent would call this when it needs to know whether Sketchfab is available in Blender. However, there is no explicit guidance about when not to use it, nor any comparison with sibling status tools like get_hyper3d_status or get_polyhaven_status.

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

get_viewport_screenshotA

Capture a screenshot of the current Blender 3D viewport.

Parameters:

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

Returns the screenshot as an Image.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_sizeNo

TDQS

A4/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 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.

Conciseness5/5

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.

Completeness4/5

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

For a simple tool with one 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.

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate 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.

Purpose5/5

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.

Usage Guidelines3/5

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.

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, 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

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 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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
zip_file_urlYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full 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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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

Schema description coverage is 0%, so the description must 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.

Purpose4/5

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.

Usage Guidelines4/5

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).
ParametersJSON Schema
NameRequiredDescriptionDefault
job_idNo

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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

The description clearly states the tool checks 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.

Usage Guidelines3/5

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).
ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_keyNo
request_idNo

TDQS

A4.1/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 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
asset_typeNoall
categoriesNo

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 of behavioral disclosure. It correctly conveys a read-only search operation and states that it 'Returns a list of matching assets with basic information', which is useful context. However, it does not mention pagination, result limits, required authentication, or that actual asset files are not downloaded by this tool.

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

Conciseness5/5

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

The description is compact and front-loaded with the core purpose. The parameter list is minimal and useful, and the return statement is a single line. No redundant prose or filler exists.

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 search tool with only two optional parameters and no output schema, the description covers the basic call contract. However, 'basic information' is vague about the exact return fields, and it does not tell the agent that valid category values can be obtained from get_polyhaven_categories. These are notable gaps given there is no output schema.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It does so well by documenting asset_type with its allowed values (hdris, textures, models, all) and categories as an 'optional comma-separated list'. This adds real meaning beyond the bare schema property 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 opens with a specific verb and resource: 'Search for assets on Polyhaven'. Combined with the asset_type values (hdris, textures, models, all), it clearly distinguishes this tool from sibling search tools like search_sketchfab_models and from download/category tools.

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

Usage Guidelines3/5

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

The description implies the tool should be used when the agent needs to discover Polyhaven assets, and it mentions optional filtering. However, it does not explicitly contrast with siblings such as get_polyhaven_categories or download_polyhaven_asset, nor does it 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.

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
queryYes
categoriesNo
countNo
downloadableNo

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It mentions that the tool returns a formatted list of matching models, which is helpful, but it does not disclose whether it calls an external API, potential rate limits, pagination behavior, or error conditions. The read-only nature is implied by 'search' but not made explicit.

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 clean bullet-style parameter list. Every sentence adds value and there is no redundant or filler content.

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

Completeness3/5

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

The parameter documentation is complete, but the return value is only described as a 'formatted list', which is vague given that no output schema exists. Missing details include what fields each model entry contains, how categories combine, and what happens on errors or empty results. It is adequate for a basic search tool, but not fully 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 description coverage is 0%, but the description compensates fully by explaining every parameter: query text, comma-separated categories, maximum result count, and downloadable filtering. This goes well beyond the bare schema definitions and gives the agent actionable meaning.

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

Purpose4/5

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

The description clearly states the action ('Search for models on Sketchfab') and the resource, making the tool's purpose immediately understandable. It does not explicitly contrast itself with sibling tools, but the verb 'search' naturally distinguishes it from download, preview, and status 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?

The opening sentence gives clear context for when to use the tool: to search Sketchfab for models. It does not provide explicit exclusions or alternatives, but the sibling tool names make it evident that this is the search step before downloading or previewing.

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
object_nameYes
texture_idYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It discloses the prerequisite of a prior download and states that the tool returns a success/failure message. However, it does not explain what happens on failure, whether existing textures are replaced, or whether the object must exist, leaving moderate behavioral gaps.

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

Conciseness5/5

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

The description is compact, front-loaded with the main purpose, and structured cleanly into purpose, parameters, and return behavior. There is no filler or redundant content beyond what is needed given the 0% schema coverage.

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 two-string-parameter tool, the description covers the essential inputs, the prerequisite, and the return behavior. It could be slightly more complete by noting that the object must exist or that the operation may overwrite the object's current texture, but the core invocation context is present.

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 must fully define the parameters. It does exactly that: object_name is the target object and texture_id is the already-downloaded Polyhaven texture ID. This adds the necessary meaning that the bare schema property names omit.

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

Purpose5/5

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

The description starts with a specific verb-plus-resource statement: 'Apply a previously downloaded Polyhaven texture to an object.' The 'previously downloaded' qualifier clearly distinguishes this from the sibling download_polyhaven_asset and makes the scope of the tool immediately clear.

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

Usage Guidelines4/5

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

The description gives a clear usage condition: the texture 'must be downloaded first.' This implies the correct sequence with download_polyhaven_asset, but it does not explicitly name that sibling or state when not to use this tool, so it falls just short of full alternative routing guidance.

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

Tool Schema Changelog

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

  1. 4 tool updatesv1.0.0
    • Addedgenerate_hunyuan3d_model
    • Addedget_hunyuan3d_status
    • Addedimport_generated_asset_hunyuan
    • Addedpoll_hunyuan_job_status
  2. 17 tool updates
    • First observeddownload_polyhaven_asset
    • First observeddownload_sketchfab_model
    • First observedexecute_blender_code
    • First observedgenerate_hyper3d_model_via_images
    • First observedgenerate_hyper3d_model_via_text
    • First observedget_hyper3d_status
    • First observedget_object_info
    • First observedget_polyhaven_categories
    • First observedget_polyhaven_status
    • First observedget_scene_info
    • First observedget_sketchfab_status
    • First observedget_viewport_screenshot
    • First observedimport_generated_asset
    • First observedpoll_rodin_job_status
    • First observedsearch_polyhaven_assets
    • First observedsearch_sketchfab_models
    • First observedset_texture

TDQS

B3.3/5.0

Scored across 21 tools

Disambiguation3/5

The tool set has clear thematic grouping (download, generate, status check, import, poll, search, scene operations), but there is notable overlap within groups. For example, generate_hunyuan3d_model, generate_hyper3d_model_via_images, and generate_hyper3d_model_via_text all generate 3D assets via different methods, which could cause confusion. Similarly, import_generated_asset and import_generated_asset_hunyuan serve similar purposes for different backends. Descriptions help differentiate, but the boundaries are not perfectly distinct.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (e.g., download_polyhaven_asset, get_scene_info, search_sketchfab_models), with clear and descriptive names. However, there are minor deviations: execute_blender_code uses 'execute' instead of a more specific verb like 'run', and set_texture is a simple verb_noun without a prefix, slightly breaking the pattern. Overall, the naming is highly consistent and predictable.

Tool Count3/5

With 21 tools, the count is on the higher side for a Blender integration server, bordering on heavy. While the tools cover multiple functionalities (asset downloading, 3D generation, status checks, scene management), it might feel overwhelming or redundant, such as having separate status and polling tools for each backend. A more streamlined set could improve usability without losing core capabilities.

Completeness4/5

The tool surface comprehensively covers the domain of Blender asset management and scene manipulation, including downloading from sources (Polyhaven, Sketchfab), generating 3D assets (Hunyuan3D, Hyper3D), checking statuses, importing assets, polling jobs, searching, and scene info. Minor gaps exist, such as no direct tools for modifying objects or scenes beyond applying textures, but agents can work around this using execute_blender_code. Overall, it supports core workflows effectively.

Maintenance

ActivityActive
ResponsivenessWithin a week

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