fnf-blender-mcp 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -26
- package/package.json +3 -13
- package/RELEASING.md +0 -11
package/README.md
CHANGED
|
@@ -1,27 +1,29 @@
|
|
|
1
|
-
# Higgsfield
|
|
1
|
+
# Higgsfield Blender MCP
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Local MCP server that controls a dedicated background Blender process. No add-on, HTTP listener, WebSocket, cloud account or open Blender window is required.
|
|
4
4
|
|
|
5
5
|
```text
|
|
6
6
|
Desktop MCP client → stdio → Node MCP → process pipes → Blender --background → bpy
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Each MCP connection owns one process. Its scene persists between commands; it cannot access unsaved work in an already-open desktop Blender. Open saved input with `bl_open_project`, edit and render, then save a `.blend` output to inspect in the desktop UI. Disconnecting loses unsaved session changes.
|
|
9
|
+
Each MCP connection owns one process. Its scene persists between commands; it cannot access unsaved work in an already-open desktop Blender. Open saved input with `bl_open_project`, edit and render, then save a `.blend` output to inspect in the desktop UI. Disconnecting loses unsaved session changes.
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Requirements
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
- Node.js 24 or later with npm.
|
|
14
|
+
- Blender 4.2 or later on the same computer as the MCP client.
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
14
17
|
|
|
15
18
|
```sh
|
|
16
|
-
npm view fnf-blender-mcp@latest version --registry=https://registry.npmjs.org/
|
|
17
19
|
blenderDir="$HOME/.higgsfield/blender-mcp"
|
|
18
|
-
npm install --prefix "$blenderDir"
|
|
20
|
+
npm install --prefix "$blenderDir" fnf-blender-mcp@latest
|
|
19
21
|
blenderCli="$blenderDir/node_modules/fnf-blender-mcp/dist/cli.js"
|
|
20
22
|
node "$blenderCli" doctor --blender "/absolute/path/to/blender"
|
|
21
23
|
node "$blenderCli" config --blender "/absolute/path/to/blender" --format json
|
|
22
24
|
```
|
|
23
25
|
|
|
24
|
-
Use the executable inside `Blender.app/Contents/MacOS/Blender` on macOS, or `blender.exe` on Windows. `config --format toml` prints a Codex entry. Both formats include absolute Node/server paths and `BLENDER_EXECUTABLE`; merge the entry into the intended client and refresh its connection. The helper prints configuration but does not register a server.
|
|
26
|
+
Use the executable inside `Blender.app/Contents/MacOS/Blender` on macOS, or `blender.exe` on Windows. `config --format toml` prints a Codex entry. Both formats include absolute Node/server paths and `BLENDER_EXECUTABLE`; merge the entry into the intended client and refresh its connection. The helper prints configuration but does not register a server. The installed package includes a `use-blender` skill with additional setup guidance.
|
|
25
27
|
|
|
26
28
|
The server starts Blender on its first execution call. `doctor` checks a separate temporary background process and terminates it afterward. Verify conversation access with `bl_health` and `bl_get_scene_summary`. `BLENDER_EXECUTABLE` can be set directly; without it the runtime tries standard installation locations and PATH. No separate Python installation is needed at runtime.
|
|
27
29
|
|
|
@@ -44,29 +46,14 @@ The npm archive contains the Blender craft modules. `bl_list_skills` lists the m
|
|
|
44
46
|
|
|
45
47
|
Render a camera frame to PNG; files up to 4 MiB receive an inline preview. Cycles supports sample overrides. Save/render require `overwrite: true` for existing output files; opening a different project refuses unsaved changes unless explicitly discarded. Arbitrary Python is not sandboxed and can bypass these typed-tool guards. Automatic execution of Python embedded in opened `.blend` files is disabled.
|
|
46
48
|
|
|
47
|
-
##
|
|
49
|
+
## Troubleshooting and limits
|
|
48
50
|
|
|
49
51
|
A timed-out job continues and keeps its `job_id`. Query `bl_job_status` before retrying; additional execution commands are rejected while it runs. No automatic retries or rollbacks occur. Status retains at most 128 jobs within the MCP process. If Blender crashes, the session fails and is not restarted automatically: inspect output files before reconnecting to a new empty session. Closing the MCP terminates its child process, including a running job; save needed changes first.
|
|
50
52
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
## Development and validation
|
|
54
|
-
|
|
55
|
-
From the repository root:
|
|
56
|
-
|
|
57
|
-
```sh
|
|
58
|
-
cd blender
|
|
59
|
-
npm ci
|
|
60
|
-
npm test
|
|
61
|
-
npm run typecheck
|
|
62
|
-
npm run test:package
|
|
63
|
-
BLENDER_EXECUTABLE=/absolute/path/to/blender npm run test:live
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Offline tests exercise actual MCP and child-process pipes using a Python CLI fixture, persistent session state, isolation, timeout recovery, process death, bounded results/history, output formatting, CLI configuration and typed-script guards. They do not replace live Blender validation. `test:package` installs the archive independently and verifies 21 tools, offline guidance, asset lookup and the absence of runtime add-on files. `test:live` uses real Blender for geometry, materials, keyframes, file guards and a small Cycles render in disposable files.
|
|
53
|
+
Use camera renders for visual evidence. No existing desktop scenes, preferences or installed add-ons are modified during startup. Multiple MCP connections have separate background scenes.
|
|
67
54
|
|
|
68
55
|
Verified on macOS arm64 with Blender 4.2.23 LTS: persistent scene, mesh/material/camera/light edits, keyframes, save/reopen guards and a Cycles PNG preview. Windows/Linux native Blender execution has not been verified locally.
|
|
69
56
|
|
|
70
|
-
|
|
57
|
+
The installed package includes `UPSTREAM.md` and `LICENSE` for provenance and licensing details.
|
|
71
58
|
|
|
72
59
|
Background Blender does not reliably mark direct Python edits as dirty. The MCP also tracks attempted mutations, including failed commands and arbitrary `bl_execute` calls, conservatively as unsaved until `bl_save_project` or an explicitly permitted `bl_open_project` succeeds. Read tools preserve this state.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fnf-blender-mcp",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.2.2",
|
|
4
|
+
"description": "Local MCP server for Blender with a background process and offline creative skills.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"engines": {
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
"dist",
|
|
16
16
|
"skills",
|
|
17
17
|
"README.md",
|
|
18
|
-
"RELEASING.md",
|
|
19
18
|
"UPSTREAM.md",
|
|
20
19
|
"LICENSE",
|
|
21
20
|
"scripts/*.py"
|
|
@@ -42,20 +41,11 @@
|
|
|
42
41
|
"access": "public",
|
|
43
42
|
"registry": "https://registry.npmjs.org/"
|
|
44
43
|
},
|
|
45
|
-
"homepage": "https://www.npmjs.com/package/fnf-blender-mcp",
|
|
46
44
|
"keywords": [
|
|
47
45
|
"blender",
|
|
48
46
|
"mcp",
|
|
49
47
|
"higgsfield",
|
|
50
48
|
"3d",
|
|
51
49
|
"bpy"
|
|
52
|
-
]
|
|
53
|
-
"repository": {
|
|
54
|
-
"type": "git",
|
|
55
|
-
"url": "git+https://github.com/higgsfield-ai/fnf-local-pluging-bridge-mcp.git",
|
|
56
|
-
"directory": "blender"
|
|
57
|
-
},
|
|
58
|
-
"bugs": {
|
|
59
|
-
"url": "https://github.com/higgsfield-ai/fnf-local-pluging-bridge-mcp/issues"
|
|
60
|
-
}
|
|
50
|
+
]
|
|
61
51
|
}
|
package/RELEASING.md
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# Release fnf-blender-mcp
|
|
2
|
-
|
|
3
|
-
Run commands from this `blender/` directory. Its package and lockfile are independent of After Effects.
|
|
4
|
-
|
|
5
|
-
1. Run `npm ci`, `npm test`, `npm run typecheck`, `npm run test:package`, and `test:live` with a real `BLENDER_EXECUTABLE` when available.
|
|
6
|
-
2. Version 0.2.1 bundles the Blender craft skills, including the additions from PR #25. Verify that it is unpublished with `npm view fnf-blender-mcp versions --json`. Never overwrite an existing npm version; bump both manifests for subsequent releases.
|
|
7
|
-
3. Keep README.md, skills/use-blender and the fnf-mcp-server command bundle on `fnf-blender-mcp@latest`; preserve historical migration versions. Review migration instructions for removed commands and tools.
|
|
8
|
-
4. Merge the source changes and version metadata into `main`, check out its exact commit in a clean worktree, rerun the checks, then run `npm pack --json`, review the contents, then publish the reviewed archive with `npm publish ./fnf-blender-mcp-0.2.1.tgz --access public --registry=https://registry.npmjs.org/` when publication is authorized.
|
|
9
|
-
5. Verify the public version and checksum and test a fresh registry installation. Publish the package before deploying the fnf-mcp-server instructions that require it.
|
|
10
|
-
|
|
11
|
-
Merging the source MR does not publish npm. Version 0.1.0 still requires the old add-on; it is not a fallback for 0.2.0 setup. New clients need a refreshed configuration containing BLENDER_EXECUTABLE. Existing desktop files and add-ons are not removed by this release.
|