Skip to main content
Glama

FabTally 3D-Print Slicer, Quote & DFM

Compare printers for a model

compare_printers

FREE. Slice the same model across several printers and get a table of print time / filament / cost / fits-on-bed, plus the cheapest and fastest picks. Paste a link: a GitHub blob, Google Drive or Dropbox share link, a direct .stl/.3mf/.obj/.ply/.step URL, or a .zip (first printable model inside is used). Thingiverse/Printables/MakerWorld pages usually block server downloads: download the file yourself and upload it. Local file? Upload once at https://fabtally.com/upload and paste that URL. Fair-use limited (counts as one slice per printer). Perfect for 'which of my printers should I use?'

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
marginNoBYO pricing: fractional margin, 0.3 = 30%.
qualityNoQuality preset: draft 0.28mm | standard 0.20mm | fine 0.12mm layer height.
currencyNoBYO pricing: currency code (USD, EUR, ...). Default USD. Only a label: amounts are NOT converted, so pass your own rates in that currency too.
filenameNoFile name incl. extension, e.g. 'bracket.stl'. Required with model_base64.
materialNoFilament/material id (pla, pla-cf, petg, petg-cf, abs, abs-cf, asa, asa-cf, nylon, pc, pet, tpu). Default pla.
printersYesComma-separated printer ids to compare (max 6), e.g. 'bambu-a1,prusa-mk4,ender3-v3'.
quantityNoNumber of parts (1-10000). Volume discounts apply. Default 1.
supportsNoSupport generation style.
model_urlNoPREFERRED. Public URL to the 3D model. Paste a link: a GitHub blob, Google Drive or Dropbox share link, a direct .stl/.3mf/.obj/.ply/.step URL, or a .zip (first printable model inside is used). Thingiverse/Printables/MakerWorld pages usually block server downloads: download the file yourself and upload it. Local file? Upload once at https://fabtally.com/upload and paste that URL. The server fetches and (if a zip) unpacks it.
setup_feeNoBYO pricing: flat setup fee, charged once per job (not per part).
layer_heightNoExplicit layer height mm; overrides `quality`. 0.04 up to the printer's max (0.3-0.4 mm on a 0.4 mm nozzle).
model_base64NoBase64 model bytes — small-file fallback only (roughly <50KB). MCP clients (Claude/ChatGPT Desktop) truncate large inline tool arguments, so a real STL can silently arrive corrupted. For anything bigger use model_url (upload at https://fabtally.com/upload first). Provide `filename` too.
minimum_priceNoBYO pricing: per-unit price floor, applied after volume discounts.
infill_percentNoSparse infill density percent (0-100).
markup_percentNoBYO pricing: extra % markup on top of margin.
material_cost_per_kgNoBYO pricing: override material $/kg.
machine_rate_per_hourNoBYO pricing: machine time cost/hour.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • changedInput schema / properties / currency / description
      Previous value: -"BYO pricing: currency code (USD, EUR, ...). Default USD."New value: +"BYO pricing: currency code (USD, EUR, ...). Default USD. Only a label: amounts are NOT converted, so pass your own rates in that currency too."
    • changedInput schema / properties / layer_height / description
      Previous value: -"Explicit layer height mm (0.04-0.6); overrides `quality`."New value: +"Explicit layer height mm; overrides `quality`. 0.04 up to the printer's max (0.3-0.4 mm on a 0.4 mm nozzle)."
    • addedInput schema / properties / layer_height / maximum
      Added value: +0.6
    • addedInput schema / properties / layer_height / minimum
      Added value: +0.04
    • changedInput schema / properties / minimum_price / description
      Previous value: -"BYO pricing: per-unit price floor."New value: +"BYO pricing: per-unit price floor, applied after volume discounts."
    • changedInput schema / properties / model_url / description
      Previous value: -"PREFERRED. Public URL to the 3D model. Paste a link: Thingiverse/Printables/MakerWorld model pages, a GitHub blob, Google Drive or Dropbox share link, a direct .stl/.3mf/.obj/.ply/.step URL, or a .zip (first printable model inside is used). Local file? Upload once at https://fabtally.com/upload and paste that URL. The server fetches and (if a zip) unpacks it."New value: +"PREFERRED. Public URL to the 3D model. Paste a link: a GitHub blob, Google Drive or Dropbox share link, a direct .stl/.3mf/.obj/.ply/.step URL, or a .zip (first printable model inside is used). Thingiverse/Printables/MakerWorld pages usually block server downloads: download the file yourself and upload it. Local file? Upload once at https://fabtally.com/upload and paste that URL. The server fetches and (if a zip) unpacks it."
    • changedInput schema / properties / setup_fee / description
      Previous value: -"BYO pricing: flat per-job setup fee."New value: +"BYO pricing: flat setup fee, charged once per job (not per part)."
  2. Added

TDQS

A4.1/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden and does well: it flags the fair-use limit (one slice per printer), the FREE cost, server-side fetch/unpack behavior, and host download blocking. It omits auth requirements and failure/error behavior, so it is not complete enough for a 5.

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?

Front-loads 'FREE' and the core outcome before secondary input logistics. It is dense but largely earns its lines; the URL-type enumeration is partially duplicated in the schema descriptions, which is mild redundancy.

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?

With no output schema and no annotations, the description compensates by describing the returned table columns and best-pick outputs, plus input logistics for a 17-parameter tool. It lacks auth/permission and error-handling context, leaving a modest gap.

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?

Schema description coverage is 100%, so the schema already documents all 17 parameters; the description only re-states the model-input channel (URL vs base64 vs upload) that the schema's model_url/model_base64 descriptions already carry, and restates the max-6 printer limit. Baseline 3 is appropriate.

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?

States a specific verb (slice/compare) and resource (the same model across several printers), and enumerates the concrete output: print time, filament, cost, fits-on-bed, cheapest and fastest picks. This clearly distinguishes it from sibling slice_model, which operates on one printer.

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?

Names the triggering question ('which of my printers should I use?') and routes the agent through input-source choices (URL types, upload fallback), with explicit guidance on blocked hosts. It stops short of naming sibling alternatives like slice_model or list_printers for the single-printer or enumeration case.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.