dwgx@blog:~$dwgx
> cd ../posts

blender-copilot:让 AI 自己开 Blender 干活的 MCP server

// created

blender-copilot 是个把 AI 直接接进 Blender 的 MCP server。AI 客户端(Claude、Cursor)通过它调用 Blender,自动完成建模、绑骨、做表情、导出这些活儿。我做它主要是为了跑 VRChat avatar 的 workflow——建模、绑骨、做 viseme、导 FBX 进 Unity 配 descriptor,整条链又长又碎,纯体力活,干脆让 AI 自己上。

怎么连起来的

连接分三层。AI 客户端走 stdio MCP 连 server.py(FastMCP),server 再走本地 TCP 9876 连 Blender,Blender 里的插件起了个 socket server,用 cmd_ 前缀分发命令、在 bpy 里执行再回传。

AI (Claude / Cursor) ──stdio/MCP──► MCP Server ──TCP:9876──► Blender Addon

为什么要 TCP 这层、不直接 import bpy?因为 bpy 只能活在 Blender 进程里,没法当普通库用,只能让插件在里面起服务,外面的 server 做中转。

工具怎么堆到三百多个

工具现在有三百多个,拆在二十多个模块里,起因是做 avatar 每走一步都撞一堵墙:看场景、建基础体、布尔、清退化面、UV、绑 Rigify、转 VRC Humanoid 骨骼命名、15 个 viseme、ARKit 52 套 blend shape、VRCFT Unified Expressions、PhysBones 配头发裙摆、性能等级校验,撞一次补一批。VRC 相关在 vrc_tools.py,脸部追踪在 face_tracking_tools.py,Unity 自动化在 unity_tools.py。另外写了几个 pipeline 级编排,一口气把 mesh 走到 FBX,或者 FBX 一路推进 Unity 出成品。素材接了 PolyHaven、Sketchfab,以及 Rodin、腾讯混元这类 text/image-to-3D,缺 HDRI 或想快速拉模型进来时省事。

踩的坑

最麻烦的是 TCP 超时。bake 法线、重拓扑这种跑得久,socket 那头等不及就断。后来加了 headless 执行,把代码丢进无头 Blender 子进程里跑,绕开超时。bpy 状态性太强,一不小心就留下 non-manifold、松散顶点、退化面,所以专门做了网格质量检查,导出前先体检一遍。

原创,不是 fork,思路整合自整个 Blender MCP 社区一堆项目再往上加。MIT,需要 Blender 4.0+、Python 3.10+。