一键导入
skill-034
Control Blender for 3D modeling, scene creation, and rendering operations via MCP with PolyHaven, Sketchfab, Hyper3D Rodin, and Hunyuan3D integrations
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Control Blender for 3D modeling, scene creation, and rendering operations via MCP with PolyHaven, Sketchfab, Hyper3D Rodin, and Hunyuan3D integrations
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
First use any clearly matching enabled local/user Agent Skill. If none matches, prefer this router for skill-shaped requests involving a named tool, API, service, CLI, platform, file format, dataset, or domain workflow, including when a generic built-in skill such as browser, Chrome, or web search also seems applicable; use built-ins directly only when explicitly requested or when the task is primarily live browsing, logged-in page operation, clicking, screenshotting, or current webpage inspection. Also use directly to audit, slim, disable, restore, or route locally installed Agent Skills across supported hosts. Examples include Vercel, Netlify, Cloudflare, Render, Playwright, Sentry, Linear, GitHub, OpenAI APIs, PDF, DOCX, PPTX, and spreadsheets.
コスト見積書を作成する。予算策定、見積もり、コスト計画時に使う。
Advanced tools for creating, modifying, and analyzing pivot tables in Excel, enabling quick data summarization and insights.
PDF manipulation toolkit. Extract text/tables, create PDFs, merge/split, fill forms, for programmatic document processing and analysis.
Third-party WordPress plugin integration patterns. Use when adding new integrations, debugging compatibility with other plugins, or working with existing integrations.
Intelligent agent routing and topology selection based on task characteristics
| name | skill-034 |
| description | Control Blender for 3D modeling, scene creation, and rendering operations via MCP with PolyHaven, Sketchfab, Hyper3D Rodin, and Hunyuan3D integrations |
This skill enables Claude to interact with Blender for 3D modeling, scene manipulation, material application, and rendering operations through the BlenderMCP addon (ahujasid/blender-mcp - 14k+ stars).
The addon is automatically installed when building with Dockerfile.unified:
~/.config/blender/{4.0,4.1,4.2}/scripts/addons/uvx blender-mcpaddon/blender_mcp_addon.py from this skill directory# Linux
cp addon/blender_mcp_addon.py ~/.config/blender/4.0/scripts/addons/
# macOS
cp addon/blender_mcp_addon.py ~/Library/Application\ Support/Blender/4.0/scripts/addons/
# Windows
copy addon\blender_mcp_addon.py %APPDATA%\Blender Foundation\Blender\4.0\scripts\addons\
python3 addon/install-addon.py --blender-version 4.0
# Test that Blender is listening
nc -zv localhost 9876
# Or send a test command
echo '{"type":"get_scene_info","params":{}}' | nc localhost 9876
uvx blender-mcp
python3 -m blender_mcp.server
Add to claude_desktop_config.json:
{
"mcpServers": {
"blender": {
"command": "uvx",
"args": ["blender-mcp"]
}
}
}
get_scene_infoGet detailed information about the current Blender scene.
get_object_infoGet detailed information about a specific object.
object_name (required): Name of the objectexecute_codeExecute arbitrary Python code in Blender.
code (required): Python code to executeexecute_code, NOT execute_blender_codeget_viewport_screenshotCapture a screenshot of the current 3D viewport.
max_size (optional): Maximum size in pixels (default: 800)get_polyhaven_statusCheck if PolyHaven integration is enabled.
get_polyhaven_categoriesGet available asset categories.
asset_type: "hdris" | "textures" | "models" | "all"search_polyhaven_assetsSearch for PolyHaven assets.
asset_type: Type of assets to searchcategories: Optional comma-separated category filterdownload_polyhaven_assetDownload and import a PolyHaven asset.
asset_id (required): Asset identifierasset_type (required): "hdris" | "textures" | "models"resolution (optional): "1k" | "2k" | "4k" (default: "1k")file_format (optional): File format preferenceset_textureApply a downloaded texture to an object.
object_name (required): Target objecttexture_id (required): PolyHaven texture IDget_sketchfab_statusCheck if Sketchfab integration is enabled.
search_sketchfab_modelsSearch Sketchfab for 3D models.
query (required): Search textcategories (optional): Category filtercount (optional): Max results (default: 20)downloadable (optional): Only downloadable models (default: true)download_sketchfab_modelDownload and import a Sketchfab model.
uid (required): Sketchfab model UIDget_hyper3d_statusCheck if Hyper3D Rodin is enabled.
generate_hyper3d_model_via_textGenerate 3D model from text description.
text_prompt (required): Description in Englishbbox_condition (optional): [Length, Width, Height] ratiogenerate_hyper3d_model_via_imagesGenerate 3D model from reference images.
input_image_paths (optional): List of image file pathsinput_image_urls (optional): List of image URLsbbox_condition (optional): Size ratiopoll_rodin_job_statusCheck generation task status.
subscription_key: For MAIN_SITE moderequest_id: For FAL_AI modeimport_generated_assetImport completed Hyper3D model.
name (required): Object name in scenetask_uuid: For MAIN_SITE moderequest_id: For FAL_AI modeget_hunyuan3d_statusCheck if Hunyuan3D is enabled.
generate_hunyuan3d_modelGenerate 3D model using Hunyuan3D.
text_prompt (optional): Text descriptioninput_image_url (optional): Reference image URLpoll_hunyuan_job_statusCheck Hunyuan3D task status.
job_id (required): Job identifierimport_generated_asset_hunyuanImport completed Hunyuan3D model.
name (required): Object namezip_file_url (required): Generated model URLUse the Blender skill to:
1. Check PolyHaven status
2. Download an HDRI for environment lighting
3. Download a wood texture
4. Create a cube and apply the wood texture
5. Render the scene
Search Sketchfab for "vintage car" and import the first downloadable result.
Scale it to fit the scene and position at origin.
Generate a 3D model of "a small wooden treasure chest with gold trim"
using Hyper3D Rodin. Import it and add environment lighting.
# Create a grid of cubes with random colors
import bpy
import random
for x in range(-5, 6):
for y in range(-5, 6):
bpy.ops.mesh.primitive_cube_add(location=(x*2, y*2, 0))
obj = bpy.context.active_object
mat = bpy.data.materials.new(name=f"Mat_{x}_{y}")
mat.diffuse_color = (random.random(), random.random(), random.random(), 1)
obj.data.materials.append(mat)
For automated pipelines, use the standalone server instead of the UI addon:
# Start with VNC display (keeps Blender window open)
DISPLAY=:1 blender --python scripts/standalone_server.py
# Or with direct Python call
python3 -c "
import socket
import json
s = socket.socket()
s.connect(('localhost', 9876))
# Import a GLB mesh
request = json.dumps({
'type': 'import_model',
'params': {'filepath': '/path/to/mesh.glb', 'name': 'MyModel'}
})
s.sendall(request.encode())
print(s.recv(4096).decode())
s.close()
"
| Command | Description |
|---|---|
get_scene_info | Get scene details and object list |
get_object_info | Get specific object properties |
execute_blender_code | Run arbitrary Python code |
import_model | Import GLB/OBJ/FBX/STL/PLY files |
render | Render to image file |
orbit_render | Render from multiple orbit angles |
set_camera | Position camera at location/target |
add_hdri | Add HDRI environment lighting |
Works well with:
comfyui skill for text-to-3D model generation and validationfilesystem skill for managing output filesimagemagick skill for post-processing rendersThe Blender skill is the final validation step in the ComfyUI text-to-3D pipeline:
/free endpointCritical: FLUX2 and SAM3D cannot run concurrently on most GPUs. Use split workflow:
# After FLUX2 generation, free GPU memory before SAM3D
curl -X POST http://comfyui:8188/free \
-H "Content-Type: application/json" \
-d '{"unload_models": true, "free_memory": true}'
import requests
import json
import socket
import time
COMFYUI_URL = "http://192.168.0.51:8188"
# Phase 1: FLUX2 Image Generation
flux2_workflow = {
"86": {"inputs": {"unet_name": "flux2_dev_fp8mixed.safetensors"}, "class_type": "UNETLoader"},
# ... rest of FLUX2 workflow
}
response = requests.post(f"{COMFYUI_URL}/prompt", json={"prompt": flux2_workflow})
prompt_id = response.json()["prompt_id"]
# Wait for completion
while True:
history = requests.get(f"{COMFYUI_URL}/history/{prompt_id}").json()
if history.get(prompt_id, {}).get("status", {}).get("completed"):
break
time.sleep(5)
# Free GPU memory
requests.post(f"{COMFYUI_URL}/free", json={"unload_models": True, "free_memory": True})
# Phase 2: SAM3D Reconstruction
sam3d_workflow = {
"44": {"inputs": {"model_tag": "hf"}, "class_type": "LoadSAM3DModel"},
# ... rest of SAM3D workflow
}
response = requests.post(f"{COMFYUI_URL}/prompt", json={"prompt": sam3d_workflow})
# Phase 3: Blender Import and Validation
s = socket.socket()
s.connect(('localhost', 9876))
s.sendall(json.dumps({
"type": "import_model",
"params": {"filepath": "/path/to/mesh.glb", "name": "GeneratedModel"}
}).encode())
print(s.recv(4096).decode())
# Orbit render for validation - render to ComfyUI output for visibility
s.sendall(json.dumps({
"type": "orbit_render",
"params": {
"output_dir": "/root/ComfyUI/output/validation", # ComfyUI output
"prefix": "blender_validation",
"angles": [0, 45, 90, 135, 180, 225, 270, 315],
"elevation": 30,
"resolution": 512
}
}).encode())
print(s.recv(4096).decode())
s.close()
For visibility in the ComfyUI web interface, render directly to the ComfyUI output directory:
# If BlenderMCP is inside Docker with shared volumes:
output_dir = "/root/ComfyUI/output/validation"
# If Blender is on host, copy after rendering:
import shutil
import subprocess
# Copy from local to ComfyUI container
subprocess.run([
"docker", "cp",
"/tmp/validation/.",
"comfyui:/root/ComfyUI/output/validation/"
])
Or use docker exec to copy within the container network:
# Copy renders to ComfyUI output (from host)
docker cp /tmp/validation/. comfyui:/root/ComfyUI/output/validation/
# Or if both are containers in same network:
docker exec comfyui mkdir -p /root/ComfyUI/output/validation
docker cp blender:/tmp/renders/. comfyui:/root/ComfyUI/output/validation/
The skill handles:
Recommended priority for creating 3D content:
# Check if Blender addon server is running
nc -zv localhost 9876
# Restart Blender and enable addon
# Look for BlenderMCP panel in sidebar (press N)
For Sketchfab and Hyper3D features, configure API keys in the BlenderMCP addon panel within Blender.
Ensure VNC is connected for visual feedback:
# Check VNC status
vncserver -list