bambu-printer Agent Plugin
Mac-local wrap of @rowbotik/bambu-printer-mcp for a home Bambu Lab A1. Version 0.1.1.
This plugin is for other Grok Bots running on the Mac that sits on the same LAN as the printer. A remote Cloud Agent box cannot reach the printer. Do not try to talk to the A1 from a remote VM.
Upstream MCP: https://github.com/rowbotik/bambu-printer-mcp
What this is
- Agent Plugin (
plugin.jsonat repo root) that starts a stdio MCP server namedbambu-printer. - Launcher is
node ./scripts/run-mcp.js(notnpx).npxbreaks the stdio handshake. - Cursor fills
PRINTER_HOST,BAMBU_SERIAL, andBAMBU_TOKENfrom plugin variables. Never commit those values.
Limits (read this first)
| Machine | Can reach the printer? |
|---|---|
| User's Mac, same LAN as the A1 | Yes |
| Remote Grok Bot / Cloud Agent box | No |
If you are not on that Mac, stop. Tell the user to run setup locally. Do not invent printer state, IPs, serials, or tokens.
Collect the three variables
Ask the user for these three values. Never paste BAMBU_TOKEN back into chat. Do not write real IPs, serials, or tokens into files in this repo.
| Variable | What it is | Where the user finds it |
|---|---|---|
PRINTER_HOST | Printer LAN IP | Printer screen / Bambu network settings |
BAMBU_SERIAL | Printer serial | Printer settings / device info |
BAMBU_TOKEN | LAN access code (secret) | Printer LAN / developer settings |
Store them only in Cursor plugin variables (Plugins → Configure), never in git, never in .env committed to the repo.
Install on the Mac (real directory)
Install into a real directory, not a symlink:
~/.cursor/plugins/local/bambu-printer
mkdir -p ~/.cursor/plugins/local
# Copy or clone this repo into that path. plugin.json must sit at:
# ~/.cursor/plugins/local/bambu-printer/plugin.json
cd ~/.cursor/plugins/local/bambu-printer
npm install
Requirements:
- Node.js 18+
- The Mac must be on the printer LAN
- Optional for slicing: Bambu Studio at
/Applications/BambuStudio.app/Contents/MacOS/BambuStudio
Do not launch the server with npx @rowbotik/bambu-printer-mcp. Always use the node launcher in scripts/run-mcp.js.
Set Cursor variables and reload
- Open Cursor → Customize / Plugins.
- Confirm
bambu-printeris loaded from~/.cursor/plugins/local. - Set the three plugin variables:
PRINTER_HOST,BAMBU_SERIAL,BAMBU_TOKEN. - Reload the window (Developer: Reload Window) so the stdio server restarts with the new env.
mcp.json already wires the rest (BAMBU_MODEL=a1, Bambu Studio path, textured plate, 0.4 nozzle, flatten CLI, temp dir).
Smoke test
After reload, the MCP server bambu-printer should appear. Prove it with:
tools/list— you should see printer tools from the upstream MCP (get_printer_status,camera_snapshot,print_3mf, pause/resume/cancel, and the rest).get_printer_status— live status from the A1. If this fails, the Mac is off-LAN, Developer/LAN mode is off, or a variable is wrong. Do not guess.
If tools/list is empty, the plugin did not load or npm install was skipped. If status fails with auth/MQTT errors, re-check the three variables without printing the token.
Agent rules
- Call MCP tools. Never invent temperatures, progress, AMS slots, or camera contents.
- Run
get_printer_statusbefore any print or control action. - Use
camera_snapshotwhen the user wants a visual check. - Use
print_3mfonly with an explicit path the user named. - Pause / resume / cancel only when the user clearly asked.
- Do not shell
npxfor this package. - Do not paste
BAMBU_TOKENor other secrets into chat, commits, or screenshots. - If you are a remote agent, you cannot reach the printer. Hand setup back to a Mac-local Grok Bot.
Layout
plugin.json # Agent Plugin manifest + variables
mcp.json # stdio server bambu-printer
package.json # pins @rowbotik/bambu-printer-mcp@1.1.1
scripts/run-mcp.js # node launcher (resolves package bin)
skills/bambu-printer/SKILL.md
LICENSE # GPL-2.0
PROVE.md # short checklist
License
GPL-2.0. Copyright 2026 Ethan Figueroa. Upstream Rowbotik MCP is also GPL-2.0.