match_score here equals the one the app shows for the same scan and product. Filters are optional. Pass skin_type only if the person stated it; it is never inferred from the scan.
match_score is a cosmetic fit estimate from 0 to 100. It is not a diagnosis or a promise of results. No prices, stock or retailer links are returned.
Allowance: 1 match per scan. After that the tool succeeds with products: [] and entitlement.upgrade_required: true.
Common errors: scan_required, scan_not_ready, scan_not_uploaded, not_found, catalog_unavailable, rate_limited.
Input
Sent asparams.arguments of tools/call. Unknown keys are rejected with invalid_input.
string
Required. The completed scan to match against. Without it this returns scan_required.Format
uuid.string
Required. That scan’s private access token.Pattern
^[a-f0-9]{64}$.enum<string>
Narrow the match to one kind of product.One of
cleanser, toner, serum, moisturizer, sunscreen, eye_care, exfoliator, mask, treatment.enum<string>
Only if the person stated it. Never inferred from the scan.One of
dry, oily, combination, normal.enum<string>[]
Max 3 items. Items:
fragrance, alcohol, fungal_acne_triggers.boolean
boolean
string
Max length 60.
string
Max length 40.
Output
Returned asstructuredContent, and as the same object serialised in content[0].text. On failure the result has isError: true and an error body instead.
object[]
required
Max 5 items.
string[]
required
Max 6 items.
string
required
object
required
string
required
Description the model receives
Description the model receives
Input JSON Schema
Input JSON Schema
Output JSON Schema
Output JSON Schema