Skip to main content
Glama

create_product

Create a STANDALONE product from a design (split primitive) — it is NOT placed on any store yet. Applies the correct field names + pricing floor, routes EMBROIDERY garments (caps/beanies) to their real embroidery placement with Printful thread colors (derived or explicit), and defaults face goods (canvas/backpacks/bags/socks/towels/blankets/pillows/cases...) to print_style "fill" (design recomposed onto a matching background, printed edge-to-edge). Set generate_mockup: true to render a garment mockup as the display image (it auto-derives representative variants from the catalog, so you do NOT need mockup_variant_ids) — otherwise the raw design is used as the display image. To get it onto a store and listed, the required sequence is: add_variants -> sync_to_fulfillment(product_uuid, store_uuid) [associates it with the store + syncs to Printful/Printify] -> sync_to_channel [sales channel]. To run that whole pipeline in one call instead, use ship_product.

[#5f6554]

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
garmentYes
pricingYes
workspaceNo
design_urlNo
design_uuidYesThe design to print. Comes from generate_image / design_apparel, OR from upload_design when the merchant already owns the artwork (a logo, a brand mark, a cleared cover). Never regenerate a mark you were given as a file.
print_styleNoHow the design sits on the print face. "fill": recompose onto a matching background and print edge-to-edge (default for face goods). "placed": transparency preserved (default for apparel and embroidery). "auto" (default) picks by garment.
product_metaYes
thread_colorsNoEMBROIDERY garments only: explicit Printful thread palette colors. Omit to auto-derive from the design.
generate_mockupNo
mockup_variant_idsNoRepresentative variant ids for the mockup preview (numeric on Printful/Printify, string productUids on Gelato).

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 only openWorldHint in annotations, the description carries the full burden and delivers: it discloses the non-persistent-to-store lifecycle, auto-applied field names and pricing floor, automatic embroidery placement with derived thread colors, the print_style 'fill' default for face goods, and mockup auto-derivation. Little about the tool's side effects is left implicit.

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-loaded with the standalone-product constraint before the operational details, and every clause carries information. It is long and clause-dense, and the trailing '[#5f6554]' artifact is stray noise that should not be there.

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 mutation tool with no output schema and minimal annotations, the description covers lifecycle, defaults, downstream required steps, and the one-call alternative. An agent can call it and knows what it must do next, with no missing decision-relevant context.

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 only 40% across 10 params, and the description compensates for the important ones: print_style enum semantics and per-garment defaults, thread_colors being embroidery-only with omission meaning auto-derive, and generate_mockup auto-deriving variants so mockup_variant_ids is unnecessary. It does not explain workspace, design_url, or the pricing/garment substructures, so it stops short of full coverage.

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+resource ('create a STANDALONE product from a design') and immediately scopes it ('it is NOT placed on any store yet'), which cleanly separates it from ship_product and add_variants. The garment-routing and print_style default behavior further pin down exactly what this tool produces.

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?

Explicitly names the alternative path: the add_variants -> sync_to_fulfillment -> sync_to_channel sequence for getting it listed, and 'To run that whole pipeline in one call instead, use ship_product.' This is a textbook when-to-use vs when-to-use-the-sibling statement.

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.

Resources