Interact with the Stitch API using natural language commands.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Applies a design system to a list of screens. Use this tool when the user wants to update one or more screens to match the style of a design system. This tool applies the selected design system's foundational design tokens (colors, fonts, shapes, etc.) to the chosen screens, modifying their appearance to align with the design system.
Required. The asset id of the design system to apply, can be fetched from 'list_design_systems'. Example: '15996705518239280238', without the `assets/` prefix.
Required. The project ID of screen instances to edit, example: '4044680601076201931', without the `projects/` prefix.
Required. The screen instances to edit, which is available in the Project info, fetched by `get_project`.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Applies a design system to a list of screens. Use this tool when the user wants to update one or more screens to match the style of a design system. This tool applies the selected design system's foundational design tokens (colors, fonts, shapes, etc.) to the chosen screens, modifying their appearance to align with the design system.
| Argument | Type | Description |
|---|---|---|
| assetId* | string | Required. The asset id of the design system to apply, can be fetched from 'list_design_systems'. Example: '15996705518239280238', without the `assets/` prefix. |
| projectId* | string | Required. The project ID of screen instances to edit, example: '4044680601076201931', without the `projects/` prefix. |
| selectedScreenInstances* | array | Required. The screen instances to edit, which is available in the Project info, fetched by `get_project`. |
{
"type": "object",
"$defs": {
"SelectedScreenInstance": {
"type": "object",
"required": [
"id",
"sourceScreen"
],
"properties": {
"id": {
"type": "string",
"description": "Required. The id of the screen instance, **NOT** the source screen id. This is available in the screen instances in the Project info, fetched by `get_project`."
},
"sourceScreen": {
"type": "string",
"description": "Required. The source screen of the screen instance. The resource name of the source screen. Format: projects/{project}/screens/{screen}"
}
},
"description": "A screen instance to be edited by the agent, selected by the user."
}
},
"required": [
"projectId",
"selectedScreenInstances",
"assetId"
],
"properties": {
"assetId": {
"type": "string",
"description": "Required. The asset id of the design system to apply, can be fetched from 'list_design_systems'. Example: '15996705518239280238', without the `assets/` prefix."
},
"projectId": {
"type": "string",
"description": "Required. The project ID of screen instances to edit, example: '4044680601076201931', without the `projects/` prefix."
},
"selectedScreenInstances": {
"type": "array",
"items": {
"$ref": "#/$defs/SelectedScreenInstance"
},
"description": "Required. The screen instances to edit, which is available in the Project info, fetched by `get_project`."
}
},
"description": "Request message for ApplyDesignSystem."
}Creates a new design system for a project. Use this tool when the user wants to set or update the overall visual theme, style, or branding of the application. This includes configuring: - Color Palette: Presets, custom primary colors, and saturation levels. - Typography: Font families (e.g., Inter, Roboto, etc.). - Shape: Corner roundness for UI elements. - Appearance: Light and dark mode background colors. - Design MD: Free-form design instructions in markdown. This tool establishes the foundational design tokens that apply across all screens in the project. **Instructions for Tool Call:** * Call `update_design_system` tool immediately after this tool to apply the design system to the project, and display the design system in the UI.
| Argument | Type | Description |
|---|---|---|
| projectId | string | Optional. The project ID to create design system for, example: '4044680601076201931', without the `projects/` prefix. If empty, creates a global asset (not associated with any project). |
| designSystem* | any | Required. The design system to create. |
{
"type": "object",
"$defs": {
"Typography": {
"type": "object",
"properties": {
"fontSize": {
"type": "string",
"description": "Optional. The CSS font-size value (e.g., \"32px\", \"1rem\")."
},
"fontFamily": {
"type": "string",
"description": "Optional. The CSS font-family value (e.g., \"Manrope\", \"Inter\")."
},
"fontWeight": {
"type": "string",
"description": "Optional. The CSS font-weight value (e.g., \"400\", \"700\")."
},
"lineHeight": {
"type": "string",
"description": "Optional. The CSS line-height value (e.g., \"1.5\", \"40px\")."
},
"letterSpacing": {
"type": "string",
"description": "Optional. The CSS letter-spacing value (e.g., \"0px\", \"-0.02em\")."
}
},
"description": "A typography style token in a design system, defining the visual properties for a single text level (e.g. \"display-lg\", \"body-md\")."
},
"DesignTheme": {
"type": "object",
"required": [
"colorMode",
"headlineFont",
"bodyFont",
"roundness",
"customColor"
],
"properties": {
"spacing": {
"type": "object",
"description": "Optional. Spacing units for the design system. Maps spacing names to their values.",
"additionalProperties": {
"type": "string"
}
},
"bodyFont": {
"enum": [
"FONT_UNSPECIFIED",
"BE_VIETNAM_PRO",
"EPILOGUE",
"INTER",
"LEXEND",
"MANROPE",
"NEWSREADER",
"NOTO_SERIF",
"PLUS_JAKARTA_SANS",
"PUBLIC_SANS",
"SPACE_GROTESK",
"SPLINE_SANS",
"WORK_SANS",
"DOMINE",
"LIBRE_CASLON_TEXT",
"EB_GARAMOND",
"LITERATA",
"SOURCE_SERIF_4",
"SOURCE_SERIF_FOUR",
"MONTSERRAT",
"METROPHOBIC",
"METROPOLIS",
"SOURCE_SANS_3",
"SOURCE_SANS_THREE",
"NUNITO_SANS",
"ARIMO",
"HANKEN_GROTESK",
"RUBIK",
"GEIST",
"DM_SANS",
"IBM_PLEX_SANS",
"SORA",
"ANYBODY",
"ANTON",
"ARCHIVO_NARROW",
"ATKINSON_HYPERLEGIBLE_NEXT",
"BARLOW_CONDENSED",
"BEBAS_NEUE",
"BODONI_MODA",
"BRICOLAGE_GROTESQUE",
"CHIVO",
"CLIMATE_CRISIS",
"COMFORTAA",
"COURIER_PRIME",
"FIRA_SANS",
"GOOGLE_SANS",
"GOOGLE_SANS_CODE",
"GOOGLE_SANS_FLEX",
"GOOGLE_SANS_MONO",
"GOOGLE_SANS_TEXT",
"IBM_PLEX_SERIF",
"JETBRAINS_MONO",
"KARLA",
"LIBRE_FRANKLIN",
"MERRIWEATHER",
"NOTO_SANS",
"OPEN_SANS",
"OSWALD",
"OUTFIT",
"PLAYFAIR_DISPLAY",
"POIRET_ONE",
"QUESTRIAL",
"QUICKSAND",
"RALEWAY",
"ROBOTO_FLEX",
"SPACE_MONO",
"SYNE",
"VOLLKORN"
],
"type": "string",
"description": "Required. Specifies the body font.",
"x-google-enum-deprecated": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
true,
false,
false,
true,
false,
true,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"x-google-enum-descriptions": [
"Unspecified font.",
"Be Vietnam Pro font.",
"Epilogue font.",
"Inter font.",
"Lexend font.",
"Manrope font.",
"Newsreader font.",
"Noto Serif font.",
"Plus Jakarta Sans font.",
"Public Sans font.",
"Space Grotesk font.",
"Spline Sans font.",
"Work Sans font.",
"Domine font.",
"Libre Caslon Text font.",
"EB Garamond font.",
"Literata font.",
"Source Serif 4 font.",
"Source Serif 4 font. Deprecated.",
"Montserrat font.",
"The Metrophobic font.",
"Metropolis font. Deprecated.",
"The Source Sans 3 font.",
"Source Sans 3 font. Deprecated.",
"Nunito Sans font.",
"Arimo font.",
"Hanken Grotesk font.",
"Rubik font.",
"Geist font.",
"DM Sans font.",
"IBM Plex Sans font.",
"Sora font.",
"Anybody font.",
"Anton font.",
"Archivo Narrow font.",
"Atkinson Hyperlegible Next font.",
"Barlow Condensed font.",
"Bebas Neue font.",
"Bodoni Moda font.",
"Bricolage Grotesque font.",
"Chivo font.",
"Climate Crisis font.",
"Comfortaa font.",
"Courier Prime font.",
"Fira Sans font.",
"Google Sans font.",
"Google Sans Code font.",
"Google Sans Flex font.",
"Google Sans Mono font.",
"Google Sans Text font.",
"IBM Plex Serif font.",
"JetBrains Mono font.",
"Karla font.",
"Libre Franklin font.",
"Merriweather font.",
"Noto Sans font.",
"Open Sans font.",
"Oswald font.",
"Outfit font.",
"Playfair Display font.",
"Poiret One font.",
"Questrial font.",
"Quicksand font.",
"Raleway font.",
"Roboto Flex font.",
"Space Mono font.",
"Syne font.",
"Vollkorn font."
]
},
"designMd": {
"type": "string",
"description": "Optional. Specifies a markdown file that describes the design system."
},
"colorMode": {
"enum": [
"COLOR_MODE_UNSPECIFIED",
"LIGHT",
"DARK"
],
"type": "string",
"description": "Required. Specifies the mode of appearance of the design.",
"x-google-enum-descriptions": [
"Unspecified color mode.",
"Light mode.",
"Dark mode."
]
},
"labelFont": {
"enum": [
"FONT_UNSPECIFIED",
"BE_VIETNAM_PRO",
"EPILOGUE",
"INTER",
"LEXEND",
"MANROPE",
"NEWSREADER",
"NOTO_SERIF",
"PLUS_JAKARTA_SANS",
"PUBLIC_SANS",
"SPACE_GROTESK",
"SPLINE_SANS",
"WORK_SANS",
"DOMINE",
"LIBRE_CASLON_TEXT",
"EB_GARAMOND",
"LITERATA",
"SOURCE_SERIF_4",
"SOURCE_SERIF_FOUR",
"MONTSERRAT",
"METROPHOBIC",
"METROPOLIS",
"SOURCE_SANS_3",
"SOURCE_SANS_THREE",
"NUNITO_SANS",
"ARIMO",
"HANKEN_GROTESK",
"RUBIK",
"GEIST",
"DM_SANS",
"IBM_PLEX_SANS",
"SORA",
"ANYBODY",
"ANTON",
"ARCHIVO_NARROW",
"ATKINSON_HYPERLEGIBLE_NEXT",
"BARLOW_CONDENSED",
"BEBAS_NEUE",
"BODONI_MODA",
"BRICOLAGE_GROTESQUE",
"CHIVO",
"CLIMATE_CRISIS",
"COMFORTAA",
"COURIER_PRIME",
"FIRA_SANS",
"GOOGLE_SANS",
"GOOGLE_SANS_CODE",
"GOOGLE_SANS_FLEX",
"GOOGLE_SANS_MONO",
"GOOGLE_SANS_TEXT",
"IBM_PLEX_SERIF",
"JETBRAINS_MONO",
"KARLA",
"LIBRE_FRANKLIN",
"MERRIWEATHER",
"NOTO_SANS",
"OPEN_SANS",
"OSWALD",
"OUTFIT",
"PLAYFAIR_DISPLAY",
"POIRET_ONE",
"QUESTRIAL",
"QUICKSAND",
"RALEWAY",
"ROBOTO_FLEX",
"SPACE_MONO",
"SYNE",
"VOLLKORN"
],
"type": "string",
"description": "Optional. Specifies the label font.",
"x-google-enum-deprecated": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
true,
false,
false,
true,
false,
true,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"x-google-enum-descriptions": [
"Unspecified font.",
"Be Vietnam Pro font.",
"Epilogue font.",
"Inter font.",
"Lexend font.",
"Manrope font.",
"Newsreader font.",
"Noto Serif font.",
"Plus Jakarta Sans font.",
"Public Sans font.",
"Space Grotesk font.",
"Spline Sans font.",
"Work Sans font.",
"Domine font.",
"Libre Caslon Text font.",
"EB Garamond font.",
"Literata font.",
"Source Serif 4 font.",
"Source Serif 4 font. Deprecated.",
"Montserrat font.",
"The Metrophobic font.",
"Metropolis font. Deprecated.",
"The Source Sans 3 font.",
"Source Sans 3 font. Deprecated.",
"Nunito Sans font.",
"Arimo font.",
"Hanken Grotesk font.",
"Rubik font.",
"Geist font.",
"DM Sans font.",
"IBM Plex Sans font.",
"Sora font.",
"Anybody font.",
"Anton font.",
"Archivo Narrow font.",
"Atkinson Hyperlegible Next font.",
"Barlow Condensed font.",
"Bebas Neue font.",
"Bodoni Moda font.",
"Bricolage Grotesque font.",
"Chivo font.",
"Climate Crisis font.",
"Comfortaa font.",
"Courier Prime font.",
"Fira Sans font.",
"Google Sans font.",
"Google Sans Code font.",
"Google Sans Flex font.",
"Google Sans Mono font.",
"Google Sans Text font.",
"IBM Plex Serif font.",
"JetBrains Mono font.",
"Karla font.",
"Libre Franklin font.",
"Merriweather font.",
"Noto Sans font.",
"Open Sans font.",
"Oswald font.",
"Outfit font.",
"Playfair Display font.",
"Poiret One font.",
"Questrial font.",
"Quicksand font.",
"Raleway font.",
"Roboto Flex font.",
"Space Mono font.",
"Syne font.",
"Vollkorn font."
]
},
"roundness": {
"enum": [
"ROUNDNESS_UNSPECIFIED",
"ROUND_TWO",
"ROUND_FOUR",
"ROUND_EIGHT",
"ROUND_TWELVE",
"ROUND_FULL"
],
"type": "string",
"description": "Required. Specifies the roundness of the design. Supported values are: \"ROUND_FOUR\", \"ROUND_EIGHT\", and \"ROUND_TWELVE\", and \"ROUND_FULL\".",
"x-google-enum-deprecated": [
false,
true,
false,
false,
false,
false
],
"x-google-enum-descriptions": [
"Unspecified roundness.",
"Round 2. Unused.",
"Round 4.",
"Round 8.",
"Round 12 or full",
"Round full."
]
},
"typography": {
"type": "object",
"description": "Optional. Typography scale for the design system. Maps level names (e.g. \"display-lg\", \"body-md\") to their Typography token.",
"additionalProperties": {
"$ref": "#/$defs/Typography"
}
},
"customColor": {
"type": "string",
"description": "Required. Specifies a custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\")."
},
"colorVariant": {
"enum": [
"COLOR_VARIANT_UNSPECIFIED",
"MONOCHROME",
"NEUTRAL",
"TONAL_SPOT",
"VIBRANT",
"EXPRESSIVE",
"FIDELITY",
"CONTENT",
"RAINBOW",
"FRUIT_SALAD"
],
"type": "string",
"description": "Optional. Specifies the variant of the dynamic color system.",
"x-google-enum-descriptions": [
"Unspecified color variant.",
"Monochrome variant.",
"Neutral variant.",
"Tonal spot variant.",
"Vibrant variant.",
"Expressive variant.",
"Fidelity variant.",
"Content variant.",
"Rainbow variant.",
"Fruit salad variant."
]
},
"headlineFont": {
"enum": [
"FONT_UNSPECIFIED",
"BE_VIETNAM_PRO",
"EPILOGUE",
"INTER",
"LEXEND",
"MANROPE",
"NEWSREADER",
"NOTO_SERIF",
"PLUS_JAKARTA_SANS",
"PUBLIC_SANS",
"SPACE_GROTESK",
"SPLINE_SANS",
"WORK_SANS",
"DOMINE",
"LIBRE_CASLON_TEXT",
"EB_GARAMOND",
"LITERATA",
"SOURCE_SERIF_4",
"SOURCE_SERIF_FOUR",
"MONTSERRAT",
"METROPHOBIC",
"METROPOLIS",
"SOURCE_SANS_3",
"SOURCE_SANS_THREE",
"NUNITO_SANS",
"ARIMO",
"HANKEN_GROTESK",
"RUBIK",
"GEIST",
"DM_SANS",
"IBM_PLEX_SANS",
"SORA",
"ANYBODY",
"ANTON",
"ARCHIVO_NARROW",
"ATKINSON_HYPERLEGIBLE_NEXT",
"BARLOW_CONDENSED",
"BEBAS_NEUE",
"BODONI_MODA",
"BRICOLAGE_GROTESQUE",
"CHIVO",
"CLIMATE_CRISIS",
"COMFORTAA",
"COURIER_PRIME",
"FIRA_SANS",
"GOOGLE_SANS",
"GOOGLE_SANS_CODE",
"GOOGLE_SANS_FLEX",
"GOOGLE_SANS_MONO",
"GOOGLE_SANS_TEXT",
"IBM_PLEX_SERIF",
"JETBRAINS_MONO",
"KARLA",
"LIBRE_FRANKLIN",
"MERRIWEATHER",
"NOTO_SANS",
"OPEN_SANS",
"OSWALD",
"OUTFIT",
"PLAYFAIR_DISPLAY",
"POIRET_ONE",
"QUESTRIAL",
"QUICKSAND",
"RALEWAY",
"ROBOTO_FLEX",
"SPACE_MONO",
"SYNE",
"VOLLKORN"
],
"type": "string",
"description": "Required. Specifies the headline font.",
"x-google-enum-deprecated": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
true,
false,
false,
true,
false,
true,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"x-google-enum-descriptions": [
"Unspecified font.",
"Be Vietnam Pro font.",
"Epilogue font.",
"Inter font.",
"Lexend font.",
"Manrope font.",
"Newsreader font.",
"Noto Serif font.",
"Plus Jakarta Sans font.",
"Public Sans font.",
"Space Grotesk font.",
"Spline Sans font.",
"Work Sans font.",
"Domine font.",
"Libre Caslon Text font.",
"EB Garamond font.",
"Literata font.",
"Source Serif 4 font.",
"Source Serif 4 font. Deprecated.",
"Montserrat font.",
"The Metrophobic font.",
"Metropolis font. Deprecated.",
"The Source Sans 3 font.",
"Source Sans 3 font. Deprecated.",
"Nunito Sans font.",
"Arimo font.",
"Hanken Grotesk font.",
"Rubik font.",
"Geist font.",
"DM Sans font.",
"IBM Plex Sans font.",
"Sora font.",
"Anybody font.",
"Anton font.",
"Archivo Narrow font.",
"Atkinson Hyperlegible Next font.",
"Barlow Condensed font.",
"Bebas Neue font.",
"Bodoni Moda font.",
"Bricolage Grotesque font.",
"Chivo font.",
"Climate Crisis font.",
"Comfortaa font.",
"Courier Prime font.",
"Fira Sans font.",
"Google Sans font.",
"Google Sans Code font.",
"Google Sans Flex font.",
"Google Sans Mono font.",
"Google Sans Text font.",
"IBM Plex Serif font.",
"JetBrains Mono font.",
"Karla font.",
"Libre Franklin font.",
"Merriweather font.",
"Noto Sans font.",
"Open Sans font.",
"Oswald font.",
"Outfit font.",
"Playfair Display font.",
"Poiret One font.",
"Questrial font.",
"Quicksand font.",
"Raleway font.",
"Roboto Flex font.",
"Space Mono font.",
"Syne font.",
"Vollkorn font."
]
},
"overrideNeutralColor": {
"type": "string",
"description": "Optional. Overrides the neutral color for the dynamic color system (hex format, e.g., \"#ffffff\")."
},
"overridePrimaryColor": {
"type": "string",
"description": "Optional. Overrides the primary color for the dynamic color system (hex format, e.g., \"#ff0000\")."
},
"overrideTertiaryColor": {
"type": "string",
"description": "Optional. Overrides the tertiary color for the dynamic color system (hex format, e.g., \"#0000ff\")."
},
"overrideSecondaryColor": {
"type": "string",
"description": "Optional. Overrides the secondary color for the dynamic color system (hex format, e.g., \"#00ff00\")."
}
},
"description": "The theme of the design. Next ID: 15 LINT.IfChange"
},
"DesignSystem": {
"type": "object",
"required": [
"displayName",
"theme"
],
"properties": {
"theme": {
"$ref": "#/$defs/DesignTheme",
"description": "Required. Specifies the theme of the design system."
},
"displayName": {
"type": "string",
"description": "Required. Specifies the display name of the design system."
}
},
"description": "Represents a collection of guidelines, design tokens, and reusable components that define the visual and functional characteristics of a product's design. This is used to guide the generation of consistent and branded designs. LINT.IfChange"
}
},
"required": [
"designSystem"
],
"properties": {
"projectId": {
"type": "string",
"description": "Optional. The project ID to create design system for, example: '4044680601076201931', without the `projects/` prefix. If empty, creates a global asset (not associated with any project)."
},
"designSystem": {
"$ref": "#/$defs/DesignSystem",
"description": "Required. The design system to create."
}
},
"description": "Request message for CreateDesignSystem."
}Creates a design system for a project, with user uploaded DESIGN.md file, and displays the design system in the UI. **Instructions for Tool Call:** * Should call `upload_design_md` tool first to upload DESIGN.md to a Stitch project.
| Argument | Type | Description |
|---|---|---|
| projectId* | string | Required. The project ID to update design system for, example: '4044680601076201931', without the `projects/` prefix. |
| deviceType | string | Optional. The device type of the screen. |
| selectedScreenInstance* | any | Required. The screen instance to create the design system from, which is created by UploadDesignMd RPC. |
{
"type": "object",
"$defs": {
"SelectedScreenInstance": {
"type": "object",
"required": [
"id",
"sourceScreen"
],
"properties": {
"id": {
"type": "string",
"description": "Required. The id of the screen instance, **NOT** the source screen id. This is available in the screen instances in the Project info, fetched by `get_project`."
},
"sourceScreen": {
"type": "string",
"description": "Required. The source screen of the screen instance. The resource name of the source screen. Format: projects/{project}/screens/{screen}"
}
},
"description": "A screen instance to be edited by the agent, selected by the user."
}
},
"required": [
"projectId",
"selectedScreenInstance"
],
"properties": {
"projectId": {
"type": "string",
"description": "Required. The project ID to update design system for, example: '4044680601076201931', without the `projects/` prefix."
},
"deviceType": {
"enum": [
"DEVICE_TYPE_UNSPECIFIED",
"MOBILE",
"DESKTOP",
"TABLET",
"AGNOSTIC"
],
"type": "string",
"description": "Optional. The device type of the screen.",
"x-google-enum-descriptions": [
"Unspecified device type.",
"A design for a mobile device.",
"A design for a desktop device.",
"A design for a tablet device.",
"A design that is not tied to a specific device."
]
},
"selectedScreenInstance": {
"$ref": "#/$defs/SelectedScreenInstance",
"description": "Required. The screen instance to create the design system from, which is created by UploadDesignMd RPC."
}
},
"description": "Request message for CreateDesignSystemFromDesignMd."
}Creates a new Stitch project. A project is a container for UI designs and frontend code.
| Argument | Type | Description |
|---|---|---|
| title | string | Optional. The title of the project. |
{
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Optional. The title of the project."
}
},
"description": "Request message for CreateProject."
}Deletes a specific Stitch project using its project name. **Instructions for Tool Call:** * This action cannot be undone. Please confirm with "yes" or "no" to proceed.
| Argument | Type | Description |
|---|---|---|
| name* | string | Required. Identifier. The resource name of the project to delete. Format: `projects/{project}` Example: `projects/4044680601076201931` |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Required. Identifier. The resource name of the project to delete. Format: `projects/{project}` Example: `projects/4044680601076201931`",
"x-google-identifier": true
}
},
"description": "Request message for DeleteProject."
}Downloads the content of a screen file: its HTML code or its screenshot. **Instructions for Tool Call:** * Set `name` to the file's resource name from a screen's `html_code.name` or `screenshot.name` (returned by `get_screen`, `list_screens`, or the generation tools), e.g. `projects/4044680601076201931/files/ea26dc974c014bf28342b805ed0b7cfc`. * Use this tool instead of fetching `download_url` directly: those URLs require credentials and return a JSON wrapper rather than the file. **Output:** * `html` holds the raw HTML for HTML files. * `image` holds the image bytes (base64-encoded in JSON) for images, with `image_metadata` (`mime_type`, `width`, `height`).
| Argument | Type | Description |
|---|---|---|
| name* | string | Required. The resource name of the file to download, as returned in a screen's `html_code.name` or `screenshot.name`. Format: `projects/{project}/files/{file}` Example: `projects/4044680601076201931/files/ea26dc974c014bf28342b805ed0b7cfc` |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Required. The resource name of the file to download, as returned in a screen's `html_code.name` or `screenshot.name`. Format: `projects/{project}/files/{file}` Example: `projects/4044680601076201931/files/ea26dc974c014bf28342b805ed0b7cfc`"
}
},
"description": "Request message for DownloadFile."
}Edits existing screens within a project using a text prompt. **Instructions for Tool Call:** * This action can take a few minutes to complete. Please be patient. DO NOT RETRY. * If the tool call fails due to connection error, the process may still succeed.
| Argument | Type | Description |
|---|---|---|
| prompt* | string | Required. The input text to generate the screen from. |
| modelId | string | Optional. The model to use for generation. |
| projectId* | string | Required. The project ID of screens to edit, example: '4044680601076201931', without the `projects/` prefix. |
| deviceType | string | Optional. The type of device that captured the screenshot, e.g., mobile or desktop. |
| selectedScreenIds* | array | Required. The screen IDs of screens to edit, example: ['98b50e2ddc9943efb387052637738f61', '98b50e2ddc9943efb387052637738f62'], without the `screens/` prefix. |
{
"type": "object",
"required": [
"projectId",
"selectedScreenIds",
"prompt"
],
"properties": {
"prompt": {
"type": "string",
"description": "Required. The input text to generate the screen from."
},
"modelId": {
"enum": [
"MODEL_ID_UNSPECIFIED",
"GEMINI_3_8_FLASH",
"GEMINI_3_5_FLASH_LITE"
],
"type": "string",
"description": "Optional. The model to use for generation.",
"x-google-enum-descriptions": [
"Unspecified model.",
"Gemini 3.8 Flash.",
"Gemini 3.5 Flash-Lite."
]
},
"projectId": {
"type": "string",
"description": "Required. The project ID of screens to edit, example: '4044680601076201931', without the `projects/` prefix."
},
"deviceType": {
"enum": [
"DEVICE_TYPE_UNSPECIFIED",
"MOBILE",
"DESKTOP",
"TABLET",
"AGNOSTIC"
],
"type": "string",
"description": "Optional. The type of device that captured the screenshot, e.g., mobile or desktop.",
"x-google-enum-descriptions": [
"Unspecified device type.",
"A design for a mobile device.",
"A design for a desktop device.",
"A design for a tablet device.",
"A design that is not tied to a specific device."
]
},
"selectedScreenIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Required. The screen IDs of screens to edit, example: ['98b50e2ddc9943efb387052637738f61', '98b50e2ddc9943efb387052637738f62'], without the `screens/` prefix."
}
},
"description": "Request message for EditScreens."
}Generates a new screen within a project from a text prompt. **Instructions for Tool Call:** * This action can take a few minutes to complete. Please be patient. DO NOT RETRY. * If the tool fails with a timeout, don't retry. Instead, try to get the screen with `get_screen` method every 30 seconds for up to 10 times before giving up. * If the tool call fails due to connection error, the generation process may still succeed. Please try to get the screen with `get_screen` method later. **Output:** * **`output_components`**: If `output_components` contains text, return it to the user. If `output_components` contains suggestions (e.g. "Yes, make them all"), present these suggestions to the user. If the user accepts one of the suggestions, call `generate_screen_from_text` again with `prompt` set to the accepted suggestion.
| Argument | Type | Description |
|---|---|---|
| prompt* | string | Required. The input text to generate the screen from. |
| modelId | string | Optional. The model to use for generation. |
| projectId* | string | Required. The project ID to generate the screen for, example: '4044680601076201931', without the `projects/` prefix. |
| deviceType | string | The type of device that captured the screenshot, e.g., mobile or desktop. |
| designSystem | string | Optional. Optional design system id to use for generating the new screen. Leave empty for the first screen of a new project: Stitch automatically generates a design system that fits the prompt. Set it to reuse an existing design system of the project (from a previous `output_components` or `list_design_systems`) for design consistency. Example: `assets/15996705518239280238`. |
Generates variants of existing screens within a project using a text prompt. **Instructions for Tool Call:** * If the tool fails with a timeout, don't retry. Instead, try to get the screen with `get_screen` method every 30 seconds for up to 10 times before giving up.
| Argument | Type | Description |
|---|---|---|
| prompt* | string | Required. The input text used to generate the variants. |
| modelId | string | Optional. The model to use for generation. |
| projectId* | string | Required. The project ID of screens to generate variants for, example: '4044680601076201931', without the `projects/` prefix. |
| deviceType | string | Optional. The type of device that captured the screenshot, e.g., mobile or desktop. |
| variantOptions* | any | Required. The variant options for generation, including the number of variants, creative range, and aspects to focus on. |
| selectedScreenIds* | array | Required. The screen ids of screen to generate variants for, example: ['98b50e2ddc9943efb387052637738f61', '98b50e2ddc9943efb387052637738f62'], without the `screens/` prefix. |
Retrieves the details of a specific Stitch project using its project name.
| Argument | Type | Description |
|---|---|---|
| name* | string | Required. Identifier. The resource name of the project to retrieve. Format: `projects/{project}` Example: `projects/4044680601076201931` |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Required. Identifier. The resource name of the project to retrieve. Format: `projects/{project}` Example: `projects/4044680601076201931`",
"x-google-identifier": true
}
},
"description": "Request message for GetProject."
}Retrieves the details of a specific screen within a project.
| Argument | Type | Description |
|---|---|---|
| name* | string | Required. Identifier. The resource name of the screen to retrieve. Format: `projects/{project}/screens/{screen}` Example: `projects/4044680601076201931/screens/98b50e2ddc9943efb387052637738f61` |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Required. Identifier. The resource name of the screen to retrieve. Format: `projects/{project}/screens/{screen}` Example: `projects/4044680601076201931/screens/98b50e2ddc9943efb387052637738f61`",
"x-google-identifier": true
}
},
"description": "Request message for GetScreen."
}Lists all design systems for a given project.
| Argument | Type | Description |
|---|---|---|
| projectId | string | Optional. The project ID to list design systems for, example: '4044680601076201931', without the `projects/` prefix. If empty, lists all global design systems. |
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Optional. The project ID to list design systems for, example: '4044680601076201931', without the `projects/` prefix. If empty, lists all global design systems."
}
},
"description": "Request message for ListDesignSystems."
}Lists all Stitch projects accessible to the user. By default, it lists projects owned by the user.
| Argument | Type | Description |
|---|---|---|
| filter | string | Optional. A filter to apply to the list of projects, following a subset of AIP-160. This service supports filtering on the `view` field. Supported filters: * `view=owned`: Lists only projects owned by the user. This is the default behavior if no filter is specified. * `view=shared`: Lists only projects shared with the user. Example: `view=owned` |
{
"type": "object",
"properties": {
"filter": {
"type": "string",
"description": "Optional. A filter to apply to the list of projects, following a subset of AIP-160. This service supports filtering on the `view` field. Supported filters: * `view=owned`: Lists only projects owned by the user. This is the default behavior if no filter is specified. * `view=shared`: Lists only projects shared with the user. Example: `view=owned`"
}
},
"description": "Request message for ListProjects."
}Lists all screens within a given Stitch project.
| Argument | Type | Description |
|---|---|---|
| projectId* | string | Required. Identifier. The project ID to list screens for, example: '4044680601076201931', without the `projects/` prefix. |
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Required. Identifier. The project ID to list screens for, example: '4044680601076201931', without the `projects/` prefix.",
"x-google-identifier": true
}
},
"description": "Request message for ListScreens."
}Updates a design system for a project. Use this tool when the user wants to change the overall visual theme, style, or branding of the application. This includes configuring: - Color Palette: Presets, custom primary colors, and saturation levels. - Typography: Font families (e.g., Inter, Roboto, etc.). - Shape: Corner roundness for UI elements. - Appearance: Light and dark mode background colors. - Design MD: Free-form design instructions in markdown. This tool establishes the foundational design tokens that apply across all screens in the project.
| Argument | Type | Description |
|---|---|---|
| name* | string | Required. Identifier. The resource name of the design system to update. Format: `assets/{asset_id}` Example: `assets/15996705518239280238` |
| projectId* | string | Required. The project ID to update design system for, example: '4044680601076201931', without the `projects/` prefix. |
| designSystem* | any | Required. The design system to update. |
{
"type": "object",
"$defs": {
"Typography": {
"type": "object",
"properties": {
"fontSize": {
"type": "string",
"description": "Optional. The CSS font-size value (e.g., \"32px\", \"1rem\")."
},
"fontFamily": {
"type": "string",
"description": "Optional. The CSS font-family value (e.g., \"Manrope\", \"Inter\")."
},
"fontWeight": {
"type": "string",
"description": "Optional. The CSS font-weight value (e.g., \"400\", \"700\")."
},
"lineHeight": {
"type": "string",
"description": "Optional. The CSS line-height value (e.g., \"1.5\", \"40px\")."
},
"letterSpacing": {
"type": "string",
"description": "Optional. The CSS letter-spacing value (e.g., \"0px\", \"-0.02em\")."
}
},
"description": "A typography style token in a design system, defining the visual properties for a single text level (e.g. \"display-lg\", \"body-md\")."
},
"DesignTheme": {
"type": "object",
"required": [
"colorMode",
"headlineFont",
"bodyFont",
"roundness",
"customColor"
],
"properties": {
"spacing": {
"type": "object",
"description": "Optional. Spacing units for the design system. Maps spacing names to their values.",
"additionalProperties": {
"type": "string"
}
},
"bodyFont": {
"enum": [
"FONT_UNSPECIFIED",
"BE_VIETNAM_PRO",
"EPILOGUE",
"INTER",
"LEXEND",
"MANROPE",
"NEWSREADER",
"NOTO_SERIF",
"PLUS_JAKARTA_SANS",
"PUBLIC_SANS",
"SPACE_GROTESK",
"SPLINE_SANS",
"WORK_SANS",
"DOMINE",
"LIBRE_CASLON_TEXT",
"EB_GARAMOND",
"LITERATA",
"SOURCE_SERIF_4",
"SOURCE_SERIF_FOUR",
"MONTSERRAT",
"METROPHOBIC",
"METROPOLIS",
"SOURCE_SANS_3",
"SOURCE_SANS_THREE",
"NUNITO_SANS",
"ARIMO",
"HANKEN_GROTESK",
"RUBIK",
"GEIST",
"DM_SANS",
"IBM_PLEX_SANS",
"SORA",
"ANYBODY",
"ANTON",
"ARCHIVO_NARROW",
"ATKINSON_HYPERLEGIBLE_NEXT",
"BARLOW_CONDENSED",
"BEBAS_NEUE",
"BODONI_MODA",
"BRICOLAGE_GROTESQUE",
"CHIVO",
"CLIMATE_CRISIS",
"COMFORTAA",
"COURIER_PRIME",
"FIRA_SANS",
"GOOGLE_SANS",
"GOOGLE_SANS_CODE",
"GOOGLE_SANS_FLEX",
"GOOGLE_SANS_MONO",
"GOOGLE_SANS_TEXT",
"IBM_PLEX_SERIF",
"JETBRAINS_MONO",
"KARLA",
"LIBRE_FRANKLIN",
"MERRIWEATHER",
"NOTO_SANS",
"OPEN_SANS",
"OSWALD",
"OUTFIT",
"PLAYFAIR_DISPLAY",
"POIRET_ONE",
"QUESTRIAL",
"QUICKSAND",
"RALEWAY",
"ROBOTO_FLEX",
"SPACE_MONO",
"SYNE",
"VOLLKORN"
],
"type": "string",
"description": "Required. Specifies the body font.",
"x-google-enum-deprecated": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
true,
false,
false,
true,
false,
true,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"x-google-enum-descriptions": [
"Unspecified font.",
"Be Vietnam Pro font.",
"Epilogue font.",
"Inter font.",
"Lexend font.",
"Manrope font.",
"Newsreader font.",
"Noto Serif font.",
"Plus Jakarta Sans font.",
"Public Sans font.",
"Space Grotesk font.",
"Spline Sans font.",
"Work Sans font.",
"Domine font.",
"Libre Caslon Text font.",
"EB Garamond font.",
"Literata font.",
"Source Serif 4 font.",
"Source Serif 4 font. Deprecated.",
"Montserrat font.",
"The Metrophobic font.",
"Metropolis font. Deprecated.",
"The Source Sans 3 font.",
"Source Sans 3 font. Deprecated.",
"Nunito Sans font.",
"Arimo font.",
"Hanken Grotesk font.",
"Rubik font.",
"Geist font.",
"DM Sans font.",
"IBM Plex Sans font.",
"Sora font.",
"Anybody font.",
"Anton font.",
"Archivo Narrow font.",
"Atkinson Hyperlegible Next font.",
"Barlow Condensed font.",
"Bebas Neue font.",
"Bodoni Moda font.",
"Bricolage Grotesque font.",
"Chivo font.",
"Climate Crisis font.",
"Comfortaa font.",
"Courier Prime font.",
"Fira Sans font.",
"Google Sans font.",
"Google Sans Code font.",
"Google Sans Flex font.",
"Google Sans Mono font.",
"Google Sans Text font.",
"IBM Plex Serif font.",
"JetBrains Mono font.",
"Karla font.",
"Libre Franklin font.",
"Merriweather font.",
"Noto Sans font.",
"Open Sans font.",
"Oswald font.",
"Outfit font.",
"Playfair Display font.",
"Poiret One font.",
"Questrial font.",
"Quicksand font.",
"Raleway font.",
"Roboto Flex font.",
"Space Mono font.",
"Syne font.",
"Vollkorn font."
]
},
"designMd": {
"type": "string",
"description": "Optional. Specifies a markdown file that describes the design system."
},
"colorMode": {
"enum": [
"COLOR_MODE_UNSPECIFIED",
"LIGHT",
"DARK"
],
"type": "string",
"description": "Required. Specifies the mode of appearance of the design.",
"x-google-enum-descriptions": [
"Unspecified color mode.",
"Light mode.",
"Dark mode."
]
},
"labelFont": {
"enum": [
"FONT_UNSPECIFIED",
"BE_VIETNAM_PRO",
"EPILOGUE",
"INTER",
"LEXEND",
"MANROPE",
"NEWSREADER",
"NOTO_SERIF",
"PLUS_JAKARTA_SANS",
"PUBLIC_SANS",
"SPACE_GROTESK",
"SPLINE_SANS",
"WORK_SANS",
"DOMINE",
"LIBRE_CASLON_TEXT",
"EB_GARAMOND",
"LITERATA",
"SOURCE_SERIF_4",
"SOURCE_SERIF_FOUR",
"MONTSERRAT",
"METROPHOBIC",
"METROPOLIS",
"SOURCE_SANS_3",
"SOURCE_SANS_THREE",
"NUNITO_SANS",
"ARIMO",
"HANKEN_GROTESK",
"RUBIK",
"GEIST",
"DM_SANS",
"IBM_PLEX_SANS",
"SORA",
"ANYBODY",
"ANTON",
"ARCHIVO_NARROW",
"ATKINSON_HYPERLEGIBLE_NEXT",
"BARLOW_CONDENSED",
"BEBAS_NEUE",
"BODONI_MODA",
"BRICOLAGE_GROTESQUE",
"CHIVO",
"CLIMATE_CRISIS",
"COMFORTAA",
"COURIER_PRIME",
"FIRA_SANS",
"GOOGLE_SANS",
"GOOGLE_SANS_CODE",
"GOOGLE_SANS_FLEX",
"GOOGLE_SANS_MONO",
"GOOGLE_SANS_TEXT",
"IBM_PLEX_SERIF",
"JETBRAINS_MONO",
"KARLA",
"LIBRE_FRANKLIN",
"MERRIWEATHER",
"NOTO_SANS",
"OPEN_SANS",
"OSWALD",
"OUTFIT",
"PLAYFAIR_DISPLAY",
"POIRET_ONE",
"QUESTRIAL",
"QUICKSAND",
"RALEWAY",
"ROBOTO_FLEX",
"SPACE_MONO",
"SYNE",
"VOLLKORN"
],
"type": "string",
"description": "Optional. Specifies the label font.",
"x-google-enum-deprecated": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
true,
false,
false,
true,
false,
true,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"x-google-enum-descriptions": [
"Unspecified font.",
"Be Vietnam Pro font.",
"Epilogue font.",
"Inter font.",
"Lexend font.",
"Manrope font.",
"Newsreader font.",
"Noto Serif font.",
"Plus Jakarta Sans font.",
"Public Sans font.",
"Space Grotesk font.",
"Spline Sans font.",
"Work Sans font.",
"Domine font.",
"Libre Caslon Text font.",
"EB Garamond font.",
"Literata font.",
"Source Serif 4 font.",
"Source Serif 4 font. Deprecated.",
"Montserrat font.",
"The Metrophobic font.",
"Metropolis font. Deprecated.",
"The Source Sans 3 font.",
"Source Sans 3 font. Deprecated.",
"Nunito Sans font.",
"Arimo font.",
"Hanken Grotesk font.",
"Rubik font.",
"Geist font.",
"DM Sans font.",
"IBM Plex Sans font.",
"Sora font.",
"Anybody font.",
"Anton font.",
"Archivo Narrow font.",
"Atkinson Hyperlegible Next font.",
"Barlow Condensed font.",
"Bebas Neue font.",
"Bodoni Moda font.",
"Bricolage Grotesque font.",
"Chivo font.",
"Climate Crisis font.",
"Comfortaa font.",
"Courier Prime font.",
"Fira Sans font.",
"Google Sans font.",
"Google Sans Code font.",
"Google Sans Flex font.",
"Google Sans Mono font.",
"Google Sans Text font.",
"IBM Plex Serif font.",
"JetBrains Mono font.",
"Karla font.",
"Libre Franklin font.",
"Merriweather font.",
"Noto Sans font.",
"Open Sans font.",
"Oswald font.",
"Outfit font.",
"Playfair Display font.",
"Poiret One font.",
"Questrial font.",
"Quicksand font.",
"Raleway font.",
"Roboto Flex font.",
"Space Mono font.",
"Syne font.",
"Vollkorn font."
]
},
"roundness": {
"enum": [
"ROUNDNESS_UNSPECIFIED",
"ROUND_TWO",
"ROUND_FOUR",
"ROUND_EIGHT",
"ROUND_TWELVE",
"ROUND_FULL"
],
"type": "string",
"description": "Required. Specifies the roundness of the design. Supported values are: \"ROUND_FOUR\", \"ROUND_EIGHT\", and \"ROUND_TWELVE\", and \"ROUND_FULL\".",
"x-google-enum-deprecated": [
false,
true,
false,
false,
false,
false
],
"x-google-enum-descriptions": [
"Unspecified roundness.",
"Round 2. Unused.",
"Round 4.",
"Round 8.",
"Round 12 or full",
"Round full."
]
},
"typography": {
"type": "object",
"description": "Optional. Typography scale for the design system. Maps level names (e.g. \"display-lg\", \"body-md\") to their Typography token.",
"additionalProperties": {
"$ref": "#/$defs/Typography"
}
},
"customColor": {
"type": "string",
"description": "Required. Specifies a custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\")."
},
"colorVariant": {
"enum": [
"COLOR_VARIANT_UNSPECIFIED",
"MONOCHROME",
"NEUTRAL",
"TONAL_SPOT",
"VIBRANT",
"EXPRESSIVE",
"FIDELITY",
"CONTENT",
"RAINBOW",
"FRUIT_SALAD"
],
"type": "string",
"description": "Optional. Specifies the variant of the dynamic color system.",
"x-google-enum-descriptions": [
"Unspecified color variant.",
"Monochrome variant.",
"Neutral variant.",
"Tonal spot variant.",
"Vibrant variant.",
"Expressive variant.",
"Fidelity variant.",
"Content variant.",
"Rainbow variant.",
"Fruit salad variant."
]
},
"headlineFont": {
"enum": [
"FONT_UNSPECIFIED",
"BE_VIETNAM_PRO",
"EPILOGUE",
"INTER",
"LEXEND",
"MANROPE",
"NEWSREADER",
"NOTO_SERIF",
"PLUS_JAKARTA_SANS",
"PUBLIC_SANS",
"SPACE_GROTESK",
"SPLINE_SANS",
"WORK_SANS",
"DOMINE",
"LIBRE_CASLON_TEXT",
"EB_GARAMOND",
"LITERATA",
"SOURCE_SERIF_4",
"SOURCE_SERIF_FOUR",
"MONTSERRAT",
"METROPHOBIC",
"METROPOLIS",
"SOURCE_SANS_3",
"SOURCE_SANS_THREE",
"NUNITO_SANS",
"ARIMO",
"HANKEN_GROTESK",
"RUBIK",
"GEIST",
"DM_SANS",
"IBM_PLEX_SANS",
"SORA",
"ANYBODY",
"ANTON",
"ARCHIVO_NARROW",
"ATKINSON_HYPERLEGIBLE_NEXT",
"BARLOW_CONDENSED",
"BEBAS_NEUE",
"BODONI_MODA",
"BRICOLAGE_GROTESQUE",
"CHIVO",
"CLIMATE_CRISIS",
"COMFORTAA",
"COURIER_PRIME",
"FIRA_SANS",
"GOOGLE_SANS",
"GOOGLE_SANS_CODE",
"GOOGLE_SANS_FLEX",
"GOOGLE_SANS_MONO",
"GOOGLE_SANS_TEXT",
"IBM_PLEX_SERIF",
"JETBRAINS_MONO",
"KARLA",
"LIBRE_FRANKLIN",
"MERRIWEATHER",
"NOTO_SANS",
"OPEN_SANS",
"OSWALD",
"OUTFIT",
"PLAYFAIR_DISPLAY",
"POIRET_ONE",
"QUESTRIAL",
"QUICKSAND",
"RALEWAY",
"ROBOTO_FLEX",
"SPACE_MONO",
"SYNE",
"VOLLKORN"
],
"type": "string",
"description": "Required. Specifies the headline font.",
"x-google-enum-deprecated": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
true,
false,
false,
true,
false,
true,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"x-google-enum-descriptions": [
"Unspecified font.",
"Be Vietnam Pro font.",
"Epilogue font.",
"Inter font.",
"Lexend font.",
"Manrope font.",
"Newsreader font.",
"Noto Serif font.",
"Plus Jakarta Sans font.",
"Public Sans font.",
"Space Grotesk font.",
"Spline Sans font.",
"Work Sans font.",
"Domine font.",
"Libre Caslon Text font.",
"EB Garamond font.",
"Literata font.",
"Source Serif 4 font.",
"Source Serif 4 font. Deprecated.",
"Montserrat font.",
"The Metrophobic font.",
"Metropolis font. Deprecated.",
"The Source Sans 3 font.",
"Source Sans 3 font. Deprecated.",
"Nunito Sans font.",
"Arimo font.",
"Hanken Grotesk font.",
"Rubik font.",
"Geist font.",
"DM Sans font.",
"IBM Plex Sans font.",
"Sora font.",
"Anybody font.",
"Anton font.",
"Archivo Narrow font.",
"Atkinson Hyperlegible Next font.",
"Barlow Condensed font.",
"Bebas Neue font.",
"Bodoni Moda font.",
"Bricolage Grotesque font.",
"Chivo font.",
"Climate Crisis font.",
"Comfortaa font.",
"Courier Prime font.",
"Fira Sans font.",
"Google Sans font.",
"Google Sans Code font.",
"Google Sans Flex font.",
"Google Sans Mono font.",
"Google Sans Text font.",
"IBM Plex Serif font.",
"JetBrains Mono font.",
"Karla font.",
"Libre Franklin font.",
"Merriweather font.",
"Noto Sans font.",
"Open Sans font.",
"Oswald font.",
"Outfit font.",
"Playfair Display font.",
"Poiret One font.",
"Questrial font.",
"Quicksand font.",
"Raleway font.",
"Roboto Flex font.",
"Space Mono font.",
"Syne font.",
"Vollkorn font."
]
},
"overrideNeutralColor": {
"type": "string",
"description": "Optional. Overrides the neutral color for the dynamic color system (hex format, e.g., \"#ffffff\")."
},
"overridePrimaryColor": {
"type": "string",
"description": "Optional. Overrides the primary color for the dynamic color system (hex format, e.g., \"#ff0000\")."
},
"overrideTertiaryColor": {
"type": "string",
"description": "Optional. Overrides the tertiary color for the dynamic color system (hex format, e.g., \"#0000ff\")."
},
"overrideSecondaryColor": {
"type": "string",
"description": "Optional. Overrides the secondary color for the dynamic color system (hex format, e.g., \"#00ff00\")."
}
},
"description": "The theme of the design. Next ID: 15 LINT.IfChange"
},
"DesignSystem": {
"type": "object",
"required": [
"displayName",
"theme"
],
"properties": {
"theme": {
"$ref": "#/$defs/DesignTheme",
"description": "Required. Specifies the theme of the design system."
},
"displayName": {
"type": "string",
"description": "Required. Specifies the display name of the design system."
}
},
"description": "Represents a collection of guidelines, design tokens, and reusable components that define the visual and functional characteristics of a product's design. This is used to guide the generation of consistent and branded designs. LINT.IfChange"
}
},
"required": [
"name",
"projectId",
"designSystem"
],
"properties": {
"name": {
"type": "string",
"description": "Required. Identifier. The resource name of the design system to update. Format: `assets/{asset_id}` Example: `assets/15996705518239280238`",
"x-google-identifier": true
},
"projectId": {
"type": "string",
"description": "Required. The project ID to update design system for, example: '4044680601076201931', without the `projects/` prefix."
},
"designSystem": {
"$ref": "#/$defs/DesignSystem",
"description": "Required. The design system to update."
}
},
"description": "Request message for UpdateDesignSystem."
}Uploads DESIGN.md to a Stitch project. Use this tool when the user wants to create a design system from a DESIGN.md file. **Instructions for Tool Call:** * Call `create_design_system_from_design_md` tool immediately after this tool to create the design system from the uploaded DESIGN.md, and display the design system in the UI.
| Argument | Type | Description |
|---|---|---|
| projectId* | string | Required. The project ID to upload the DESIGN.md to, example: '4044680601076201931', without the `projects/` prefix. |
| designMdBase64* | string | Required. The base64-encoded DESIGN.md content. The decoded content must be valid UTF-8; uploads with invalid UTF-8 bytes will be rejected. Run `base64 -w 0 ` to get the base64-encoded string. |
{
"type": "object",
"required": [
"projectId",
"designMdBase64"
],
"properties": {
"projectId": {
"type": "string",
"description": "Required. The project ID to upload the DESIGN.md to, example: '4044680601076201931', without the `projects/` prefix."
},
"designMdBase64": {
"type": "string",
"description": "Required. The base64-encoded DESIGN.md content. The decoded content must be valid UTF-8; uploads with invalid UTF-8 bytes will be rejected. Run `base64 -w 0 ` to get the base64-encoded string."
}
},
"description": "Request message for UploadDesignMd."
}{
"type": "object",
"required": [
"projectId",
"prompt"
],
"properties": {
"prompt": {
"type": "string",
"description": "Required. The input text to generate the screen from."
},
"modelId": {
"enum": [
"MODEL_ID_UNSPECIFIED",
"GEMINI_3_8_FLASH",
"GEMINI_3_5_FLASH_LITE"
],
"type": "string",
"description": "Optional. The model to use for generation.",
"x-google-enum-descriptions": [
"Unspecified model.",
"Gemini 3.8 Flash.",
"Gemini 3.5 Flash-Lite."
]
},
"projectId": {
"type": "string",
"description": "Required. The project ID to generate the screen for, example: '4044680601076201931', without the `projects/` prefix."
},
"deviceType": {
"enum": [
"DEVICE_TYPE_UNSPECIFIED",
"MOBILE",
"DESKTOP",
"TABLET",
"AGNOSTIC"
],
"type": "string",
"description": "The type of device that captured the screenshot, e.g., mobile or desktop.",
"x-google-enum-descriptions": [
"Unspecified device type.",
"A design for a mobile device.",
"A design for a desktop device.",
"A design for a tablet device.",
"A design that is not tied to a specific device."
]
},
"designSystem": {
"type": "string",
"description": "Optional. Optional design system id to use for generating the new screen. Leave empty for the first screen of a new project: Stitch automatically generates a design system that fits the prompt. Set it to reuse an existing design system of the project (from a previous `output_components` or `list_design_systems`) for design consistency. Example: `assets/15996705518239280238`."
}
},
"description": "Request message for GenerateScreenFromText."
}{
"type": "object",
"$defs": {
"VariantOptions": {
"type": "object",
"properties": {
"aspects": {
"type": "array",
"items": {
"enum": [
"VARIANT_ASPECT_UNSPECIFIED",
"LAYOUT",
"COLOR_SCHEME",
"IMAGES",
"TEXT_FONT",
"TEXT_CONTENT"
],
"type": "string",
"x-google-enum-descriptions": [
"Unspecified aspect.",
"Layout: Arrangement of elements on the screen.",
"Color scheme: Colors used on the screen.",
"Images: Images used on the screen.",
"Text font: Fonts used for text on the screen.",
"Text content: Text content on the screen."
]
},
"description": "Optional. Specific aspects to focus on. If empty, all aspects may be varied."
},
"variantCount": {
"type": "integer",
"format": "int32",
"description": "Optional. Number of variants to generate (1-5). Default: 3"
},
"creativeRange": {
"enum": [
"CREATIVE_RANGE_UNSPECIFIED",
"REFINE",
"EXPLORE",
"REIMAGINE"
],
"type": "string",
"description": "Optional. Creative range for variations. Default: EXPLORE",
"x-google-enum-descriptions": [
"Unspecified creative range.",
"Subtle refinements, closely adhering to original.",
"Balanced exploration. Default.",
"Radical explorations, fundamentally challenging the original."
]
}
},
"description": "Configuration options for design variant generation. This message captures all parameters used to generate variants, allowing the configuration to be stored, replayed, or analyzed."
}
},
"required": [
"projectId",
"selectedScreenIds",
"prompt",
"variantOptions"
],
"properties": {
"prompt": {
"type": "string",
"description": "Required. The input text used to generate the variants."
},
"modelId": {
"enum": [
"MODEL_ID_UNSPECIFIED",
"GEMINI_3_8_FLASH",
"GEMINI_3_5_FLASH_LITE"
],
"type": "string",
"description": "Optional. The model to use for generation.",
"x-google-enum-descriptions": [
"Unspecified model.",
"Gemini 3.8 Flash.",
"Gemini 3.5 Flash-Lite."
]
},
"projectId": {
"type": "string",
"description": "Required. The project ID of screens to generate variants for, example: '4044680601076201931', without the `projects/` prefix."
},
"deviceType": {
"enum": [
"DEVICE_TYPE_UNSPECIFIED",
"MOBILE",
"DESKTOP",
"TABLET",
"AGNOSTIC"
],
"type": "string",
"description": "Optional. The type of device that captured the screenshot, e.g., mobile or desktop.",
"x-google-enum-descriptions": [
"Unspecified device type.",
"A design for a mobile device.",
"A design for a desktop device.",
"A design for a tablet device.",
"A design that is not tied to a specific device."
]
},
"variantOptions": {
"$ref": "#/$defs/VariantOptions",
"description": "Required. The variant options for generation, including the number of variants, creative range, and aspects to focus on."
},
"selectedScreenIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Required. The screen ids of screen to generate variants for, example: ['98b50e2ddc9943efb387052637738f61', '98b50e2ddc9943efb387052637738f62'], without the `screens/` prefix."
}
},
"description": "Request message for GenerateVariants."
}