Skip to content
Skillv1.0.0

blender-mcp

Control Blender directly from Hermes via socket connection to the blender-mcp addon. Create 3D objects, materials, animations, and run arbitrary Blender Python (bpy) code. Use when user wants to creat

by mfrancime(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from mfrancime/trident-archive (repos/trident_hermes-agent_nousresearch_growing_ai/optional-skills/creative/blender-mcp/SKILL.md). Install upstream with npx skills add mfrancime/trident-archive --skill blender-mcp. Copyright stays with the author.

Blender MCP

Control a running Blender instance from Hermes via socket on TCP port 9876.

Setup (one-time)

1. Install the Blender addon

curl -sL https://raw.githubusercontent.com/ahujasid/blender-mcp/main/addon.py -o ~/Desktop/blender_mcp_addon.py

In Blender: Edit > Preferences > Add-ons > Install > select blender_mcp_addon.py Enable "Interface: Blender MCP"

2. Start the socket server in Blender

Press N in Blender viewport to open sidebar. Find "BlenderMCP" tab and click "Start Server".

3. Verify connection

nc -z -w2 localhost 9876 && echo "OPEN" || echo "CLOSED"

Protocol

Plain UTF-8 JSON over TCP -- no length prefix.

Send: {"type": "", "params": {}} Receive: {"status": "success", "result": } {"status": "error", "message": ""}

Available Commands

type params description
execute_code code (str) Run arbitrary bpy Python code
get_scene_info (none) List all objects in scene
get_object_info object_name (str) Details on a specific object
get_viewport_screenshot (none) Screenshot of current viewport

Python Helper

Use this inside execute_code tool calls:

import socket, json

def blender_exec(code: str, host="localhost", port=9876, timeout=15):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((host, port))
    s.settimeout(timeout)
    payload = json.dumps({"type": "execute_code", "params": {"code": code}})
    s.sendall(payload.encode("utf-8"))
    buf = b""
    while True:
        try:
            chunk = s.recv(4096)
            if not chunk:
                break
            buf += chunk
            try:
                json.loads(buf.decode("utf-8"))
                break
            except json.JSONDecodeError:
                continue
        except socket.timeout:
            break
    s.close()
    return json.loads(buf.decode("utf-8"))

Common bpy Patterns

Clear scene

bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()

Add mesh objects

bpy.ops.mesh.primitive_uv_sphere_add(radius=1, location=(0, 0, 0))
bpy.ops.mesh.primitive_cube_add(size=2, location=(3, 0, 0))
bpy.ops.mesh.primitive_cylinder_add(radius=0.5, depth=2, location=(-3, 0, 0))

Create and assign material

mat = bpy.data.materials.new(name="MyMat")
mat.use_nodes = True
bsdf = mat.node_tree.nodes.get("Principled BSDF")
bsdf.inputs["Base Color"].default_value = (R, G, B, 1.0)
bsdf.inputs["Roughness"].default_value = 0.3
bsdf.inputs["Metallic"].default_value = 0.0
obj.data.materials.append(mat)

Keyframe animation

obj.location = (0, 0, 0)
obj.keyframe_insert(data_path="location", frame=1)
obj.location = (0, 0, 3)
obj.keyframe_insert(data_path="location", frame=60)

Render to file

bpy.context.scene.render.filepath = "/tmp/render.png"
bpy.context.scene.render.engine = 'CYCLES'
bpy.ops.render.render(write_still=True)

Pitfalls

  • Must check socket is open before running (nc -z localhost 9876)
  • Addon server must be started inside Blender each session (N-panel > BlenderMCP > Connect)
  • Break complex scenes into multiple smaller execute_code calls to avoid timeouts
  • Render output path must be absolute (/tmp/...) not relative
  • shade_smooth() requires object to be selected and in object mode

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/mfrancime-trident-archive-blender-mcp/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

mfrancime-trident-archive-blender-mcp.ocm.jsonjson
{
  "ocm": "1",
  "id": "mfrancime-trident-archive-blender-mcp",
  "kind": "skill",
  "name": "blender-mcp",
  "description": "Control Blender directly from Hermes via socket connection to the blender-mcp addon. Create 3D objects, materials, animations, and run arbitrary Blender Python (bpy) code. Use when user wants to create or modify anything in Blender.",
  "publisher": "mfrancime",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "coding"
    ],
    "tags": [
      "skill-md",
      "blender",
      "3d",
      "animation",
      "modeling",
      "bpy",
      "mcp",
      "github"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Control Blender directly from Hermes via socket connection to the blender-mcp addon. Create 3D objects, materials, animations, and run arbitrary Blender Python (bpy) code. Use when user wants to create or modify anything in Blender."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "github",
      "repository": "https://github.com/mfrancime/trident-archive",
      "path": "repos/trident_hermes-agent_nousresearch_growing_ai/optional-skills/creative/blender-mcp/SKILL.md",
      "ref": "cef85894d3d9a4c9dabe5a90887d5ac59fe4ff0f",
      "url": "https://github.com/mfrancime/trident-archive/blob/cef85894d3d9a4c9dabe5a90887d5ac59fe4ff0f/repos/trident_hermes-agent_nousresearch_growing_ai/optional-skills/creative/blender-mcp/SKILL.md",
      "key": "mfrancime/trident-archive/repos/trident_hermes-agent_nousresearch_growing_ai/optional-skills/creative/blender-mcp/SKILL.md"
    }
  },
  "instructions": "# Blender MCP\n\nControl a running Blender instance from Hermes via socket on TCP port 9876.\n\n## Setup (one-time)\n\n### 1. Install the Blender addon\n\n    curl -sL https://raw.githubusercontent.com/ahujasid/blender-mcp/main/addon.py -o ~/Desktop/blender_mcp_addon.py\n\nIn Blender:\n    Edit > Preferences > Add-ons > Install > select blender_mcp_addon.py\n    Enable \"Interface: Blender MCP\"\n\n### 2. Start the socket server in Blender\n\nPress N in Blender viewport to open sidebar.\nFind \"BlenderMCP\" tab and click \"Start Server\".\n\n### 3. Verify connection\n\n    nc -z -w2 localhost 9876 && echo \"OPEN\" || echo",
  "cost": {
    "context_tokens": 919
  }
}

Fetch it by URL: GET /api/v1/registry/mfrancime-trident-archive-blender-mcp/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.