Skip to main content

Fashio AI

com.fashiolabs/fashioVersion 0.1.1

On-model and ghost-mannequin fashion photos from a product photo. Spends credits; needs an API key.

Status

Responds290 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 13:56 UTC
Latency
290 ms
Remotes responding
1 of 1
Sign-in
API key
Hosting
Hosted outside the EU (detected)
Registry data as of
Nov 14, 2026, 22:14 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://mcp.fashiolabs.com/mcpResponds290 ms
No sign-in

Claude Code

claude mcp add --transport http fashio https://mcp.fashiolabs.com/mcp --header 'Authorization: Bearer <YOUR_TOKEN>'

Replace <YOUR_TOKEN> before running.

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: fashio
Remote MCP server URL: https://mcp.fashiolabs.com/mcp
This server expects the header Authorization.

Cursor

{
  "mcpServers": {
    "fashio": {
      "url": "https://mcp.fashiolabs.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

Replace <YOUR_TOKEN> before running.

VS Code

code --add-mcp '{"name":"fashio","type":"http","url":"https://mcp.fashiolabs.com/mcp","headers":{"Authorization":"Bearer <YOUR_TOKEN>"}}'

Replace <YOUR_TOKEN> before running.

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

14 tools

Tools of Fashio AI
Read-only
Idempotent
Open world
create_catalog_jobStarts a multi-shot catalogue job: your product photo is placed into every shot (or the chosen shotIds) of one of Fashio's curated sets, one image per shot. Returns {mediaItemId, status: 'pack_processing', packTotal, shotIds, diamondCost}; poll get_generation with mediaItemId: resultUrls fills in shot by shot and packCompleted/packFailed report progress until status is 'completed' or 'failed'. Use create_generation instead for a single image or to reuse your own saved preset. Charges a per-shot diamond price x number of shots up front: 402 if the balance cannot cover the full shot count, 400 for a missing readyTemplateSetId or garment image or shotIds matching none of the set's shots, 404 for an unknown set, and none of these charge. If every shot fails the whole charge is refunded automatically; partial failures are counted in packFailed and are not refunded per shot. 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).Not declaredNot declaredNot declaredNot declared
create_generationStarts 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).Not declaredNot declaredNot declaredNot declared
create_template_setSaves a reusable style preset on your account and returns {id}; pass that id as create_generation's templateSetId to put a NEW garment on the same model/venue/pose. Two ways: sourceMediaId (one of your completed generations; its fashion_model, venue, pose, shotType, stylePreset and ratio are captured, and any pose/shotType/stylePreset/ratio you also pass override them), or toolId + images.fashion_model (+ optional venue/pose/...) to define a preset by hand. Always creates a new preset with a new id, never overwrites one, even with the same label; remove old ones with delete_template_set. Free (no diamonds). 400 for a missing label, unsupported toolId, unfinished source or no fashion_model; 404 if sourceMediaId is not found or not yours. 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).Not declaredNot declaredNot declaredNot declared
delete_template_setPermanently deletes one of your saved style presets and returns {success: true}; there is no undo. Get the id from list_template_sets (or from create_template_set's response). Only the preset is removed; images already generated with it are kept. Fashio's curated sets from list_ready_template_sets cannot be deleted. 404 if the id does not exist or belongs to another account. Free (no diamonds). 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).Not declaredNot declaredNot declaredNot declared
get_accountReturns the API key owner's account: {email, diamondBalance, plan: {isPremium, status, planProductId, provider, cancelAtPeriodEnd, renewsAt}}, where plan.status is active | will_expire | paused | billing_issue | expired | refunded | none. Use it to check the diamond (credit) balance before a large create_catalog_job, or to confirm which account a key belongs to. Not needed before every create_generation (a low balance there returns 402 without charging), and it does not list tool prices (use list_models). Read-only and free. 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).Not declaredNot declaredNot declaredNot declared
get_generationReturns a job's current state: {id, status: 'processing' | 'completed' | 'failed', resultUrls, errorMessage}; catalogue jobs also report packTotal, packCompleted and packFailed. Use it to poll a job from create_generation (its id) or create_catalog_job (its mediaItemId) every few seconds until status is no longer 'processing'; resultUrls then holds the output image/video URLs (for a catalogue job they fill in shot by shot). Free (no diamonds), but each poll is one request. 404 if the id does not exist or belongs to another account. 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).Not declaredNot declaredNot declaredNot declared
get_ready_template_setFetches one set from Fashio's curated photoshoot library by id and returns {templateSet: {id, displayNames, description, coverUrl, tags, shotCount, shots: [{id, shotType, framing, previewUrl, thumbUrl, isDefault}]}}. Use it to inspect a set's shots and pick shotIds for create_catalog_job; list_ready_template_sets already returns the same fields, so skip this if you have them. Your own saved presets (list_template_sets) are a different kind of id and will not resolve here. 404 if the id is unknown or the set is no longer available. Free (no diamonds). 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).Not declaredNot declaredNot declaredNot declared
list_fashion_modelsLists active AI person models from Fashio's catalog in catalog order and returns {fashionModels: [...], facets} (facets = the distinct gender/race/bodyType/ageRange values across the whole catalog). Pass a model's id (or an image URL) as images.fashion_model in create_generation or create_template_set. Use list_ready_template_sets or list_template_sets instead when you want a model already paired with a venue and poses. No paging: only the first `limit` models come back. Free (no diamonds). 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).Not declaredNot declaredNot declaredNot declared
list_modelsLists every toolId that create_generation accepts and returns {models: [{id, inputShape, promptMode, fallbackPriceDiamonds}]}. Use it first to pick a toolId; use list_fashion_models, list_venues and list_poses instead to choose what goes into images.* and pose. The list is fixed server-side and the same for every key (not per-account), and fallbackPriceDiamonds is approximate: the real price is resolved when the job starts. Free (no diamonds). 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).Not declaredNot declaredNot declaredNot declared
list_posesLists active poses in catalog order and returns {poses: [...]}. Pass a pose's id as `pose` in create_generation (required for pose_angle_switch; optional for virtual_model, outfit_photo, jewelry_on_model) or create_template_set. Without `type` you get the default non-jewelry pose set, not every pose; pass a jewelry type for jewelry_on_model poses. No paging: only the first `limit` poses come back. Free (no diamonds). 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).Not declaredNot declaredNot declaredNot declared
list_ready_template_setsBrowses Fashio's own curated 'ready photoshoot' library (each set = one model + one venue + several pinned shots) and returns {templateSets: [{id, displayNames, description, coverUrl, tags, shotCount, isFeatured, shots: [{id, shotType, framing, previewUrl, thumbUrl, isDefault}]}], nextCursor}. Use it to pick a readyTemplateSetId for create_catalog_job when you have no styling of your own; use list_template_sets instead for presets you saved yourself. Paged: up to `limit` sets per call; pass nextCursor back as startAfter (same sort and filters) for the next page, and nextCursor null means the last page. Filters are exact tag matches combined with AND (the values appear in each set's `tags`). Free (no diamonds). 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).Not declaredNot declaredNot declaredNot declared
list_template_setsLists the style presets YOU saved on this account with create_template_set and returns {templateSets: [{id, label, toolId, images, pose, shotType, stylePreset, ratio, coverUrl, sourceMediaId, ...}]} (empty if none). Use it to find a templateSetId for create_generation or an id for delete_template_set. Use list_ready_template_sets instead to browse Fashio's curated photoshoot library for create_catalog_job; the two kinds of ids are not interchangeable. Returns every preset in one response (no paging, no guaranteed order). Free (no diamonds). 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).Not declaredNot declaredNot declaredNot declared
list_venuesLists active venues/backgrounds from Fashio's catalog in catalog order and returns {venues: [...]}. Pass a venue's id (or an image URL) as images.venue in create_generation (tools that take a venue, e.g. virtual_model, outfit_photo) or create_template_set. Use list_ready_template_sets instead for a complete model + venue + poses look. No paging: only the first `limit` venues come back. Free (no diamonds). 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).Not declaredNot declaredNot declaredNot declared
upload_imageUploads one image you have as base64 bytes and returns {id, url}; pass that url into any images.* field of create_generation, create_catalog_job or create_template_set. Use this for an image that exists only in the conversation or on your machine; skip it when the image already has a public URL (pass that URL directly). JPEG/PNG/WebP only, max 8 MB: 413 if larger, 415 if the bytes are not a recognised image (checked by file signature, not by `format`). Free (no diamonds). 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).Not declaredNot declaredNot declaredNot declared

Details

Registry status
Active
Published
Oct 26, 2026
Updated
Oct 26, 2026
Categories (suggested)
Design and mediaSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
GDPR
Not declared

Are you the operator? Claim this listing