Skip to main content
Glama

Slice G-code Submit

slice_gcode_submit

Slice a 3D model into G-code via PrusaSlicer CLI asynchronously. Submit a body or STL path to get real print time, filament usage, and layer count.

Instructions

Slice a real part with the PrusaSlicer CLI, asynchronous — the external-CLI upgrade of the analytic slice_estimate: real perimeters, infill patterns, supports, travel/acceleration, and the slicer's own print-time model. Requires a PrusaSlicer install ('apt install prusa-slicer' / the AppImage); when absent this returns {ok:false, reason, install} rather than raising.

Pass a body handle (exported to STL in the modeller) or a prepared stl_path. infill_fraction is 0..1 (full infill auto-switches the fill pattern — PrusaSlicer's default refuses 100%); material/density_g_cc set the filament density used to turn the sliced volume into grams. With a body the result also carries the analytic estimate and the deposited_ratio between them (a 20 mm cube at 100% lands ~1.008 — the skirt).

Returns the degradation dict or {job_id, status, cache_hit}; poll job_result for {ok, gcode_path, filament_mm, filament_cm3, filament_g, print_time_s, print_time_text, layer_count, config (the slicer's echoed settings), analytic?, deposited_ratio?}.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyNo
materialNoPLA
stl_pathNo
supportsNo
extra_argsNo
density_g_ccNo
infill_fractionNo
layer_height_mmNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description reveals that the operation is asynchronous, invokes an external CLI, returns a structured error rather than raising when PrusaSlicer is missing, auto-switches the fill pattern at full infill, and carries analytic-estimate comparison data with a deposited_ratio. These are meaningful behavioral disclosures the annotations do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well organized: purpose first, then prerequisites, then parameter semantics, then return/polling behavior. Every sentence contributes real information, including a concrete calibration example for deposited_ratio. It earns its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex async tool with no output schema, the description covers purpose, prerequisites, alternatives, parameter meanings, return shape, and the polling requirement. The omissions of layer_height_mm and extra_args are the main gaps, but they are minor relative to the overall completeness for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries the full burden and does explain body vs stl_path, infill_fraction's range and 100% edge case, material/density_g_cc, and supports. However, it leaves layer_height_mm and extra_args entirely unexplained, and supports is only mentioned as a feature, not given parameter-level semantics. This is adequate but has clear gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource ('Slice a real part with the PrusaSlicer CLI') and immediately distinguishes itself from slice_estimate by positioning it as the 'external-CLI upgrade' that produces real perimeters, infill patterns, supports, and print-time modeling. This is far more than a restatement of the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly contrasts this tool with slice_estimate, gives the prerequisite PrusaSlicer install requirement, and explains the async submit/poll-job_result workflow. It does not explicitly say 'use slice_estimate when PrusaSlicer is absent,' but the installation requirement and the named alternative make the intended context clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools