🎨 搅拌机MCP桥
   
通过模型上下文协议(MCP)实现AI驱动的搅拌机控制 发送图像以创建具有匹配颜色的3D模型,执行Python脚本,并通过Antigravity或任何兼容MCP的AI客户端远程控制Blender。
______________________________________________________________________
✨ 特性
| 特性 | 描述 |
|---|---|
| 🖼️ 图像到3D | 从图像中提取主色,并使用匹配的材料创建3D模型 |
| 🐍 脚本执行 | 通过MCP远程运行任何Blender Python代码 |
| 📊 场景查询 | 获取有关对象、材质和集合的详细信息 |
| ⚡ 实时更新 | 在脚本执行期间接收实时进度状态 |
| 🔒 线程安全 | 具有保证响应和无死锁的稳健架构 |
______________________________________________________________________
🏗️ 建筑
┌─────────────────────┐ MCP/stdio ┌─────────────────────────┐
│ Antigravity │◄─────────────────────►│ antigravity_blender_ │
│ (or any MCP AI) │ │ server.py │
└─────────────────────┘ └───────────┬─────────────┘
│
│ TCP Socket
│ (port 8081)
▼
┌─────────────────────────┐
│ blender_server.py │
│ (runs inside Blender) │
└─────────────────────────┘______________________________________________________________________
📦 安装
先决条件
- Python 3.10+
- 搅拌机4.2+ (可访问完整路径)
- 点 (Python包管理器)
快速安装
# 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按包安装(可选)
pip install -e .______________________________________________________________________
🔌 反重力整合
将以下内容添加到您的Antigravity MCP服务器配置中:
选项A:直接路径
{
"mcpServers": {
"blender": {
"command": "python",
"args": ["C:/path/to/Blender-MCP-antigravity/antigravity_blender_server.py"],
"env": {}
}
}
}选项B:使用虚拟环境
{
"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": {}
}
}
}注: 替换 C:/path/to/ 使用您的实际安装路径。______________________________________________________________________
🚀 快速开始
步骤1:启动Blender服务器
# 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预期产量:
==================================================
[BlenderMCP] Server running on 127.0.0.1:8081
[BlenderMCP] Waiting for connections...
==================================================第二步:连接反重力
Blender运行后,Antigravity将通过MCP配置自动连接。
步骤3:创建3D内容
让Antigravity创建3D内容:
“在Blender中创建低多边形岛屿场景”
“根据此图像创建3D模型”(附图像)
______________________________________________________________________
🛠️ MCP工具参考
image_to_3d_model
使用从图像中提取的颜色创建3D模型。
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
image_data | string | ✅ | - | Base64编码图像 |
model_type | string | ❌ | "cube" | 形状: cube, sphere, cylinder |
model_name | string | ❌ | "ImageModel" | 对象的名称 |
答复:
{
"status": "ok",
"colors": ["#3A7D8C", "#D4C4A0", "#4A6E4A"],
"object_name": "ImageModel"
}______________________________________________________________________
blender_exec
在Blender中执行Python代码。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
script | string | ✅ | 要执行的Python代码 |
脚本要求:
- ✅ 定义并调用
main()功能 - ✅ 使用
send_status("message")获取进度更新 - ✅ 使用
bpy.data.*API(不是bpy.ops.*) - ❌ 无无限循环或阻塞操作
例子:
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
查询当前Blender场景。
答复:
{
"objects": [
{"name": "Cube", "type": "MESH"},
{"name": "Camera", "type": "CAMERA"}
],
"meshes": ["Cube"],
"materials": ["Material"],
"collections": ["Collection"]
}______________________________________________________________________
📁 项目结构
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______________________________________________________________________
🔧 故障排除
连接被拒绝
# 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超时错误
- 检查Blender的控制台是否存在Python错误
- 确保
main()在脚本末尾调用 - 添加
send_status()需要长期操作 - 避免阻塞呼叫或无限循环
端口已在使用中
# Kill existing Blender processes
taskkill /F /IM blender.exe # Windows
pkill blender # Linux/Mac______________________________________________________________________
🎯 例子
运行岛屿发电机
# Activate venv first
.\venv\Scripts\activate
# Run example script
python run_via_bridge.py generate_island.py交互模式(查看输出)
# 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______________________________________________________________________
🤝 贡献
欢迎投稿!
- 克隆该仓库
- 创建要素分支:
git checkout -b feature/amazing-feature - 提交更改:
git commit -m 'Add amazing feature' - 推:
git push origin feature/amazing-feature - 打开拉取请求
______________________________________________________________________
📄 许可证
MIT许可证-请参阅 许可证 了解详情。
______________________________________________________________________
🔗 链接
- 存储库:
- 搅拌机: blender.org
- MCP协议: 模型上下文协议.io
- 反重力: 反重力.dev
______________________________________________________________________
Made with Mithran Balachander
