Skip to Content
MCP 服务端

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 服务端时,它会:

  1. 发现有哪些工具可用(例如 create_objectset_material)
  2. 根据你的自然语言提示词,决定调用哪些工具
  3. 向服务端发送结构化的指令
  4. 接收结果,并据此继续对话

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 │ └─────────────────┘ └─────────────────┘ └─────────────────┘

一次典型请求的数据流:

  1. 用户在 Claude 里发出提示词:“做一个红色立方体”
  2. Claude 分析这句话,决定调用 create_object 这个 MCP 工具
  3. MCP 服务端(server.py)通过 stdio 收到这次工具调用
  4. 它把指令序列化成 JSON,发送给 Blender 的 socket 服务
  5. Blender 插件(addon.py)收到 JSON,在 Blender 里执行相应的 Python 代码
  6. 执行结果(成功 / 失败、物体数据)通过 socket 返回
  7. MCP 服务端把结果交还给 Claude
  8. 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_HOSTlocalhostsocket 服务的主机地址
BLENDER_PORT9876socket 服务的端口号

当 Blender 跑在另一台机器上时,这很有用:

export BLENDER_HOST='host.docker.internal' export BLENDER_PORT=9876

MCP 协议服务端(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_assetsPoly Haven  搜索并下载 HDRI、贴图和 3D 模型
get_sketchfab_modelsSketchfab  搜索并下载 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 上,只有英文;在你点开之前,本页不会加载它的任何内容。

在 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 代码,以及截取视图画面。

最后更新于