Skip to main content
Glama

slice_estimate

Analytically estimate FDM part mass, filament usage, layer count, and print time from volume, bounding box, material, and infill settings—no slicer needed.

Instructions

First-order FDM slice estimate (analytic, NO slicer needed; see slice_gcode_submit for the real PrusaSlicer CLI). mass_g = volume·density (Materials DB); deposited = volume·(wall_fraction + infill·(1−wall_fraction)) so at 100% infill filament_g == mass_g; layer_count = ceil(bbox height/layer_height); print_time from nozzle volumetric flow.

material may be any Materials-DB card name (material_list / material_get), or anything at all if you supply density_g_cc yourself — it overrides the DB lookup. A generic word like 'polymer' is a CATEGORY, not a card, and 'nylon' is a near-miss for one, so neither carries a density; the error names both exits. filament_dia_mm (1.75 default, 2.85 for the older standard) sets the spool stock the filament length is computed against.

Returns {mass_g, filament_g, deposited_volume_mm3, layer_count, print_time_min, infill_fraction}. Errors on a material with no density and no override, a negative volume, a bbox shorter than [x,y,z], or a non-positive layer height.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bbox_mmYes
materialNoPLA
nozzle_mmNo
volume_mm3Yes
density_g_ccNo
wall_fractionNo
filament_dia_mmNo
infill_fractionNo
layer_height_mmNo
print_speed_mm_sNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses the underlying formulas, the override precedence of density_g_cc, the filament_dia_mm default/semantics, and a full list of error conditions (no density + no override, negative volume, short bbox, non-positive layer height). This is far more than a bare 'estimate' statement.

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

Conciseness4/5

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

It is dense and packed with formulas, but nearly every clause conveys a fact an agent needs, and the key scope distinction is front-loaded. The nesting of DB-material guidance and error enumeration makes it slightly heavy, but it is not padded.

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

Completeness5/5

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

For a 10-parameter compute tool with no output schema and no annotations, the description covers inputs, override semantics, the returned object fields, and failure modes. Nothing essential to invoking it correctly is missing.

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

Parameters4/5

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

Schema description coverage is 0% across 10 params, so the description must compensate. It meaningfully explains material, density_g_cc (overrides DB), filament_dia_mm (1.75 default, 2.85 legacy), and the roles of volume/infill/wall_fraction/layer_height/nozzle in the formulas, though bbox_mm ordering and print_speed_mm_s behavior are only implied rather than spelled out.

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 opens with a specific verb+resource ('First-order FDM slice estimate') and immediately distinguishes itself from the sibling slice_gcode_submit by noting it is analytic and requires NO slicer. An agent can tell exactly what kind of estimation this is without opening the schema.

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

Usage Guidelines5/5

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

It explicitly routes the agent: use this for analytic estimates with no slicer, and 'see slice_gcode_submit for the real PrusaSlicer CLI' for true slicing. It also clarifies material usage (Materials-DB card vs. supplying density_g_cc), which is precisely the decision an agent must make before calling.

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