Skip to main content
Glama

Start a Fashio generation job

create_generation

Starts one generation job (photo, or a short video for ai_videos) and returns {id, status: 'processing'} at once; poll get_generation with that id until status is 'completed' or 'failed'. Pick toolId from list_models, or pass templateSetId (from list_template_sets) to replay a saved model/venue/pose on a new garment; use create_catalog_job instead for a multi-shot shoot from Fashio's curated library. Deducts the tool's diamond price from the key's account when the job starts: 400 (unknown toolId, missing required image, toolId not matching the template) and 402 (balance too low) charge nothing, 404 means templateSetId not found, and a 500 or a job that ends 'failed' is refunded automatically. Needs a valid Fashio API key (Bearer); every call counts toward the key's daily request cap (429 when reached, 401 for a missing or revoked key).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "create_generation"
  }
}

Input Schema

NameRequiredDescriptionDefault
poseNoPose id from list_poses. Required for pose_angle_switch; optional for virtual_model, outfit_photo, jewelry_on_model.
ratioNoOutput aspect ratio: 1:1 | 9:16 | 16:9 | 4:3 | 3:4 | 4:5 | auto.
imagesNoInput images keyed by field; required keys depend on toolId: virtual_model -> fashion_model + garment_photo; outfit_photo and pro_studio -> fashion_model + garment_photos[]; jewelry_on_model -> jewelry_image or jewelry_images[]; model_swap -> user_photo + fashion_model; every other tool -> user_photo. Values are URLs (upload_image or your own hosting); fashion_model and venue also accept a catalog id from list_fashion_models / list_venues. A missing required key is a 400 with no charge.
toolIdNoTool to run, e.g. virtual_model, outfit_photo, pro_studio, jewelry_on_model, remove_background, photo_edit (full list: list_models). Required unless templateSetId is given; then it is taken from the preset, and if you pass both they must match (400 otherwise).
durationNoai_videos only: clip length in seconds (default 5).
shotTypeNopro_studio only (required there).
jewelryTypeNojewelry_on_model only (required there): ring | necklace | earring | bracelet.
stylePresetNopro_studio only (required there).
targetRatioNophoto_reframe only (required there): the output aspect ratio, e.g. 4:5.
customPromptNoFree-text instruction. Required for photo_edit (it is the edit instruction); optional note for virtual_model and model_swap.
motionPromptNoai_videos only (required there): describes the motion.
templateSetIdNoid of one of YOUR saved presets (list_template_sets / create_template_set; not a list_ready_template_sets id). Fills in fashion_model/venue/pose/shotType/stylePreset/ratio, so only the new garment's images are still required; any field you also pass overrides the preset's value.
backgroundColorNojewelry_on_model only, optional solid studio background color.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed13 schema fields changed
    • changedInput schema / properties / backgroundColor / description
      Previous value: -"jewelry_on_model only."New value: +"jewelry_on_model only, optional solid studio background color."
    • changedInput schema / properties / customPrompt / description
      Previous value: -"Required for photo_edit."New value: +"Free-text instruction. Required for photo_edit (it is the edit instruction); optional note for virtual_model and model_swap."
    • changedInput schema / properties / duration / description
      Previous value: -"ai_videos only, seconds (default 5)."New value: +"ai_videos only: clip length in seconds (default 5)."
    • changedInput schema / properties / images / description
      Previous value: -"Keys depend on toolId (garment_photo, fashion_model, venue, user_photo, jewelry_image, ...). Values are URLs from upload_image / list_fashion_models / list_venues. fashion_model and venue also accept a catalog id."New value: +"Input images keyed by field; required keys depend on toolId: virtual_model -> fashion_model + garment_photo; outfit_photo and pro_studio -> fashion_model + garment_photos[]; jewelry_on_model -> jewelry_image or jewelry_images[]; model_swap -> user_photo + fashion_model; every other tool -> user_photo. Values are URLs (upload_image or your own hosting); fashion_model and venue also accept a catalog id from list_fashion_models / list_venues. A missing required key is a 400 with no charge."
    • addedInput schema / properties / jewelryType / description
      Added value: +"jewelry_on_model only (required there): ring | necklace | earring | bracelet."
    • changedInput schema / properties / motionPrompt / description
      Previous value: -"ai_videos only."New value: +"ai_videos only (required there): describes the motion."
    • addedInput schema / properties / pose / description
      Added value: +"Pose id from list_poses. Required for pose_angle_switch; optional for virtual_model, outfit_photo, jewelry_on_model."
    • changedInput schema / properties / ratio / description
      Previous value: -"1:1 | 9:16 | 16:9 | 4:3 | 3:4 | 4:5 | auto"New value: +"Output aspect ratio: 1:1 | 9:16 | 16:9 | 4:3 | 3:4 | 4:5 | auto."
    • changedInput schema / properties / shotType / description
      Previous value: -"pro_studio only."New value: +"pro_studio only (required there)."
    • changedInput schema / properties / stylePreset / description
      Previous value: -"pro_studio only."New value: +"pro_studio only (required there)."
    • changedInput schema / properties / targetRatio / description
      Previous value: -"photo_reframe only."New value: +"photo_reframe only (required there): the output aspect ratio, e.g. 4:5."
    • changedInput schema / properties / templateSetId / description
      Previous value: -"A saved style from create_template_set/list_template_sets. Fills in fashion_model/venue/pose/shotType/stylePreset/ratio; only the new garment's images are still required."New value: +"id of one of YOUR saved presets (list_template_sets / create_template_set; not a list_ready_template_sets id). Fills in fashion_model/venue/pose/shotType/stylePreset/ratio, so only the new garment's images are still required; any field you also pass overrides the preset's value."
    • changedInput schema / properties / toolId / description
      Previous value: -"Required unless templateSetId is given (it fills toolId in from the saved preset)."New value: +"Tool to run, e.g. virtual_model, outfit_photo, pro_studio, jewelry_on_model, remove_background, photo_edit (full list: list_models). Required unless templateSetId is given; then it is taken from the preset, and if you pass both they must match (400 otherwise)."
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: async non-blocking behavior, diamond charge at job start, which error codes are free (400/402) vs. which indicate not-found (404), automatic refund on 500 or 'failed' jobs, Bearer auth requirement, and daily rate-cap behavior with 429/401. This is exactly the cost/reversibility/failure context an agent needs before a billable mutation.

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 core action and return shape, then the toolId/templateSetId choice, the alternative tool, and finally billing/error/auth semantics in descending priority. It is a dense single paragraph with heavy parenthetical use, but nearly every clause (cost, refund, error codes, ratelimit) carries operational weight.

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 13-parameter, nested-object, billable mutation with no annotations and no output schema, the description supplies the return shape itself, the full polling contract, cost and refund rules, and auth/failure modes. An agent has everything needed to call it, interpret the response, and handle errors without further context.

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 per-parameter meaning is already fully documented and the baseline is 3. The description reiterates the toolId/templateSetId relationship (mutual requirement, matching rule, 400 on mismatch), but the schema already states this, so it adds little new meaning beyond structured data.

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 ('Starts one generation job') with the exact output shape ('returns {id, status: 'processing'}'), and immediately distinguishes it from the sibling create_catalog_job ('use create_catalog_job instead for a multi-shot shoot'). An agent can identify and differentiate this tool without opening any schema.

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 workflow (start here, then poll get_generation until 'completed' or 'failed'), names the discovery tools for the two input modes (list_models for toolId, list_template_sets for templateSetId), and names the alternative tool with the condition that selects it (multi-shot shoot -> create_catalog_job). Nothing is left 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.