Skip to main content
Glama

YouCam for Beauty & Personal Care

Ai Skin Analysis With Advanced Report And Product Recommendation

AI-Skin-Analysis-with-Advanced-Report-and-Product-Recommendation
Read-only

What it is. Skin Analysis with Advanced Skin Report and Product Recommendation in a single call. You get the precision report — grounded in your measured skin metrics and the professional skincare reference database — and recommendations drawn exclusively from your own products, from one request and one polling flow. This is the complete loop in one API call: a scientific, high-reliability, precise skin analysis report, plus product recommendations based entirely on your catalog. Product exposure and user stickiness are handled in the same pass, in one continuous user journey.

  • Prerequisite — Upload Your Product Catalog A product catalog is the list of products Skin Analysis recommends from. Upload it once, keep its catalog_id, and pass that id on every analysis call. Catalogs belong to your account, not to one API key — every key of the account, project keys included, sees the same catalogs, and rotating or deleting a key does not affect them. Uploading and storing catalogs is free. Catalog file requirements | Item | Value | ||| | Format | CSV with a header row | | Encoding | UTF-8, with or without BOM (Excel's "CSV UTF-8" adds one) | | Maximum file size | 5 MB | | Maximum SKU count | No limit other than file size | | Required columns | product_id, product_name, product_description | Extra columns are ignored but still count toward the 5 MB limit. Quote values containing commas or line breaks. Each non-empty data row counts as one SKU.

product_id,product_name,product_description
SKU-001,Hydrating Serum,"A lightweight serum for dry skin."
SKU-002,Brightening Cream,"Evens out skin tone, for daily use."
SKU-003,Barrier Repair Cream,"Rich cream for dry, redness-prone skin."
# Upload a catalog — validated in the same request
curl -sS -X POST "$BASE_URL/s2s/v2.1/product-catalog" \
  -H "Authorization: Bearer $API_KEY" \
  -F "file=@catalog.csv" \
  -F "name=Summer skincare"

A valid file answers status: ready with its catalog_id and sku_count — keep that id:

{
  "status": 200,
  "data": {
    "catalog_id": "1662043585118399001",
    "name": "Summer skincare",
    "status": "ready",
    "created_time": 1760256000000,
    "sku_count": 3
  }
}
# List every catalog of your account, newest first (ready and failed alike)
curl -sS -H "Authorization: Bearer $API_KEY" "$BASE_URL/s2s/v2.1/product-catalog"
# Delete a catalog — immediate and permanent
curl -sS -X DELETE -H "Authorization: Bearer $API_KEY" \
  "$BASE_URL/s2s/v2.1/product-catalog/1662043585118399001"

Catalog states and limits | Status | Meaning | Usable in Skin Analysis | |||| | ready | Uploaded and validated | Yes | | failed | Uploaded, file failed validation | No | An upload that fails validation answers an error and is still recorded as a failed catalog, visible in List catalogs; the error body never carries its catalog_id. Each account keeps up to 10 catalogs, ready and failed together — delete one before uploading another. To update a catalog, upload a new file: every upload creates a new catalog_id, and the old catalog stays usable until you delete it, so you can verify the new one before switching.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "request": "<request>"
    },
    "name": "AI-Skin-Analysis-with-Advanced-Report-and-Product-Recommendation"
  }
}

Input Schema

NameRequiredDescriptionDefault
pollingNoIf true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.
requestYesThis object represents a run Skin Analysis task.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/openWorldHint/destructiveHint=false, so the bar is lower; the description still adds substantial context: a single request returns both artifacts in llm_results.json, execution goes through one polling flow, catalogs are account-scoped (shared across keys, survive key rotation), capped at 10 per account, and deletion is immediate and permanent. Caveat: most of this behavioral detail belongs to the separate Product Catalog API rather than to this tool's own call, and it never explains what the polling/async behavior means for a caller.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first paragraph is properly front-loaded and states the value proposition, but the remaining bulk is a catalog-management manual: CSV column tables, three curl examples, a sample CSV, an example JSON response, and a state table. That content describes a different API endpoint and crowds out the tool's own invocation semantics; most of it does not earn its place in this definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a very large nested schema and an output schema, the prerequisite chain (upload catalog, keep catalog_id, ensure status ready, 10-catalog cap) is covered thoroughly. However, the description is silent on the things an agent must still decide at call time — async polling behavior, json vs zip output, and the HD/SD feature-mixing rule — leaving those entirely to the schema, and it conflates catalog setup with analysis invocation.

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 the baseline is 3. The description does reinforce the most important parameter semantics (catalog_id must be supplied and must be 'ready'; top_n draws from that catalog), but it says nothing about polling, format, dst_actions HD/SD exclusivity, or src_file_url vs src_file_id — all of which the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line states a specific verb+resource+scope: skin analysis producing an advanced report AND product recommendations in a single call, drawn from the caller's own catalog. That is enough to distinguish it conceptually from the split siblings (AI-Skin-Analysis-with-Advanced-Report / -with-Product-Recommendation), but the description never names those alternatives, so the differentiation is implicit rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly states a hard prerequisite (a ready product catalog plus its catalog_id on every call) and describes catalog states that gate usability, which is genuine usage guidance. It gives no guidance on when to pick this combined tool over the report-only or recommendation-only siblings, and no exclusions or failure-mode routing.

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