mcpField
S
stitch-mcp-get-screen

stitch-mcp-get-screen

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

About stitch-mcp-get-screen

stitch-mcp-get-screen is a skill for Stitch workflows that retrieves HTML and screenshot URLs for a generated screen, ready for framework conversion. It is intended for use only when Stitch is explicitly mentioned.

Key features

  1. 01Retrieve screen HTML and screenshot URLs
  2. 02Parse project and screen IDs
  3. 03Choose conversion paths by device type
  4. 04Provide an HTML download script

Use cases

  1. 01Extract assets from a Stitch screen URL
  2. 02Prepare inputs for Next.js or Svelte conversion
  3. 03View a generated screen screenshot
  4. 04Retrieve assets for design-system extraction

MCP support

It calls the MCP get_screen tool to retrieve a Stitch screen and returns download URLs for its HTML and screenshot. The call requires a full resource path plus separate projectId and screenId values.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/gabelul/stitch-kit --skill stitch-mcp-get-screen

After installing, type/stitch-mcp-get-screenin Claude Code to confirm it loaded.

Bundled filesscripts/fetch-stitch.sh

Details

From the project README

Stitch MCP — Get Screen

Retrieves the full output of a Stitch-generated screen: the HTML source code URL and the screenshot image URL. This is the gateway between Stitch design and framework conversion.

Critical prerequisite

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

If you already have both projectId AND screenId, call this directly — do not call get_project first.

When to use

  • After list_screens has returned a screenId
  • User provides a Stitch screen URL and wants to convert it to code
  • Retrieving assets for any conversion skill: Next.js, Svelte, HTML, React Native, or SwiftUI

Step 1: Parse IDs from context

The user may provide the screen reference in different formats:

Input format→ projectId→ screenId
projects/123/screens/456123456
https://stitch.withgoogle.com/projects/123?node-id=456123456
Separate numeric IDs already knownUse as-isUse as-is

Step 2: Call the MCP tool

get_screen is mid-migration: name is the current identifier and takes the full resource path, while projectId and screenId are marked deprecated but are still required. Send all three.

{
  "name": "get_screen",
  "arguments": {
    "name": "projects/3780309359108792857/screens/88805abc123def456",
    "projectId": "3780309359108792857",
    "screenId": "88805abc123def456"
  }
}

The prefix rule differs per field, which is the whole reason this wrapper exists:

✅ name:      "projects/3780309359108792857/screens/88805abc123def456"
❌ name:      "88805abc123def456"

✅ projectId: "3780309359108792857"
❌ projectId: "projects/3780309359108792857"

✅ screenId:  "88805abc123def456"
❌ screenId:  "screens/88805abc123def456"

name is the full path; the other two are bare. Omitting name fails — it's required despite the deprecated pair still being mandatory too.

Output schema

{
  "name": "projects/3780309359108792857/screens/88805abc123def456",
  "htmlCode": {
    "downloadUrl": "https://storage.googleapis.com/stitch-output/..."
  },
  "screenshot": {
    "downloadUrl": "https://storage.googleapis.com/stitch-screenshots/..."
  },
  "figmaExport": {
    "downloadUrl": "https://storage.googleapis.com/stitch-figma/..."
  },
  "width": 390,
  "height": 844,
  "deviceType": "MOBILE"
}

Step 3: Download the HTML reliably

AI fetch tools frequently fail on Google Cloud Storage URLs. Use the bash script:

bash scripts/fetch-stitch.sh "[htmlCode.downloadUrl]" "temp/source.html"

Always quote the URL to handle special characters.

Step 4: Determine framework and route to conversion

After retrieving the screen, check what the user wants to do with it.

Check the deviceType in the response first — it shapes which options to suggest:

deviceTypeSensible defaults to suggest
DESKTOPNext.js, Svelte, HTML
MOBILENext.js (PWA), Svelte, HTML, React Native, SwiftUI
AGNOSTICAny

Then route based on user intent:

User intent→ Load skill
"Convert to Next.js", "React app", "App Router"stitch-nextjs-components
"Convert to Svelte", "SvelteKit"stitch-svelte-components
"Convert to HTML", "PWA", "Capacitor", "Ionic", "web app"stitch-html-components
"React Native", "Expo", "iOS and Android", "cross-platform"stitch-react-native-components
"SwiftUI", "Xcode", "native iOS", "iOS only"stitch-swiftui-components
"Extract design system", "get the colors/fonts"stitch-design-system
"Just show me the screenshot"Present screenshot.downloadUrl
No framework mentioned, desktop designAsk: Next.js, Svelte, or HTML?
No framework mentioned, mobile designAsk: React Native, SwiftUI, or HTML (Capacitor)?

References

  • scripts/fetch-stitch.sh — Reliable GCS HTML downloader

Comments

Markdown supported