Enables remote control of Blender via MCP, supporting image-to-3D model creation, execution of Blender Python scripts, and querying of scene data such as objects, materials, and collections.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Blender MCP BridgeCreate a low-poly island scene with a small tree"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π¨ Blender MCP Bridge
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.txtInstall 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.pyExpected 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 |
| string | β | - | Base64-encoded image |
| string | β |
| Shape: |
| string | β |
| 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 |
| string | β | Python code to execute |
Script Requirements:
β Define and call a
main()functionβ Use
send_status("message")for progress updatesβ Use
bpy.data.*APIs (notbpy.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/MacTimeout Errors
Check Blender's console for Python errors
Ensure
main()is called at the end of your scriptAdd
send_status()calls for long operationsAvoid 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.pyInteractive 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!
Fork the repository
Create a feature branch:
git checkout -b feature/amazing-featureCommit changes:
git commit -m 'Add amazing feature'Push:
git push origin feature/amazing-featureOpen a Pull Request
π License
MIT License - see LICENSE for details.
π Links
Repository: github.com/MITHRAN-BALACHANDER/Blender-MCP-antigravity
Blender: blender.org
MCP Protocol: modelcontextprotocol.io
Antigravity: antigravity.dev