prusactl
Run a Prusa 3D printer: status, camera, files, printing, G-code, over PrusaLink or Prusa Connect.
Connector by trevin-lee · GitHub account verified by the MCP Registry
Install
Works with Claude Desktop. Read the repository before you give any tool access to your data.
MCP bundle (.mcpb): open it with Claude Desktop.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.
- Tools
- 15 read · 8 write · 4 delete · 1 not yet classified
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Downloaded binary
Tools by what they do 28
Read from the source code; the running server may list different tools.
Read 15 · Look things up without changing anything.
connection_statusget_camera_snapshotget_commandget_firmware_statusget_jobget_printerget_queueget_telemetryget_transferslist_connect_fileslist_eventslist_jobs
Show 3 more tools
list_printer_fileslist_printerslist_supported_commands
Write 8 · Create, change, send or run things.
add_to_queueapi_requestdownload_printer_filerun_gcodesend_commandstart_printupdate_firmwareupload_file
Delete 4 · Delete, drop, revoke or wipe things.
delete_connect_filesdelete_printer_filesremove_from_queuerespond_to_dialog
Not yet classified 1 · We could not tell from the name and description.
control_print
Network hosts it talks to 6
account.prusa3d.com· found in codeconnect-api.prusa3d.com· found in codeconnect.prusa3d.com· found in codegithub.com· found in install command, codeprinter.lan· found in codeprusa.local· found in code
Tools (28)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
add_to_queueAdd a file to the printer's Prusa Connect print queue, either one on the printer (path) or one in Connect storage (hash). Connect starts the next queued job when the printer is idle and marked ready (send_command SET_PRINTER_READY, or set_ready here). Marking it ready says the plate is clear, the same assertion as plate_clear, and nothing verifies it: do it only after looking at get_camera_snapshot or asking the user.
api_requestCall any printer API endpoint directly, for anything the other tools don't cover. Paths starting with /api/ go to the printer itself over the local network (PrusaLink, e.g. /api/v1/status); paths starting with /app/ go to Prusa Connect as the signed-in user (e.g. PATCH /app/printers/{uuid} for settings, /app/stats/printers/{uuid}/..., /app/teams/{team_id}/files). Credentials in responses are redacted. This is a raw escape hatch for what the other tools don't cover, not a shortcut around them: no safety checks apply (a busy printer, plate_clear), a DELETE or PUT is permanent and really done, an…
connection_statusHow the printer can be reached right now: directly on the local network (PrusaLink) and/or through Prusa Connect, which account is signed in, and whether a local camera (RTSP) is saved. Says what to set up if neither route works.
control_printPause, resume, or stop the current print. A question on the printer's screen (state ATTENTION) can't be answered this way; use respond_to_dialog through Prusa Connect. Pause is reversible and is the right first move when a print looks wrong; stop is final: the job can't be resumed and the part stays on the plate. Stop only for a clear failure or when the user says so.
delete_connect_filesDelete files from Prusa Connect's cloud storage, freeing the team's quota. Takes the hashes list_connect_files and upload_file report. Permanent, with no undo, and it removes the file for the whole team. delete_printer_files is the equivalent for the printer's own storage.
delete_printer_filesDelete files from the printer's storage. Permanent: there is no trash and no undo, and a file that is printing is refused. List the folder first and delete only what the user named or clearly asked to clean up.
download_printer_fileCopy a file from the printer's storage to this computer, e.g. to inspect the G-code or the slicer settings a finished print used. Direct route only: Prusa Connect can't read files off the printer.
get_camera_snapshotThe latest image from the printer's camera, so you can see the print, the bed, and the nozzle. Use it before starting a print or moving anything (is the plate clear?) and to watch a print for failures. It is the only way to check the plate yourself: plate_clear is just your say-so. Where the picture comes from: the printer's own camera API if it has one; else the camera's RTSP stream, if its address is saved (prusactl setup --camera rtsp://<camera-ip>/live, or PRUSACTL_CAMERA_URL), grabbed with ffmpeg, which must be installed; else Prusa Connect. via=direct forces the first two, via=connect fo…
get_commandCheck the state of a command sent with send_command async=true. The state is the last thing that happened to it: CREATED (accepted), EMIT (sent to the printer), FINISHED, or REJECTED.
get_firmware_statusThe firmware the printer runs, the latest one Prusa Connect offers for it, and whether they differ (state: supported, outdated or unsupported). Read-only; Prusa Connect only.
get_jobOne print job in detail, including the objects on the plate that can be cancelled individually (cancelable.objects; cancel one with send_command CANCEL_OBJECT and kwargs {"object_id": id}).
get_printerLive status of the printer. "summary" holds the common facts in the same place whichever route was used: state, nozzle/bed/chamber temperatures with their targets, and the current job's name, progress and time remaining. Everything the route itself reported is kept alongside it, so through Prusa Connect that also includes axis positions, fans, speed/flow, filament, nozzle, settings and dialog_info (the dialog on the printer's screen, which respond_to_dialog answers), and directly it includes the printer's own status, info and job records.
get_queueThe printer's print queue in Prusa Connect: jobs waiting to print, in order, with their ids.
get_telemetryRecent telemetry history from Prusa Connect: temperatures, fans, speed, and axis positions over time.
get_transfersFile transfers to the printer that are in progress (with progress), plus, through Prusa Connect, files waiting in its download queue.
Show 13 more tools
list_connect_filesFiles stored in Prusa Connect's cloud storage for a team, with the hashes add_to_queue takes. These count against the team's storage quota; delete_connect_files removes them, and delete_printer_files removes files from the printer instead.
list_eventsThe printer's event log from Prusa Connect, newest first: state changes, job starts and finishes, errors, attention requests, commands, and file transfers. Use it to find out what happened while nobody was watching.
list_jobsThe printer's job history, newest first: what printed, when, for how long, and how it ended.
list_printer_filesBrowse files on the printer's own storage (USB drive). Without path, lists the storages.
list_printersThe printers prusactl can reach: the one set up for direct access (with whether it answers right now) and those on the Prusa Connect account, with state, temperatures, filament, job progress, and any dialog on the printer's screen.
list_supported_commandsList every command this printer's firmware accepts through Connect: its arguments (name, type, unit, default, required) and the printer states it may run in (executable_from_state). This is the full control surface of the printer: movement, homing, temperatures, fans, speed/flow, filament load/unload, mesh bed leveling, file and folder management, printer-ready flags, resets, and G-code snippets from the team library.
remove_from_queueRemove a job from the printer's Prusa Connect print queue. The queue entry is gone for good; add_to_queue puts it back at the end.
respond_to_dialogPress a button on the dialog currently shown on the printer's screen (filament runout, errors, confirmations, "remove the print" prompts, etc.), the way the Connect web app does remotely. get_printer shows the open dialog in dialog_info with its text and buttons.
run_gcodeDescription is built at runtime.
send_commandRun any command from list_supported_commands on the printer, exactly as the Connect web app's controls do. The command and state are checked against the printer's supported-command list first. By default waits for the printer to acknowledge. Physical commands (MOVE, HOME, heating, filament, MESH_BED_LEVELING) act on real hardware: check get_printer and the camera first. After a finished or stopped print, START_PRINT, HOME, MOVE, MOVE_Z and MESH_BED_LEVELING also need plate_clear=true, as start_print does. SET_PRINTER_READY tells Connect the plate is clear, so it is itself that confirmation: se…
start_printStart printing a file that is already on the printer's storage. The printer must be idle and the plate clear: check get_printer and look at get_camera_snapshot first. After a finished or stopped print it needs plate_clear=true, which is your own assertion that the plate is empty, so verify it with the camera or the user before setting it.
update_firmwareInstall firmware through Prusa Connect: Connect copies the .bbf it hosts (the latest, or version) to the printer's USB drive, then sends the FLASH command, and the printer installs it and restarts. Waits for the copy (a few minutes at most). Without version it goes by Prusa Connect's own verdict: installs the latest when Connect says the firmware is outdated, does nothing when Connect says it is current, and refuses when there is no verdict, so a printer newer than Connect's latest is never downgraded by accident. Refuses before copying anything unless the printer is idle, ready, finished or s…
upload_fileUpload a sliced print file (.bgcode/.gcode) from this computer to the printer, optionally starting it (then=print) or adding it to the Prusa Connect queue (then=queue). Directly on the local network the file goes straight to the printer; through Connect it is stored in Connect and copied to the printer in the background (get_transfers shows progress); there then=print puts it first in the queue and marks the printer ready, and Connect starts it once the file arrives. then=print is refused unless the printer is idle. Before then=print, confirm the plate is clear (a camera snapshot, or the user)…
Signals
- Stars
- 1
- Forks
- 1
- Open issues
- 0
- Last commit
- Oct 10, 2026 (19 days ago)
- Last release
- Oct 10, 2026 (19 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.trevin-lee/prusactl- Version
- 0.3.0
- Auth
- No auth
- License
- MIT
- Repository
- github.com/trevin-lee/prusactl
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from trevin-lee
Cite this page
prusactl MCP server. Agent Mart. https://agentmart.dev/connectors/trevin-lee-prusactl (last updated 2026-10-24)