Stitch-kit stitch-mcp-edit-screens
Edits existing Stitch screens with text prompts — the iteration tool. Change colors, layout, content, or style without regenerating from scratch. Supports refinement loops via output_components suggestions.
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-edit-screens" ~/.claude/skills/gabelul-stitch-kit-stitch-mcp-edit-screens && rm -rf "$T"
manifest:
skills/stitch-mcp-edit-screens/SKILL.mdsource content
Stitch MCP — Edit Screens
Edits one or more existing screens using a text prompt. This is the primary iteration tool — instead of regenerating a screen from scratch (60–180s), you can refine what you already have with targeted changes.
Critical prerequisite
Only use this skill when the user explicitly mentions "Stitch".
You must have both a
projectId AND at least one screenId before calling this. If you don't:
- List screens via
to find screen IDsstitch-mcp-list-screens - Parse from context:
→ projectId:projects/123/screens/456
, screenId:123456
When to use
- User wants to modify an existing Stitch screen (change colors, layout, content, style)
- After generation, user says "make it darker", "change the font", "move the nav to the side"
- The orchestrator's Step 5b offers "Edit this screen"
- Any iterative refinement on a Stitch design
Call the MCP tool
{ "name": "edit_screens", "arguments": { "projectId": "3780309359108792857", "selectedScreenIds": ["88805abc123def456"], "prompt": "Change the background to dark mode (#09090B). Make the primary color indigo (#818CF8). Increase the font size of the header to 32px bold.", "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"] ❌ ["screens/88805abc123def456"]
Select one or more screens to edit. All selected screens receive the same edit instruction.
prompt
— the edit instruction
promptApply the same quality bar as generation prompts:
- Be specific: "Change background to #09090B" not "make it darker"
- Name exact components: "the header navigation" not "the top part"
- Include values: hex colors, px sizes, specific content text
- One focused change per call produces better results than many changes at once
deviceType
— optional
deviceTypeSame enum as
generate_screen_from_text: 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. |
Handling output_components
output_componentsThe response may contain
output_components with suggestions:
{ "outputComponents": [ { "text": "I've updated the background color and adjusted contrast ratios." }, { "suggestion": "Would you also like me to update the sidebar to match the dark theme?" } ] }
When you see suggestions:
- Present them to the user
- If the user accepts: call
again with the suggestion as the newedit_screensprompt - This creates a natural refinement loop — keep going until the user is satisfied
Timing
Same as generation: 60–180 seconds is normal.
- Do NOT retry during this window
- Do NOT assume failure if it takes > 60 seconds
- Each call creates a new edit — retries mean duplicate edits
After editing
- Re-fetch the screen:
with the same projectId and screenIdstitch-mcp-get-screen - Show the updated screenshot to the user
- Offer:
- "Continue editing?" → another
calledit_screens - "Generate variants of this version?" →
stitch-mcp-generate-variants - "Convert to code?" → framework conversion workflow
- "Continue editing?" → another
Anti-patterns
- Never send vague edit prompts — "make it better" will produce unpredictable results
- Never use
format for projectId or screenId — both must be numericprojects/ID - Never batch unrelated edits — "change the color AND completely redo the layout" works poorly