Skip to main content
Glama

Upload Garments from Chat

upload_garment_from_chat_file

Batch upload garments from ChatGPT attachments. Defaults to background removal; pass processing_mode='none' to store original images as-is. Pass actual file objects only in top-level image_file_1, image_file_2, etc. Prefer garments[].assets with {asset_kind: full|detail, asset_view: front|back|side, image_file: 'image_file_N'}; exactly one full front is required, every full view is unique, and detail views can repeat. Do not rely on array position to pair assets; every asset must reference its exact top-level field name. No image_url here; use upload_garment_from_public_url for URLs. For local filesystem files, use prepare_local_garment_upload instead. No base64 and no local paths.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
garmentsYesGarment metadata. Put files in top-level image_file_1..image_file_20 and reference those exact field names inside each garment. No base64.
image_file_1NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_2NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_3NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_4NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_5NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_6NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_7NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_8NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_9NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_10NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_11NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_12NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_13NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_14NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_15NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_16NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_17NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_18NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_19NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.
image_file_20NoTop-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations are minimal (readOnlyHint=false, no others set), so the description carries the weight. It discloses the default behavior ('Defaults to background removal'), the effect of omitting processing_mode, and the API contract requirements (exact field-name references, uniqueness constraints on full views, repeatability of details). It does not mention auth requirements or rate limits, but the operational pitfalls (field-name mapping, no base64, no local paths) are well covered.

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 efficiently organized, front-loading the purpose in the first sentence and then stacking actionable constraints. Every sentence earns its place—no filler. It covers purpose, defaults, preferred structure, constraints, exclusions, and alternatives in a compact form.

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?

This is a complex, 21-parameter tool with nested asset objects, legacy shortcuts, and multiple sibling tools. The description addresses the key operational risks (field-name mapping, no base64/paths/URLs, uniqueness rules, exact-view requirements) and points to correct alternatives. The absence of an output schema means the description can't lean on return-value documentation, but the input-contract clarity is thorough enough to make this fully usable.

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 100%, so the schema already documents every parameter. The description adds meaningful value beyond the schema by clarifying the preferred structure (garments[].assets vs legacy shortcuts), warning that image_file_N references must be exact field names and not positional, and explaining constraints like 'exactly one full front is required, every full view is unique, detail views can repeat.' The description's guidance on processing_mode values ('none' to store as-is) also adds semantics beyond the enum-free schema.

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 states 'Batch upload garments from ChatGPT attachments' with specific verb+resource+source. It clearly distinguishes this from sibling tools by naming alternatives (upload_garment_from_public_url for URLs, prepare_local_garment_upload for local files), and it has two similarly-named chat-upload siblings (upload_avatar_from_chat_file) which this differentiates by resource type.

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?

The description provides explicit guidance: when to use processing_mode='none', how to structure assets (garments[].assets with asset_kind/asset_view pairing), and explicit exclusions ('No image_url here; use upload_garment_from_public_url for URLs' and 'For local filesystem files, use prepare_local_garment_upload instead'). It also warns against relying on array position and mandates exact top-level field references, which is critical operational guidance.

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.

TDQS

A3.5/5.0
Disambiguation3/5

Most tools target distinct resources and have detailed descriptions, but several closely related families exist: create_credit_checkout_session vs mcp_create_credit_checkout_session, the propose_brief/confirm_brief/update_brief lifecycle, and the many avatar/upload entry points. An agent must read long caveats carefully to avoid selecting the wrong tool.

Naming Consistency4/5

The vast majority of tool names follow a predictable snake_case verb_noun pattern (list_*, get_*, create_*, update_*, propose_*). The mcp_* prefix group and varied creation verbs (create/upload/save/add/generate) are minor deviations, though mcp_create_credit_checkout_session duplicating create_credit_checkout_session adds some confusion.

Tool Count1/5

With 67 tools, this is an extreme mismatch by the rubric's own 50+ threshold, far beyond the typical 3-15 well-scoped range. Many tools are narrow lifecycle steps such as two-phase local uploads, app-only montage internals, and multiple ArtDirection authoring variants, making the agent-facing surface very heavy.

Completeness3/5

The core generation, brief, montage, and QA workflows are covered thoroughly with polling and result retrieval. However, notable lifecycle gaps exist: outfits, locations, avatars, and tags mostly have create/list/get but no update or delete, and delete_template is the only delete tool in the entire set.

Resources