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.
Files changed (3) hide show
  1. package/README.md +13 -26
  2. package/package.json +3 -13
  3. package/RELEASING.md +0 -11
package/README.md CHANGED
@@ -1,27 +1,29 @@
1
- # Higgsfield use Blender
1
+ # Higgsfield Blender MCP
2
2
 
3
- The independent `fnf-blender-mcp` package in `fnf-local-pluging-bridge-mcp/blender` controls a dedicated background Blender process. No add-on, HTTP listener, WebSocket, cloud account or open Blender window is required.
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. The After Effects package at the repository root is independent.
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
- ## Setup
11
+ ## Requirements
12
12
 
13
- Requires Node.js 24+ with npm and Blender 4.2+. Version 0.2.0 introduces the background runtime; version 0.1.0 uses the previous add-on. Install the latest published version (0.2.0 or newer); rerun the install command to update an existing installation.
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" --registry=https://registry.npmjs.org/ fnf-blender-mcp@latest
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. See the [installation skill](skills/use-blender/references/installation.md) for PowerShell and migration steps.
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
- ## Session lifecycle
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
- In 0.2.0, `launch`, `install-addon`, `bl_screenshot`, bridge discovery, PID selection and runtime-directory overrides are removed. 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.
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
- See [RELEASING.md](RELEASING.md) for release steps. The setup skill is mirrored in fnf-mcp-server's `/use-blender` command; keep its body and references synchronized. See [UPSTREAM.md](UPSTREAM.md) for provenance and [LICENSE](LICENSE) for the MIT license.
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.1",
4
- "description": "Higgsfield use Blender: local stdio MCP controlling a background Blender process without add-ons.",
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.