トリガー例
- 「Stitchのデザインをコードに引き出して」
- 「用 Stitch 做个落地页」
- 「把这个截图的风格用到我的网站上」
- 「Stitchプロジェクトからdesign.mdをエクスポートして」
- 「StitchデザインをShadCNコンポーネントに変換して」
Google Stitch 統合スキル
コアコンセプト: design.md
Stitch のデザインシステムは design.md ファイルに記録されます。色、フォント、テーマ、コンポーネントスタイルが含まれます。このファイルは以下の特徴を持ちます:
- エージェント最適化 — 生のCSSよりもエージェントが理解しやすいように調整された言語を使用
- 転送可能 — Claude Code、Cursor、または任意のエージェントに渡せば、スタイルを完全に再現
- 自動生成 — プロジェクトごとに Stitch が自動生成(依頼しなくても作成される)
デフォルトワークフロー: 常に design.md を確立してから、その上にページを構築します。
MCP サーバー
コミュニティパッケージ: davideast/stitch-mcp
npm: @_davideast/stitch-mcp
セットアップ
前提条件
- Google Cloud CLI (
gcloud) がインストールされていること - Stitch API が有効な GCP プロジェクト
認証(OAuth — APIキーは非対応)
gcloud auth login
gcloud auth application-default login
gcloud config set project <YOUR_PROJECT_ID>
gcloud auth application-default set-quota-project <YOUR_PROJECT_ID>
gcloud beta services mcp enable stitch.googleapis.com --project=<YOUR_PROJECT_ID>
MCP 設定
MCP クライアント設定に追加(例: .kiro/settings/mcp.json):
{
"stitch": {
"command": "npx",
"args": ["@_davideast/stitch-mcp", "proxy"],
"env": {
"STITCH_USE_SYSTEM_GCLOUD": "1",
"GOOGLE_CLOUD_PROJECT": "<YOUR_PROJECT_ID>"
}
}
}
重要: proxy モードと STITCH_USE_SYSTEM_GCLOUD=1 を必ず使用してください。直接の serverUrl モードは不安定です。
セットアップ確認
npx @_davideast/stitch-mcp doctor
doctor が API テストでタイムアウトした場合、直接確認:
ACCESS_TOKEN=$(gcloud auth application-default print-access-token)
curl -s -w "\nHTTP:%{http_code}" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "x-goog-user-project: <YOUR_PROJECT_ID>" \
"https://stitch.googleapis.com/v1/projects"
MCP ツール
| ツール | 目的 |
|---|---|
list_projects | すべての Stitch プロジェクトを一覧表示 |
get_screen_code | スクリーンの HTML/CSS を取得 |
get_screen_image | スクリーンショット(base64)を取得 |
build_site | スクリーンをルートにマッピングし、Astro プロジェクトを生成 |
CLI ツール(MCP 以外)
npx @_davideast/stitch-mcp view --projects # プロジェクトをブラウズ
npx @_davideast/stitch-mcp serve -p <project-id> # ローカルプレビュー
npx @_davideast/stitch-mcp site -p <project-id> # Astro サイトを生成
ワークフロー
パス A: スクラッチからのデザイン(デフォルト)
- デザインシステムを確立 — Stitch で
design.mdを作成または提供(指定しない場合は自動生成) - スクリーンを生成 — 要件を Stitch にプロンプト送信。デザインシステムに基づいて構築
- ローカルに取り込み —
get_screen_code→ HTML/CSS、get_screen_image→ スクリーンショット - 実装 — 対象フレームワーク(Next.js/Astro/React)に変換
- 検証 — ビジュアル比較(下記「検証フェーズ」を参照)
パス B: 参照からのリデザイン
既存サイトやスクリーンショットのスタイルを採用したい場合(コピーではなく):
- 参照をキャプチャ — 気に入ったサイトの全画面スクリーンショット(GoFullPage などを使用)
- Stitch でリデザイン — スクリーンショットをアップロード。Stitch がデザイン言語、コンポーネントパターン、レイアウトを抽出し、あなたのコンテンツに適用
- 代替方法: URL からインポート — Stitch のデザインシステムパネルで、任意のウェブサイト URL からインポート。Stitch がクロールしてタイポグラフィと色を design.md として抽出
- 調整 — ワイヤーフレームをアップロードしたり、特定のセクションに注釈を付けて調整
パス C: エージェント統合ビルド(Claude Code + Stitch)
Google 公式の Stitch スキルを使用した自律的なエンドツーエンドビルド:
- 拡張プロンプト — 曖昧なユーザープロンプトを Stitch 最適化プロンプトに変換(Stitch は正確な説明よりも形容詞によるムードに依存)
- Stitch ループ — Chrome DevTools を使用した自律ビルドループ。ステージ間でプロンプトトラッキングを維持
- React コンポーネント — Stitch のモノリシックな HTML エクスポートを、検証付きのモジュラーな React コンポーネントに変換
claude.md のワークフロー順:
拡張プロンプト → Stitch ループ → React コンポーネント変換
Stitch MCP の接続が必要です。インストールについては Google の Stitch スキルリポジトリ を参照してください。
パス D: ShadCN UI 変換
Stitch の生の React/HTML にはインタラクションが不足しています。プロダクション品質のコンポーネントには ShadCN を使用:
- ShadCN MCP に接続
- Google の ShadCN UI スキルを使用して Stitch デザインを ShadCN コンポーネントに変換
- レジストリ(例: glassmorphism、motion-primitives)で拡張し、プレミアムな印象に
claude.mdでレジストリを指定すると、変換が自動化
検証フェーズ(gstack design-review に着想)
実装後、多層検証を実行します。目標: 人間の目が見逃すものを捕捉すること。
レイヤー 1: マルチビューポートスクリーンショット
3つのブレークポイントでスクリーンショットを撮り、レスポンシブの問題を検出:
npx playwright screenshot --viewport-size=375,812 http://localhost:3000 impl-mobile.png
npx playwright screenshot --viewport-size=768,1024 http://localhost:3000 impl-tablet.png
npx playwright screenshot --viewport-size=1440,900 http://localhost:3000 impl-desktop.png
チェック項目: テキストのはみ出し、レイアウトの崩れ、要素の重なり、コンテンツの非適応。
レイヤー 2: デザインシステム一貫性チェック
実装から実際のレンダリング値を抽出し、design.md と比較:
# 実際に使用されているフォントを抽出(ブラウザコンソールまたは Playwright で実行)
npx playwright evaluate http://localhost:3000 \
"JSON.stringify([...new Set([...document.querySelectorAll('*')].slice(0,500).map(e => getComputedStyle(e).fontFamily))])"
# 使用されているカラーパレットを抽出
npx playwright evaluate http://localhost:3000 \
"JSON.stringify([...new Set([...document.querySelectorAll('*')].slice(0,500).flatMap(e => [getComputedStyle(e).color, getComputedStyle(e).backgroundColor]).filter(c => c !== 'rgba(0, 0, 0, 0)'))])"
抽出した値を design.md のトークンと比較。差異をフラグ付け。
レイヤー 3: デザインとのピクセル差分
npx pixelmatch design.png impl-desktop.png diff.png 0.1
レイヤー 4: AI スロップ検出
実装に以下の10のAI生成パターン(gstack のブラックリストから)がないかチェック:
- デフォルトの紫/バイオレットグラデーション背景
- アイコン in 円 + タイトル + 説明の3列フィーチャーグリッド
- セクション装飾としての色付き円内アイコン
- すべてに
text-align: center - すべての要素に均一なバブリーな border-radius
- 装飾的なブロブ、波状の SVG 区切り線
- デザイン要素としての絵文字
- カードのカラー左ボーダー
- 汎用的なヒーローコピー(「Welcome to X」、「Unlock the power of...」)
- 型通りのセクションリズム(ヒーロー → フィーチャー → testimonials → プライシング → CTA)
3つ以上のパターンが検出された場合、「AI スロップリスク」としてフラグし、具体的な修正を提案。
レイヤー 5: AI ビジュアル差分
design.png と impl-desktop.png の両方を LLM に渡して比較。具体的に確認:
- 階層は一致しているか?
- 間隔の比率は維持されているか?
- 欠落しているセクションや要素はないか?
リファインメントループ
検証後、反復:
- ユーザーにスクリーンショットと差分結果を表示
- ユーザーがフィードバックを提供
- ピンポイント編集を適用(ファイル全体を再生成しない)
- 再検証
- 「完了」まで繰り返す(最大10ラウンド)
design.md のヒント
- テンプレート: Google 公式スキルリポジトリからエージェント最適化テンプレートを取得
- 転送: design.md を任意のエージェント(Claude Code、Cursor)に渡して一貫したスタイリングを実現
- 抽出: Google の「design MD スキル」を使用して、既存の Stitch プロジェクトから design.md を抽出
- カスタム: 独自の design.md を色/フォント/テーマで作成し、Stitch のデザインシステムパネルに貼り付け
既知の問題
- API キー認証が動作しない — Stitch API は API キーを拒否。OAuth を使用する必要があります(2026年2月にコミュニティ確認済)
doctorのフェッチタイムアウト — ネットワーク依存。直接 curl テストの方が信頼性が高い- 請求は不要 — Stitch API は請求が有効になっていないプロジェクトでも動作
- 実験モードでは Figma エクスポート不可 — Figma エクスポートは標準モードのみ対応