Tintin Tryon

AI product photography for fashion sellers: Shopify photo audits, seasonal guides, AI try-on.

Should I use this

Quality & Safety

A
Description quality
91%
Schema completeness
97%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'get_job_status' description lacks action verbin get_job_status
  • LOWTool 'get_credits_balance' description lacks action verbin get_credits_balance

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,041Tokens (tool definitions)
~2.9 KBTypical response size
Moderate attention impact (1.59% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "tryon": {
      "url": "https://tintin-x.com/mcp"
    }
  }
}

Remote endpoints

https://tintin-x.com/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢audit_store(store_url)

Audit a Shopify store's listing photos (no account needed). Scans the public product sitemap for stale photos (≥180 days), season mismatches (e.g. winter items with summer-shot photos), and upcoming retail-calendar windows. Returns work orders with pre-filled create_tryon_job fixes and estimated credit costs.

Input Schema

{
  "type": "object",
  "properties": {
    "store_url": {
      "type": "string",
      "description": "Store domain or URL, e.g. examplestore.com"
    }
  },
  "required": [
    "store_url"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "store": {
      "type": "string",
      "description": "Normalized store host that was audited"
    },
    "scanned_listings": {
      "type": "integer",
      "description": "Number of products found in the sitemap"
    },
    "summary": {
      "type": "object",
      "description": "Issue counts: stale_photos, season_mismatches, calendar_opportunities, total_work_orders, estimated_credits_to_fix_all",
      "additionalProperties": true
    },
    "work_orders": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Per-listing findings with a pre-filled create_tryon_job fix block"
    },
    "work_orders_truncated": {
      "type": "boolean",
      "description": "True when more work orders exist than shown"
    },
    "seasonal_context": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Retail shoot windows currently open or urgent"
    },
    "next_steps": {
      "type": "string",
      "description": "Suggested follow-up actions"
    },
    "error": {
      "type": "string",
      "description": "Machine-readable error code (only present on failures)"
    },
    "message": {
      "type": "string",
      "description": "Human-readable explanation of the failure"
    }
  },
  "additionalProperties": true
}
🟢get_seasonal_guide(category)

Retail shoot calendar for fashion sellers (no account needed): which shoot windows (Labor Day, Halloween, Fall/Winter drop, Black Friday, Holiday) are open or urgent right now, deadlines, and links to per-category shoot guides with recommended shots.

Input Schema

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "enum": [
        "womenswear",
        "swim",
        "lingerie"
      ],
      "description": "Optional: limit guide links to one category"
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {
    "today": {
      "type": "string",
      "description": "Current date (ISO 8601)"
    },
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Shoot windows with event, name, peak, shoot_deadline, window_open, state (open|urgent|closed|upcoming), days_to_deadline, note, and guide links"
    },
    "how_to_act": {
      "type": "string",
      "description": "How to use the open windows"
    },
    "error": {
      "type": "string",
      "description": "Machine-readable error code (only present on failures)"
    },
    "message": {
      "type": "string",
      "description": "Human-readable explanation of the failure"
    }
  },
  "additionalProperties": true
}
🟡create_preview_job(store_url, garment_image_url, product_type, model)

ONE free on-model preview per store, no account needed. Pass the store and one of its listing photo URLs (from an audit_store work order) to generate a free 2K on-model try-on photo — the taste before buying credits. Poll with get_preview_status.

Input Schema

{
  "type": "object",
  "properties": {
    "store_url": {
      "type": "string",
      "description": "The store the photo belongs to (same as audit_store)"
    },
    "garment_image_url": {
      "type": "string",
      "description": "A listing photo URL from that store (audit work order image_url)"
    },
    "product_type": {
      "type": "string",
      "description": "Top | Bottom | Dress | Full-body (default Top)"
    },
    "model": {
      "type": "string",
      "enum": [
        "man",
        "woman"
      ],
      "description": "Preset model (default woman)"
    }
  },
  "required": [
    "store_url",
    "garment_image_url"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "preview_id": {
      "type": "string",
      "description": "Preview job UUID — poll with get_preview_status"
    },
    "status": {
      "type": "string",
      "description": "Initial job state (usually queued)"
    },
    "store": {
      "type": "string",
      "description": "Normalized store host the preview belongs to"
    },
    "poll": {
      "type": "string",
      "description": "How to retrieve the result"
    },
    "error": {
      "type": "string",
      "description": "Machine-readable error code (only present on failures)"
    },
    "message": {
      "type": "string",
      "description": "Human-readable explanation of the failure"
    }
  },
  "additionalProperties": true
}
🟢get_preview_status(preview_id)

Poll a free preview. When succeeded, returns the preview image URL (valid 1h). No account needed.

Input Schema

{
  "type": "object",
  "properties": {
    "preview_id": {
      "type": "string",
      "description": "Preview UUID returned by create_preview_job"
    }
  },
  "required": [
    "preview_id"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "description": "Generation job UUID"
    },
    "status": {
      "type": "string",
      "description": "Job state: queued | running | succeeded | failed"
    },
    "error_message": {
      "type": "string",
      "description": "Failure detail when status is failed"
    },
    "output_urls": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Presigned result image URLs (present when succeeded)"
    },
    "output_urls_expire_in": {
      "type": "integer",
      "description": "Seconds until output_urls expire (3600)"
    },
    "error": {
      "type": "string",
      "description": "Machine-readable error code (only present on failures)"
    },
    "message": {
      "type": "string",
      "description": "Human-readable explanation of the failure"
    }
  },
  "additionalProperties": true
}
🟡create_tryon_job(garment_image_url, product_type, model, model_image_url, prompt, ...)

Generate an on-model try-on photo from a garment/product image URL (e.g. straight from an audit_store work order). Charges 1 credit (2K) or 2 credits (4K) from the account's studio credits. Requires an API key.

Input Schema

{
  "type": "object",
  "properties": {
    "garment_image_url": {
      "type": "string",
      "description": "Public URL of the garment/product photo"
    },
    "product_type": {
      "type": "string",
      "description": "Top | Bottom | Dress | Full-body (default Top)"
    },
    "model": {
      "type": "string",
      "enum": [
        "man",
        "woman"
      ],
      "description": "Preset model (default woman)"
    },
    "model_image_url": {
      "type": "string",
      "description": "Optional: custom model reference photo URL"
    },
    "prompt": {
      "type": "string",
      "description": "Optional styling instructions"
    },
    "aspect_ratio": {
      "type": "string",
      "description": "Output aspect ratio, e.g. 3:4 (default)"
    },
    "resolution": {
      "type": "string",
      "enum": [
        "2K",
        "4K"
      ],
      "description": "Output resolution: 2K costs 1 credit, 4K costs 2"
    },
    "api_key": {
      "type": "string",
      "description": "API key if the client can't send an Authorization header"
    }
  },
  "required": [
    "garment_image_url"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "description": "Generation job UUID — poll with get_job_status"
    },
    "status": {
      "type": "string",
      "description": "Initial job state (usually queued)"
    },
    "credits_charged": {
      "type": "number",
      "description": "Studio credits debited for this generation"
    },
    "resolution": {
      "type": "string",
      "description": "Output resolution the job will render at"
    },
    "poll": {
      "type": "string",
      "description": "How to retrieve the result"
    },
    "error": {
      "type": "string",
      "description": "Machine-readable error code (only present on failures)"
    },
    "message": {
      "type": "string",
      "description": "Human-readable explanation of the failure"
    }
  },
  "additionalProperties": true
}
🟢get_job_status(job_id, api_key)

Poll a generation job. When succeeded, returns presigned output image URLs (valid 1h). Requires an API key.

Input Schema

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "description": "Job UUID returned by create_tryon_job"
    },
    "api_key": {
      "type": "string",
      "description": "API key if the client can't send an Authorization header"
    }
  },
  "required": [
    "job_id"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "description": "Generation job UUID"
    },
    "status": {
      "type": "string",
      "description": "Job state: queued | running | succeeded | failed"
    },
    "error_message": {
      "type": "string",
      "description": "Failure detail when status is failed"
    },
    "output_urls": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Presigned result image URLs (present when succeeded)"
    },
    "output_urls_expire_in": {
      "type": "integer",
      "description": "Seconds until output_urls expire (3600)"
    },
    "error": {
      "type": "string",
      "description": "Machine-readable error code (only present on failures)"
    },
    "message": {
      "type": "string",
      "description": "Human-readable explanation of the failure"
    }
  },
  "additionalProperties": true
}
🟢get_credits_balance(api_key)

Studio credit balance and top-up link. Requires an API key.

Input Schema

{
  "type": "object",
  "properties": {
    "api_key": {
      "type": "string",
      "description": "API key if the client can't send an Authorization header"
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {
    "credits": {
      "type": "number",
      "description": "Available studio credits (subscription + bonus)"
    },
    "note": {
      "type": "string",
      "description": "What one credit buys"
    },
    "topup_url": {
      "type": "string",
      "description": "Where to buy more credits"
    },
    "error": {
      "type": "string",
      "description": "Machine-readable error code (only present on failures)"
    },
    "message": {
      "type": "string",
      "description": "Human-readable explanation of the failure"
    }
  },
  "additionalProperties": true
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools
verifiedversion not recorded7 tools