bambu-p1s-mcp
Provides tools for monitoring and controlling a Bambu Lab P1S 3D printer over the local network, including printer status, AMS filament management, file listing, job control, uploads, and printing.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@bambu-p1s-mcpwhat's the printer status and what's in the AMS?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
bambu-p1s-mcp
Harness-agnostic MCP server for a Bambu Lab P1S on the local network.
Any MCP client can use it: Hermes, Grok, Claude Code, Cursor. The server speaks stdio (local subprocess) and Streamable HTTP (remote harness).
It does not talk to Bambu Cloud. It talks to the printer:
MQTT over TLS, port 8883 — status and print commands
Implicit FTPS, port 990 — list / upload files
Optional Bambu Studio CLI — slice STL/3MF to a printable
.gcode.3mf
Where to run it
The MCP process has to reach the printer. The agent harness does not.
If Hermes is on a DGX Spark that is not on the printer LAN, run this server on the LAN machine (or any box that can open 192.168.x.x:8883 and :990) and point Hermes at the HTTP URL. Grok on that same LAN box can use stdio.
This clone lives at /home/whaleshark/Documents/bambu-p1s-mcp. On the current LAN box the printer-facing IPs are typically:
LAN:
192.168.1.195Tailscale:
100.123.149.116
Spark should use whichever of those it can route to, on port 8765.
P1S <--- MQTT/FTPS --- MCP host
|-- stdio --> harness on this host
|-- HTTP --> Hermes on Spark / any remote MCP clientRelated MCP server: Klipper MCP Server
Install
cd /home/whaleshark/Documents/bambu-p1s-mcp
uv sync --extra dev
cp .env.example .env
# fill BAMBU_IP, BAMBU_ACCESS_CODE, BAMBU_SERIAL from the printer screen
uv run bambu-p1s-mcp doctorPrinter screen: Settings → Network for IP and access code, Settings → Device for serial. Turn on LAN mode. Developer Mode if local project_file start is rejected.
Run
Stdio (Grok / Hermes on this machine):
uv run bambu-p1s-mcpHTTP daemon (Hermes on Spark, or any remote client):
# bind LAN/Tailscale; set BAMBU_MCP_TOKEN in .env
BAMBU_MCP_HOST=0.0.0.0 uv run bambu-p1s-mcp --http
# health: http://<host>:8765/health
# mcp: http://<host>:8765/mcpUser systemd unit: contrib/bambu-p1s-mcp.service.
Point a harness at it
Grok (~/.grok/config.toml), stdio:
[mcp_servers.bambu]
command = "/home/whaleshark/Documents/bambu-p1s-mcp/.venv/bin/bambu-p1s-mcp"
startup_timeout_sec = 45Grok, HTTP (after the daemon is up):
[mcp_servers.bambu]
url = "http://127.0.0.1:8765/mcp"
headers = { Authorization = "Bearer ${BAMBU_MCP_TOKEN}" }Hermes (~/.hermes/config.yaml) on Spark:
mcp_servers:
bambu:
url: "http://192.168.1.195:8765/mcp"
headers:
Authorization: "Bearer ${BAMBU_MCP_TOKEN}"
timeout: 180If Spark is only on Tailscale, use http://100.123.149.116:8765/mcp. Reload with /reload-mcp.
Ready-to-copy snippets: configs/.
Tools
Tool | Write? | What it does |
| no | Env, ports, MQTT, FTPS, slicer |
| no | Idle/printing, job, %, layers, temps, remaining |
| no | AMS / external trays |
| no | SD card listing |
| yes | Job control |
| yes | silent / standard / sport / ludicrous |
| yes | Push a sliced file over FTPS |
| yes | Upload if local path, then start |
| yes | Bambu Studio CLI → |
Write tools require confirm=true. printer_print refuses if the printer is already RUNNING.
Ask an agent:
“What’s on the P1S right now?”
“Anything in the AMS?”
“Slice
~/Documents/lamp/stls/base.stlfor the P1S.”“Upload that 3mf and print plate 1.”
Slice notes
BAMBU_SLICER should point at the bambu-studio binary (this machine has /home/whaleshark/.local/bin/bambu-studio).
Project .3mf files that already contain printer settings can be sliced as-is. Bare STL/STEP needs machine + process + filament JSON. The server auto-discovers P1S 0.4 / 0.20mm Standard @BBL X1C / Bambu PLA Basic @BBL P1S 0.4 nozzle from ~/.config/BambuStudio/system/BBL when present.
Security
LAN access code is the MQTT/FTPS password. Keep it in
.env, not in git.HTTP without
BAMBU_MCP_TOKENis only for localhost. When Spark (or anything off-box) connects, set a token and bindBAMBU_MCP_HOST=0.0.0.0.Do not port-forward this to the public internet.
This is not affiliated with Bambu Lab.
Goal
Agent brief: GOAL.md.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables interaction with 3D printer management systems through an MCP server, supporting STL file manipulation, slicing, and control of printers like OctoPrint, Klipper, Duet, and more.103225GPL 2.0
- FlicenseNot gradedqualityBmaintenanceAn MCP server that enables AI assistants to control and monitor Klipper 3D printers via the Moonraker API. It supports comprehensive printer management, including G-code execution, toolchanger operations, and real-time status monitoring.17
- AlicenseAqualityBmaintenanceEnables comprehensive control and monitoring of Bambu Lab 3D printers through Claude using local MQTT, FTPS, and X.509 authentication. Users can manage print jobs, monitor real-time status, handle filament through AMS, and adjust hardware settings like temperature and lighting.243017MIT
- AlicenseBqualityCmaintenanceA Bambu Lab-focused MCP server for controlling Bambu printers, manipulating STL files, and managing end-to-end 3MF print workflows from any MCP-compatible client.37138GPL 2.0
Related MCP Connectors
MCP server wrapping the Tesla Fleet API and TeslaMate API
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/marctheshark3/bambu-p1s-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server