MCPcopy Index your code
hub / github.com/davideast/stitch-mcp

github.com/davideast/stitch-mcp @v0.5.5

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.5.5 ↗ · + Follow
652 symbols 1,715 edges 242 files 63 documented · 10%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

stitch-mcp

A CLI for moving AI-generated UI designs into your development workflow — preview them locally, build sites from them, and feed them to coding agents.

Why

AI-generated designs in Google's Stitch platform live as HTML/CSS behind an API. Getting them into a local development environment — for previewing, building, or handing off to coding agents — requires fetching, serving, and structuring them. stitch-mcp handles this through a set of CLI commands that connect to Stitch.

Quick start

# Set up authentication and MCP client config
npx @_davideast/stitch-mcp init

# Serve all project screens on a local dev server
npx @_davideast/stitch-mcp serve -p <project-id>

# Build an Astro site by mapping screens to routes
npx @_davideast/stitch-mcp site -p <project-id>

Features

  • Preview designs locally — serve all screens from a project on a Vite dev server
  • Build an Astro site from your designs — map screens to routes and generate a deployable project
  • Give your agent design context — proxy Stitch tools to your IDE's coding agent with automatic token refresh
  • Explore your design data — browse projects, screens, and metadata in the terminal or via CLI
  • Browse projects in your terminal — navigate screens interactively with copy, preview, and open actions
  • Set up in one command — guided wizard handles gcloud, auth, and MCP client configuration

MCP integration

Add this to your MCP client config to give coding agents access to Stitch tools:

{
  "mcpServers": {
    "stitch": {
      "command": "npx",
      "args": ["@_davideast/stitch-mcp", "proxy"]
    }
  }
}

Supported clients: VS Code, Cursor, Claude Code, Gemini CLI, Codex, OpenCode.

Virtual tools

The proxy exposes these tools alongside the upstream Stitch MCP tools. They combine multiple API calls into higher-level operations for coding agents:

  • build_site — Builds a site from a project by mapping screens to routes. Returns the design HTML for each page.
  • get_screen_code — Retrieves a screen and downloads its HTML code content.
  • get_screen_image — Retrieves a screen and downloads its screenshot image as base64.

build_site input schema:

{
  "projectId": "string (required)",
  "routes": [
    {
      "screenId": "string (required)",
      "route": "string (required, e.g. \"/\" or \"/about\")"
    }
  ]
}

Example:

npx @_davideast/stitch-mcp tool build_site -d '{
  "projectId": "123456",
  "routes": [
    { "screenId": "abc", "route": "/" },
    { "screenId": "def", "route": "/about" }
  ]
}'

Explore your designs

Use view and tool to browse your design data and understand what's available before prompting agents.

# Browse all projects
npx @_davideast/stitch-mcp view --projects

# Inspect a specific screen
npx @_davideast/stitch-mcp view --project <project-id> --screen <screen-id>

# Invoke any MCP tool from the CLI
npx @_davideast/stitch-mcp tool [toolName]

Inside the view browser: c copies the selected value, s previews HTML in your browser, o opens the project in Stitch, and q quits. Use arrow keys to navigate and Enter to drill into nested data.

Run tool without a name to list all available tools, or with -s to see a tool's schema.


Installation

Run directly with npx (no install needed):

npx @_davideast/stitch-mcp <command>

Or install globally:

npm install -g @_davideast/stitch-mcp
stitch-mcp <command>

Commands

Command Description
Setup
init Set up auth, gcloud, and MCP client config
doctor Verify configuration health
logout Revoke credentials
Development
serve -p <id> Preview project screens locally
screens -p <id> Browse screens in terminal
view Interactive resource browser
Build
site -p <id> Generate Astro project from screens
snapshot Save screen state to file
Integration
tool [name] Invoke MCP tools from CLI
proxy Run MCP proxy for agents

Run any command with --help for full options.

Authentication

Automatic (recommended): Run init and follow the wizard. It handles gcloud installation, OAuth, credentials, and project setup.

npx @_davideast/stitch-mcp init

API key: Set the STITCH_API_KEY environment variable to skip OAuth entirely.

export STITCH_API_KEY="your-api-key"

Manual (existing gcloud): If you already have gcloud configured:

gcloud auth application-default login
gcloud config set project <PROJECT_ID>
gcloud beta services mcp enable stitch.googleapis.com --project=<PROJECT_ID>

Then use the proxy with STITCH_USE_SYSTEM_GCLOUD=1:

{
  "mcpServers": {
    "stitch": {
      "command": "npx",
      "args": ["@_davideast/stitch-mcp", "proxy"],
      "env": {
        "STITCH_USE_SYSTEM_GCLOUD": "1"
      }
    }
  }
}

Environment variables

Variable Description
STITCH_API_KEY API key for direct authentication (skips OAuth)
STITCH_ACCESS_TOKEN Pre-existing access token
STITCH_USE_SYSTEM_GCLOUD Use system gcloud config instead of isolated config
STITCH_PROJECT_ID Override project ID
GOOGLE_CLOUD_PROJECT Alternative project ID variable
STITCH_HOST Custom Stitch API endpoint

Troubleshooting

"Permission Denied" errors

Ensure you have Owner or Editor role, billing is enabled, and the Stitch API is enabled. Run doctor --verbose to diagnose.

Authentication URL not appearing

The tool prints authentication URLs to the terminal with a 5-second timeout. Look for a URL starting with https://accounts.google.com. If using proxy with --debug, check /tmp/stitch-proxy-debug.log.

Already authenticated but showing logged in

The bundled gcloud SDK maintains separate authentication from your global gcloud installation. To fully clear authentication:

npx @_davideast/stitch-mcp logout --force --clear-config

API connection fails after setup

Run doctor --verbose to diagnose. Verify your project has billing and the Stitch API enabled. If issues persist, re-authenticate:

npx @_davideast/stitch-mcp logout --force
npx @_davideast/stitch-mcp init

WSL / SSH / Docker environments

The CLI detects WSL, SSH sessions, Docker containers, and Cloud Shell. In these environments, browser-based auth may not work automatically. Copy the OAuth URL from your terminal and open it in a browser manually.

Development

# Install dependencies
bun install

# Run locally
bun run dev init

# Run tests
bun test

# Build
bun run build

# Verify package
bun run verify-pack

License

Apache 2.0 © David East

Disclaimer

[!WARNING] Experimental Project - This is an independent, experimental tool.

This project is: - NOT affiliated with, endorsed by, or sponsored by Google LLC, Alphabet Inc., or the Stitch API team - Provided AS-IS with NO WARRANTIES of any kind - NOT guaranteed to be maintained, secure, or compatible with future API versions

"Stitch" and "Google Cloud" are trademarks of Google LLC.

USE AT YOUR OWN RISK.

Extension points exported contracts — how you extend this code

CommandStep (Interface)
(no doc) [26 implementers]
src/framework/CommandStep.ts
InitCommand (Interface)
(no doc) [16 implementers]
src/commands/init/spec.ts
ViewSpec (Interface)
(no doc) [16 implementers]
src/services/view/spec.ts
ChecklistUI (Interface)
(no doc) [2 implementers]
src/ui/checklist/spec.ts
CommandLineProps (Interface)
A single command line: $ command
site/src/components/TerminalBlock.tsx
IAssetGateway (Interface)
(no doc) [1 implementers]
src/lib/services/site/types.ts
EnvironmentInfo (Interface)
(no doc)
src/platform/environment.ts
UserInterface (Interface)
(no doc) [4 implementers]
src/framework/UserInterface.ts

Core symbols most depended-on inside this repo

log
called by 125
src/framework/UserInterface.ts
error
called by 48
src/framework/UserInterface.ts
run
called by 39
src/framework/CommandStep.ts
createMockScreen
called by 38
src/services/stitch-sdk/MockStitchSDK.ts
updateItem
called by 33
src/ui/checklist/spec.ts
execute
called by 32
src/services/view/spec.ts
shouldRun
called by 26
src/framework/CommandStep.ts
fetchAsset
called by 24
src/lib/server/AssetGateway.ts

Shape

Method 273
Function 159
Class 126
Interface 94

Languages

TypeScript100%

Modules by API surface

src/lib/server/AssetGateway.ts16 symbols
src/ui/checklist.ts15 symbols
src/services/gcloud/handler.ts13 symbols
src/framework/MockUI.ts13 symbols
src/ui/checklist/handler.ts12 symbols
src/services/mcp-config/handler.ts12 symbols
src/framework/ConsoleUI.ts12 symbols
src/ui/copy-behaviors/clipboard.ts11 symbols
src/services/gcloud/spec.ts11 symbols
src/services/gcloud/core.ts11 symbols
src/framework/UserInterface.ts11 symbols
src/services/gcloud/auth.ts10 symbols

For agents

$ claude mcp add stitch-mcp \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page