Blender MCP 服务端 —— 工作方式与技术详解
是的,Blender 有 MCP 服务端。 Blender MCP 项目 提供了一个功能完整的 Model Context Protocol 服务端,把 Claude、Cursor、VSCode 这类 AI 客户端连接到 Blender 3D。本页讲的是它底层怎么运作——架构、socket 协议、每一个可用工具,以及如何按你的流程来配置。
MCP 服务端是什么?
Model Context Protocol(MCP) 是 Anthropic 提出的一个开放标准,让 AI 模型能够与外部工具和数据源交互。MCP 服务端对外暴露一组”工具”(函数),AI 客户端可以发现并调用它们。你可以把它理解成面向 AI 的标准化插件接口。
当 Claude(或 Cursor、VSCode 等)连接到一个 MCP 服务端时,它会:
- 发现有哪些工具可用(例如
create_object、set_material) - 根据你的自然语言提示词,决定调用哪些工具
- 向服务端发送结构化的指令
- 接收结果,并据此继续对话
Blender MCP 只是众多 MCP 服务端中的一个——数据库、文件系统、网页抓取等都有各自的服务端。Blender MCP 特别的地方在于,它用一套基于 socket 的架构,把 AI 和 Blender 之间的鸿沟连了起来。
Blender MCP 的架构
整套系统由两个部分组成,它们通过 TCP socket 通信:
┌─────────────────┐ MCP Protocol ┌─────────────────┐ TCP Socket ┌─────────────────┐
│ │ (stdio/SSE) │ │ (JSON over TCP) │ │
│ AI Client │◄────────────────────►│ MCP Server │◄──────────────────►│ Blender │
│ (Claude, │ │ (server.py) │ │ (addon.py) │
│ Cursor, │ Tool discovery │ │ Commands & │ │
│ VSCode) │ Tool execution │ Translates │ Responses │ Socket server │
│ │ Result streaming │ MCP ↔ Socket │ │ Python exec │
└─────────────────┘ └─────────────────┘ └─────────────────┘一次典型请求的数据流:
- 用户在 Claude 里发出提示词:“做一个红色立方体”
- Claude 分析这句话,决定调用
create_object这个 MCP 工具 - MCP 服务端(
server.py)通过 stdio 收到这次工具调用 - 它把指令序列化成 JSON,发送给 Blender 的 socket 服务
- Blender 插件(
addon.py)收到 JSON,在 Blender 里执行相应的 Python 代码 - 执行结果(成功 / 失败、物体数据)通过 socket 返回
- MCP 服务端把结果交还给 Claude
- Claude 把结果反馈给用户
socket 服务(addon.py)
Blender 插件(addon.py)是一个标准的 Blender 附加组件,注册名为 “Interface: Blender MCP”。启用之后,它会:
- 在
localhost:9876(可配置)上开启一个 TCP socket 服务 - 监听来自 MCP 服务端的 JSON 指令
- 在 Blender 的 Python 环境中执行这些指令
- 以 JSON 格式返回结果
通信协议
指令和响应通过 TCP 使用一套简单的 JSON 协议:
指令格式:
{
"type": "command_name",
"params": {
"key": "value"
}
}响应格式:
{
"status": "success",
"result": { ... }
}环境变量
可以用环境变量来配置 socket 连接:
| 变量 | 默认值 | 说明 |
|---|---|---|
BLENDER_HOST | localhost | socket 服务的主机地址 |
BLENDER_PORT | 9876 | socket 服务的端口号 |
当 Blender 跑在另一台机器上时,这很有用:
export BLENDER_HOST='host.docker.internal'
export BLENDER_PORT=9876MCP 协议服务端(server.py)
MCP 服务端(src/blender_mcp/server.py)是一个 Python 应用,以 blender-mcp 包的形式发布在 PyPI 上。它负责:
- 实现 MCP 协议(stdio 传输)
- 注册所有可供 AI 客户端发现的工具
- 把 MCP 的工具调用翻译成 Blender 的 socket 指令
- 管理与 Blender 插件之间连接的生命周期
- 通过
uvx blender-mcp运行(由 AI 客户端自动管理)
你不需要手动启动这个服务端——Claude Desktop、Cursor 和其他兼容 MCP 的客户端会根据配置文件自动拉起它。
可用的 MCP 工具与指令
Blender MCP 服务端向 AI 客户端提供这些工具:
场景与物体
| 工具 | 说明 |
|---|---|
get_scene_info | 返回当前 Blender 场景的完整信息——物体、材质、灯光、相机 |
create_object | 创建新的 3D 物体(网格基本体:立方体、球体、圆柱、平面、圆锥、圆环) |
modify_object | 修改已有物体的属性——位置、旋转、缩放、名称 |
delete_object | 按名称从场景中删除物体 |
材质与视觉
| 工具 | 说明 |
|---|---|
set_material | 为物体应用或创建材质,可设置颜色、金属度、粗糙度等 PBR 属性 |
get_object_info | 获取某个物体的详细信息,包括它的材质数据 |
素材集成
| 工具 | 说明 |
|---|---|
get_polyhaven_assets | 从 Poly Haven 搜索并下载 HDRI、贴图和 3D 模型 |
get_sketchfab_models | 从 Sketchfab 搜索并下载 3D 模型 |
generate_hyper3d_model | 通过 Hyper3D Rodin 的 AI 生成 3D 模型 |
generate_hunyuan3d_model | 通过 Hunyuan3D 生成 3D 模型 |
进阶
| 工具 | 说明 |
|---|---|
execute_blender_code | 在 Blender 内部运行任意 Python 代码。能力极强——Blender Python API 能做的事它都能做 |
get_blender_screenshot | 截取当前 Blender 视图的画面,供 AI 分析 |
安全提示: execute_blender_code 会在 Blender 里运行任意 Python 代码。这很强大,但也可能带来风险——使用之前请务必先保存你的工作,提示词越复杂越要注意。
服务端配置选项
基础配置(Claude Desktop)
{
"mcpServers": {
"blender": {
"command": "uvx",
"args": ["blender-mcp"]
}
}
}自定义主机 / 端口
{
"mcpServers": {
"blender": {
"command": "uvx",
"args": ["blender-mcp"],
"env": {
"BLENDER_HOST": "192.168.1.100",
"BLENDER_PORT": "9876"
}
}
}
}关闭遥测
{
"mcpServers": {
"blender": {
"command": "uvx",
"args": ["blender-mcp"],
"env": {
"DISABLE_TELEMETRY": "true"
}
}
}
}Cursor 配置
{
"mcpServers": {
"blender": {
"command": "uvx",
"args": ["blender-mcp"]
}
}
}各平台的具体配置写法,见我们的配置指南:
同时运行多个服务端
不要同时运行多个 MCP 服务端实例(例如 Cursor 里一个、Claude Desktop 里一个)。它们会争抢同一个 Blender socket 连接。
如果需要在不同的 AI 客户端之间切换,请先断开一个,再连另一个。Blender 插件的侧栏面板会显示当前的连接状态。
如果确实需要多个 AI 客户端同时工作,可以在不同端口上运行多个 Blender 实例:
- 实例 1:
BLENDER_PORT=9876(默认) - 实例 2:
BLENDER_PORT=9877
每个实例都需要自己的 MCP 服务端配置,指向对应的端口。
性能与局限
表现不错的场景
- 简单物体的创建和调整
- 材质与灯光设置
- Poly Haven 素材下载
- 场景检查与反复迭代
已知的局限
- 复杂场景可能超时。 把大的请求拆成更小的、按顺序执行的提示词。
- Poly Haven 集成不太稳定。 Claude 有时会在素材搜索上卡住。
- 第一条指令可能失败。 已知的小毛病——第二条消息通常就正常了。
- 没有实时视图串流。 AI 依据的是场景数据和截图,而不是实时视频。
- 不支持 Blender 2.x。 需要 Blender 3.0 或更新的版本。
遥测
BlenderMCP 默认会收集匿名使用数据。你可以这样控制它:
- 在 Blender 里: Edit → Preferences → Add-ons → Blender MCP → 取消勾选遥测
- 通过环境变量: 设置
DISABLE_TELEMETRY=true
在同意的情况下,它会收集匿名化的提示词、代码片段和截图;不同意时,只收集工具名称、成功 / 失败状态和耗时。
本页的技术说明是完整的,不看视频也不影响理解。作者关于 Blender MCP 与创作工具未来的会议演讲录像在 YouTube 上,只有英文;在你点开之前,本页不会加载它的任何内容。
Blender MCP 与创作工具的未来(会议演讲)
常见问题
Blender 有 MCP 服务端吗?
有。Blender MCP 项目(github.com/ahujasid/blender-mcp)提供了一个功能完整的 Model Context Protocol 服务端。它把 Claude、Cursor、VSCode 这类 AI 客户端连接到 Blender 3D,让你可以用自然语言做 3D 建模。
Blender MCP 服务端是怎么工作的?
它由两部分组成:一个 Blender 插件(addon.py),在 Blender 内部开启 TCP socket 服务;以及一个 MCP 服务端(server.py),在 AI 客户端和这个 socket 之间充当桥梁。指令从 AI 客户端经由 MCP 协议到达 socket 服务,最终作为 Python 代码在 Blender 中执行。
可以远程运行 Blender MCP 服务端吗?
可以。把环境变量 BLENDER_HOST 设为远程机器的 IP 地址,BLENDER_PORT 设为对应端口。这样你就可以让 Blender 跑在一台性能更强的远程机器上,而从本地的 AI 客户端来控制它。
Blender MCP 服务端提供哪些工具?
包括场景检查,物体的创建 / 修改 / 删除,材质控制,Poly Haven 素材下载,Sketchfab 模型搜索,Hyper3D / Hunyuan3D 模型生成,在 Blender 中执行任意 Python 代码,以及截取视图画面。