Store Builder について
Store Builder は、AI エージェントが Store Builder のページを編集し、実際の店舗データを結び付け、プレビューして公開するための stdio MCP サーバーです。ページ作成、メディア、テーマ、店舗フローを扱うツールを備え、API 操作インデックスからプラットフォーム機能にアクセスできます。
主な機能
- 01ページ構造の作成と編集
- 02コンテンツと店舗データの連携
- 03ページのレンダリングとスクリーンショット・不具合の確認
- 04メディア、テーマ、翻訳の管理
- 05ページ公開と公開結果の検証
- 06API 操作インデックスによる機能の実行
活用シーン
- 01店舗カタログデータから商品ページを作成
- 02ページレイアウトを確認して表示上の問題を修正
- 03テーマを更新してページを公開
- 04サイト構造を取り込んで下書きページを作成
MCP 対応
stdio MCP サーバーとして、AI エージェント向けに Store Builder サイトを操作する 38 個のツールを公開します。ページ設計、データ連携、プレビュー、公開を扱います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y sbuilder-mcpSB_APIBase URL of the Store Builder API. Defaults to http://localhost:8080.SB_TOKENシークレットAn API key from the store's Agent app (Apps → AI agent → Create key). Opens both the partner API and the private site API for that one store.SB_EMAILOptional. A platform account, only for account-level calls a key cannot make (listing sites, members, roles).SB_PASSWORDシークレットOptional. That account's password.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
37掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| string | いいえ | ||
| password | string | いいえ |
詳細
sbuilder-mcp
AI エージェントが Store Builder サイトを最初から最後まで操作できる MCP stdio サーバーです。ページをデザインし、実際のデータを入力し、結果を確認して、 公開まで行います。人がクリックする必要はありません。
インストール
1つのコマンドで、このサーバーをマシン上のすべてのエージェントクライアントに設定できます。
npx -y sbuilder-mcp install --token wbk_… --api https://your-host --site site_…
Claude Code、Claude Desktop、Cursor、Windsurf、VS Code、Codexに対応しており、見つかったクライアントにインストールします。--client cursor,codex で対象を指定するか、--dry-run で事前に確認できます。認識できないオプションは拒否され、無視されることはありません。何もしないフラグがひそかに存在するより、存在しないほうがよいからです。
--site は省略可能ですが、指定する価値があります。キーは1つのサイトにのみ属するため、SB_SITE として設定され、以降のすべてのツールでデフォルトとして使われます。指定しない場合、モデルはセッション中にサイトIDを保持する必要がありますが、そのIDを取得するにはページを一覧表示して、いずれかのページを読み込まなければなりません。
--site-name "Your Store" を指定すると、SB_SITE_NAME としてあわせて設定されます。これはラベルであり、アドレスではありません。これを使って何かが解決されることはありません。ただし、エージェントが、あなたが選んだものではない32文字のIDではなく、ストア名を伝えられるようになります。ストアに名前がある場合、Apps → AI agent 画面にこの値が追加されます。
これは設定をマージします。対象ファイル内の既存のサーバーはそのまま残り、置き換えられる設定は <file>.sbuilder-backup にコピーされます。解析できない設定ファイルは上書きせずに拒否します。破棄する価値のあるファイルより、末尾にカンマがあるファイルのほうがはるかに多く、修正が必要なのはそのファイルだからです。
ストアの Apps → AI agent 画面では、キーがあらかじめ含まれたこのコマンドを確認できます。
または、クライアントを手動で設定する
{
"mcpServers": {
"sbuilder": {
"command": "npx",
"args": ["-y", "sbuilder-mcp"],
"env": { "SB_API": "https://api.your-host", "SB_TOKEN": "wbk_…", "SB_SITE": "site_…" }
}
}
}
キーの取得
ストアを開き、Apps → AI agent に移動して、Create key を押します。この画面では、キーがあらかじめ含まれたクライアント用の設定ブロックを確認できます。このセクションを読む手間を省けます。
必要なのはキー1つだけです。パートナー向けエンドポイント(/api/v1)と、ページドキュメントやライブ編集ソケットを含む非公開のサイトAPIの両方にアクセスできます。また、リクエストごとに3つの条件で制限されます。キー自体のスコープ、作成者であるメンバーの現在のロール、そしてキーが属する単一のストアです。
SB_EMAIL と SB_PASSWORD は引き続き省略可能で、使えるのはアカウントレベルの呼び出しのみです。サイトの一覧表示、メンバーやロールの管理などが該当します。これらは「この人のアカウント」を対象とするため、キーでは意図的に実行できません。
SB_API のデフォルト値は http://localhost:8080 です。シークレットは環境変数からのみ読み込まれます。
sb_media_upload の写真検索に、このサーバーのキーは不要です。プラットフォーム独自の
GET /api/sites/{siteId}/images/search を呼び出し、サーバーがすでに保持している認証情報を使って、プロバイダーのキーをローテーションしながら検索します。運用者は、サーバー上で PEXELS_API_KEYS を設定して有効にします(カンマ区切り。無料のキーは https://www.pexels.com/api/ から取得できます)。キーが設定されていない場合、検索は「利用不可」と応答し、呼び出し元に独自の方法で写真を探してURLを渡すよう伝えます。その後、プラットフォームがサーバー側でURLから画像を取得します。このクライアントには、意図的に代替プロバイダーを設けていません。代替プロバイダーを設けると、プラットフォームが預かるためのキーを、すべてのインストール環境に持たせることになるからです。
ツール
| ツール | 機能 |
|---|---|
sb_connect | ログインし、このアカウントで操作できるサイトを一覧表示し、利用可能な認証情報を報告します |
sb_site_list | このアカウントで操作できるサイトを一覧表示します |
sb_api_find | 意図から API オペレーションを検索し、一致するものを1行ずつ表示します。その後、IDを指定して1つのオペレーションの呼び出し情報を取得します。実際のパラメータースキーマ、必要な認証情報、本文のフィールドをデコードするハンドラーから読み取った内容が、それぞれ対応するドキュメントコメントに記録された注意点とともに表示されます |
sb_api_call | オペレーション、またはメソッドとパスで指定した任意のルートを実行します。デフォルトではドライランです。フィールド選択(ドット区切りパス。リストや単一オブジェクトの書き込み結果に対応)とローカルでの結果ページネーションに対応しています。レコード全体をPUTする場合のmerge、If-Match、マルチパートのfileにも対応しています |
sb_page_open | 編集用にページを開いてアウトラインを返します。または、form_idを指定するとフォームのフィールド定義(フィールド、デフォルト値、依存フィールドのルール)を返します |
sb_outline | 開いているページを圧縮ツリー形式で表示します。生のドキュメント全体を出力することはありません。共有ヘッダー/フッターとオーバーレイはそれぞれ1行で表示されますが、chrome: trueの場合は除きます |
sb_node_read | 1つのノード全体を表示します。共有グローバルの場合は警告を付けます |
sb_catalog_search | プラットフォーム独自のAIヒントを使い、実現したい動作から要素を検索します |
sb_traits_for | 要素のインスペクター情報(タブ、グループ、コントロール、および各コントロールが書き込む内容)に加え、AIヒント、デフォルト値、包含ルールを表示します |
sb_add | 1回の呼び出しで要素、または入れ子になったサブツリー全体を追加します。フィルターの場合は、カタログから取得したオプション行も含まれます |
sb_set | スタイル、設定、特殊項目を書き込みます。デフォルトではブレークポイントごとに設定します |
sb_move | ノードを別の親に移動します |
sb_remove | ノードとそのサブツリーを削除します |
sb_duplicate | ノードとそのサブツリーを新しいIDで複製し、元のノードの直後に配置します。または、エディターのコピー/貼り付けと同様に、別のページやサイトへ複製します(アセットはコピーされ、移動できない参照は一覧表示されます) |
sb_templates | ストアに保存されたセクションテンプレートと、組み込みレイアウト(ヒーロー、機能紹介3点、統計、FAQ、CTAバンド、商品棚、カテゴリー帯、ブランド一覧、信頼性バンド)を表示します。ページ固有のトークンに基づいて構成されます |
sb_template_use | セクションテンプレートをページに追加します |
sb_page_list | サイト内のすべてのページを表示します |
sb_page_create | ページを作成します。ストアタイプの場合、エディター独自の初期ドキュメントが用意されます。typeには、チェックアウト、商品、カテゴリー、投稿、コースのルートを指定します |
sb_page_update | ページ名、スラッグ、ホーム設定、順序、SEO(タイトル、説明、Open Graph、robots、メタタグ、JSON-LD)、会員限定設定を編集します。settingsにマージされるため、指定されていないキーは維持されます。テンプレートページの場合は、そのタイプのデフォルトに設定するか、そのテンプレートで表示する商品/カテゴリー/投稿を選択します |
sb_page_version | プラットフォームのページ復旧ポイントを管理します。名前付きバージョンと自動保存履歴の一覧表示、下書きのスナップショット作成、バージョンの復元ができます |
sb_code | サイトのカスタムコードファイル(トラッキングピクセル、分析、チャットウィジェット、サイトCSS。html/css/js/scss/tsはページに挿入され、json/textは/_wb/code/<name>で配信されます)を、全ページまたは特定ページについて管理します。一覧表示、作成、マージ更新、削除ができます。scss/tsは書き込み時にコンパイルされ、compile_errorが報告されます |
sb_function | サイトのバックエンド関数を管理します。サイトの封印済みシークレット、コレクション、fetchを利用して配信されるサーバーサイドのTypeScript/JavaScriptです(_で始まるスラッグはインポート可能なモジュールです)。一覧表示、読み取り、作成、マージ更新、削除、テスト実行(月間クォータに加算されます)、実行ログの確認、今月の使用量の確認、書き込み専用シークレットの管理ができます。ビルド失敗時はcompile_errorが報告されます |
sb_publish | 下書きをコンパイルして公開ページに反映します(共有グローバルにも連鎖して反映されます)。公開されたリビジョンを報告し、verifyを指定するとオリジンで配信されていることを確認します。未公開の下書きがある他のページと、一度も公開されていないページも一覧表示します(publish_draftsを指定すると両方を公開します) |
sb_page_state | ページの3つのコピー(エディターキャンバスに表示されるDRAFT、ストアフロントで配信されるPUBLISHED行、このセッションのコピー)がどれかを示します。また、エディターがキャンバスを空白で表示するかどうかと、復旧ポイントの場所も表示します |
sb_page_repair | 古いシードデータによって残された、ルート名がROOTではないページを改名し、すべてのエディタービルドで描画できるようにします。1ページまたはサイト全体に対応します |
sb_review | 訪問者に見えるすべての不具合と、それぞれの修正方法を表示します。また、このストアで注文を受け付けるために不足している5つの項目も表示します |
sb_media_list | サイトのメディアライブラリを表示します |
sb_media_upload | 画像を追加してURLを取得します。ローカルパス、プラットフォームが取得するURL、または実際の写真を検索して選べるSEARCHを指定できます。1枚ずつでも複数枚まとめてでも追加できます。pathsを使うと、1回の呼び出しで複数のローカルファイルをアップロードできます |
sb_live_join | エディターのライブ編集ルームに表示される参加者として参加します。以降の編集はリアルタイムで反映されます |
sb_look | スクリーンショット、測定したノードのボックス、レンダリング結果から測定したレイアウトの不具合を保存、レンダリングして返します |
sb_event | ノードにクリック時のアクションを設定します(カートを開く、ページへ移動する、ポップアップを開くなど) |
sb_bind | ノードのコンテンツを実際のストアデータにバインドするか、ボタンで商品をカートに追加できるようにします |
sb_import | 任意の公開URLからページを読み取り、その構造とコンテンツを実際の要素として開いているページに追加します。スタイルにはこのページ固有のトークンを使います。複製ではなく、翻訳です |
sb_import_site | 1つのURLからサイト全体を読み取ります。サイトマップ、またはそのページ上のリンクをもとに各ページを見つけ、このサイトのトークンを使って、それぞれに独自の下書きページを作成します。エントリーページ独自の色と文字スケールもこのサイトのテーマに適用されるため、単なる読み取り専用ではなくなります |
sb_theme | サイトのカラーパレットと文字スケールを読み取るか、変更します。すべてのスタイルプリセットが参照するレイヤーのため、1つのトークンで全ページの見た目を変更できます。ブレークポイントごとのテキストスタイルの上書きと、要素スタイルのpresetsにも対応しています。localeでサイトの言語を設定します |
sb_translate | エディターの多言語パネルと同じ方法でサイトを翻訳します。言語の有効化、ページ内文字列の未翻訳/翻訳済み/更新が必要なものの一覧表示、翻訳の書き込みや機械翻訳、機械翻訳行の承認ができます |
sb_store | 固定の順序で実行する必要があるストアのワークフローを実行します。checkout(動作するチェックアウトを作成する4つの書き込み)、checkout_sync(ストアの現在の決済方法と配送方法を既存のすべての注文フォームに反映し、チェックアウトページを再公開)、form(独自のフィールド定義を持つプラットフォームの17種類のテンプレートのいずれか)、chrome(実際のサイトメニュー上に共有ヘッダーまたはフッターを1つ作成。ホームにリンクされたサイト名、デスクトップメニュー、モバイルドロワー、検索、カート、アカウントの各アイコンを含む)、menu(サイトのメニューにバインドされたメニューノードと、解決済みのリンク)、overlay_attach(開いているページにポップアップまたはクイックビューを追加)、cart(サイトにカートドロワーがない場合に追加。relocalizeを指定すると既存のものをサイトの言語に変更)、app(組み込みアプリと、そのアプリに必要なページ)に対応しています。また、global_attach/global_detach(既存の共有セクションを開いているページに追加、またはページから削除)、global_promote(ページ上のセクションを新しい共有セクションに設定)、template_save(セクションを再利用可能なテンプレートとして保存)にも対応しています |
sb_undo | このセッションの書き込みを元に戻す/やり直します。ページとフォームの編集、およびsb_api_callのPUTを対象とし、それぞれツール名と対象名で識別できます。デフォルトでは開いているページが対象です(all: trueを指定するとすべてのページが対象です)。他の人が保存しているページは元に戻せません。このプロセスの終了後も、プラットフォームのバージョンと履歴(sb_page_version)は保持されます |
38 個のツール、949 件の API 操作(441 件の書き込みのうち354件は、ハンドラーから読み取ったボディ形式を持ちます)、124 個の要素、96 個のバインディングソースを備えています。sb_api_find | |
はエンドポイントごとにツールを用意するのではなく、インデックスとして機能するため、ツール一覧は短いまま、プラットフォームでできることすべてにアクセスできます。プラットフォームに操作が追加されると、次の npm run codegen で反映されます。 |
すべての結果はコンパクトな JSON 形式で、各ディレクティブはプロセスごとに一度だけ通知され、すべてのツールに MCP アノテーションが付いています。それらを尊重するクライアントは、読み取りのたびに人へ確認を求めることがなくなります。
全リファレンス:docs/tools.md。ビルダーが標準でサポートする機能と、その範囲外となる部分については、docs/capabilities.mdをご覧ください。
同期の仕組み
プラットフォームは、生成されたコミット済みのアーティファクトを2つ公開します。ビルドステップでチェックアウトからこれらを読み取り、カタログを生成します。
WB_REPO=/path/to/web_builder npm run codegen
そのため、このリポジトリはプラットフォームのコードをベンダーとして取り込まず、仕様が維持されている2つのデータファイルに依存しています。src/catalog/api.generated.tsはコミット済みなので、npm installにチェックアウトは必要ありません。
開発
npm run build # tsc -> dist/
npm test # vitest
npm run smoke # offline self-test; must print ALL GOOD
コントリビューターガイド:CLAUDE.md。設計の根拠:
docs/superpowers/specs/。
リリース
src/**に変更を含むmainへのプッシュは単独でリリースされます(.github/workflows/auto-release.yml)。ゲートでビルド、テスト、スモークテストが実行され、バージョンの更新内容はコミットの件名から判断されます。featはマイナー、BREAKING CHANGEまたは!はメジャー、それ以外はパッチです。Claudeが両言語で変更履歴を作成し、server.jsonを同期したうえで、chore(release): vX.Y.Zとしてリリースをコミットしてタグ付けし、その後、npm、GitHub Release、GitHub OIDC経由のMCP Registryに公開します。workflow_dispatchでは、選択した更新内容で同じフローを実行します。件名にchore(release):またはrelease: vを含むコミットはスキップされるため、リリースが次のリリースを引き起こすことはありません。
このワークフローには、prod環境のリポジトリシークレットが2つ必要です。NPM_ACCESS_TOKENとCLAUDE_CODE_OAUTH_TOKENです。レジストリのステップにシークレットは不要です。
npm run release(scripts/release.mjs)はオフライン用の手順です。CIのないマシンや、シークレットのローテーション中にリリースを作成する場合に使います。同じゲートを実行し、同じ## [x.y.z] - date形式の変更履歴見出しを書き込むため、2つの方法で食い違うことはありません。
安全な設計
クライアントが知らなければひそかに失敗するプラットフォームのルールが5つあるため、注意事項ではなく、テスト済みのコードとしてここに実装しています。
- バンドの順序 — ROOTの子要素は
[header][middle][footer]の順に並ぶ必要があります。そうでない場合、プラットフォームはすべての保存を拒否します。 - サイトオーバーレイ(カートドロワー、ポップアップ)は読み取り時にROOTへ合成され、書き込み時に除外されます。ROOTレベルのすべてのルールの対象外であり、ページツールから編集することはできません。
- グローバルセクションは共有マスターです。1つを編集すると、それを含むすべてのページが変わり、公開も連鎖します。これらに触れる結果には、その旨が示されます。
- 標準でレスポンシブ —
sb_setはブレークポイントごとに書き込みます。デザインは画面に応じて変化するべきだからです。ベースはカスケードのフォールバック層であり、制約ではありません。 - アプリブロック — マーケットプレイスアプリのサブツリーは読み取り時にページへ合成され、保存時には1つの参照ノードに戻されるため、内部を編集しても何も通知されず変更が失われます。すべての書き込みで内部への変更が拒否され、アウトラインではブロックのルートに
app: trueのフラグが付きます。
状況
3つのフェーズすべてをリリース済みです。認証とAPI全体へのアクセス、ページドキュメント・パッチプロトコル・ビルダーと5つの落とし穴、ライブ編集ソケット・yieldルール・ビジョンループです。その後、すべての結果のトークン消費量を削減し、リリースを自動で作成する仕組みを追加しました。
Node ≥22(グローバルのWebSocket)が必要です。また、sb_lookのみシステムにインストールされたGoogle Chromeが必要です。playwright-coreにはブラウザーが含まれていないため、インストール時にダウンロードは発生しません。
MIT。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。