关于 Frugal Blender MCP
Frugal Blender MCP 是供 AI Agent 构建和检查 Blender 场景的 MCP 服务。它以四种紧凑工具、批量操作和权限控制来访问 Blender 操作。
主要功能
- 01四种工具:discover、execute、inspect、capture
- 02每次调用最多批量执行 100 项操作
- 03按页和名称筛选检查场景
- 04捕获预览并渲染输出
- 05可选访问完整 bpy API
- 06为高风险操作设置权限
适用场景
- 01通过 AI Agent 构建和调整 Blender 场景
- 02批量编辑场景并通过捕获结果检查
- 03渲染或保存场景输出
- 04通过 CLI 脚本运行 Blender 操作
MCP 相关
向 MCP 客户端提供 discover、execute、inspect 和 capture 四种工具,分别用于发现操作、批量执行 Blender 操作、筛选检查场景及捕获图像。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | |
| names | array | 否 | |
| offset | integer | 否 |
详细介绍
Frugal Blender MCP
让你的 AI Agent 构建 Blender 场景。涵盖整个 Blender,只需 4 个工具和 338 个令牌。
快速开始 · 它如何节省令牌 · 基准测试 · 安全性 · 示例
Claude 编写了 5 次 execute 调用(109 项操作),并使用 Blender 5.1 中的 Cycles 渲染。
重放完全相同的调用:运行时间不到 1 秒。
4MCP 工具 | 338个固定上下文令牌 | 100次每调用操作数 | 14–22x上下文占用比其他 Blender 服务少 |
为什么这很重要
每个 MCP 客户端都会在每次请求时,先将各服务的工具定义发送给模型,然后你才能输入任何内容。大多数 Blender 服务提供 26 到 31 个工具,并因此消耗数千个令牌。这些上下文令牌本可以用于你的场景、代码或模型自身的推理。
Frugal Blender MCP 提供 4 个工具:discover、execute、inspect 和 capture,同时仍可访问整个 Blender API。
快速开始
1. 安装 Blender 插件
uvx frugal-blender-mcp install-addon
在 Blender 中,打开 编辑 → 偏好设置 → 插件 并启用 Frugal Blender MCP。然后在 3D 视图中按下 N,打开 Frugal MCP 选项卡并点击 启动桥接。
2. 连接你的 Agent
| Claude Code |
|
| Codex CLI |
|
| Claude Desktop、 Cursor、Windsurf |
|
如果桌面应用找不到 uvx,请使用其绝对路径(which uvx 或 where uvx)。
3. 提出需求
在黄金时刻建造一座小型灯塔岛:一座红白相间的塔楼、一栋守塔人小屋、几棵松树、一些岩石和一艘帆船。请批量处理编辑,然后截取预览。
四个工具如何触达 Blender 的所有功能
大多数服务会为每个操作提供一个工具,而且每个请求都会附带所有定义。 此服务精简了菜单,只有 Agent 需要时才提供详细信息:
sequenceDiagram
autonumber
participant A as AI agent
participant M as Frugal Blender MCP
participant B as Blender
Note over A,M: Each request carries only 4 tool definitions, 338 tokens
A->>M: discover()
M-->>A: 16 operation summaries, 189 tokens, once
A->>M: discover("array")
M-->>A: argument contract for one operation
A->>M: execute(43 steps)
M->>B: validated batch, run on Blender's main thread
M-->>A: ok, completed 43, 28 tokens
A->>M: capture()
M-->>A: preview image at the scene's aspect ratio
| 技术 | 功能 | 效果 |
|---|---|---|
| 延迟加载架构 | 操作参数收录在 discover 后。Agent 只会在使用时获取每个架构一次。 | 固定开销保持在 338 个 token。即使获取所有架构,总计也只有 1,256 个。 |
| 批处理 | 一次 execute 最多可承载 100 个操作。array 一步最多可创建 200 个副本,keyframes 最多可设置 1,000 个关键帧。 | 灯塔只用了 5 次调用,而不是 109 次。 |
| 紧凑结果 | execute 只返回计数和错误,不会回传整个场景。 | 109 个操作总共返回了 202 个 token。 |
| 查看,不倾倒 | capture 返回图像。inspect 支持分页,并可按名称筛选。 | Agent 可以检查成果,而不必读取庞大的场景数据。 |
| 精简定义 | 列出工具前,会移除自动生成的架构标题、null 联合类型和文档字符串中的空白。 | 定义从 406 个 token 缩减到 289 个。超过 300 个时测试会失败。 |
| 一个逃生舱口 | python 通过同一个 execute 调用运行任意 bpy 代码,因此不需要额外工具。 | 零固定开销即可使用 Geometry Nodes、绑定、模拟和导入/导出功能。 |
上方动画背后的五次调用,以及每次调用新增的内容:
基准测试
| 服务 | 工具 | 每个请求的固定上下文 |
|---|---|---|
| Frugal Blender MCP | 4 | 338 个 token |
| Blender Lab 官方版 | 26 | 4,722 个 token(14.0 倍) |
| ahujasid mcp-for-blender | 31 | 7,464 个 token(22.1 倍) |
各服务真实的 initialize 和 tools/list 响应中的工具定义及服务端指令,使用 tiktoken o200k_base 进行分词。
方法、原始数据、发现成本和注意事项。
Agent 可以做什么
| 需求 | 操作 | |
|---|---|---|
| 🧱 | 构建 | primitive、array、transform、material、assign_material、light、camera、delete |
| 🎨 | 精修 | modifier(任意 Blender 修改器)、properties(对象、数据、场景或渲染的任意 RNA 属性)、rna(查询属性名称和枚举值) |
| 🎬 | 制作动画 | keyframes、frame |
| 📸 | 输出 | capture(将预览返回给 Agent;使用 EEVEE,或按需使用 Cycles)、render(静帧或动画)、save(保存 .blend 副本) |
| 🐍 | 其他任意操作 | python:完整的 bpy API。默认关闭。 |
安全性
Blender 始终由你掌控。启动桥接时,可在插件面板中选择权限,Agent 无法更改这些权限。
- 写入和渲染默认开启。删除、保存和python默认关闭。
- **Python 可以不受限制地在本地执行代码。**仅对你信任的 Agent 启用。
- 桥接仅侦听回环地址,每次启动时都需要新的随机令牌。
- 删除操作需要
confirm: true。保存和渲染绝不会覆盖已有文件。 - 交互式会话会在每批操作前创建撤销检查点。
- 无遥测数据。
详情:SECURITY.md。
对比
根据你的需求选择,而不只是看上下文大小:
- Blender Lab 的官方服务还会搜索 Blender 手册和 API 文档,帮助 Agent
正确编写
bpy。 - ahujasid 的服务集成了资源提供方(Poly Haven、Sketchfab、Hyper3D 等)。
- 本服务保持固定上下文精简,批量处理编辑操作,通过权限控制高风险操作,并且在你允许时仍可通过
python调用整个 API。
更多
CLI:通过脚本以相同代码路径驱动 Blender
uvx --from frugal-blender-mcp frugal-blender discover
uvx --from frugal-blender-mcp frugal-blender inspect
uvx --from frugal-blender-mcp frugal-blender execute --params '{"steps":[{"op":"primitive","kind":"cube","name":"Demo"}]}'
uvx --from frugal-blender-mcp frugal-blender capture --params '{"filename":"preview.png","size":768}'
PowerShell 可以通过管道传入文件,无需引用 JSON:
Get-Content -Raw examples/lighthouse/01-sky-and-sea.json | uvx --from frugal-blender-mcp frugal-blender execute --params -
捕获、渲染和保存的文件会放入桥接程序的 exports/ 文件夹,CLI 会打印文件名。
多个 Blender 实例
每个运行中的桥接程序都会写入一个连接描述文件。如果存在多个描述文件,请将
BLENDER_COMPACT_CONNECTION 设置为你要使用的文件:
- Windows:
%LOCALAPPDATA%/blender-compact-mcp/connection-<pid>.json - Linux/macOS:
${XDG_STATE_HOME:-~/.local/state}/blender-compact-mcp/connection-<pid>.json
如果无法确定要连接的实例,程序会报错,而不是随机选择一个场景。打开其他文件会停止 桥接程序。发生崩溃后,只删除过时的描述文件。
不使用 uvx 安装
- **插件:**从 Releases 下载
frugal-blender-mcp-addon-<version>.zip,然后在 Blender 的插件首选项中使用 Install from Disk,或运行uvx frugal-blender-mcp install-addon --zip addon.zip。 - **从源代码运行服务:**克隆仓库,运行
uv sync --frozen,并将客户端指向uv run --directory /absolute/path/to/frugal-blender-mcp frugal-blender-mcp。
使用旧版 blender-astra-mcp 或 blender-compact-mcp 命令的配置仍然有效。
架构
AI client -- MCP stdio --> Python bridge -- authenticated loopback JSON --> Blender add-on
CLI ----------------------------^ bpy.app.timers
Blender 的计时器会接收有界套接字输入,并在 Blender 主线程上运行操作。后台线程不会接触 Blender 数据。discover 会返回易读的参数约定,插件会在运行前再次验证每个批次。若批次中途失败,程序会报告失败的步骤以及已运行的内容。请参阅设计文档。
开发
uv sync --frozen
uv run ruff check --config pyproject.toml .
uv run ruff format --check --config pyproject.toml .
uv run pytest -q
如果 BLENDER_EXE 未指向 Blender 可执行文件,需要 Blender 的测试就会跳过。设置
BLENDER_TEST_UI=1,还可测试交互式计时器和撤销功能。这些测试会启动独立的 factory-startup
Blender 进程,不会触碰你的场景或首选项。结果见:
验证文档。
scripts/demo_host.py 会在空场景中运行无头桥接程序,以便重放 examples/ 中的示例。
scripts/bench_tool_context.py 和 scripts/context_chart.py 可重现基准测试和图表。
如果这为你的 Agent 节省了一些令牌,点个 ⭐ 就能帮助更多人发现它。
采用 MIT 许可证。独立项目,与 Blender Foundation 或任何模型提供方均无关联。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。