--- name: stitch-mcp-create-project description: Creates a new Stitch project container (a design workspace). Call this when starting a new design session to get a projectId for screen generation. allowed-tools: - "stitch*:*" --- # Stitch MCP — Create Project Creates a new Stitch project. A project is a container that holds one or more generated screens. You need a projectId before you can call `generate_screen_from_text`. ## Critical prerequisite **Only use this skill when the user explicitly mentions "Stitch"** in their request. Never trigger Stitch operations silently during regular conversation. ## When to use - Starting a new design task or app concept - The user says "create a Stitch project", "start a new project in Stitch", "design X using Stitch" - You need a `projectId` before calling `generate_screen_from_text` - Starting work in a new domain (keep related screens in one project) ## Step 1: Extract a meaningful title Infer a descriptive project title from the user's request: | User says | → title | |-----------|---------| | "Design a pet adoption app" | `"PawPals"` or `"Pet Adoption App"` | | "Make a login page" | `"Login Page"` | | "SaaS dashboard for analytics" | `"Analytics Dashboard"` | | "E-commerce product listing" | `"Product Listing"` | If no clear name is evident, use a descriptive label: `"Design Project [date]"`. ## Step 2: Call the MCP tool ```json { "name": "create_project", "arguments": { "title": "[Descriptive project title]" } } ``` ## Step 3: Extract and store the project ID — CRITICAL The tool returns a `name` field in the format `projects/NUMERIC_ID`. You must extract the numeric portion: **Tool response:** ```json { "name": "projects/3780309359108792857", "title": "Analytics Dashboard", "createTime": "2026-03-24T14:30:00Z", "visibility": "PRIVATE", "deviceType": "DESKTOP", "projectType": "TEXT_TO_UI", "designTheme": { "colorMode": "LIGHT", "customColor": "", "colorVariant": "TONAL_SPOT", "roundness": "ROUND_TWELVE", "spacingScale": 1, "headlineFont": "INTER", "bodyFont": "INTER", "labelFont": "INTER", "namedColors": {}, "designMd": "" } } ``` > The `designTheme` populates with full values (including `designMd` and `namedColors`) after the first screen is generated. For a brand-new project, expect mostly empty/default theme values. **Extract:** - **Full name:** `projects/3780309359108792857` → use for `list_screens`, `get_project` - **Numeric ID:** `3780309359108792857` → use for `generate_screen_from_text`, `get_screen` Store both values. Announce to the user: > "Created project **'Analytics Dashboard'** (ID: `3780309359108792857`). Ready to generate screens." ## ID format rules (critical — different tools need different formats) | Tool | ID format required | |------|-------------------| | `generate_screen_from_text` | Numeric only: `3780309359108792857` | | `get_screen` | Numeric only: `3780309359108792857` | | `list_screens` | Full path: `projects/3780309359108792857` | | `get_project` | Full path: `projects/3780309359108792857` | ## Integration After creating a project, the next step is always `stitch-mcp-generate-screen-from-text` to generate the first screen.