Skip to main content
Glama
mostodont01

prusa-workbench-mcp

by mostodont01

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_jobsA

List print jobs (newest first).

new_jobA

Start a new print job with one empty bed and make it the open job.

Args: name: short name, e.g. "robocar wheels". The folder gets today's date in front. print_profile: PrusaSlicer print profile for bed-1 (default: the one selected in PrusaSlicer). filament: filament profile for bed-1 (default: the one selected in PrusaSlicer).

open_jobB

Open an existing job (see list_jobs) to keep working on it.

get_jobB

The open job: beds (profiles, settings, objects, slice status, issues like overlaps or off-bed) and objects (id, name, bed, size, position, settings).

list_profilesC

Print profiles for the printer, and the filaments that go with them.

find_settingA

Search PrusaSlicer setting names and descriptions (e.g. "brim", "infill", "seam", "ironing"). Shows each match's current value on a bed of the open job (default: the first bed).

Args: query: words to look for. bed: which bed's current values to show.

add_modelA

Load a model file (STL, 3MF, OBJ, STEP) onto a bed. A 3MF with several objects adds each one.

Args: path: file path (~ allowed). name: object name (default: from the file). bed: bed name, or "new" for a new bed with bed-1's profiles and no overrides (default: the first bed). copies: how many of it. arrange: re-arrange the bed afterwards (objects that don't fit go to new beds).

add_from_onshapeA

Download parts from an Onshape part studio (as millimeter STL) onto a bed. Uses the Onshape API keys from ~/onshape-mcp/.env (each download counts against the user's Onshape API allocation).

Args: url: Onshape URL (document, or document/w//e/). parts: part names to take (default: all solid parts). Case-insensitive. bed: bed name or "new". copies: copies of each part. arrange: re-arrange the bed afterwards.

transformA

Rotate, scale, lay flat or move objects. Steps run in this order: reset, scale, rotate, lay_flat, move.

Args: objects: object ids (or names); ["all"] for every object. rotate: degrees about the bed's X, Y, Z axes, e.g. [90, 0, 0] tips it over towards the back, [0, 0, 45] turns it on the bed. scale: factor (1.1 = 110 %) or [x, y, z] factors. lay_flat: put the object on its largest stable flat face. move_to: [x, y] of the footprint center on the bed, mm. move_by: [dx, dy] mm. reset: back to the loaded orientation and size (position is kept).

arrangeA

Arrange the objects on a bed (or every bed), packed and centered.

Args: bed: bed name (default: every bed). spacing: gap between objects, mm. allow_rotate: may turn objects 90 degrees about Z to fit better. spread: objects that don't fit go to a new bed with the same settings.

copy_objectsC

Add copies of objects (same bed, same settings).

Args: objects: object ids or names. count: copies of each. arrange: re-arrange the beds afterwards.

remove_objectsC

Remove objects from the job.

move_to_bedB

Move objects to another bed.

Args: objects: object ids or names. bed: bed name, or "new" for a new bed with the same settings as the objects' current bed. arrange: re-arrange the target bed afterwards.

set_bedA

Change a bed's print profile, filament or settings. bed="new" creates a bed (bed-1's profiles, no overrides).

Args: bed: bed name, or "new". print_profile: PrusaSlicer print profile (list_profiles). filament: filament profile. settings: PrusaSlicer settings to override, e.g. {"layer_height": 0.15, "fill_density": "30%", "perimeters": 4, "brim_width": 5}. A value of null removes that override. supports: off | auto | build_plate_only | painted, for the whole bed. support_angle: overhang threshold in degrees (supports for overhangs flatter than this; 0 = automatic). clear: drop all overrides first.

remove_bedA

Remove a bed. It must be empty unless delete_objects is true.

set_object_settingsA

Per-object settings, on top of the bed's settings (e.g. supports only for one part, more perimeters for another). These go into the 3MF as PrusaSlicer object settings.

Args: objects: object ids or names. supports: off | auto | build_plate_only | painted. support_angle: overhang threshold in degrees (0 = automatic). settings: PrusaSlicer object/region settings, e.g. {"fill_density": "40%", "perimeters": 5, "brim_width": 4}. null removes one. name: rename the object(s). clear: drop all of the object's own settings first.

previewB

Picture of a bed before slicing: top view and iso view, objects labeled with their ids. Use it to check orientation and layout.

Args: bed: bed name (default: bed-1).

sliceA

Slice beds with PrusaSlicer (in parallel, each with its own settings) into the job folder and show the result in the viewer. Does not print anything.

Args: beds: bed names (default: all beds). open_viewer: start the viewer and open it in the browser (once per session).

open_viewerA

Start the viewer (if needed) and open it in the browser. It shows the newest job and follows new slices.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 19 tools

Disambiguation4/5

Most tools have clearly distinct purposes across jobs, beds, objects, settings, slicing, and viewing. Mild overlap exists between open_job/get_job and slice/open_viewer, but descriptions make the boundaries reasonably clear.

Naming Consistency4/5

Names are overwhelmingly snake_case and action-oriented, fitting a verb_noun pattern. A few single-word verbs (transform, arrange, preview, slice) and new_job are minor deviations but still readable.

Tool Count4/5

19 tools is at the upper end, but each maps to a real operation in a fairly complex 3D-print job workflow. The set is broad yet not obviously padded.

Completeness4/5

The surface covers the core lifecycle: jobs, beds, objects, profiles/settings, model import, transforms, preview, and slicing. Minor gaps exist around job deletion/renaming/closing and explicit export operations, but core workflows are covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues