Reads your filament inventory from a Spoolman server (materials, colors, remaining grams) and can subtract used filament from a spool.
For users
On the server
- Run Spoolman (Docker or a standalone install) on a machine on your network. It listens on port 7912 by default.
- Add your spools in its web page.
- Note the server address, for example
http://192.168.1.50:7912.
In SlicerX
Add Spoolman under service plugins and enter the address. It must start with http:// and point at a machine on your local network; https:// addresses are refused for now.
What SlicerX does with it: lists spools by material, shows remaining weight, and lets you (or Pilot, after you approve) record filament used by a print. Reading needs no approval. Subtracting filament asks first, and each approval covers one spool and one amount.
Common problems
| Message or symptom | Cause and fix |
|---|---|
| "is unreachable" | Wrong address or port, or the server is off. |
| "URLs must start with http://" | Use the plain http:// address of a server on your network. |
| A spool is missing | Archived spools are hidden unless requested. |
| The approval for recording use is refused | The approval covers exactly one spool and gram amount; ask again with the amount you want. |
Untested on hardware
Checked against a simulator of the Spoolman API, not a server. First thing to check: the use endpoint on your Spoolman version.
For integrators
Plugin id spoolman (kind inventory). Tools: spoolman.list_spools (read; material, includeArchived), spoolman.get_spool (read; id), spoolman.record_usage (permission profile; id, grams; needs a plugin.call approval bound to {pluginId, tool, input} with the tool name record_usage). Network: lan:7912, lan:8000.
Spools are normalized from Spoolman's shape to {id, material, vendor, name, color, remainingG, initialG} with color as #rrggbb. Filament slots in printer status can carry a spoolmanId so a slot links to a spool.
Requests: GET /api/v1/spool?allow_archived=false, GET /api/v1/spool/{id} and PUT /api/v1/spool/{id}/use with {"use_weight": grams}. Nothing is cached and there is no rate limit beyond your server's.
Testing
tests/services.rs runs the plugin against a Spoolman fake. @slicerx/fleet-sim serves the same tools from demo-fleet.json (nine spools) through callTool('spoolman', ...).
Sources
Spoolman: https://donkie.github.io/Spoolman/ (OpenAPI at /api/v1/docs on your server).