bambu-printer-mcp@1.1.76
VERIFIED· not startedPublisher claims: "MCP server for Bambu Lab 3D printers with STL manipulation, slicing, and print management" Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Not started: dependency install failed; the server itself was not observed.- Tested
- install scripts, with decoy credentials in place · second launch with the clock 45 days ahead · the dependency install step · every file read, file written and host contacted by what ran
- Not tested
- server startup · the tool list · tool behavior
What this means for the label: Verified here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.
Before you give it your token
Code inventory arrives with this version's next honeypot run.- It will ask for
- unknown until the next run
- Where it talks to
- unknown until the next run
- What the honeypot saw
- no credential files read · no network
- What we could not test
- server startup · the tool list · tool behavior
Not enough was observed to say yet. Not started: dependency install failed; the server itself was not observed. This version's code has not been inventoried for credentials and hosts either; both arrive with its next honeypot run (popular servers first). `vet-skills try bambu-printer-mcp` runs it now and prints the full answer.
Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (3 scenarios; not started: dependency install failed; the server itself was not observed) on 2026-11-07 and scored it 81/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 1 s · 3 scenarios · 0 deviationsStatic findings
/** A login agent that gives Fusion the add-in's port however Fusion is opened (a GUI app never reads this .env). */Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.* to this server's .env and never needs its own printer or model tables. Pure: no printer traffic, no secrets returned.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.function envFile(system: SetupSystem): string { return path.resolve(system.cwd, ".env"); }Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose./** One change at a time per server: overlapping updates would interleave backups, renames and .env writes. */Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose./** The server's own `.env`, when it has one: a client's env block has no file to update. */Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose./** The working directory dotenv read `.env` from when the server started. */Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.fusion_mcp_setup: { install: "raw" }, // installs into the person's Fusion, a login item and this server's .envFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// counterpart_print_route changes these at run time (and in the .env file they came from).Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// directory, as dotenv's own .env lookup is. Slicer CLIs receive paths underFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.description: "Export the open Fusion design into an existing directory as <name>.stl (export_stl of one body), <name>.f3d (export_f3d) and <name>.parameters.json (its user parameters), and return theiFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.// 5.x/6.x line; we rely on the outer kill timer instead so we don'tFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.process.kill(); // Attempt to kill the slicer processFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.// The report always says failed (a result.json that says success can still leave no output file).Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.const meta = JSON.parse(await fs.promises.readFile(path.join(entry, "meta.json"), "utf8")) as { outputs?: unknown; saved?: unknown };Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.await fs.promises.writeFile(path.join(staging, "meta.json"), JSON.stringify({ outputs: run.outputs.length, saved, keptAt: new Date().toISOString() }));Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.// Example: curaengine slice -v -j cura_settings.json -s layer_height=0.2 -o output.gcode -l input.stlFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.description: "Counterpart contract (counterpart/1): the printers this server drives and the settings it reads for each, by .env variable name (first canonical, then aliases): label, hint, whether requFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.reject(new Error("Slicing operation cancelled, but failed to kill process."));Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.// 5.x/6.x line; we rely on the outer kill timer instead so we don'tFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.await fs.promises.writeFile(path.join(staging, "meta.json"), JSON.stringify({ outputs: run.outputs.length, saved, keptAt: new Date().toISOString() }));Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.description: "Export the open Fusion design into an existing directory as <name>.stl (export_stl of one body), <name>.f3d (export_f3d) and <name>.parameters.json (its user parameters), and return theiFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.Use direct LAN printing by default. Explain any LAN/Developer Mode settingFix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.// below and kill the server before it ever opens the stdio transport.Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.// below and kill the server before it ever opens the stdio transport.Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.`bed_type` defaults to `textured_plate` if omitted. `nozzle_type` (`stainless_steel`, `hardened_steel`, `tungsten_carbide`, `brass`; default `BAMBU_NOZZLE_TYPE`) sets the installed nozzle when the proFix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.// The report always says failed (a result.json that says success can still leave no output file).Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.error("Error attempting to kill slicer process:", killError);Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.description: `Check or install what the Fusion bridge needs on macOS: Autodesk Fusion itself (found, never installed), the Fusion360MCP add-in from ${FUSION_ADDIN_REPOSITORY} at ${FUSION_MCP_PIN} (eveFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// Replaces BAMBU_DEFAULT_CONNECTION_MODE/TYPE in .env and in this process.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// the Fusion add-in folder, a login item and this server's .env are written. Repeating finds them current.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.description: "Counterpart contract (counterpart/1): how this server reaches the printer for prints and for Stop/Pause/Resume. route is \"lan\" (the local network through FULU's BambuNetwork bridge, orFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.return `npx -y -p bambu-printer-mcp${version ? `@${version}` : ""} bambu-printer-mcp-native-setup${homeOption}`;Fix: Pin versions and sources; vendor anything fetched at install time.return `npx -y -p bambu-printer-mcp${version ? `@${version}` : ""} bambu-printer-mcp-native-setup${homeOption}`;Fix: Pin versions and sources; vendor anything fetched at install time.`bed_type` defaults to `textured_plate` if omitted. `nozzle_type` (`stainless_steel`, `hardened_steel`, `tungsten_carbide`, `brass`; default `BAMBU_NOZZLE_TYPE`) sets the installed nozzle when the proFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.* to this server's .env and never needs its own printer or model tables. Pure: no printer traffic, no secrets returned.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.env: { ...env, ...install.env },Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose./** The .env this server read at start, when there is one. */Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.7. **Network requirements depend on the path.** Direct MQTT/FTPS tools require local reachability and compatible LAN/Developer Mode settings. FULU bridge cloud jobs use BambuNetwork and require its ruFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct./** A login agent that gives Fusion the add-in's port however Fusion is opened (a GUI app never reads this .env). */Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.readonly description: "The .env this server read at start, when there is one.";Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose./** A login agent that gives Fusion the add-in's port however Fusion is opened (a GUI app never reads this .env). */Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.fusion_mcp_setup: { install: "raw" }, // installs into the person's Fusion, a login item and this server's .envFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose./** The server's own `.env`, when it has one: a client's env block has no file to update. */Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// counterpart_print_route changes these at run time (and in the .env file they came from).Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Use direct LAN printing by default. Explain any LAN/Developer Mode settingFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.// the Fusion add-in folder, a login item and this server's .env are written. Repeating finds them current.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.description: "Counterpart contract (counterpart/1): how this server reaches the printer for prints and for Stop/Pause/Resume. route is \"lan\" (the local network through FULU's BambuNetwork bridge, orFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.function envFile(system) { return path.resolve(system.cwd, ".env"); }Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.description: `Check or install what the Fusion bridge needs on macOS: Autodesk Fusion itself (found, never installed), the Fusion360MCP add-in from ${FUSION_ADDIN_REPOSITORY} at ${FUSION_MCP_PIN} (eveFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// directory, as dotenv's own .env lookup is. Slicer CLIs receive paths underFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.7. **Network requirements depend on the path.** Direct MQTT/FTPS tools require local reachability and compatible LAN/Developer Mode settings. FULU bridge cloud jobs use BambuNetwork and require its ruFix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent./** The working directory dotenv read `.env` from when the server started. */Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.* Adds the bridge settings this server is missing to its own .env, after a copy of the file. A configuredFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose./** One change at a time per server: overlapping updates would interleave backups, renames and .env writes. */Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.: "This server has no .env file to add its Fusion settings to: add FUSION_MCP_COMMAND and FUSION_MCP_ARGS to its configuration."] : []),Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.env: { ...env, ...install.env },Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// Replaces BAMBU_DEFAULT_CONNECTION_MODE/TYPE in .env and in this process.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.description: "Counterpart contract (counterpart/1): the printers this server drives and the settings it reads for each, by .env variable name (first canonical, then aliases): label, hint, whether requFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Cost to the agent
Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.
Known vulnerabilities
No advisories in OSV for bambu-printer-mcp@1.1.76 as of 8d ago. This is the package itself, not its dependencies.