Blender-MCP:让 AI 真的动手改你的 3D 场景

第 126 期AI + 3DMITPython

先给判断:如果你想让大模型直接操作你已经打开的 Blender,blender-mcp 是目前门槛最低、客户端最通吃的一条路——MIT 许可,两条命令装完,Claude、Cursor、Codex、VS Code 都能接。但请先记住一件事:它交给 AI 的权限是在 Blender 里执行任意 Python,而它自带那道叫 safe mode 的护栏,按今天刚提的问题单来看,是一道空防线

3D 的门槛不在创意,在操作。你想让场景里有条龙守着一堆金币,光是把这个念头翻译成 Blender 里的挤出、修改器、材质节点、灯光参数,就够劝退一批人。过去大模型能帮的忙很有限:它给你一段 bpy 脚本,你自己复制进 Blender 的脚本栏里跑,报错再贴回来,来回十几轮。中间那道「说人话」到「场景真的变了」的墙,一直没人拆。

blender-mcp 拆的就是这道墙。它把 Blender 变成一个模型可以直接调用工具的工作台:你说一句,它改的是你屏幕上那个正在运行的场景,改完你立刻能看、能撤销、能继续改。


一、它到底是做什么的

它是个第三方集成——README 开头就写明 This is a third-party integration and not made by Blender,跟 Blender 官方没有关系。整个系统只有两个零件:

  • Blender 插件(addon.py):装进 Blender 里,在 Blender 内部起一个 socket 服务,负责收命令、执行;
  • MCP 服务端(src/blender_mcp/server.py):一个 Python 进程,对上实现 Model Context Protocol,对下通过 TCP socket 连到 Blender 插件。

所以它是双向的:不只是让 AI 往里写,AI 还能先读取当前场景里有什么、物体叫什么、材质怎么配,再决定怎么改。这一点比纯生成脚本强太多——不用盲写。

具体能干的事,README 列的能力大致是这些:

  • 物体操作:创建、修改、删除 3D 物体;
  • 材质控制:给物体上材质、改颜色;
  • 场景检查:把当前场景的结构读回来;
  • 执行任意 Python:这是最灵活也最危险的一条;
  • 导出:把整个场景、选中物体或指定物体导出成 GLB / FBX,方便丢给 three.js 或游戏引擎;
  • 查 API:让模型去查节点 schema 和 bpy 参考,而不是靠猜 socket 顺序和枚举名;
  • 拉素材与生成模型:Poly Haven 的 HDRI 和材质、Sketchfab 的模型、Poly Pizza 的低模,以及 Hyper3D Rodin 和 Hunyuan3D 的文生 3D。

素材这几条路的授权差别不小,用之前值得先看一眼:

来源给什么要注意什么
Poly HavenHDRI、材质、模型会真的下载文件到本地,不用就在面板里关掉
Sketchfab模型需要自己的 API Key
Poly Pizza约一万件低模约 69% 是 CC-BY,必须署名;CDN 有防爬,服务器/VPN IP 可能下不动
Hyper3D Rodin文生 3D需要 API Key
Hunyuan3D文生 3D腾讯云官方 API,国内站与国际站走不同服务和区域,配错会报签名失败

二、怎么用:四步,命令都取自 README

第一步装 uv。README 特意警告:不要用 pip install uv,那样可能拿不到 uvx 命令,或者把 uv 藏进客户端看不见的环境里。

# macOS
brew install uv

# Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

第二步,把服务注册进你的 MCP 客户端。Claude Desktop 是在配置里写:

{
    "mcpServers": {
        "blender": {
            "command": "uvx",
            "args": ["blender-mcp"]
        }
    }
}

命令行党更省事,两条就够了:

# Claude Code
claude mcp add blender uvx blender-mcp

# Codex
codex mcp add blender -- uvx blender-mcp

第三步,把插件塞进 Blender:

uvx blender-mcp install-addon

然后打开 Blender,Edit → Preferences → Add-ons,启用 Interface: MCP for Blender。

第四步连上:在 3D 视口按 N 打开侧栏,找到 MCP for Blender 标签页,点 Start MCP Server,然后就可以让 Claude 动手了。README 提醒:服务端只跑一个实例,别同时开 Claude Desktop 和 Cursor。

两个几乎人人会踩的坑(README 原文就写了):一是从 Dock 或开始菜单启动的客户端不继承你终端的 PATH,配置里光写 uvx 会报 spawn uvx ENOENT,得用 which uvx 查到全路径填进去,改完还要彻底退出客户端再开;二是机器上有 conda、pyenv、asdf 时,uv 可能挑错解释器导致装不上,解决办法是锁 Python 3.11 并加环境变量 UV_PYTHON_PREFERENCE=only-managed。
{
    "mcpServers": {
        "blender": {
            "command": "uvx",
            "args": ["--python", "3.11", "blender-mcp"],
            "env": { "UV_PYTHON_PREFERENCE": "only-managed" }
        }
    }
}

三、优点:它好在哪

  • MIT 许可,商用、改代码、二次分发都没限制;
  • 客户端通吃:Claude Desktop、Claude Code、Codex、Cursor、VS Code、OpenCode、Antigravity 都有现成配置,不用为每个客户端单独折腾;
  • 双向而不是盲写:能先读场景再动手,出错成本低;
  • 素材链路打通:从 HDRI 到低模到文生 3D,不用再自己在几个网站之间搬文件;
  • 能导出:GLB / FBX 直接给下游的网页或引擎用,不是只在 Blender 里好看;
  • 服务端也能容器化:docker build -t blender-mcp . 之后用 docker run -i --rm 顶掉 uvx,Blender 本身还是跑在你本机。

四、缺点和坑:这些是真实反馈

1. 安全模型是这里最大的问题。README 的限制章节白纸黑字写着:execute_blender_code 允许在 Blender 里运行任意 Python 代码,强大但危险,并加粗了一句 USE WITH CAUTION,还要求 ALWAYS save your work before using it。更关键的是,插件那个 socket 服务既没有鉴权也没有加密,README 原话是:任何能连到这个端口的人,都能在你的 Blender 里跑 Python。所以请让它待在 localhost,别往远程机器上直接指。

作者后来加了个 safe mode,设环境变量 BLENDER_MCP_SAFE_MODE=1 开启,承诺在脚本跑之前先检查,拦掉读写文件、拉起别的程序、访问网络、以及安装那种脚本结束后还在跑的代码。听上去是个像样的护栏。

但这条护栏目前是空的。就在今天(2026-09-15)有人提了问题单 #365,标记为 high:blocklist 里用来拦「改写 Blender 脚本搜索路径」的那条,写的是 script_directory——这是 Blender 2.90 之前的旧拼写。而插件自己声明的最低版本是 3.0,在 3.x、4.x、5.x 上真实存在的 API 是复数集合 script_directories。结果就是:规则拦的名字在任何受支持的 Blender 上都不存在,而真正能用的那条路径反而顺利通过校验。提问者在隔离环境下跑验证器复现了这一点,并指出这条规则原本要防的正是提示词注入场景下被诱导种下持久加载路径的情况。

2. 遥测默认开着。README 写明 telemetry consent 是 on by default,收集匿名使用数据,并说明用途可能包括改进工具、用于研究、以及训练 AI 模型。关掉的方法是在插件偏好里取消勾选,或者加环境变量:

DISABLE_TELEMETRY=true uvx blender-mcp

这个问题不是我臆测的——问题列表里就有用户在问,它在往一个陌生域名发什么东西(#360)。

3. Blender 版本敏感。在问题单 #339 里,多位 Windows 用户报告同一个现象:连接能建立,插件也显示连上了,但每一次工具调用都要等将近 5 分钟才返回,而 Claude Desktop 自己的超时是 4 分钟,于是全部失败;有人测出响应被截断在 51 字节。按他们给出的对照:Blender 4.5 LTS 和 5.0.0 正常,5.1.x 和 5.2 有问题,怀疑是 5.1 之后 socket/定时器的处理方式变了。另外还有一位用户最后发现,自己同时装了 BlenderLabs 的官方 MCP,两个抢同一个 9876 端口。

4. 模型并不总能一次做对。README 自己的排障表里写着:超时就把请求拆小步;Poly Haven 集成 Claude 用起来有时很飘忽;还有那条万能的重启大法。社区里也有人反馈 Poly Haven 集成有 bug、Codex 的兼容性还需要验证和完善。

5. 每次对话的固定开销在涨。有人(#347)量了一下工具 schema 的上下文成本,两周之间从 5,462 token 涨到 6,928 token,涨幅 27%。这部分是每轮对话都要付的固定成本,接的工具越多越明显。

6. 素材与生成能力要自备钥匙。Sketchfab、Poly Pizza、Hyper3D、Hunyuan3D 都要自己的 API Key;Hunyuan3D 还区分腾讯云国内站与国际站账号,走错端点和区域会报 AuthFailure.SignatureFailure 之类的错。


五、最终能达到什么效果

把话说实在点:它不会让你一句「做个赛博都市」就拿到可交付的成品。它真正省下来的是那段最耗人的翻译工作——把脑子里的画面拆成建模步骤、命名物体、配材质、打灯光、调相机这些机械劳动。对已经会 Blender 的人,它是个提速器;对不太会的人,它是个能边看边学的遥控器,你看着它的每一步操作,反推这套软件是怎么想的。

适合谁:已经在用 Blender 想提速的独立开发者和设计师;做独立游戏、短视频素材、3D 打印前可视化的人;以及本来就在 Claude 或 Cursor 里干活、顺手把 Blender 接成工具的人。

不适合谁:指望一句话出成品的人;不能接受把本机 Python 执行权交给模型、又不愿意开 safe mode 或做沙箱隔离的人;正在用 Blender 5.1 / 5.2 的人(先退回 4.5 LTS 或 5.0 更稳);以及要求零配置开箱即用的人——uv 路径和 Python 版本这两关,迟早要过一次。

如果真要上,请先把这三件事做了:一是动手前存盘,README 自己就是这么要求的;二是加上 DISABLE_TELEMETRY=true;三是别把那个 socket 端口暴露到 localhost 之外,并且不要指望 safe mode 能替你兜住全部风险。

下期预告:让 AI 建完模之后,怎么把它变成真能打印、真能进引擎的东西——开源网格修复、减面与导出工具横向对比。

项目:github.com/ahujasid/blender-mcp(Python)· 许可证:MIT · 资料来源:仓库主页、README 原文、开放问题 #339 / #347 / #360 / #365 · 抓取时间:2026-09-16 · 本文未安装实测,安装与配置命令逐字取自 README,使用结论请以你的 Blender 版本与实际环境为准。