Favicon of BlenderMCP

BlenderMCP

Open-source MCP server connecting Blender to Claude and other LLMs for prompt-driven 3D modeling, materials, and scene control.

BlenderMCP website screenshot
BlenderMCP GitHub repository preview

BlenderMCP connects Blender to Claude AI (and other Model Context Protocol clients) through a socket-based server, letting an LLM create, modify, and inspect 3D scenes directly inside Blender. It's built for developers, technical artists, and hobbyists who want to drive Blender with natural language instead of clicking through menus and writing scripts by hand.

The project has two parts: a Blender addon (addon.py) that opens a socket server inside Blender, and a Python MCP server (src/blender_mcp/server.py) that speaks the Model Context Protocol and forwards commands to that addon. Claude, Cursor, VS Code, and other MCP clients connect to the server and get access to tools for manipulating the scene, running Python code, and pulling in external assets.

Key features

  • Two-way communication: a socket-based bridge between the MCP server and a Blender addon, so the LLM can both send commands and read scene state.
  • Object manipulation: create, modify, and delete 3D objects through natural-language prompts.
  • Material control: apply and tweak materials and colors on existing objects.
  • Scene inspection: pull detailed information about the current scene, including a viewport screenshot for the LLM to reference.
  • Arbitrary code execution: run Python code directly inside Blender from the LLM (powerful, but see the security note below).
  • Asset integrations: pull HDRIs, textures, and models from Poly Haven, search and download models from Sketchfab, and generate models via Hyper3D Rodin or Hunyuan3D.
  • Remote host support: point the MCP server at a Blender instance running on a different host via BLENDER_HOST and BLENDER_PORT.
  • Persistent credentials: store Sketchfab, Hyper3D, and Hunyuan3D API keys in Blender's Add-on Preferences or inject them via environment variables for headless/CI setups.

Ideal use cases

  • Rapid scene prototyping: describe a scene ("a low poly dungeon with a dragon guarding gold") and let the LLM build the initial layout, then refine by hand.
  • Asset-assisted world building: combine Poly Haven HDRIs/textures/models or Sketchfab downloads with LLM-driven placement to quickly assemble environments.
  • Reference-image-to-scene workflows: feed a reference image and ask the LLM to reconstruct a rough Blender scene from it.
  • Scripting shortcuts: ask the LLM to run Python in Blender for repetitive tasks (renaming objects, batch material changes, camera setup) instead of writing scripts yourself.
  • Not a fit for production pipelines without review: the execute_blender_code tool runs arbitrary Python inside Blender. Don't point it at unsaved production files or run it unattended in environments where a bad command could cause real damage. Always save before using it.
  • Not a fit if you need deterministic, repeatable output: LLM-driven modeling is exploratory and can be erratic (the README itself notes Poly Haven behavior can be inconsistent), so it suits iteration and drafting more than final, reproducible pipelines.

Installation

Prerequisites: Blender 3.0+, Python 3.10+, and the uv package manager (install via the official installer, not pip install uv).

Mac:

brew install uv

Windows:

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

Linux:

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

Add the server to your MCP client config (Claude Desktop, Cursor, VS Code, OpenCode, etc.), for example in claude_desktop_config.json:

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

If your GUI client can't find uvx on PATH, use its full path (which uvx / where uvx) as the command, or on Windows wrap it: "command": "cmd", "args": ["/c", "uvx", "blender-mcp"].

To pin the Python version and avoid conda/pyenv conflicts:

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

Then install the Blender addon: download addon.py, go to Edit > Preferences > Add-ons in Blender, click "Install...", select the file, and enable it. In the 3D View sidebar's BlenderMCP tab, click "Connect to Claude" while the MCP server is running in your terminal or client. Only run one MCP server instance at a time (Cursor or Claude Desktop, not both).

Share:

Stars
26.1K
Forks
2.5K
Last commit
6 days ago
Repository age
1 year
License
MIT
Self-hosted
No
Activity score
83/100
View Repository
Built with:
Ad
Favicon

 

  
 

Similar to BlenderMCP

Favicon

 

  
 
Favicon

 

  
 
Favicon