---
canonical_url: "https://docs.composio.dev/toolkits/google_stitch"
markdown_url: "https://docs.composio.dev/toolkits/google_stitch.md"
product: "platform"
version: null
last_updated: null
---

# Google Stitch

Google Stitch is an AI interface-design service exposed through an MCP Streamable HTTP endpoint using JSON-RPC 2.0, with named tools for projects, screens, artifacts, and design systems.

- **Category:** model context protocol
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 16
- **Triggers:** 0
- **Slug:** `GOOGLE_STITCH`
- **Version:** 00000000_00

## Tools

### Apply Design System

**Slug:** `GOOGLE_STITCH_APPLY_DESIGN_SYSTEM`

Apply one design system to 1-20 unique typed screen instances from Get Project. Returns every restyled screen plus any clarification, progress, design-system, or session output. This mutating generation request is sent once and never retried; reconcile an indeterminate failure with project reads.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `asset_id` | string | Yes | Bare design-system asset ID from List Design Systems, without assets/. |
| `project_id` | string | Yes | Bare project ID containing the target screen instances. |
| `screen_instances` | array | Yes | One to 20 unique typed screen instances from Get Project. Supply each instance's id and source_screen together; instance IDs are not screen IDs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Design System

**Slug:** `GOOGLE_STITCH_CREATE_DESIGN_SYSTEM`

Create a typed Stitch design system from explicit current theme fields. Providing project_id creates it for that project; intentionally omitting project_id creates a global asset. This non-idempotent operation is attempted once and is never retried automatically.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | No | Optional bare project ID. Omit it intentionally to create a global design-system asset rather than a project-bound asset. |
| `design_system` | object | Yes | Display name and typed theme for the new design system. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Design System From Markdown

**Slug:** `GOOGLE_STITCH_CREATE_DESIGN_SYSTEM_FROM_DESIGN_MD`

Create a project design system from the exact screen instance returned by Upload Design Markdown. The non-idempotent request is sent once and is never retried by this action.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | Bare project ID used for the preceding DESIGN.md upload, without the projects/ prefix. |
| `device_type` | string ("DEVICE_TYPE_UNSPECIFIED" | "MOBILE" | "DESKTOP" | "TABLET" | "AGNOSTIC") | No | Optional screen device type using Google Stitch's exact enum. |
| `screen_instance` | object | Yes | The exact id and source_screen pair returned by Upload Design Markdown. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Project

**Slug:** `GOOGLE_STITCH_CREATE_PROJECT`

Create a Stitch project container for UI designs and return its project resource name. This non-idempotent operation is sent once and is not retried by the action.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | Optional project title; omit it to let Stitch choose the title. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Project

**Slug:** `GOOGLE_STITCH_DELETE_PROJECT`

Permanently delete one Google Stitch project. This destructive operation cannot be undone, requires explicit confirmation, and is attempted once without automatic retries.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_name` | string | Yes | Full resource name of the project to permanently delete, in the form projects/{project}. |
| `confirm_permanent_deletion` | boolean | Yes | Must be true to confirm permanent deletion of the project. This action cannot be undone. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Download Screen File

**Slug:** `GOOGLE_STITCH_DOWNLOAD_FILE`

Retrieve bounded HTML or screenshot content using a provider-owned Stitch file resource name. Arbitrary URLs are never accepted or fetched.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file_name` | string | Yes | Provider-owned file resource name from a screen's html_code.name or screenshot.name, in the form projects/{project}/files/{file}. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Edit Screens

**Slug:** `GOOGLE_STITCH_EDIT_SCREENS`

Apply one text-directed edit to up to 20 existing Stitch screens and return every changed screen or clarification question. This operation may continue after a timeout, so the action sends exactly one request and never retries.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `prompt` | string | Yes | Describe the edit to apply to every selected screen. If Stitch asks a clarifying question, answer it in a later call to this same tool. |
| `model_id` | string ("MODEL_ID_UNSPECIFIED" | "GEMINI_3_8_FLASH" | "GEMINI_3_5_FLASH_LITE") | No | Optional Stitch generation model, using the provider's exact enum. |
| `project_id` | string | Yes | Bare project ID containing the screens, without the projects/ prefix. |
| `screen_ids` | array | Yes | One to 20 unique bare screen IDs without screens/ or full project paths. |
| `device_type` | string ("DEVICE_TYPE_UNSPECIFIED" | "MOBILE" | "DESKTOP" | "TABLET" | "AGNOSTIC") | No | Optional target device type, using the provider's exact enum. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Generate Screen

**Slug:** `GOOGLE_STITCH_GENERATE_SCREEN`

Generate screens from a bounded text prompt in an existing Stitch project. Returns every generated screen or recoverable clarification output. This paid or mutating operation is attempted exactly once; a timeout or connection loss is indeterminate and is never retried automatically.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `prompt` | string | Yes | Describe the UI screen or screens to generate. If Stitch asks a clarification, answer it in a later call to this same tool. |
| `model_id` | string ("MODEL_ID_UNSPECIFIED" | "GEMINI_3_8_FLASH" | "GEMINI_3_5_FLASH_LITE") | No | Optional Stitch generation model, using the provider's exact enum. |
| `project_id` | string | Yes | Bare project ID without the projects/ prefix. |
| `device_type` | string ("DEVICE_TYPE_UNSPECIFIED" | "MOBILE" | "DESKTOP" | "TABLET" | "AGNOSTIC") | No | Optional target device type, using the provider's exact enum. |
| `design_system_name` | string | No | Optional full design-system resource name in the form assets/{asset}. Omit it for a project's first screen. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Generate Screen Variants

**Slug:** `GOOGLE_STITCH_GENERATE_VARIANTS`

Generate 1-5 variants for up to 20 unique source screens with exact creative-range, aspect, device, and model enums. Returns every generated screen or recoverable clarification output. This generation request is sent once and never retried.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `prompt` | string | Yes | Describe what the variants should explore. Call this tool again with an answering prompt if Stitch requests clarification. |
| `model_id` | string ("MODEL_ID_UNSPECIFIED" | "GEMINI_3_8_FLASH" | "GEMINI_3_5_FLASH_LITE") | No | Optional Stitch generation model using the provider's exact enum. |
| `project_id` | string | Yes | Bare project ID containing the source screens. |
| `screen_ids` | array | Yes | One to 20 unique bare source screen IDs, without a screens/ or project prefix. |
| `device_type` | string ("DEVICE_TYPE_UNSPECIFIED" | "MOBILE" | "DESKTOP" | "TABLET" | "AGNOSTIC") | No | Optional target device type using Stitch's exact enum. |
| `variant_options` | object | Yes | Variant count, creative range, and exact aspects to vary. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project

**Slug:** `GOOGLE_STITCH_GET_PROJECT`

Get one Stitch project by full resource name, including screen instances needed for design-system application.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_name` | string | Yes | Full project resource name in the form projects/{project}; use a name returned by Create Project or List Projects. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Screen

**Slug:** `GOOGLE_STITCH_GET_SCREEN`

Get one Stitch screen by full resource name and return bounded screen metadata plus provider-owned HTML and screenshot file references.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `screen_name` | string | Yes | Full screen resource name in the form projects/{project}/screens/{screen}. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Design Systems

**Slug:** `GOOGLE_STITCH_LIST_DESIGN_SYSTEMS`

List complete Google Stitch design systems for one project. The live provider requires project_id and exposes no pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | Bare project ID without the projects/ prefix. The live provider rejects omitted or empty project IDs even though discovery marks this field optional. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Projects

**Slug:** `GOOGLE_STITCH_LIST_PROJECTS`

List complete Google Stitch projects owned by the connected account or explicitly shared with it. Owned projects are returned by default.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `view` | string ("owned" | "shared") | No | List projects owned by the connected account (the default), or projects explicitly shared with it. Shared access does not imply ownership. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Screens

**Slug:** `GOOGLE_STITCH_LIST_SCREENS`

List all screens currently returned for one Stitch project, including safe HTML and screenshot file resource references.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | Bare project ID without the projects/ prefix. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Design System

**Slug:** `GOOGLE_STITCH_UPDATE_DESIGN_SYSTEM`

Replace a Stitch design system's display name and typed nondeprecated theme for one project. Sends only the fixed update_design_system operation, validates the returned asset or project-session identity and bounded fields, and never retries an indeterminate update.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | Bare project ID without the projects/ prefix. |
| `design_system` | object | Yes | Complete display name and typed nondeprecated theme to replace the current values. |
| `design_system_name` | string | Yes | Full design-system resource name in the form assets/{asset}. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload Design Markdown

**Slug:** `GOOGLE_STITCH_UPLOAD_DESIGN_MD`

Upload bounded UTF-8 DESIGN.md content to a Stitch project and return the screen instance required by Create Design System From Markdown. The action uploads content only, never reads local files or executes the content, and does not retry after an indeterminate failure.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | Bare project ID that will receive the DESIGN.md content, without projects/. |
| `design_md_base64` | string | Yes | Canonical padded base64 containing UTF-8 DESIGN.md content, at most 1 MiB decoded. The content is uploaded as data and is never executed. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
