Silhouette Studio MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SILHOUETTE_LOG_LEVEL | No | Logger verbosity written exclusively to sys.stderr (DEBUG, INFO, WARNING, ERROR, CRITICAL). | WARNING |
| SILHOUETTE_OUTPUT_DIR | No | Directory where .design.json, .design.json.bak, .silhouette.lock, .dxf, .svg, and .png files are saved. | ~/Documents/SilhouetteMCP |
| SILHOUETTE_STUDIO_EXE | No | Explicit path to the Silhouette Studio executable (Silhouette Studio.exe on Windows or /Applications/Silhouette Studio.app on macOS). Auto-detected by default. | |
| SILHOUETTE_DXF_VERSION | No | DXF export version (R2000 or R12). | R2000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Prepares vector cut files for Silhouette Studio. All values are in millimetres (mm). Coordinate system: origin at the top-left of the page, X grows right, Y grows down, rotations are in degrees, clockwise. The user's edition (Standard/Basic, free) can open DXF (R2000/R12) but CANNOT open SVG natively, so always export DXF for cutting. SVG and PNG preview can also be exported. Layers supported: 'CUT' (red, blade cut), 'SCORE'/'FOLD' (blue, crease/fold line), 'PERF' (green, perforation), 'ENGRAVE' (cyan), 'REGMARK' (black, Print & Cut marks). Typical workflow:
silhouette_new_design -> create canvas (e.g. preset 'mat-12x12' or 'a4')
silhouette_add_* / silhouette_add_text / silhouette_add_box_template / silhouette_import_svg
silhouette_offset_shape / silhouette_grid_duplicates / silhouette_nest_shapes / silhouette_add_registration_marks
silhouette_describe_design / silhouette_render_preview -> verify bounds, warnings and visual layout
silhouette_export(design, formats="dxf,svg,png") -> generate DXF for cutting
silhouette_open_in_studio -> open directly in Silhouette Studio Silhouette Studio has no public live API: this server generates standard files and opens them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| silhouette_list_page_presetsA | List the built-in page/mat presets (name -> width/height in mm). These are page sizes, not the exact cutting area of the machine; keep a safety margin. |
| silhouette_new_designA | Create an empty design (the working canvas). Use a preset (see silhouette_list_page_presets) or give custom width_mm AND height_mm (they override the preset). cut_margin_mm is a safety margin used only for warnings. Fails if the design exists unless overwrite=true. |
| silhouette_list_designsB | List the designs saved in the output folder along with exported files if any. |
| silhouette_get_designB | Get the full raw JSON data of a design, including all shapes and canvas properties. |
| silhouette_delete_designA | Delete a design file. If delete_files=true, also removes any exported .dxf, .svg and .png files. |
| silhouette_clear_shapesB | Remove all shapes from a design without resetting page dimensions. |
| silhouette_add_rectangleA | Add a rectangle whose top-left corner is at (x_mm, y_mm). corner_radius_mm > 0 rounds the corners (clamped to half of the smaller side). rotation_deg rotates clockwise around the rectangle center. layer defaults to 'CUT' (or 'SCORE', 'PERF'). |
| silhouette_add_circleB | Add a circle centred at (cx_mm, cy_mm). Exported as a true DXF CIRCLE. |
| silhouette_add_ellipseB | Add an ellipse centred at (cx_mm, cy_mm) with radii rx_mm (horizontal) and ry_mm (vertical), rotated clockwise by rotation_deg. |
| silhouette_add_polygonA | Add a regular polygon (3-64 sides) inscribed in a circle of radius_mm, centred at (cx_mm, cy_mm). With rotation_deg=0 one vertex points up. |
| silhouette_add_starA | Add a star with the given number of points (3-64). inner_radius_mm must be smaller than outer_radius_mm (about 40% gives a classic star). With rotation_deg=0 one tip points up. |
| silhouette_add_lineB | Add a straight line between (x1_mm, y1_mm) and (x2_mm, y2_mm). If dashed=true, creates perforated segments ideal for folding cardstock/papercraft. dash_len_mm: cut segment length (default 3mm); gap_len_mm: un-cut gap length (default 2mm). layer: 'CUT', 'SCORE', 'PERF', etc. |
| silhouette_add_polylineB | Add a custom path through the given [x, y] points (in mm, Y down). closed=true makes a closed shape (>= 3 points); closed=false makes an open line (>= 2 points). |
| silhouette_add_textA | Convert text into vector cut/score outlines using a system/custom TTF/OTF font (or built-in geometric vector fallback) and add the glyph contours to the design. x_mm, y_mm mark the top edge anchored horizontally by align ('left', 'center', 'right'). |
| silhouette_transform_shapeA | Move (dx_mm, dy_mm), scale, rotate, and optionally mirror (flip_x, flip_y) an existing shape by its id. Scaling, flipping and rotation are centred at the shape's bbox center. |
| silhouette_offset_shapeB | Create a new inward (< 0) or outward (> 0) offset contour from an existing circle or closed polygon (ideal for print-and-cut bleed borders, shaker frames and layered mats). join: 'round', 'miter', or 'bevel'. |
| silhouette_duplicate_shapeB | Duplicate an existing shape |
| silhouette_grid_duplicatesB | Arrange copies of an existing shape in a 2D cols x rows matrix (sheet nesting). The original shape occupies cell (0, 0) and (cols * rows - 1) copies fill the remaining cells. |
| silhouette_nest_shapesB | Optimise 2D rectangular sheet nesting (MaxRects Best Short Side Fit) to pack shapes inside the usable cutting area with zero overlap and guaranteed spacing_mm clearance. Automatically skips and avoids any REGMARK registration marks on the page. Set dry_run=true to compute placement metrics without modifying shape coordinates. |
| silhouette_add_registration_marksA | Add standard Silhouette Print & Cut 3-corner registration marks (top-left square, top-right L-bracket, bottom-left L-bracket) on layer 'REGMARK'. |
| silhouette_add_box_templateB | Generate a ready-to-cut parametric packaging / papercraft template with CUT and SCORE layers. Supported templates: 'milk-box-luxo', 'milk-box', 'cube-box', 'pillow-box', 'gift-tag'. |
| silhouette_import_svgA | Read an SVG file from disk, convert outlines (curves flattened to mm segments) and add them to the design for DXF export. This bridges SVG artwork into Silhouette Studio Standard Edition (which cannot open SVG natively). target_width_mm / target_height_mm > 0 scale artwork (uniformly if only one is given); artwork's top-left corner is placed at (x_mm, y_mm). Text and embedded images are skipped (convert text to outlines or use silhouette_add_text). |
| silhouette_describe_designA | Summarise a design: page size, every shape with its bounding box, overall bounds and any warnings (outside the page, inside the safety margin, tiny details). |
| silhouette_remove_shapeB | Remove one shape (by the id shown in silhouette_describe_design). |
| silhouette_exportA | Export the design to cut/preview files in the output folder. formats is a comma-separated list of 'dxf', 'svg', and/or 'png'. DXF is required for the free Standard Edition. filename (optional) overrides the base file name. Returns file paths, bounds and warnings. |
| silhouette_render_previewA | Render a colour-coded PNG preview of the design (with 10 mm grid and safety margin) for visual inspection before cutting. Returns the PNG path, pixel dimensions and warnings. |
| silhouette_make_calibration_fileA | Create and export a calibration DXF: a 100 x 100 mm square with a 50 mm circle, a 40 x 20 mm rounded rectangle, and a 100 mm perforated score line. Open it in Studio and measure it: if the square is not 100 mm (3.937 in), set Studio Preferences > Import Options > DXF to 'As-is'. |
| silhouette_open_in_studioA | Open a cut file previously exported (.dxf or .svg) directly in Silhouette Studio. Accepts full paths, paths relative to the output folder, or just design/file names. Set reveal_in_explorer=true to also select the file in Windows Explorer. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 28 tools
Each tool targets a distinct resource or action, with the main overlap being duplicate_shape vs grid_duplicates vs nest_shapes—but descriptions differentiate them (sequential offset, matrix fill, optimized packing). Shape primitives (rectangle, circle, ellipse, polygon, star, line, polyline, text) are cleanly separable, and export/preview/open_in_studio are clearly scoped.
All tools use a uniform silhouette_ prefix followed by snake_case verb_noun (add_rectangle, transform_shape, delete_design, export). A few names like make_calibration_file and open_in_studio are still verb-led and readable, with no style mixing.
28 tools is on the heavy side for the stated 16-25 borderline band, though most earn their place as distinct shape primitives and lifecycle operations. The surface is broad but not padded with redundant aliases.
Design lifecycle covers create/list/get/delete, shapes cover add/remove/transform/duplicate/offset/nest/clear, plus export, render, calibration, and open-in-Studio. Gaps exist—no canvas resize after creation, no boolean union/subtract, no shape grouping, and no DXF import—but agents can work around most.