Skip to main content
Glama

Generate custom print

generate_custom_print

Generates a custom t-shirt print from a text prompt or preserves your own uploaded image, after confirming product, placement, cost, and credit balance.

Instructions

Generate a CUSTOM t-shirt print from a text prompt (AI, takes 2-10 min). SPENDS THE ACCOUNT OWNER'S STUDIO CREDITS: tell them the cost and their balance and get a yes BEFORE calling this — never spend silently, and never spend to 'try something' on your own initiative. Credits are earned (20 free on signup, 20 with every tee bought), so a wasted one is a real loss to them. Free exception: preserve=true prints their own image as-is and costs nothing. IMPORTANT: first call get_studio_options and ask the human to pick placement + product (and optionally background); do NOT silently use defaults. Args: prompt (design description), product? (one of ['kids_basic_tshirt_boy', 'kids_basic_tshirt_girl', 'kids_oversize_tshirt_boy', 'kids_oversize_tshirt_girl', 'mens_basic_tshirt', 'mens_oversize_tshirt', 'womens_basic_tshirt', 'womens_oversize_tshirt']), background? (t-shirt background, one of ['washed-beige', 'washed-black', 'washed-blue', 'washed-brown', 'washed-gray', 'washed-green', 'washed-orange', 'washed-pink', 'washed-red', 'washed-yellow', 'watercolor-beige', 'watercolor-blue', 'watercolor-sky']), placement? (print size/position, one of ['portrait_extended', 'square_center', 'chest_small']), model? (nb2 default | gpt-image-2 — both 1 credit, different styles), image_url? (https link to the user's OWN image — used as style/subject reference), preserve? (true = print the user's image exactly as-is, no AI redraw — kids' drawings, own art; FREE, no credits; requires image_url). Returns print_id — poll get_studio_status until done.

Input Schema

NameRequiredDescriptionDefault
modelNoGeneration engine: nb2 (default) or gpt-image-2 — both 1 credit.
promptYesText description of the design to generate.
productNoStudio product base from get_studio_options (default mens_oversize_tshirt).
preserveNotrue = print the image exactly as-is, no AI redraw (free); requires image_url.
image_urlNohttps link to the user's OWN image, used as style/subject reference.
placementNoPrint size/position: portrait_extended (default), square_center or chest_small.
backgroundNoT-shirt background choice (see get_studio_options backgrounds).

Output Schema

NameRequiredDescriptionDefault
noteNo
errorNoe.g. not enough Studio credits, daily limit reached, invalid product.
detailNo
statusNo
print_idNoGeneration id — poll get_studio_status with it.
tell_userNoSay this to the account owner — what was spent from their balance and what is left.
topup_urlNoWhere the user can buy credits (present on 'not enough credits').
cost_creditsNoCredits spent on this generation.
signup_bonusNo
balance_afterNoCredits left after this generation.
balance_beforeNo
studio_account_createdNoPresent when a Studio account was auto-created for the user.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only say non-readonly/openWorld/non-idempotent; the description goes far beyond by disclosing the credit cost model, how credits are earned (20 on signup, 20 per tee), the requirement to report balance and get a yes, and the free preserve=true exception. It also gives expected duration and the async follow-up (poll get_studio_status). No contradiction with annotations.

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 the two highest-stakes facts (cost and consent) before mechanics, and the args block is scannable. It is long, and the inline enum lists are verbose, but nearly every sentence carries decision-relevant content, so little is wasted.

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 costly, slow, non-idempotent generation tool, the description covers prerequisites, consent, cost, duration, parameter choices, and the return/polling loop (print_id -> get_studio_status). With an output schema present, nothing an agent needs to call this correctly is missing.

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

Parameters5/5

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

Although schema coverage is 100%, the schema provides no enum values (0 enums) yet the description enumerates all product, background, and placement values, states the model trade-off (both 1 credit, different styles), and clarifies the image_url/preserve dependency. This is meaningful information the schema does not carry.

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 and resource — 'Generate a CUSTOM t-shirt print from a text prompt' — and immediately flags the AI engine and 2-10 min latency. It is clearly distinct from siblings like add_custom_to_cart or get_studio_options, which are referenced as downstream/preparatory steps rather than competitors.

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?

Gives an explicit prerequisite sequence ('first call get_studio_options and ask the human to pick placement + product... do NOT silently use defaults') plus a mandatory consent gate before spending credits. It also names the alternative path (preserve=true, free) and when that applies — kids' drawings, own art.

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