Skip to content
Last updated

MCP

The Model Context Protocol (MCP) is a lightweight, JSON‑based wrapper that enables client applications (e.g., Cursor, Copilot in VS Code, Claude for Desktop) to invoke the YouCam AI services without dealing with low‑level HTTP details.

Key benefits: By adding a single entry to MCP configuration JSON file and supplying your YouCam API key, any MCP‑compatible client (Cursor, Copilot in VS Code, Claude for Desktop) can instantly access the full suite of YouCam AI services - skin analysis, cloth virtual try‑on, hair styling, fashion rendering, and more functions. The client abstracts request formatting, authentication handling, and asynchronous polling, allowing developers to focus on workflow integration rather than low‑level API mechanics.

Integration Guide

1. Prerequisites

  • An MCP‑compatible client installed (Cursor, Copilot in VS Code, Claude for Desktop, etc.).
  • Network access to https://mcp-api-01.makeupar.com.
  • A valid YouCam API key (see next Section).

The client itself already implements request/response serialization and polling logic; no additional code is required from the developer.

2. Obtaining an API Key

  1. Navigate to the API‑key console: https://yce.makeupar.com/api-console/en/api-keys/
  2. Create a new key or copy an existing one.
  3. Store the key securely (environment variable, secret manager, etc.).

Example environment variable (adjust for your deployment): YOUR_API_KEY=your‑api‑key

3. Configuring the MCP configuration JSON file

MCP clients read a JSON configuration file named mcp.json. Add an entry for the YouCam MCP server as shown below:

{
  "mcpServers": {
    "youcam-api-mcp": {
      "url": "https://mcp-api-01.makeupar.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Configuration steps

StepAction
1. Setup MCP configuration JSON filePut the file in the root of your project or in the client‑specific configuration directory (refer to each client’s documentation).
2. Replace placeholderSubstitute YOUR_API_KEY with the value obtained in Section 3, or reference an environment variable (${YOUR_API_KEY}) if supported by the client.
3. Verify connectivityOpen the client UI and confirm that “YouCam API MCP” appears as a selectable service.

The configuration is static; any change to the key requires a client reload.


MCP Client Setup

Cursor
  1. Open Settings → Tools & MCP → Add Custom MCP

  2. Add settings into mcp.json file

{
  "mcpServers": {
    "youcam-api-mcp": {
      "url": "https://mcp-api-01.makeupar.com/mcp",
      "type": "http",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
  1. Navigate to Cursor Settings → Tools & MCP

  2. Enable or Disable the desired tools in 'Installed MCP Servers' section

Copilot in VS Code (Visual Studio Code)

Copilot in VS Code option 1:

  1. > MCP: Add Server

  2. choose HTTP

  3. enter the server url

  4. name the mcp server

  5. header setting: fill in the api token

Copilot in VS Code option 2:

  1. > MCP: Open User Configuration

  2. Update the youcam-api-mcp setting to mcp.json

{
    "servers": {
        "youcam-api-mcp": {
            "url": "https://mcp-api-01.makeupar.com/mcp",
            "type": "http",
            "headers": {
                "Authorization": "Bearer YOUR_API_KEY"
            }
        }
    }
}
Claude for Desktop
  1. Settings → Developer → Edit config → open claude_desktop_config.json file

  2. update the mcpServers section

  3. replace the YOUR_API_KEY part with your actual api key

{
  "mcpServers": {
    "youcam-api-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp-api-01.makeupar.com/mcp",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer YOUR_API_KEY"
      }
    }
  }
}
  1. File → Exit to restart claude desktop app

MCP Capabilities

YouCam AI Capabilities Exposed via MCP

Below is a categorical overview of the APIs available on the youcam-api-mcp server. Each entry indicates whether the operation can be invoked directly or requires a template_id obtained from a dedicated "templates" endpoint.

Skin and Face
APIExecution TypeBrief Description
AI‑Skin‑AnalysisDirectAnalyses skin texture, pigmentation, hydration, pores, etc., and returns personalized skincare recommendations.
AI‑Aging‑GeneratorDirectGenerates a series of age-progressed images from a single selfie (youth → older).
AI‑Skin‑Tone‑AnalysisDirectDetects facial skin tone together with eye, eyebrow, lip & hair colours for colour‑matching recommendations.
AI‑Face‑AnalyzerDirectExamines facial geometry (eye shape, nose, cheekbones, etc.) to drive custom beauty or product suggestions.

Beauty API
APIExecution TypeBrief Description
AI‑Makeup‑Virtual‑TryOnDirect (Pattern‑Based**)Applies professionally designed makeup virtual try-on; first retrieve available pattern names via AI‑Makeup‑Virtual‑Try‑On‑Pattern‑Name.
AI‑Makeup‑Virtual‑Try‑On‑Pattern‑NameTemplate/Pattern QueryReturns a list of predefined makeup patterns (pattern_id).
AI‑Look‑VtoDirect (Template‑Based*)Applies curated “look” styles to an image; retrieve style IDs via AI‑Look‑Virtual‑TryOn‑Templates.
AI‑Look‑Virtual‑TryOn‑TemplatesTemplate/Pattern QueryLists available look templates (template_id).

* Template‑based APIs require a preceding call to the corresponding “templates” endpoint to obtain an identifier that is then supplied in the execution request.

** The AI Makeup API supports the following effects: SkinSmoothEffect, BlushEffect, BronzerEffect, ConcealerEffect, ContourEffect, EyebrowsEffect, EyelinerEffect, EyeshadowEffect, EyelashesEffect, FoundationEffect, HighlighterEffect, LipColorEffect and LipLinerEffect. Each effect has its own JSON structure. Some include a pattern, others may include a texture, and most contain at least one colour parameter within a palette structure.

It is recommended to copy the sample code for the makeup effect you wish to apply from AI-Makeup-Vto/Inputs-and-Outputs and include the pattern JSON when sending to the LLM. This ensures the LLM understands what AI Makeup supports and what you intend to apply.

For example, a lipstick sample effect is shown below:

{ "category": "lip_color", // string, const "lip_color" "shape": { // object, driven by lipshape.json "name": "original" // string, must match a label from lipshape.json }, "morphology": { // optional object "fullness": 50, // integer, range 0 to 100 (default 0) "wrinkless": 50 // integer, range 0 to 100 (default 0) }, "palettes": [ // minimum items depend on style; often one or more { "color": "#ff0000", // string, hex colour "#RRGGBB" "texture": "matte", // string, enum ["matte","gloss","holographic","metallic","satin","sheer","shimmer"] "colorIntensity": 50, // integer, range 0 to 100 "gloss": 50, // integer, required if texture is gloss, holographic, metallic, sheer or shimmer "shimmerColor": "#ff0000", // string, required if texture is holographic, metallic or shimmer "shimmerIntensity": 50, // integer, required if texture is holographic, metallic or shimmer "shimmerDensity": 50, // integer, required if texture is holographic, metallic or shimmer "shimmerSize": 50, // integer, required if texture is holographic, metallic or shimmer "transparencyIntensity": 50 // integer, required if texture is gloss, sheer or shimmer } ], "style": { "type": "full", // string, enum ["full","ombre","twoTone"] "innerRatio": 50, // integer, required if type is ombre "featherStrength": 50 // integer, required if type is ombre } }

The lipstick pattern JSON can be found in the Full Pattern Catalogue at: https://plugins-media.makeupar.com/wcm-saas/shapes/lipshape.json This is also available in AI-Makeup-Vto/Inputs-and-Outputs within the API documentation.


Fashion API
APIExecution TypeBrief Description
AI-ClothDirectVirtual clothing try-on.
AI-Cloth-TemplatesTemplate/Pattern QueryQueries predefined clothing templates.
AI-FabricDirectGenerates or analyses fabrics.
AI-Fabric-TemplatesTemplate/Pattern QueryRetrieves fabric templates.
AI-BagDirectVirtual bag try-on or placement.
AI-ScarfDirectVirtual scarf try-on.
AI-ShoesDirectVirtual shoes try-on.
AI-HatDirectVirtual hat try-on.

Jewellery and Watch
APIExecution TypeBrief Description
AI-Ring-Virtual-Try-OnDirectVirtual ring fitting and preview.
AI-Bracelet-Virtual-Try-OnDirectVirtual bracelet try-on.
AI-Watch-Virtual-Try-OnDirectVirtual watch fitting.
AI-Earring-Virtual-Try-OnDirectVirtual earring try-on.
AI-Necklace-Virtual-Try-OnDirectVirtual necklace try-on.

Hair API
APIExecution TypeBrief Description
AI‑Hairstyle‑GeneratorDirectGenerates realistic hairstyles; can also use predefined styles from AI‑Hairstyle‑Generator‑Templates.
AI‑Hairstyle‑Generator‑TemplatesTemplate/Pattern QueryLists hairstyle template IDs.
AI‑Hair‑ColorDirectChanges hair colour with adjustable intensity sliders.
AI‑Hair‑ExtensionDirectSimulates extensions of various lengths and styles; requires a template_id from AI‑Hair‑Extension‑Templates.
AI‑Hair‑Extension‑TemplatesTemplate/Pattern QueryProvides extension style IDs.
AI‑Hair‑Volume‑GeneratorDirectAdds natural volume to fine or thinning hair; optional presets via AI‑Hair‑Volume‑Generator‑Templates.
AI‑Hair‑Volume‑Generator‑TemplatesTemplate/Pattern QueryLists volume‑enhancement template IDs.
AI‑Hair‑Bang‑GeneratorDirectApplies realistic bangs; predefined bang styles available via AI‑Hair‑Bang‑Generator‑Templates.
AI‑Hair‑Bang‑Generator‑TemplatesTemplate/Pattern QueryReturns bang style IDs.
AI‑Wavy‑HairDirectGenerates wavy or curly hair effects; preset wave patterns from AI‑Wavy‑Hair‑Templates.
AI‑Wavy‑Hair‑TemplatesTemplate/Pattern QueryLists wavy‑hair template IDs.
AI‑Beard‑Style‑GeneratorDirectSimulates a variety of beard styles; additional preset options via AI‑Beard‑Style‑Generator‑Templates.
AI‑Beard‑Style‑Generator‑TemplatesTemplate/Pattern QueryProvides beard style IDs.
AI‑Hair‑Frizziness‑DetectionDirectQuantifies hair frizz level from three‑view photos (front, left, right).
AI‑Hair‑Length‑DetectionDirectMeasures hair length and categorises it into predefined ranges.
AI‑Hair‑Type‑DetectionDirectIdentifies curl pattern, thickness and overall hair type.

* Template‑based APIs require you to first request the list of available templates, select a template_id, then invoke the main endpoint with that identifier.


Image Editing
APIExecution TypeBrief Description
AI-Photo-LightingDirectEnhances or corrects lighting.
AI-Photo-Background-RemovalDirectRemoves backgrounds.
AI-Object-Removal-ProDirectAdvanced object removal.
AI-Object-RemovalDirectRegular object removal.
AI-Photo-EnhanceDirectImproves image quality.
AI-Photo-ColorizeDirectAdds colour to black-and-white images.
AI-Photo-Color-CorrectionDirectAdjusts colour balance.
AI-ReplaceDirectReplaces selected image regions.
AI-Image-ExtenderDirectExtends image borders (outpainting).
AI-Headshot-GeneratorDirectCreates headshots.
AI-Headshot-Generator-TemplatesTemplate/Pattern QueryHeadshot style templates.
AI-Studio-GeneratorDirectGenerates studio-style portraits.
AI-Studio-Generator-TemplatesTemplate/Pattern QueryStudio look templates.
AI-Avatar-GeneratorDirectGenerates avatars.
AI-Avatar-Generator-TemplatesTemplate/Pattern QueryAvatar style templates.
AI-Makeup-TransferDirectTransfers makeup between faces.
AI-Face-SwapDirectSwaps faces in photos.
AI-Face-Swap-Face-DetectionDirectDetects faces specifically for swapping.

Video Editing
APIExecution TypeBrief Description
AI-Video-EnhanceDirectEnhances video quality.
AI-Face-Swap-VideoDirectSwaps faces in video.
AI-Style-Transfer-VideoDirectApplies artistic style to video.
AI-Style-Transfer-Video-TemplatesTemplate/Pattern QueryQueries built-in video style templates.

Utility
APIExecution TypeBrief Description
Get‑Running‑Task‑StatusDirectChecks the status and results of a previously started asynchronous task using its task_id. This endpoint is used internally by MCP‑aware clients for polling; developers typically do not call it directly.

Asynchronous Task Management (Utility API)

All AI APIs run asynchronously:

  1. The initial request returns a task_id.
  2. The client automatically polls Get-Running-Task-Status until the task reaches a terminal state (completed, failed).

It is useful to retrieve a result within the retention period once it has completed and the polling has timed out.