🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

blender-skill

by @taosiuman

Connect to and control Blender via the official Blender MCP Server. Supports two modes: full MCP Server + mcporter (recommended) and direct TCP Socket (light...

Versionv1.0.2
πŸ’‘ Examples

Method 1: Via mcporter (recommended)

# List all available tools
mcporter list blender-mcp --schema

Call a specific tool

mcporter call blender-mcp.execute_blender_code code='import bpy; result = {"objects": [o.name for o in bpy.data.objects]}'

mcporter call blender-mcp.get_objects_summary

mcporter call blender-mcp.get_object_detail_summary object_name="Cube"

Search API docs

mcporter call blender-mcp.search_api_docs query="bpy.ops.object.delete"

Search user manual

mcporter call blender-mcp.search_manual_docs query="Geometry Nodes"

Screenshot

mcporter call blender-mcp.get_screenshot_of_window_as_image

Render viewport

mcporter call blender-mcp.render_viewport_to_path output_path="C:\\render.png"

Method 2: Direct TCP Socket to Blender Addon (lightweight)

⚠️ Warning: This mode sends caller-supplied code directly to Blender with no guardrails. Review code before execution.

When you don't need the full MCP Server, you can communicate directly with the Blender Addon via TCP Socket:

import socket
import json

def send_to_blender(code: str, host="localhost", port=9876, timeout=30.0) -> dict: """Send Python code directly to Blender Addon for execution.""" request = json.dumps({ "type": "execute", "code": code, "strict_json": False, }) + "\0" with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: sock.settimeout(timeout) sock.connect((host, port)) sock.sendall(request.encode("utf-8")) buf = bytearray() while True: chunk = sock.recv(65536) if not chunk: break buf.extend(chunk) if b"\0" in buf: break line, _, _ = buf.partition(b"\0") return json.loads(line.decode("utf-8"))

Example: get all object names in the scene

response = send_to_blender( 'import bpy\nresult = {"objects": [o.name for o in bpy.data.objects]}' ) print(response)

{"status": "ok", "result": {"objects": ["Cube", "Camera", "Light"]}}

Method 3: Blender Background Mode (headless rendering / batch)

# Start Blender background MCP Server
blender --background myscene.blend --command blender_mcp --host localhost --port 9876

Or execute code via CLI

blender --background myscene.blend --python-expr " import bpy

your code

result = {'count': len(bpy.data.objects)} print('__BLMCP_RESULT__' + str(result)) "


πŸ“‹ Tips & Best Practices

| Error | Cause | Solution | |-------|-------|----------| | ConnectionRefusedError | Blender not running or Addon not started | Start Blender, enable MCP Addon, click "Start Server" | | ConnectionError: Empty response | Network timeout or Addon crashed | Check Blender console output, verify port | | result is not JSON-serializable | Returned a Blender object | Use strict_json=False or manually convert to dict | | Blender executable not found | Blender command not found | Set BLENDER_PATH environment variable | | Deferred responses not supported | Background mode doesn't support deferred responses | Use synchronous code or switch to GUI mode |


View on ClawHub
TERMINAL
clawhub install blender-skill

πŸ§ͺ Use this skill with your agent

Most visitors already have an agent. Pick your environment, install or copy the workflow, then run the smoke-test prompt above.

πŸ” Can't find the right skill?

Search 60,000+ AI agent skills β€” free, no login needed.

Search Skills β†’