# com.googleapis.stitch/mcp (remote · stitch.googleapis.com)

Interact with the Stitch API using natural language commands.

- Trust score: 59/100 (low)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `stitch.googleapis.com`: 59/100 (this document), [markdown](https://verifymcp.io/servers/com-googleapis-stitch-mcp/stitch.md), [page](https://verifymcp.io/servers/com-googleapis-stitch-mcp/stitch)

## Channel facts

- Endpoint: `https://stitch.googleapis.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (create_project).
  - HTTPS not yet verified: we couldn't determine whether a plaintext access path exists.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 56/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2381 tokens (~158/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-googleapis-stitch-mcp https://stitch.googleapis.com/mcp
```

### Codex

```toml
[mcp_servers.com-googleapis-stitch-mcp]
url = "https://stitch.googleapis.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-googleapis-stitch-mcp": {
      "type": "remote",
      "url": "https://stitch.googleapis.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-googleapis-stitch-mcp --url https://stitch.googleapis.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-googleapis-stitch-mcp:
    url: "https://stitch.googleapis.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "com-googleapis-stitch-mcp": {
      "type": "http",
      "url": "https://stitch.googleapis.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 59, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 58, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 57, −1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 58, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 57, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 56, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 56)

First indexed and scored.

## MCP tools (15)

### `create_project` (~40 tokens)

Creates a new Stitch project. A project is a container for UI designs and frontend code.

Input parameters:

- `title` (string): Optional. The title of the project.

Output parameters:

- `backgroundTheme` (string): Optional. The background theme of the project.
- `createTime` (string): Output only. The time when the project was created.
- `designTheme`: Output only. The theme used to generate the first design in the project.
- `deviceType` (string): Optional. The device type of the project.
- `metadata`: Metadata of the project.
- `name` (string): Identifier. The resource name of the project. Format: projects/{project}
- `origin` (string): Output only. The origin of the project.
- `projectType` (string): Optional. The type of the project. If not specified, the project is a text to UI project.
- `readTime` (string): Output only. The time the project was last read. Populated only when listing recently viewed projects.
- `screenInstances` (array): Output only. The screen instances on this project.
- `thumbnailScreenshot`: Optional. The screenshot to be used as the thumbnail for the project. Same as normal design screenshots, this contains the FIFE serving_base_url which requires additional FIFE URL options to be set f…
- `title` (string): Optional. The title of the project.
- `updateTime` (string): Output only. The time when the project was last updated.
- `visibility` (string): Optional. The visibility setting of the project.

### `get_project` (~60 tokens)

Retrieves the details of a specific Stitch project using its project name.

Input parameters:

- `name` (string, required): Required. Identifier. The resource name of the project to retrieve. Format: `projects/{project}` Example: `projects/4044680601076201931`

Output parameters:

- `backgroundTheme` (string): Optional. The background theme of the project.
- `createTime` (string): Output only. The time when the project was created.
- `designTheme`: Output only. The theme used to generate the first design in the project.
- `deviceType` (string): Optional. The device type of the project.
- `metadata`: Metadata of the project.
- `name` (string): Identifier. The resource name of the project. Format: projects/{project}
- `origin` (string): Output only. The origin of the project.
- `projectType` (string): Optional. The type of the project. If not specified, the project is a text to UI project.
- `readTime` (string): Output only. The time the project was last read. Populated only when listing recently viewed projects.
- `screenInstances` (array): Output only. The screen instances on this project.
- `thumbnailScreenshot`: Optional. The screenshot to be used as the thumbnail for the project. Same as normal design screenshots, this contains the FIFE serving_base_url which requires additional FIFE URL options to be set f…
- `title` (string): Optional. The title of the project.
- `updateTime` (string): Output only. The time when the project was last updated.
- `visibility` (string): Optional. The visibility setting of the project.

### `delete_project` (~85 tokens)

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.

Input parameters:

- `name` (string, required): Required. Identifier. The resource name of the project to delete. Format: `projects/{project}` Example: `projects/4044680601076201931`

### `list_projects` (~115 tokens)

Lists all Stitch projects accessible to the user. By default, it lists projects owned by the user.

Input parameters:

- `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 b…

Output parameters:

- `projects` (array): The projects for the given user, sorted by update time from the most recent to the least recent. Adding a new session to an existing project is considered as an update to the project.

### `list_screens` (~56 tokens)

Lists all screens within a given Stitch project.

Input parameters:

- `projectId` (string, required): Required. Identifier. The project ID to list screens for, example: '4044680601076201931', without the `projects/` prefix.

Output parameters:

- `screens` (array): The screens for the given project.

### `get_screen` (~163 tokens)

Retrieves the details of a specific screen within a project.

Input parameters:

- `name` (string, required): Required. Identifier. The resource name of the screen to retrieve. Format: `projects/{project}/screens/{screen}` Example: `projects/4044680601076201931/screens/98b50e2ddc9943efb387052637738f61`
- `projectId` (string, required): Required. The project ID of screen to retrieve. Example: `4044680601076201931`, without the `projects/` prefix.
- `screenId` (string, required): Required. The screen ID of screen to retrieve. Example: `98b50e2ddc9943efb387052637738f61`, without the `screens/` prefix.

Output parameters:

- `deviceType` (string): The device type of the screen.
- `height` (string): The height of the screen.
- `htmlCode`: The HTML code of the screen.
- `name` (string): Identifier. The name of the screen. Format: projects/{project}/screens/{screen}
- `screenshot`: The screenshot of the screen.
- `title` (string): The title of the screen.
- `width` (string): The width of the screen.

### `generate_screen_from_text` (~361 tokens)

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.

Input parameters:

- `designSystem` (string): Optional. The design system id to use for generating the new screen, should always be configured for design consistency, via `get_project` or `list_assets` methods. If not provided, a default design…
- `deviceType` (string): The type of device that captured the screenshot, e.g., mobile or desktop.
- `modelId` (string): Optional. The model to use for generation.
- `projectId` (string, required): Required. The project ID to generate the screen for, example: '4044680601076201931', without the `projects/` prefix.
- `prompt` (string, required): Required. The input text to generate the screen from.

Output parameters:

- `outputComponents` (array): The generated output components.
- `projectId` (string): The project ID of the generated screen. This is the same as the input project ID.
- `sessionId` (string): The session ID of the generated screen.

### `edit_screens` (~227 tokens)

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.

Input parameters:

- `deviceType` (string): Optional. The type of device that captured the screenshot, e.g., mobile or desktop.
- `modelId` (string): Optional. The model to use for generation.
- `projectId` (string, required): Required. The project ID of screens to edit, example: '4044680601076201931', without the `projects/` prefix.
- `prompt` (string, required): Required. The input text to generate the screen from.
- `selectedScreenIds` (array, required): Required. The screen IDs of screens to edit, example: ['98b50e2ddc9943efb387052637738f61', '98b50e2ddc9943efb387052637738f62'], without the `screens/` prefix.

Output parameters:

- `outputComponents` (array): The generated output components.
- `projectId` (string): The project ID of the generated screen. This is the same as the input project ID.
- `sessionId` (string): The session ID of the generated screen.

### `generate_variants` (~261 tokens)

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.

Input parameters:

- `deviceType` (string): Optional. The type of device that captured the screenshot, e.g., mobile or desktop.
- `modelId` (string): Optional. The model to use for generation.
- `projectId` (string, required): Required. The project ID of screens to generate variants for, example: '4044680601076201931', without the `projects/` prefix.
- `prompt` (string, required): Required. The input text used to generate the variants.
- `selectedScreenIds` (array, required): Required. The screen ids of screen to generate variants for, example: ['98b50e2ddc9943efb387052637738f61', '98b50e2ddc9943efb387052637738f62'], without the `screens/` prefix.
- `variantOptions` (required): Required. The variant options for generation, including the number of variants, creative range, and aspects to focus on.

Output parameters:

- `outputComponents` (array): The generated output components.
- `projectId` (string): The project ID of the generated screen. This is the same as the input project ID.
- `sessionId` (string): The session ID of the generated screen.

### `upload_design_md` (~176 tokens)

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.

Input parameters:

- `designMdBase64` (string, required): 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.
- `projectId` (string, required): Required. The project ID to upload the DESIGN.md to, example: '4044680601076201931', without the `projects/` prefix.

Output parameters:

- `groupId` (string): Optional. Group identifier for Genie Agent output grouping. Screens with the same groupId are rendered and interact as a group.
- `groupName` (string): Optional. Human-readable name for the group (e.g., "Warm Minimalism", "Ethereal Glow").
- `height` (integer): Optional. The screen height.
- `hidden` (boolean): Optional. User driven action hiding screen from the canvas.
- `id` (string): Optional. The screen instance id.
- `isFavourite` (boolean): Optional. Whether this screen is marked as a favourite by the user.
- `isResized` (boolean): Optional. Whether this screen has been resized by the user.
- `label` (string): Optional. The screen label.
- `needsLayout` (boolean): Optional. Whether this screen instance needs frontend layout positioning. Set by the PostProcessor when auto-linking screens that the agent generated but the frontend has not yet positioned on the ca…
- `sourceAsset` (string): Optional. The resource name of the source asset. Format: assets/{asset}
- `sourceScreen` (string): Optional. The resource name of the source screen. Format: projects/{project}/screens/{screen}
- `textContent` (string): Optional. Text content for TEXT_INSTANCE nodes.
- `type` (string): Optional. The type of screen instance.
- `variantScreenInstance`: Optional. The variant Screen Instance.
- `width` (integer): Optional. The screen width.
- `x` (integer): Optional. The x position of the screen.
- `y` (integer): Optional. The y position of the screen.

### `create_design_system` (~226 tokens)

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.

Input parameters:

- `designSystem` (required): Required. The design system to create.
- `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).

Output parameters:

- `copiedFrom` (string): Optional. The resource name of the asset this was copied from, if any. Format: assets/{asset} Tracks the fork history of assets.
- `designSystem`: Optional. The design system.
- `name` (string): Identifier. The resource name of the asset. Format: assets/{asset}
- `version` (string): Output only. The version of this asset. 0 indicates unversioned (legacy data). Incremented when the asset content changes.

### `create_design_system_from_design_md` (~143 tokens)

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.

Input parameters:

- `deviceType` (string): Optional. The device type of the screen.
- `projectId` (string, required): Required. The project ID to update design system for, example: '4044680601076201931', without the `projects/` prefix.
- `selectedScreenInstance` (required): Required. The screen instance to create the design system from, which is created by UploadDesignMd RPC.

Output parameters:

- `assetId` (string): The asset id of the design system. Example: '15996705518239280238', without the `assets/` prefix.

### `update_design_system` (~212 tokens)

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.

Input parameters:

- `designSystem` (required): Required. The design system to update.
- `name` (string, required): Required. Identifier. The resource name of the design system to update. Format: `assets/{asset_id}` Example: `assets/15996705518239280238`
- `projectId` (string, required): Required. The project ID to update design system for, example: '4044680601076201931', without the `projects/` prefix.

Output parameters:

- `copiedFrom` (string): Optional. The resource name of the asset this was copied from, if any. Format: assets/{asset} Tracks the fork history of assets.
- `designSystem`: Optional. The design system.
- `name` (string): Identifier. The resource name of the asset. Format: assets/{asset}
- `version` (string): Output only. The version of this asset. 0 indicates unversioned (legacy data). Incremented when the asset content changes.

### `list_design_systems` (~65 tokens)

Lists all design systems for a given project.

Input parameters:

- `projectId` (string): Optional. The project ID to list design systems for, example: '4044680601076201931', without the `projects/` prefix. If empty, lists all global design systems.

Output parameters:

- `designSystems` (array): The design systems for the given project.

### `apply_design_system` (~191 tokens)

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.

Input parameters:

- `assetId` (string, required): 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): Required. The project ID of screen instances to edit, example: '4044680601076201931', without the `projects/` prefix.
- `selectedScreenInstances` (array, required): Required. The screen instances to edit, which is available in the Project info, fetched by `get_project`.

Output parameters:

- `outputComponents` (array): The generated output components.
- `projectId` (string): The project ID of the generated screen. This is the same as the input project ID.
- `sessionId` (string): The session ID of the generated screen.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-googleapis-stitch-mcp/stitch#diagnostics

## Score history

- 2026-08-03: 59
- 2026-08-02: 58
- 2026-08-01: 58
- 2026-07-31: 57
- 2026-07-30: 58
- 2026-07-29: 58
- 2026-07-28: 57
- 2026-07-27: 56
- 2026-07-26: 56

## Links

- Remote endpoint: https://stitch.googleapis.com/mcp
- Changelog RSS feed: https://verifymcp.io/servers/com-googleapis-stitch-mcp/stitch/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-googleapis-stitch-mcp/stitch/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-googleapis-stitch-mcp/stitch
