Skip to content

Go MCP server for Google Stitch with resilient screen generation and automatic gcloud authentication

License

Notifications You must be signed in to change notification settings

obinnaokechukwu/stitch-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

stitch-mcp

A Go MCP server that proxies Google Stitch API calls with resilient screen generation. It handles authentication, token refresh, and automatic recovery from connection drops during long-running screen generation requests.

Features

  • Dynamic tool discovery — Fetches available tools from the Stitch API at startup
  • Resilient screen generation — Automatically recovers from TCP connection drops (common during 2-10 min generation requests) by polling for new screens
  • Automatic authentication — Uses gcloud Application Default Credentials with background token refresh and 401 retry
  • Generation tracking — Virtual tools (generation_status, list_generations) provide visibility into in-flight work
  • STDIO transport — Works with any MCP client (Claude Code, Claude Desktop, etc.)

How It Works

Screen generation (generate_screen_from_text) takes 2-10 minutes and the Stitch API frequently drops the TCP connection after ~60 seconds. The proxy handles this transparently:

  1. Snapshot existing screens via list_screens
  2. Fire the generation request (may succeed directly or connection may drop)
  3. Poll list_screens on connection drop until a new screen appears
  4. Return the new screen details to the client as if nothing happened

Prerequisites

gcloud auth application-default login

Installation

go install github.com/obinnaokechukwu/stitch-mcp@latest

Or build from source:

git clone https://github.com/obinnaokechukwu/stitch-mcp.git
cd stitch-mcp
go build -o stitch-mcp .

Configuration

Environment Variable Description Default
STITCH_API_KEY API key (skips OAuth if set)
STITCH_HOST Stitch API endpoint https://stitch.googleapis.com/mcp
STITCH_PROJECT_ID GCP project for billing Auto-detected from gcloud
STITCH_DEBUG Enable debug logging (1) 0

Usage with Claude Code

Add to your MCP settings (~/.claude/settings.json):

{
  "mcpServers": {
    "stitch": {
      "command": "stitch-mcp",
      "env": {
        "STITCH_DEBUG": "1"
      }
    }
  }
}

Available Tools

From Stitch API (discovered dynamically):

  • create_project — Create a new Stitch project
  • list_projects — List accessible projects
  • get_project — Get project details
  • list_screens — List screens in a project
  • get_screen — Get screen details
  • generate_screen_from_text — Generate a UI screen from a text prompt (resilient)

Virtual tools (proxy-only):

  • generation_status — Check status of a screen generation by ID
  • list_generations — List all in-flight and recent generations

License

Apache 2.0 — see LICENSE

About

Go MCP server for Google Stitch with resilient screen generation and automatic gcloud authentication

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages