Stitch MCP — Get Project
Retrieves full metadata for a specific Stitch project. Useful for understanding an existing project's theme and screen list before generating additional screens.
Critical prerequisite
Only use this skill when the user explicitly mentions "Stitch".
Do NOT call this if you already have both projectId AND screenId. In that case, call stitch-mcp-get-screen directly — it's more efficient.
When to use
- User provides a Stitch project URL and you need its details
- You need to know the existing design theme before generating new consistent screens
- Verifying a project exists before proceeding
Step 1: Parse the project ID from context
The user may provide the project reference in several formats — always extract to the projects/ID format:
| Input format |
→ Argument for get_project |
3780309359108792857 (numeric) |
projects/3780309359108792857 |
projects/3780309359108792857 |
projects/3780309359108792857 (use as-is) |
https://stitch.withgoogle.com/projects/3780309359108792857 |
Extract ID → projects/3780309359108792857 |
Step 2: Call the MCP tool
{
"name": "get_project",
"arguments": {
"name": "projects/3780309359108792857"
}
}
Output schema
{
"name": "projects/3780309359108792857",
"title": "Analytics Dashboard",
"createTime": "2024-11-10T09:00:00Z",
"updateTime": "2024-11-15T10:30:00Z",
"deviceType": "PHONE",
"visibility": "PRIVATE",
"projectType": "TEXT_TO_UI",
"origin": "STITCH",
"metadata": {
"isRemixed": false,
"userRole": "OWNER"
},
"designTheme": {
"colorMode": "LIGHT",
"customColor": "#6366F1",
"colorVariant": "TONAL_SPOT",
"roundness": "ROUND_TWELVE",
"spacingScale": 1,
"headlineFont": "ROBOTO",
"bodyFont": "ROBOTO",
"labelFont": "ROBOTO",
"font": "ROBOTO",
"namedColors": {
"primary": "#5B5FC7",
"on_primary": "#FFFFFF",
"primary_container": "#E1DFFF",
"on_primary_container": "#414594",
"secondary": "#5C5D72",
"on_secondary": "#FFFFFF",
"tertiary": "#785572",
"on_tertiary": "#FFFFFF",
"surface": "#FBF8FF",
"on_surface": "#1B1B21",
"surface_container": "#EFEDF5",
"surface_container_low": "#F5F2FA",
"surface_container_high": "#E9E7EF",
"outline": "#777680",
"error": "#BA1A1A",
"on_error": "#FFFFFF"
},
"overridePrimaryColor": "",
"overrideSecondaryColor": "",
"overrideTertiaryColor": "",
"overrideNeutralColor": "",
"backgroundLight": "#FBF8FF",
"backgroundDark": "#131316",
"description": "Modern indigo-toned interface with clean surfaces",
"designMd": "# Design System\n\n## Color Palette\n..."
},
"screenInstances": [
{
"name": "projects/3780309359108792857/screens/88805...",
"id": "88805...",
"sourceScreen": "screens/88805...",
"type": "SCREEN_INSTANCE",
"width": 412,
"height": 892,
"x": 0,
"y": 0,
"hidden": false
},
{
"name": "projects/3780309359108792857/screens/99901...",
"id": "99901...",
"sourceScreen": "screens/99901...",
"type": "DESIGN_SYSTEM_INSTANCE",
"width": 412,
"height": 892,
"x": 500,
"y": 0,
"hidden": false,
"sourceAsset": "assets/design-system-123"
}
]
}
designMd is truncated above — in practice it's a full auto-generated design system doc (often 500+ lines). namedColors typically contains 40+ semantic tokens; only the most common are shown here.
DesignTheme field reference
| Field |
Type |
Values / Notes |
colorMode |
enum |
LIGHT, DARK |
customColor |
string |
Hex seed color (e.g. #6366F1). This is the color seed — NOT called primaryColor |
colorVariant |
enum |
MONOCHROME, NEUTRAL, TONAL_SPOT, VIBRANT, EXPRESSIVE, FIDELITY, CONTENT, RAINBOW, FRUIT_SALAD |
roundness |
enum |
ROUND_FOUR, ROUND_EIGHT, ROUND_TWELVE, ROUND_FULL |
spacingScale |
number |
0–3 (density multiplier) |
headlineFont |
enum |
28-font set: ROBOTO, OPEN_SANS, LATO, MONTSERRAT, POPPINS, INTER, PLAYFAIR_DISPLAY, MERRIWEATHER, RALEWAY, NUNITO, SOURCE_SANS_3, OSWALD, QUICKSAND, CABIN, BARLOW, WORK_SANS, DM_SANS, SPACE_GROTESK, SORA, OUTFIT, PLUS_JAKARTA_SANS, MANROPE, ALBERT_SANS, FIGTREE, GEIST, ONEST, INSTRUMENT_SANS, GENERAL_SANS |
bodyFont |
enum |
Same 28-font set |
labelFont |
enum |
Same 28-font set |
font |
enum |
Deprecated — legacy single-font field, same enum |
namedColors |
object |
40+ semantic color tokens (primary, on_primary, surface, surface_container, outline, error, etc.) |
overridePrimaryColor |
string |
Hex override, empty string if unused |
overrideSecondaryColor |
string |
Hex override, empty string if unused |
overrideTertiaryColor |
string |
Hex override, empty string if unused |
overrideNeutralColor |
string |
Hex override, empty string if unused |
backgroundLight |
string |
Hex background for light mode |
backgroundDark |
string |
Hex background for dark mode |
description |
string |
Brief aesthetic description of the theme |
designMd |
string |
Auto-generated design system markdown — the full token spec. Can be very long |
Project-level fields
| Field |
Type |
Values / Notes |
deviceType |
string |
PHONE, TABLET, DESKTOP, etc. |
visibility |
enum |
PRIVATE, PUBLIC |
projectType |
enum |
TEXT_TO_UI, PROJECT_DESIGN, etc. |
origin |
enum |
STITCH, IMPORTED_FROM_GALILEO |
metadata.isRemixed |
boolean |
Whether this project was remixed from another |
metadata.userRole |
string |
OWNER, VIEWER, etc. |
ScreenInstance fields
| Field |
Type |
Notes |
id |
string |
Numeric screen ID |
sourceScreen |
string |
Path reference to the source screen |
type |
enum |
SCREEN_INSTANCE, DESIGN_SYSTEM_INSTANCE, GROUP_INSTANCE |
width / height |
number |
Pixel dimensions |
x / y |
number |
Canvas position |
hidden |
boolean |
Whether hidden in the project |
sourceAsset |
string |
Present on DESIGN_SYSTEM_INSTANCE types — references the design system asset |
Using the theme data
Use designMd and namedColors when generating new screens — they contain the authoritative design system for this project. Pass namedColors to stitch-design-system for instant token extraction.
After getting the project
- Note the
designTheme — use it to keep new screens visually consistent
- Note the
screenInstances list — extract screenId values if you need to inspect specific screens
- Use
stitch-mcp-list-screens for a richer view of the screen list including thumbnails
1---2name: stitch-mcp-get-project3description: Retrieves metadata for a specific Stitch project — title, theme, create/update time. Use to inspect a project before generating new screens. Do NOT use this if you already have a screenId — use stitch-mcp-get-screen instead.4---5
6# Stitch MCP — Get Project
7
8Retrieves full metadata for a specific Stitch project. Useful for understanding an existing project's theme and screen list before generating additional screens.
9
10## Critical prerequisite
11
12**Only use this skill when the user explicitly mentions "Stitch".**
13
14**Do NOT call this if you already have both `projectId` AND `screenId`.** In that case, call `stitch-mcp-get-screen` directly — it's more efficient.
15
16## When to use
17
18- User provides a Stitch project URL and you need its details
19- You need to know the existing design theme before generating new consistent screens
20- Verifying a project exists before proceeding
21
22## Step 1: Parse the project ID from context
23
24The user may provide the project reference in several formats — always extract to the `projects/ID` format:
25
26| Input format | → Argument for `get_project` |
27|---|---|
28| `3780309359108792857` (numeric) | `projects/3780309359108792857` |
29| `projects/3780309359108792857` | `projects/3780309359108792857` (use as-is) |
30| `https://stitch.withgoogle.com/projects/3780309359108792857` | Extract ID → `projects/3780309359108792857` |
31
32## Step 2: Call the MCP tool
33
34```json
35{
36 "name": "get_project",
37 "arguments": {
38 "name": "projects/3780309359108792857"
39 }
40}
41```
42
43## Output schema
44
45```json
46{
47 "name": "projects/3780309359108792857",
48 "title": "Analytics Dashboard",
49 "createTime": "2024-11-10T09:00:00Z",
50 "updateTime": "2024-11-15T10:30:00Z",
51 "deviceType": "PHONE",
52 "visibility": "PRIVATE",
53 "projectType": "TEXT_TO_UI",
54 "origin": "STITCH",
55 "metadata": {
56 "isRemixed": false,
57 "userRole": "OWNER"
58 },
59 "designTheme": {
60 "colorMode": "LIGHT",
61 "customColor": "#6366F1",
62 "colorVariant": "TONAL_SPOT",
63 "roundness": "ROUND_TWELVE",
64 "spacingScale": 1,
65 "headlineFont": "ROBOTO",
66 "bodyFont": "ROBOTO",
67 "labelFont": "ROBOTO",
68 "font": "ROBOTO",
69 "namedColors": {
70 "primary": "#5B5FC7",
71 "on_primary": "#FFFFFF",
72 "primary_container": "#E1DFFF",
73 "on_primary_container": "#414594",
74 "secondary": "#5C5D72",
75 "on_secondary": "#FFFFFF",
76 "tertiary": "#785572",
77 "on_tertiary": "#FFFFFF",
78 "surface": "#FBF8FF",
79 "on_surface": "#1B1B21",
80 "surface_container": "#EFEDF5",
81 "surface_container_low": "#F5F2FA",
82 "surface_container_high": "#E9E7EF",
83 "outline": "#777680",
84 "error": "#BA1A1A",
85 "on_error": "#FFFFFF"
86 },
87 "overridePrimaryColor": "",
88 "overrideSecondaryColor": "",
89 "overrideTertiaryColor": "",
90 "overrideNeutralColor": "",
91 "backgroundLight": "#FBF8FF",
92 "backgroundDark": "#131316",
93 "description": "Modern indigo-toned interface with clean surfaces",
94 "designMd": "# Design System\n\n## Color Palette\n..."
95 },
96 "screenInstances": [
97 {
98 "name": "projects/3780309359108792857/screens/88805...",
99 "id": "88805...",
100 "sourceScreen": "screens/88805...",
101 "type": "SCREEN_INSTANCE",
102 "width": 412,
103 "height": 892,
104 "x": 0,
105 "y": 0,
106 "hidden": false
107 },
108 {
109 "name": "projects/3780309359108792857/screens/99901...",
110 "id": "99901...",
111 "sourceScreen": "screens/99901...",
112 "type": "DESIGN_SYSTEM_INSTANCE",
113 "width": 412,
114 "height": 892,
115 "x": 500,
116 "y": 0,
117 "hidden": false,
118 "sourceAsset": "assets/design-system-123"
119 }
120 ]
121}
122```
123
124> `designMd` is truncated above — in practice it's a full auto-generated design system doc (often 500+ lines). `namedColors` typically contains 40+ semantic tokens; only the most common are shown here.
125
126## DesignTheme field reference
127
128| Field | Type | Values / Notes |
129|-------|------|----------------|
130| `colorMode` | enum | `LIGHT`, `DARK` |
131| `customColor` | string | Hex seed color (e.g. `#6366F1`). This is the color seed — NOT called `primaryColor` |
132| `colorVariant` | enum | `MONOCHROME`, `NEUTRAL`, `TONAL_SPOT`, `VIBRANT`, `EXPRESSIVE`, `FIDELITY`, `CONTENT`, `RAINBOW`, `FRUIT_SALAD` |
133| `roundness` | enum | `ROUND_FOUR`, `ROUND_EIGHT`, `ROUND_TWELVE`, `ROUND_FULL` |
134| `spacingScale` | number | `0`–`3` (density multiplier) |
135| `headlineFont` | enum | 28-font set: `ROBOTO`, `OPEN_SANS`, `LATO`, `MONTSERRAT`, `POPPINS`, `INTER`, `PLAYFAIR_DISPLAY`, `MERRIWEATHER`, `RALEWAY`, `NUNITO`, `SOURCE_SANS_3`, `OSWALD`, `QUICKSAND`, `CABIN`, `BARLOW`, `WORK_SANS`, `DM_SANS`, `SPACE_GROTESK`, `SORA`, `OUTFIT`, `PLUS_JAKARTA_SANS`, `MANROPE`, `ALBERT_SANS`, `FIGTREE`, `GEIST`, `ONEST`, `INSTRUMENT_SANS`, `GENERAL_SANS` |
136| `bodyFont` | enum | Same 28-font set |
137| `labelFont` | enum | Same 28-font set |
138| `font` | enum | **Deprecated** — legacy single-font field, same enum |
139| `namedColors` | object | 40+ semantic color tokens (`primary`, `on_primary`, `surface`, `surface_container`, `outline`, `error`, etc.) |
140| `overridePrimaryColor` | string | Hex override, empty string if unused |
141| `overrideSecondaryColor` | string | Hex override, empty string if unused |
142| `overrideTertiaryColor` | string | Hex override, empty string if unused |
143| `overrideNeutralColor` | string | Hex override, empty string if unused |
144| `backgroundLight` | string | Hex background for light mode |
145| `backgroundDark` | string | Hex background for dark mode |
146| `description` | string | Brief aesthetic description of the theme |
147| `designMd` | string | Auto-generated design system markdown — the full token spec. Can be very long |
148
149## Project-level fields
150
151| Field | Type | Values / Notes |
152|-------|------|----------------|
153| `deviceType` | string | `PHONE`, `TABLET`, `DESKTOP`, etc. |
154| `visibility` | enum | `PRIVATE`, `PUBLIC` |
155| `projectType` | enum | `TEXT_TO_UI`, `PROJECT_DESIGN`, etc. |
156| `origin` | enum | `STITCH`, `IMPORTED_FROM_GALILEO` |
157| `metadata.isRemixed` | boolean | Whether this project was remixed from another |
158| `metadata.userRole` | string | `OWNER`, `VIEWER`, etc. |
159
160## ScreenInstance fields
161
162| Field | Type | Notes |
163|-------|------|-------|
164| `id` | string | Numeric screen ID |
165| `sourceScreen` | string | Path reference to the source screen |
166| `type` | enum | `SCREEN_INSTANCE`, `DESIGN_SYSTEM_INSTANCE`, `GROUP_INSTANCE` |
167| `width` / `height` | number | Pixel dimensions |
168| `x` / `y` | number | Canvas position |
169| `hidden` | boolean | Whether hidden in the project |
170| `sourceAsset` | string | Present on `DESIGN_SYSTEM_INSTANCE` types — references the design system asset |
171
172## Using the theme data
173
174Use `designMd` and `namedColors` when generating new screens — they contain the authoritative design system for this project. Pass `namedColors` to `stitch-design-system` for instant token extraction.
175
176## After getting the project
177
178- Note the `designTheme` — use it to keep new screens visually consistent
179- Note the `screenInstances` list — extract screenId values if you need to inspect specific screens
180- Use `stitch-mcp-list-screens` for a richer view of the screen list including thumbnails