# Nous-approved MCP catalog entry.
# Presence in this directory = approval. Merged via PR review.
manifest_version: 1

name: blender
description: Drive a live Blender session — modeling, scenes, and renders.
source: https://github.com/ahujasid/blender-mcp

# ahujasid/blender-mcp (MIT, PyPI: blender-mcp) is the de-facto standard
# Blender MCP. It is a bridge with two halves:
#   1. This stdio server (uvx blender-mcp), which Hermes launches.
#   2. An addon (addon.py) running inside Blender that opens a local command
#      socket on 127.0.0.1:9876. The stdio server relays to it.
# There is nothing to git-clone on the Hermes side — uvx resolves the package —
# so no install block. The in-Blender addon setup is covered in post_install.
#
# Why not Blender's official MCP (blender.org/lab): it requires Blender 5.1+
# and targets scene analysis/documentation rather than asset creation. This
# server works across Blender 3.x/4.x and exposes full modeling control.
transport:
  type: stdio
  command: "uvx"
  # Pinned per catalog dependency policy: exact version, and the release must
  # be at least 2 weeks old at pin time (supply-chain cooldown — same rule as
  # pyproject.toml dependencies). 1.6.4 released 2026-06-11. The catalog never
  # auto-updates; bumping the pin is a PR to this manifest.
  args:
    - "blender-mcp==1.6.4"
  version: "1.6.4"
  env:
    # Upstream ships anonymous telemetry, on by default. Hermes policy is
    # no outbound telemetry without explicit opt-in, so the catalog entry
    # disables it. Remove this line only if you deliberately want it on.
    DISABLE_TELEMETRY: "true"

# The Blender addon binds 127.0.0.1 only and has no auth of its own; the
# stdio server needs no credentials. Optional integrations (Sketchfab,
# Hyper3D Rodin, Hunyuan3D) take API keys entered in the addon's N-panel
# inside Blender, not via Hermes env.
auth:
  type: none

# Tool selection at install time:
# The server advertises 22 tools. 18 of them front optional third-party asset
# services (PolyHaven, Sketchfab, Hyper3D Rodin, Hunyuan3D) that are dead
# weight unless the matching integration is enabled in the addon panel — and
# upstream has no server-side trim mechanism, so without a filter every one
# of them costs schema tokens on every API call. Default to the core surface:
# scene/object inspection, viewport screenshots, and code execution, which is
# the complete modeling/render capability. Users who enable an asset service
# in the addon can opt into its tools with `hermes mcp configure blender`.
tools:
  default_enabled:
    - get_scene_info
    - get_object_info
    - get_viewport_screenshot
    - execute_blender_code

post_install: |
  This entry launches the bridge server, but the bridge talks to an addon
  INSIDE a running Blender (3.0+). One-time setup:

    1. Download addon.py from https://github.com/ahujasid/blender-mcp
       (raw file: https://raw.githubusercontent.com/ahujasid/blender-mcp/main/addon.py)
    2. Blender > Edit > Preferences > Add-ons > Install... > select addon.py,
       then enable "Interface: Blender MCP".
    3. In the 3D viewport press N, open the "BlenderMCP" tab, click
       "Connect to Claude" (starts the local socket on 127.0.0.1:9876).

  Blender must be RUNNING with the addon connected before the tools work —
  start Blender first, then your Hermes session. The addon refuses to start
  under `blender -b` (background mode): its command queue runs on UI timers.
  On a machine without a display, run Blender under a virtual one:
    xvfb-run blender    (or Xvfb :99 & DISPLAY=:99 blender)
  GPU rendering (Cycles/OptiX) works fine under Xvfb.

  SECURITY: execute_blender_code runs arbitrary Python inside Blender with no
  sandbox — same trust level as the terminal tool. Upstream telemetry is
  disabled via DISABLE_TELEMETRY in this entry's env block.

  The 18 asset-service tools (PolyHaven/Sketchfab/Hyper3D/Hunyuan3D) are off
  by default. To use one: enable the service in the addon's BlenderMCP panel
  (API key there if required), then `hermes mcp configure blender` and tick
  its tools. PolyHaven is free and keyless; the others need accounts.

  If Hermes and Blender run on different machines, note that file paths in
  execute_blender_code (texture loads, exports) resolve on the BLENDER host's
  filesystem, not where Hermes runs.
