mcpField
F
Frugal Blender MCP

Frugal Blender MCP

本地服务
github.com/mohakmalviya媒体与设计152 周前更新

关于 Frugal Blender MCP

Frugal Blender MCP 是供 AI Agent 构建和检查 Blender 场景的 MCP 服务。它以四种紧凑工具、批量操作和权限控制来访问 Blender 操作。

主要功能

  1. 01四种工具:discover、execute、inspect、capture
  2. 02每次调用最多批量执行 100 项操作
  3. 03按页和名称筛选检查场景
  4. 04捕获预览并渲染输出
  5. 05可选访问完整 bpy API
  6. 06为高风险操作设置权限

适用场景

  1. 01通过 AI Agent 构建和调整 Blender 场景
  2. 02批量编辑场景并通过捕获结果检查
  3. 03渲染或保存场景输出
  4. 04通过 CLI 脚本运行 Blender 操作

MCP 相关

向 MCP 客户端提供 discover、execute、inspect 和 capture 四种工具,分别用于发现操作、批量执行 Blender 操作、筛选检查场景及捕获图像。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mohakmalviya-frugal-blender": {
"command": "uvx",
"args": [
"frugal-blender-mcp"
]
}
}
}
启动命令uvx frugal-blender-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypifrugal-blender-mcp0.2.0

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
limitinteger否
namesarray否
offsetinteger否

详细介绍

Frugal Blender MCP

让你的 AI Agent 构建 Blender 场景。涵盖整个 Blender,只需 4 个工具和 338 个令牌。

Checks PyPI Blender 4.2+ MCP MIT

快速开始 · 它如何节省令牌 · 基准测试 · 安全性 · 示例

日落时分的风格化灯塔岛,灯光旋转,帆船上下浮动,海浪涌动

Claude 编写了 5 次 execute 调用(109 项操作),并使用 Blender 5.1 中的 Cycles 渲染。 重放完全相同的调用:运行时间不到 1 秒。

4

MCP 工具

338

个固定上下文令牌

100

次每调用操作数

14–22x

上下文占用比其他 Blender 服务少

为什么这很重要

每个 MCP 客户端都会在每次请求时,先将各服务的工具定义发送给模型,然后你才能输入任何内容。大多数 Blender 服务提供 26 到 31 个工具,并因此消耗数千个令牌。这些上下文令牌本可以用于你的场景、代码或模型自身的推理。

Frugal Blender MCP 提供 4 个工具:discover、execute、inspect 和 capture,同时仍可访问整个 Blender API。

快速开始

你需要 Blender 4.2+ 和 uv。

1. 安装 Blender 插件

uvx frugal-blender-mcp install-addon

在 Blender 中,打开 编辑 → 偏好设置 → 插件 并启用 Frugal Blender MCP。然后在 3D 视图中按下 N,打开 Frugal MCP 选项卡并点击 启动桥接。

2. 连接你的 Agent

Claude Code
claude mcp add blender -- uvx frugal-blender-mcp
Codex CLI
codex mcp add blender -- uvx frugal-blender-mcp
Claude Desktop、
Cursor、Windsurf
{
  "mcpServers": {
    "blender": { "command": "uvx", "args": ["frugal-blender-mcp"] }
  }
}

如果桌面应用找不到 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、绑定、模拟和导入/导出功能。

上方动画背后的五次调用,以及每次调用新增的内容:

五次 execute 调用后灯塔场景的变化

基准测试

每个请求的固定上下文:Frugal Blender MCP 为 338 个 token,Blender Lab 官方版为 4,722 个 token,ahujasid 为 7,464 个 token
服务工具每个请求的固定上下文
Frugal Blender MCP4338 个 token
Blender Lab 官方版264,722 个 token(14.0 倍)
ahujasid mcp-for-blender317,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 或任何模型提供方均无关联。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。