搅拌机打开mcp
使用Olama的Blender3D开放式MCP模型
通过本地AI模型使用自然语言提示控制Blender 3D。建立在 模型上下文协议(MCP),通过本地Ollama LLM将Claude、Cursor或任何MCP客户端连接到Blender。
______________________________________________________________________
建筑
MCP Client (Claude/Cursor/CLI)
│ HTTP / stdio
▼
┌─────────────────────┐
│ FastMCP Server │ ← server.py (port 8000)
│ blender-open-mcp │
└─────────────────────┘
│ TCP socket │ HTTP
▼ ▼
┌──────────────┐ ┌─────────────┐
│ Blender │ │ Ollama │ (port 11434)
│ Add-on │ │ llama3.2 │
│ addon.py │ │ gemma3... │
│ (port 9876) │ └─────────────┘
└──────────────┘
│ bpy
▼
Blender Python API三个独立的过程:
- FastMCP服务器 (
server.py):通过HTTP或stdio公开MCP工具 - 搅拌机插件 (
addon.py):Blender内部运行的TCP套接字服务器 - 奥拉玛:本地LLM服务于自然语言查询
______________________________________________________________________
安装
先决条件
| 依赖关系 | 版本 | 安装 |
|---|---|---|
| 搅拌机 | 3.0+ | blender.org |
| Python | 3.10+ | 系统或 python.org |
| Ollama | 最新消息 | ollama.com |
| uv | 最新 | pip install uv |
1.克隆和设置
git clone https://github.com/dhakalnirajan/blender-open-mcp.git
cd blender-open-mcp
# Create virtual environment and install
uv venv
source .venv/bin/activate # Linux / macOS
# .venv\Scripts\activate # Windows
uv pip install -e .2.安装搅拌机插件
- 打开搅拌机
- 首选 Edit → 偏好→ 附加组件→ 安装。..
- 选择
addon.py从存储库根目录 - 启用 “搅拌机MCP”
- 打开 三维视口,按 N,找到 搅拌机MCP 面板
- 点击 “启动MCP服务器” (默认端口:9876)
3.拉一个Olama模型
ollama pull ollama run llama3.2*(其他型号如 Gemma3 也可以使用。)*
设置
- 启动Ollama服务器: 确保Ollama在后台运行。
- 启动MCP服务器:
blender-mcp自定义选项:
blender-mcp \
--host 127.0.0.1 \
--port 8000 \
--blender-host localhost \
--blender-port 9876 \
--ollama-url http://localhost:11434 \
--ollama-model llama3.2对于stdio传输(克劳德桌面、光标):
blender-mcp --transport stdio______________________________________________________________________
用法
MCP客户端CLI
# Interactive shell
blender-mcp-client interactive
# One-shot scene info
blender-mcp-client scene
# Call a specific tool
blender-mcp-client tool blender_get_scene_info
blender-mcp-client tool blender_create_object '{"primitive_type": "SPHERE", "name": "MySphere"}'
# Natural language prompt
blender-mcp-client prompt "Create a metallic sphere at position 0, 0, 2"
# List all available tools
blender-mcp-client toolsPython API
import asyncio
from client.client import BlenderMCPClient
async def demo():
async with BlenderMCPClient("http://localhost:8000") as client:
# Scene inspection
print(await client.get_scene_info())
# Create objects
await client.create_object("CUBE", name="MyCube", location=(0, 0, 0))
await client.create_object("SPHERE", name="MySphere", location=(3, 0, 0))
# Apply materials
await client.set_material("MyCube", "GoldMat", color=[1.0, 0.84, 0.0, 1.0])
# Move objects
await client.modify_object("MySphere", location=(3, 0, 2), scale=(1.5, 1.5, 1.5))
# PolyHaven assets
categories = await client.get_polyhaven_categories("textures")
await client.download_polyhaven_asset("brick_wall_001", resolution="2k")
await client.set_texture("MyCube", "brick_wall_001")
# Render
await client.render_image("/tmp/my_render.png")
# AI assistance
response = await client.ai_prompt(
"Write bpy code to add a sun light pointing down"
)
print(response)
# Execute the generated code
await client.execute_code(response)
asyncio.run(demo())Claude桌面/光标集成
添加到您的 mcp.json (或 ~/.cursor/mcp.json):
{
"mcpServers": {
"blender-open-mcp": {
"command": "blender-mcp",
"args": ["--transport", "stdio"]
}
}
}______________________________________________________________________
可用工具
| 工具 | 描述 | 修改Blender |
|---|---|---|
blender_get_scene_info | 完整场景摘要:对象、摄影机、渲染设置 | 否 |
blender_get_object_info | 详细对象信息:变换、材质、网格统计 | 否 |
blender_create_object | 添加基本体网格(立方体、球体、圆柱体等) | 是 |
blender_modify_object | 更改位置、旋转、比例、可见性 | 是 |
blender_delete_object | 从场景中删除对象 | 是⚠️ |
blender_set_material | 创建并分配原则性BSDF材料 | 是 |
blender_render_image | 将当前场景渲染到文件 | 是 |
blender_execute_code | 在Blender中运行任意Python/bpy代码 | 是⚠️ |
blender_get_polyhaven_categories | 列出PolyHaven资产类别 | 否 |
blender_search_polyhaven_assets | 使用分页搜索PolyHaven库 | 否 |
blender_download_polyhaven_asset | 下载并导入PolyHaven资产 | 是 |
blender_set_texture | 将下载的PolyHaven纹理应用于对象 | 是 |
blender_ai_prompt | 向Ollama发送自然语言提示 | 否 |
blender_get_ollama_models | 列出可用的当地Olama车型 | 否 |
blender_set_ollama_model | 切换激活的Olama型号 | 否 |
blender_set_ollama_url | 更新Ollama服务器URL | 否 |
______________________________________________________________________
默认端口
| 服务 | 端口 |
|---|---|
| FastMCP服务器 | 8000 |
| 搅拌机插件(TCP) | 9876 |
| 奥拉马 | 11434 |
______________________________________________________________________
发展
# Install dev dependencies
uv pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Type checking
mypy src/
# Linting
ruff check src/ client/______________________________________________________________________
故障排除
| 问题 | 解决方案 |
|---|---|
Cannot connect to Blender add-on | 打开搅拌机→ N-侧边栏→ 搅拌机MCP→ 启动MCP服务器 |
Cannot connect to Ollama | 快跑 ollama serve 在终端中 |
Object not found | 通过以下方式检查确切的对象名称 blender_get_scene_info |
Render fails | 确保输出目录存在并且可写 |
PolyHaven download fails | 检查互联网连接;尝试较低的分辨率 |
______________________________________________________________________
许可证
MIT许可证。看 许可证 了解详情。
该项目不隶属于Blender基金会。

