mcpField
S
stitch-mcp-apply-design-system

stitch-mcp-apply-design-system

github.com/gabelulDesign & UI4740 installsUpdated 14w ago
Repository

About stitch-mcp-apply-design-system

A skill for applying an existing Stitch Design System to one or more screens, aligning colors, fonts, and corner rounding. It requires a project ID, screen instance details, and a design system asset ID.

Key features

  1. 01Apply a design system to multiple screens
  2. 02Update colors, fonts, and corner rounding
  3. 03Use screen instances and an asset ID
  4. 04Return updated screen data

Use cases

  1. 01Align the visual theme across project screens
  2. 02Apply an existing design system to multiple screens

MCP support

The skill calls the Stitch MCP tool apply_design_system to apply a design system to selected screen instances and returns updated screen data.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/gabelul/stitch-kit --skill stitch-mcp-apply-design-system

After installing, type/stitch-mcp-apply-design-systemin Claude Code to confirm it loaded.

Details

From the project README

Stitch MCP — Apply Design System

Applies a previously created Stitch Design System to one or more screens. This updates the screen's visual theme (colors, font, roundness) to match the design system, ensuring visual consistency across a project.

Critical prerequisite

Only use this skill when the user explicitly mentions "Stitch".

You must have:

  1. A projectId (numeric)
  2. One or more screenId values (numeric)
  3. An assetId from a design system (from list_design_systems or create_design_system)

When to use

  • After creating a design system and wanting to apply it to screens
  • User says "make all screens match this theme" or "apply the design system"
  • The orchestrator's Step 5b stores an assetId and offers to apply it
  • Ensuring visual consistency across a multi-screen project

Call the MCP tool

{
  "name": "apply_design_system",
  "arguments": {
    "projectId": "3780309359108792857",
    "selectedScreenInstances": [
      {
        "id": "a1b2c3d4e5f6",
        "sourceScreen": "projects/3780309359108792857/screens/98b50e2ddc9943efb387052637738f61"
      }
    ],
    "assetId": "15996705518239280238"
  }
}

Parameter reference

projectId — numeric ID only, no prefix
✅ "3780309359108792857"
❌ "projects/3780309359108792857"
selectedScreenInstances — array of objects, not screen IDs

This is the one that catches people. It takes screen instances, each a {id, sourceScreen} pair — not a list of screen ids.

✅ [{ "id": "a1b2c3d4e5f6",
      "sourceScreen": "projects/3780.../screens/98b5..." }]

❌ ["88805abc123def456"]                    ← bare screen ids
❌ [{ "id": "98b50e2ddc99...", ... }]        ← source screen id in the id slot

Get both values from get_project → screenInstances. The id is the instance id; sourceScreen is the full projects/{p}/screens/{s} path of the screen behind it. They are different values, and swapping them fails.

Same shape as create_design_system_from_design_md, which takes a single instance rather than an array.

assetId — bare numeric, no prefix
✅ "15996705518239280238"
❌ "assets/15996705518239280238"

Get it from:

  • stitch-mcp-list-design-systems → take the name field (assets/15996...) and strip the assets/ prefix
  • stitch-mcp-create-design-system → same, strip the prefix from the returned name

apply_design_system wants it bare, but generate_screen_from_text's designSystem param wants it prefixed (assets/15996...). Same identifier, two formats, depending on the tool.

Output

Returns updated screen data reflecting the applied design system.

After applying

  1. Re-fetch affected screens: stitch-mcp-get-screen for each screenId
  2. Show updated screenshots to the user
  3. Offer:
    • "Edit the updated screens?" → stitch-mcp-edit-screens
    • "Convert to code?" → framework conversion
    • "Apply to more screens?" → another apply_design_system call

Comments

Markdown supported