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.



-
security - not tested
A
license - permissive license
-
quality - not tested

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