Stitch-kit stitch-mcp-generate-variants
Generates design variants of existing Stitch screens using the native variant API. Explore alternative layouts, color schemes, fonts, or content with configurable creativity levels.
install
source · Clone the upstream repo
git clone https://github.com/gabelul/stitch-kit
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/gabelul/stitch-kit "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/stitch-mcp-generate-variants" ~/.claude/skills/gabelul-stitch-kit-stitch-mcp-generate-variants && rm -rf "$T"
manifest:
skills/stitch-mcp-generate-variants/SKILL.mdsource content
Stitch MCP — Generate Variants
Generates alternative versions of existing screens using Stitch's native variant generation API. This is more efficient than the text-prompt approach (1 API call vs. 3) and offers fine-grained control over what aspects to vary.
Critical prerequisite
Only use this skill when the user explicitly mentions "Stitch".
You must have both a
projectId AND at least one screenId of an existing screen. Variants are always based on an existing design — you can't generate variants from scratch.
When to use
- User wants to explore alternative versions of an existing screen
- After generation, user says "show me some variations" or "try different styles"
- The orchestrator's Step 5b offers "Generate variants"
- A/B testing — creating multiple options for stakeholder review
Call the MCP tool
{ "name": "generate_variants", "arguments": { "projectId": "3780309359108792857", "selectedScreenIds": ["88805abc123def456"], "prompt": "Explore different color schemes while keeping the layout structure", "variantOptions": { "variantCount": 3, "creativeRange": "EXPLORE", "aspects": ["COLOR_SCHEME", "IMAGES"] }, "deviceType": "DESKTOP", "modelId": "GEMINI_3_1_PRO" } }
Parameter reference
projectId
— numeric ID only, no prefix
projectId✅ "3780309359108792857" ❌ "projects/3780309359108792857"
selectedScreenIds
— array of numeric screen IDs
selectedScreenIds✅ ["88805abc123def456"] ❌ ["projects/123/screens/88805abc123def456"]
The source screen(s) to generate variants from.
prompt
— optional guidance for variant direction
promptProvide context about what kind of variations the user wants. The
variantOptions do the heavy lifting, but the prompt adds nuance.
variantOptions
— controls what and how much to vary
variantOptions| Field | Type | Values | Description |
|---|---|---|---|
| int | 1–5 | Number of variants to generate |
| enum | , , | How much to deviate from the original |
| array | See below | Which design aspects to vary |
creativeRange
mapping from user language
creativeRange| User says | → creativeRange | What it does |
|---|---|---|
| "subtle changes", "minor tweaks", "polish" | | Small refinements, stays close to original |
| "alternatives", "different options", "explore" | | Meaningful differences while keeping the concept |
| "radical", "completely different", "reimagine" | | Major departures from the original design |
aspects
— what to vary
aspects| Value | Varies | Keeps stable |
|---|---|---|
| Structure, spacing, component arrangement | Colors, fonts, content |
| Colors, gradients, contrast | Layout, fonts, content |
| Photography, illustrations, icons | Layout, colors, text |
| Typography, font choices, sizes | Layout, colors, content |
| Copy, labels, placeholder text | Layout, colors, fonts |
You can combine aspects:
["LAYOUT", "COLOR_SCHEME"] varies both simultaneously.
deviceType
— optional
deviceTypeSame enum:
MOBILE, DESKTOP, TABLET, AGNOSTIC
modelId
— optional
modelId| Value | Use when |
|---|---|
| Recommended — complex layouts, high fidelity |
| Fast iteration, wireframes, simple changes |
| Deprecated. Still works but will be removed. Use instead. |
Output
Returns new screens added to the project. Each variant appears as a separate screen in
list_screens.
After generating variants
- Call
to find all new variant screensstitch-mcp-list-screens - Call
for each to get screenshotsstitch-mcp-get-screen - Present side by side: "Here are your 3 variants: [screenshots]. Which one do you prefer?"
- Once the user picks a winner, offer:
- "Edit the chosen variant further?" →
stitch-mcp-edit-screens - "Convert to code?" → framework conversion workflow
- "Generate more variants from the winner?" → another
callgenerate_variants
- "Edit the chosen variant further?" →
Anti-patterns
- Never generate variants without an existing screen — you need a source design
- Never use
format for projectId or screenId — both must be numericprojects/ID - Never set
above 5 — the API caps at 5variantCount