Skip to main content
Glama

Create the listing draft from uploaded photos

products.createFromUpload
Destructive

Finishes a direct upload started with products.create: after you PUT the converted photos to its direct_upload.put_urls, call this with its upload_id. Resollo's own AI then writes the listing and creates it as an INACTIVE draft (not public) -- returns product_id, the suggested content and price range, and activation_url, where the seller reviews and activates it. Uses 2 AI credits. Photos that aren't WebP within direct_upload.requirements are rejected, never converted. Also used by Resollo's photo picker panel. Requires a signed-in Resollo user.

Input Schema

NameRequiredDescriptionDefault
upload_idYesThe upload_id returned by products.create.

Output Schema

NameRequiredDescriptionDefault
stateYes
suggestedYes
product_idYes
activation_urlYes
quota_remainingYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / upload_id / description
      Previous value: -"The upload id the photo picker panel received from products.create."New value: +"The upload_id returned by products.create."
  2. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only cover readOnly/destructive/openWorld hints, while the description adds substantial behavioral context: the product is created as an INACTIVE draft (not public), the seller activates it via activation_url, 2 AI credits are consumed per call, non-WebP photos are rejected rather than converted, and a signed-in user is required. Actions, side effects, cost, and failure mode are all disclosed.

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?

The action and its precondition are front-loaded, and the remaining sentences each carry real weight (draft state, cost, rejection rule, auth). It is dense but nearly waste-free; the aside about the photo picker panel is the only marginally non-essential sentence.

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 one-parameter mutation that already has an output schema, annotations, and a fully described input, the description covers everything an agent needs: sequencing with its predecessor, what gets created, what is returned, cost, and constraints. Nothing material is missing.

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?

There is only one parameter and schema description coverage is 100%, so the schema fully documents upload_id and its relationship to products.create. The description restates the same origin ('its upload_id') without adding format or validation detail beyond the schema, so the baseline 3 applies.

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 a concrete verb and outcome ('Finishes a direct upload started with products.create') and names the sibling it chains from. An agent can immediately distinguish it from products.create and the other products.* tools because it is framed as the terminal step of a two-phase upload flow.

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 gives the exact precondition for calling: PUT the converted photos to direct_upload.put_urls first, then call this with the upload_id from products.create. The alternative/predecessor tool is named explicitly along with the condition that selects it, leaving nothing to inference.

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