Skip to main content
Glama

🎨 Blender MCP Bridge

Python 3.10+ MCP Compatible Blender 4.2+ License: MIT

AI-powered Blender control via Model Context Protocol (MCP)

Send images to create 3D models with matching colors, execute Python scripts, and control Blender remotely through Antigravity or any MCP-compatible AI client.


✨ Features

Feature

Description

πŸ–ΌοΈ Image to 3D

Extract dominant colors from images and create 3D models with matching materials

🐍 Script Execution

Run any Blender Python code remotely through MCP

πŸ“Š Scene Query

Get detailed information about objects, materials, and collections

⚑ Real-time Updates

Receive live progress status during script execution

πŸ”’ Thread-safe

Robust architecture with guaranteed responses and no deadlocks


πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       MCP/stdio       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚     Antigravity     │◄─────────────────────►│  antigravity_blender_   β”‚
β”‚   (or any MCP AI)   β”‚                       β”‚  server.py              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                          β”‚
                                                          β”‚ TCP Socket
                                                          β”‚ (port 8081)
                                                          β–Ό
                                              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                              β”‚   blender_server.py     β”‚
                                              β”‚  (runs inside Blender)  β”‚
                                              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“¦ Installation

Prerequisites

  • Python 3.10+

  • Blender 4.2+ (with full path accessible)

  • pip (Python package manager)

Quick Install

# Clone the repository
git clone https://github.com/MITHRAN-BALACHANDER/Blender-MCP-antigravity.git
cd Blender-MCP-antigravity

# Create virtual environment (recommended)
python -m venv venv
.\venv\Scripts\activate      # Windows
source venv/bin/activate     # Linux/Mac

# Install dependencies
pip install -r requirements.txt

Install as Package (Optional)

pip install -e .

πŸ”Œ Antigravity Integration

Add the following to your Antigravity MCP server configuration:

Option A: Direct Path

{
  "mcpServers": {
    "blender": {
      "command": "python",
      "args": ["C:/path/to/Blender-MCP-antigravity/antigravity_blender_server.py"],
      "env": {}
    }
  }
}

Option B: Using Virtual Environment

{
  "mcpServers": {
    "blender": {
      "command": "C:/path/to/Blender-MCP-antigravity/venv/Scripts/python.exe",
      "args": ["C:/path/to/Blender-MCP-antigravity/antigravity_blender_server.py"],
      "env": {}
    }
  }
}

Note: Replace C:/path/to/ with your actual installation path.


πŸš€ Quick Start

Step 1: Start Blender Server

# Navigate to project directory
cd Blender-MCP-antigravity

# Start Blender with the socket server
# Windows (use full path if 'blender' is not in PATH)
"C:\Program Files\Blender Foundation\Blender 4.2\blender.exe" --background --python blender_server.py

# Linux/Mac
blender --background --python blender_server.py

Expected output:

==================================================
[BlenderMCP] Server running on 127.0.0.1:8081
[BlenderMCP] Waiting for connections...
==================================================

Step 2: Connect Antigravity

Once Blender is running, Antigravity will automatically connect via the MCP configuration.

Step 3: Create 3D Content

Ask Antigravity to create 3D content:

"Create a low-poly island scene in Blender"

"Create a 3D model from this image" (with attached image)


πŸ› οΈ MCP Tools Reference

image_to_3d_model

Create a 3D model with colors extracted from an image.

Parameter

Type

Required

Default

Description

image_data

string

βœ…

-

Base64-encoded image

model_type

string

❌

"cube"

Shape: cube, sphere, cylinder

model_name

string

❌

"ImageModel"

Name for the object

Response:

{
  "status": "ok",
  "colors": ["#3A7D8C", "#D4C4A0", "#4A6E4A"],
  "object_name": "ImageModel"
}

blender_exec

Execute Python code inside Blender.

Parameter

Type

Required

Description

script

string

βœ…

Python code to execute

Script Requirements:

  • βœ… Define and call a main() function

  • βœ… Use send_status("message") for progress updates

  • βœ… Use bpy.data.* APIs (not bpy.ops.*)

  • ❌ No infinite loops or blocking operations

Example:

import bpy

def main():
    send_status("Creating cube...")
    mesh = bpy.data.meshes.new("Cube")
    obj = bpy.data.objects.new("Cube", mesh)
    bpy.context.collection.objects.link(obj)
    
    import bmesh
    bm = bmesh.new()
    bmesh.ops.create_cube(bm, size=2.0)
    bm.to_mesh(mesh)
    bm.free()
    
    send_status("Done!")

main()

get_blender_scene

Query the current Blender scene.

Response:

{
  "objects": [
    {"name": "Cube", "type": "MESH"},
    {"name": "Camera", "type": "CAMERA"}
  ],
  "meshes": ["Cube"],
  "materials": ["Material"],
  "collections": ["Collection"]
}

πŸ“ Project Structure

Blender-MCP-antigravity/
β”œβ”€β”€ antigravity_blender_server.py   # MCP server (AI client interface)
β”œβ”€β”€ blender_server.py               # TCP server (runs in Blender)
β”œβ”€β”€ antigravity_blender_addon.py    # Blender UI addon (optional)
β”œβ”€β”€ run_via_bridge.py               # Standalone script runner
β”œβ”€β”€ generate_island.py              # Example: procedural island
β”œβ”€β”€ create_island_from_image.py     # Example: island from reference
β”œβ”€β”€ requirements.txt                # Dependencies
β”œβ”€β”€ pyproject.toml                  # Package config
└── README.md

πŸ”§ Troubleshooting

Connection Refused

# Ensure Blender is running with the server
"C:\Program Files\Blender Foundation\Blender 4.2\blender.exe" --background --python blender_server.py

# Check if port 8081 is in use
netstat -an | findstr 8081   # Windows
lsof -i :8081                # Linux/Mac

Timeout Errors

  1. Check Blender's console for Python errors

  2. Ensure main() is called at the end of your script

  3. Add send_status() calls for long operations

  4. Avoid blocking calls or infinite loops

Port Already in Use

# Kill existing Blender processes
taskkill /F /IM blender.exe     # Windows
pkill blender                    # Linux/Mac

🎯 Examples

Run the Island Generator

# Activate venv first
.\venv\Scripts\activate

# Run example script
python run_via_bridge.py generate_island.py

Interactive Mode (View Output)

# Start Blender with GUI
"C:\Program Files\Blender Foundation\Blender 4.2\blender.exe" --python blender_server.py

# Then run scripts via bridge
python run_via_bridge.py your_script.py

🀝 Contributing

Contributions are welcome!

  1. Fork the repository

  2. Create a feature branch: git checkout -b feature/amazing-feature

  3. Commit changes: git commit -m 'Add amazing feature'

  4. Push: git push origin feature/amazing-feature

  5. Open a Pull Request


πŸ“„ License

MIT License - see LICENSE for details.



Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MITHRAN-BALACHANDER/Blender-MCP-antigravity'

If you have feedback or need assistance with the MCP directory API, please join our Discord server