Stitch by Google — MCP Skill
**Stitch** is Google's AI-powered UI design tool (Beta). This skill covers how to interact with Stitch projects and screens via its **Remote MCP server** using the HTTP API.
Best use case
Stitch by Google — MCP Skill is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
**Stitch** is Google's AI-powered UI design tool (Beta). This skill covers how to interact with Stitch projects and screens via its **Remote MCP server** using the HTTP API.
Teams using Stitch by Google — MCP Skill should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/stitch/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How Stitch by Google — MCP Skill Compares
| Feature / Agent | Stitch by Google — MCP Skill | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
**Stitch** is Google's AI-powered UI design tool (Beta). This skill covers how to interact with Stitch projects and screens via its **Remote MCP server** using the HTTP API.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
AI Agents for Startups
Explore AI agent skills for startup validation, product research, growth experiments, documentation, and fast execution with small teams.
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
SKILL.md Source
# Stitch by Google — MCP Skill
**Stitch** is Google's AI-powered UI design tool (Beta). This skill covers how to interact with Stitch projects and screens via its **Remote MCP server** using the HTTP API.
---
## Authentication
### API Key (Recommended)
Generate your API key at: https://stitch.withgoogle.com/settings (API Keys section)
Set it as an environment variable: `export STITCH_API_KEY=YOUR_STITCH_API_KEY`
All requests go to: `https://stitch.googleapis.com/mcp`
Pass the key via header: `X-Goog-Api-Key: $STITCH_API_KEY`
### Making MCP Calls
Stitch exposes a standard **MCP HTTP endpoint**. To call a tool, POST to the MCP endpoint with the tool name and arguments.
```bash
curl -X POST https://stitch.googleapis.com/mcp \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: YOUR_STITCH_API_KEY" \
-d '{
"method": "tools/call",
"params": {
"name": "list_projects",
"arguments": {}
}
}'
```
> **Note:** Stitch is a **Remote** MCP server (cloud-hosted), unlike local file-based MCP servers. API Keys persist indefinitely; OAuth tokens expire every ~1 hour.
---
## Available Tools
### Project Management
#### `list_projects`
Lists all Stitch projects accessible to the user.
- **Read-only:** yes
- **Input:**
- `filter` *(optional, string)*: AIP-160 filter on `view` field. Values: `view=owned` (default), `view=shared`
- **Output:** Array of `Project` objects
```bash
# List all owned projects
curl -X POST https://stitch.googleapis.com/mcp \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: YOUR_STITCH_API_KEY" \
-d '{"method":"tools/call","params":{"name":"list_projects","arguments":{}}}'
```
---
#### `create_project`
Creates a new Stitch project (container for UI designs).
- **Read-only:** no (destructive)
- **Input:**
- `title` *(optional, string)*: Display name of the project
- **Output:** Created `Project` resource with `name`, `title`, and metadata
```bash
curl -X POST https://stitch.googleapis.com/mcp \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: YOUR_STITCH_API_KEY" \
-d '{"method":"tools/call","params":{"name":"create_project","arguments":{"title":"My Ad Landing Page"}}}'
```
---
#### `get_project`
Retrieves details of a specific project.
- **Read-only:** yes
- **Input:**
- `name` *(required, string)*: Resource name. Format: `projects/{project}`. Example: `projects/4044680601076201931`
- **Output:** `Project` resource object
---
### Screen Management
#### `list_screens`
Lists all screens within a Stitch project.
- **Read-only:** yes
- **Input:**
- `projectId` *(required, string)*: Project ID without `projects/` prefix
- **Output:** Array of `Screen` objects
```bash
curl -X POST https://stitch.googleapis.com/mcp \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: YOUR_STITCH_API_KEY" \
-d '{"method":"tools/call","params":{"name":"list_screens","arguments":{"projectId":"4044680601076201931"}}}'
```
---
#### `get_screen`
Retrieves details of a specific screen including HTML, screenshot, and Figma export.
- **Read-only:** yes
- **Input:**
- `name` *(required)*: `projects/{project}/screens/{screen}`
- `projectId` *(required, deprecated)*: Project ID without prefix
- `screenId` *(required, deprecated)*: Screen ID without prefix
> All three are currently required even though `projectId`/`screenId` are deprecated.
- **Output:** `Screen` object with `htmlCode`, `screenshot`, `figmaExport` download URLs
---
### AI Generation
#### `generate_screen_from_text`
**Generates a new UI screen from a text prompt. Takes a few minutes.**
- **Read-only:** no (destructive)
- **⚠️ Don't retry on connection errors** — generation may still be in progress. Use `get_screen` after a few minutes to check.
- **Input:**
- `projectId` *(required, string)*
- `prompt` *(required, string)*: Describe the screen to generate
- `deviceType` *(optional)*: `MOBILE` | `DESKTOP` | `TABLET` | `AGNOSTIC`
- `modelId` *(optional)*: `GEMINI_3_FLASH` | `GEMINI_3_1_PRO` *(GEMINI_3_PRO is deprecated)*
- **Output:** Generated `Screen` objects + `SessionOutputComponent` entries (may include suggestions)
- If `output_components` has suggestions, present them to user. If accepted, call again with the suggestion as the new `prompt`.
```bash
curl -X POST https://stitch.googleapis.com/mcp \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: YOUR_STITCH_API_KEY" \
-d '{
"method": "tools/call",
"params": {
"name": "generate_screen_from_text",
"arguments": {
"projectId": "YOUR_PROJECT_ID",
"prompt": "A mobile landing page for a Medicare insurance offer with a bold headline, trust badges, and a prominent CTA button",
"deviceType": "MOBILE",
"modelId": "GEMINI_3_1_PRO"
}
}
}'
```
---
#### `edit_screens`
Edits existing screens using a text prompt. Takes a few minutes.
- **Read-only:** no (destructive)
- **⚠️ Don't retry on connection errors**
- **Input:**
- `projectId` *(required, string)*
- `selectedScreenIds` *(required, string[])*: Screen IDs without `screens/` prefix
- `prompt` *(required, string)*: Edit instruction
- `deviceType` *(optional)*
- `modelId` *(optional)*: `GEMINI_3_FLASH` | `GEMINI_3_1_PRO`
- **Output:** Updated `Screen` objects
---
#### `generate_variants`
Generates design variants of existing screens.
- **Read-only:** no (destructive)
- **⚠️ Don't retry on connection errors**
- **Input:**
- `projectId` *(required, string)*
- `selectedScreenIds` *(required, string[])*
- `prompt` *(required, string)*: Guide variant generation
- `variantOptions` *(required, object)*: See `VariantOptions` below
- `deviceType` *(optional)*
- `modelId` *(optional)*
- **Output:** Variant `Screen` objects
**VariantOptions schema:**
```json
{
"variantCount": 3,
"creativeRange": "EXPLORE",
"aspects": ["COLOR_SCHEME", "LAYOUT"]
}
```
- `variantCount`: 1–5 (default: 3)
- `creativeRange`: `REFINE` | `EXPLORE` | `REIMAGINE`
- `aspects`: `LAYOUT` | `COLOR_SCHEME` | `IMAGES` | `TEXT_FONT` | `TEXT_CONTENT`
---
## Shared Types
### Screen Object
| Field | Type | Description |
|---|---|---|
| `name` | string | Resource name: `projects/{project}/screens/{screen}` |
| `id` | string | *(Deprecated)* Screen ID |
| `title` | string | Screen title |
| `prompt` | string | Prompt used to generate |
| `screenshot` | File | Screenshot image |
| `htmlCode` | File | HTML code of the screen |
| `figmaExport` | File | Figma export file |
| `theme` | DesignTheme | Theme used |
| `deviceType` | DeviceType | Device target |
| `screenMetadata` | ScreenMetadata | Status, agent type, display mode |
| `width` / `height` | string | Screen dimensions |
| `groupId` | string | Group ID for variants |
### File Object
| Field | Type | Description |
|---|---|---|
| `name` | string | `projects/{project}/files/{file}` |
| `downloadUrl` | string | Direct download URL |
| `mimeType` | string | e.g. `image/png`, `text/html` |
### ScreenMetadata
| Field | Values |
|---|---|
| `status` | `IN_PROGRESS` \| `COMPLETE` \| `FAILED` |
| `agentType` | `TURBO_AGENT`, `PRO_AGENT`, `GEMINI_3_AGENT`, etc. |
| `displayMode` | `SCREENSHOT` \| `HTML` \| `CODE` \| `MARKDOWN` \| `STICKY_NOTE` |
---
## Common Workflows
### Generate a new landing page ad creative
```python
import requests
import json
API_KEY = "YOUR_STITCH_API_KEY"
MCP_URL = "https://stitch.googleapis.com/mcp"
HEADERS = {
"Content-Type": "application/json",
"X-Goog-Api-Key": API_KEY
}
def stitch_call(tool_name, args):
payload = {
"method": "tools/call",
"params": {"name": tool_name, "arguments": args}
}
r = requests.post(MCP_URL, headers=HEADERS, json=payload)
r.raise_for_status()
return r.json()
# 1. Create a project
project = stitch_call("create_project", {"title": "Medicare Q4 Campaign"})
project_id = project["result"]["name"].split("/")[1]
# 2. Generate initial screen
result = stitch_call("generate_screen_from_text", {
"projectId": project_id,
"prompt": "Mobile landing page for Medicare Advantage with emotional headline, plan comparison table, and green CTA button",
"deviceType": "MOBILE",
"modelId": "GEMINI_3_1_PRO"
})
# 3. Get screen details once complete
# (generation takes a few minutes — poll with get_screen)
screens = result["result"].get("screens", [])
if screens:
screen_name = screens[0]["name"]
# screen_name format: projects/{id}/screens/{screen_id}
parts = screen_name.split("/")
project_id = parts[1]
screen_id = parts[3]
screen = stitch_call("get_screen", {
"name": screen_name,
"projectId": project_id,
"screenId": screen_id
})
# Download HTML
html_url = screen["result"]["htmlCode"]["downloadUrl"]
print(f"HTML download URL: {html_url}")
# Download screenshot
screenshot_url = screen["result"]["screenshot"]["downloadUrl"]
print(f"Screenshot URL: {screenshot_url}")
```
### Generate variants for A/B testing
```python
# After generating a base screen, create variants
variants = stitch_call("generate_variants", {
"projectId": project_id,
"selectedScreenIds": [screen_id],
"prompt": "Test different color schemes and CTA button styles",
"variantOptions": {
"variantCount": 3,
"creativeRange": "EXPLORE",
"aspects": ["COLOR_SCHEME", "TEXT_CONTENT"]
},
"deviceType": "MOBILE",
"modelId": "GEMINI_3_FLASH"
})
```
---
## Tips for Ad Creative Use
- **Effective prompts include:** device type, ad vertical, emotional tone, specific UI components (hero, CTA, trust badges, form)
- **Pixel-perfect HTML:** Use `htmlCode.downloadUrl` to grab the actual HTML — hand it to Marcus for landing page deployment
- **Figma export:** Available via `figmaExport.downloadUrl` for design review
- **Generation takes 2–5 minutes** — don't retry on network errors; check status with `get_screen` → `screenMetadata.status`
- **Model choice:** `GEMINI_3_1_PRO` for highest quality, `GEMINI_3_FLASH` for faster iteration
---
## MCP Client Config (for direct Claude Code / Cursor integration)
```json
{
"mcpServers": {
"stitch": {
"url": "https://stitch.googleapis.com/mcp",
"headers": {
"X-Goog-Api-Key": "YOUR_STITCH_API_KEY"
}
}
}
}
```
Or via Claude Code CLI:
```bash
claude mcp add stitch --transport http https://stitch.googleapis.com/mcp \
--header "X-Goog-Api-Key: YOUR_STITCH_API_KEY" -s user
```
---
## Docs Reference
- Setup & Auth: https://stitch.withgoogle.com/docs/mcp/setup/
- Reference: https://stitch.withgoogle.com/docs/mcp/reference/
- Guide: https://stitch.withgoogle.com/docs/mcp/guide/Related Skills
google-workspace-automation
Design Gmail, Drive, Sheets, and Calendar automations with scope-aware plans. Use for repeatable daily task automation with explicit OAuth scopes and audit-ready outputs.
ez-google
Use when asked to send email, check inbox, read emails, check calendar, schedule meetings, create events, search Google Drive, create Google Docs, read or write spreadsheets, find contacts, or any task involving Gmail, Google Calendar, Drive, Docs, Sheets, Slides, or Contacts. Agent-friendly with hosted OAuth - no API keys needed.
chromecast-with-google-tv
Cast YouTube videos, Tubi TV show episodes, and TV show episodes from other video streaming apps via ADB to Chromecast with Android TV (Chromecast 4K supported, Google TV Streamer support is unknown)
google-workspace-cli
Google Workspace administration via the gws CLI. Install, authenticate, and automate Gmail, Drive, Sheets, Calendar, Docs, Chat, and Tasks. Run security audits, execute 43 built-in recipes, and use 10 persona bundles. Use for Google Workspace admin, gws CLI setup, Gmail automation, Drive management, or Calendar scheduling.
google-search
Auto-generated skill for google-search tools via OneKey Gateway.
google-maps
Google Maps tools via OneKey Gateway (geocode, places, distance matrix, elevation, directions).
google-calendar
Interact with Google Calendar via the Google Calendar API – list upcoming events, create new events, update or delete them. Use this skill when you need programmatic access to your calendar from OpenClaw.
google-tasks
Fetch, display, create, and delete Google Tasks using the Google Tasks API. Use when the user asks to check, view, list, get, add, create, remove, or delete their Google Tasks, to-do lists, or task items. Handles OAuth authentication automatically using bash script with curl and jq.
stitch-ui-designer
Design, preview, and generate UI code using Google Stitch (via MCP). Helps developers choose the best UI by generating previews first, allowing iteration, and then exporting code.
google-ads-manager
Управление кампаниями Google Ads. Используйте этот навык, когда пользователь хочет просмотреть статистику, изменить бюджет, включить или выключить кампании в Google Рекламе. Этот навык позволяет выполнять действия через Google Ads API.
---
name: article-factory-wechat
humanizer
Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.