three.ws Blender
io.github.nirholas由 GitHub 帳號 nirholas 發布v0.5.0更新於 Oct 25, 2026
Drive a local Blender headlessly: inspect, convert, render and script 3D files.
概覽
本機 MCP 伺服器,驅動無介面的 Blender,讓助理檢查、轉換、最佳化、算圖與以腳本處理 3D 檔案。
- 可以做什麼
- 檢查 Blender 安裝並描述 3D 場景:物件、材質、貼圖、骨架、動作與包圍盒,以及支援的格式和算圖引擎(唯讀)。在 GLB、glTF、FBX、OBJ、STL、PLY、Collada、Alembic、USD 與 .blend 之間轉換,可套用修改器並做單位縮放。為交付最佳化資產:依三角面預算減面、縮放貼圖、清除未引用資料並以 meshopt 或 Draco 壓縮。算圖輸出 PNG 靜態影像並內嵌回傳,可環繞多視角,場景沒有相機和燈光時自動建立。對場景執行 bpy 腳本,可先開啟檔案並在之後匯出。透過 three.ws Forge 以文字提示或參考圖生成模型並匯入 Blender。
- 適用情境
- 適合助理需要在使用者機器上處理真實 3D 資產的情況:編輯前先描述模型、把客戶檔案轉成適合網頁的格式、為交付壓縮資產,或產生助理能直接看到的預覽算圖。由於不需要圖形介面或 Blender 外掛,也適用於無介面環境、CI 與容器。
- 執行需求
- 需要 Node.js 20+ 與本機安裝的 Blender 3.0 或更新版本;以本機 stdio 程序透過 npx 執行。若 Blender 不在 PATH 中,需設定 BLENDER_PATH。選用變數可調整逾時、工作目錄、並行數與內嵌圖片大小。THREE_WS_FORGE_PROVIDER_KEY 僅用於自備金鑰的幾何生成通道;預設圖像通道免費且不需金鑰。只有生成模型時需要網路存取。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 three.ws Blender,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
@three-ws/blender-mcp
Give any AI agent the Blender on your machine. Headless, no GUI, no add-on to install.
[license] [node] [blender] [three.ws]
A Model Context Protocol server that hands an AI assistant a real Blender over stdio. Inspect a 3D file, convert between GLB, glTF, FBX, OBJ, STL, PLY, Collada, Alembic, USD and
.blend, render an auto-framed and auto-lit preview that comes back inline so the assistant can see it, run abpyscript against a scene, and generate a model from a text prompt on the free three.ws Forge lane.
Blender runs in background mode (blender -b), one process per call. That means it works on a server, in CI, and inside a container with no display, no GUI session to keep alive, and no add-on to install into Blender first. Everything is real: each tool drives the Blender installed on the machine, and blender_forge_import calls the live public three.ws generation pipeline.
Requirements
- Node.js 20+
- Blender 3.0 or newer, installed locally. Download it, or install it from your package manager. If it is not on
PATH, setBLENDER_PATHto the executable (/Applications/Blender.app/Contents/MacOS/Blenderon macOS).
Call blender_info first if anything misbehaves: it reports the exact executable, version, render engines, and file formats this build supports.
Install
Or run it with npx (no install):
Claude Code
Claude Desktop / Cursor
Paste this into your MCP config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):
Add "env": { "BLENDER_PATH": "/path/to/blender" } if Blender is not on PATH.
Tools
Examples
Describe a file before touching it:
Make a model shippable and see what it cost:
Look at it from four sides at once:
Convert a client's FBX into a web-ready GLB, in metres:
See what you just made:
Halve the triangle count and export in one call:
Generate an asset and open it as a .blend:
Or reconstruct one from a reference image:
Compressed glTF
Meshopt- and Draco-compressed assets are decoded automatically before Blender opens them, in process, with no external binary to install.
This is not a nicety. Blender's glTF importer has no decoder for EXT_meshopt_compression, which is what gltfpack emits and what most three.ws avatars are delivered as; handed one it fails outright with "Extension EXT_meshopt_compression is not available on this addon version". Draco is nominally supported but only on builds that ship libextern_draco, which several Linux distribution packages do not. Every tool that takes an input goes through the same decode, and the response names what was decoded in decoded_compression. Your file is never modified: the decoded copy lives in the job's scratch directory and is deleted with it.
How a call works
Every tool call spawns blender -b --factory-startup --python src/py/runner.py -- <job.json> <result.json> and exits. Three consequences worth knowing:
--factory-startupkeeps your saved preferences and third-party add-ons out of the result, so a conversion produces the same file on any machine.- The runner writes its payload to a file, never to stdout. Blender prints progress, add-on chatter, and render statistics on stdout, and picking a payload out of that stream is guesswork. A missing result file therefore means Blender died, and the error carries the log tail that says why.
- One process per call. A crashed job cannot corrupt the next one, and nothing stays resident between calls.
Failures come back as structured tool errors (input_not_found, format_unsupported, engine_unavailable, timeout, blender_not_found, blender_unusable, blender_crashed), each with a message that says what to do about it. blender_not_found means no candidate exists; blender_unusable means one exists but would not run, and carries the per-candidate diagnostics, because on a loaded machine a failed probe is transient and telling you to install software you already have is the wrong answer.
Environment variables
Security
blender_run_python executes caller-supplied Python inside Blender with the permissions of this server: it can read and write the local filesystem. That is the point of the tool, and it is annotated destructiveHint: true so a client can prompt before running it. For unattended or shared deployments, set BLENDER_MCP_ALLOW_PYTHON=0 and the tool is never advertised.
Everything else stays local. Only blender_forge_import reaches the network, and only to the three.ws deployment named by THREE_WS_BASE.
Development
test/registration.test.mjs runs offline and passes with no Blender installed. test/blender-session.test.mjs drives the server through a real MCP stdio session against the local Blender, building its fixture with Blender itself; it skips cleanly when no Blender is present.
Related
integrations/blender/is the artist-facing counterpart: a Blender add-on with a sidebar panel that generates three.ws models from inside the GUI. This package is the agent-facing one.@three-ws/scene-mcpcomposes whole 3D worlds from a sentence.- three.ws is the platform behind the Forge pipeline.
License
Apache-2.0
來源:packages/blender-mcp/README.md,提交 8a1fd5d
工具
0版本歷史
1- v0.5.0最新Sep 30, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分