mcpField
S
shopify-multi-store

shopify-multi-store

ローカル
github.com/alex-brecherビジネス・マーケティング55 日前に更新

shopify-multi-store について

複数のShopify Adminストアを管理するチーム向けのMCPサーバーです。ストア横断レポートと確認付き更新に対応し、ローカルまたはチーム用サーバーとして運用できます。各ユーザーのShopifyスタッフ権限が適用されます。

主な機能

  1. 011つのセッションで複数ストアに接続
  2. 02商品、在庫、注文の横断レポート
  3. 03複数ストアへの読み取り専用GraphQLクエリ
  4. 04更新ごとに明示的な確認を要求
  5. 05OSの資格情報ストアにシークレットを保存
  6. 06Shopify Adminのガイド付きワークフロー

活用シーン

  1. 01ストア間の商品カタログと価格の比較
  2. 02在庫不足やストア間の在庫差の発見
  3. 03未発送注文の集計とSLA超過の確認
  4. 04確認後に指定ストアを更新

MCP 対応

Shopify Adminのストアデータと操作ツールをMCPクライアントに公開し、ローカルstdioとリモートサーバー接続に対応します。各ストア操作にはエイリアスが必要で、更新は単一ストアを対象とし、明示的な確認を求めます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"alex-brecher-shopify-multi-store": {
"command": "npx",
"args": [
"-y",
"shopify-multi-store-mcp-server"
]
}
}
}
起動コマンドnpx -y shopify-multi-store-mcp-server

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmshopify-multi-store-mcp-server2.0.3

ツール

29

掲載時のツール一覧 · 5 日前に更新

パラメーター型必須説明
storestringはい
type_namestringはい

詳細

Shopify Multi-Store MCP

1 つの MCP サーバーで、すべての Shopify ストアに対応します。

Claude、ChatGPT、Codex、Cursor、VS Code、その他の MCP クライアントから、複数の Shopify ストアを横断して検索、比較、レポート作成を行い、保護された更新を実行できます。

1 つの MCP サーバーを複数の EC ストアに接続

CI npm version npm provenance Node.js 20+ MCP ready License: MIT

デモ · クイックスタート · レポート · AI クライアント · セキュリティ

バージョン 2.0

ローカルで実行することも、チーム向けに 1 つのサーバーをホストすることもできます。各ユーザーが自分の Shopify スタッフアカウントでサインインし、Claude、ChatGPT、Codex、または任意のリモート MCP クライアントから接続します。各ユーザーが実行できる操作は、Shopify 独自のスタッフ権限によって決まります。ガイド付きの Admin ワークフロー、ShopifyQL レポート、スキーマ検証、あらゆる Admin ミューテーションに対応する汎用アクション機能を備えています。 機能の網羅状況と受け入れ要件をご覧ください。 Shopify と ChatGPT の完全な互換性はまだ検証されていません。

動作を見る

複数の Shopify ストアのヘルスチェックと商品検索を行うターミナルデモ

このデモでは、サンプルストアとサンプルデータを使用しています。サーバーは、実際の各ストアの認証情報を個別に保持します。

クイックスタート

サーバーをインストールし、ストアを接続して、ヘルスチェックを実行します。

npm install --global shopify-multi-store-mcp-server
shopify-multi-store setup
shopify-multi-store doctor

Claude Code ユーザーは、次の 1 つのコマンドでサーバーを追加できます。

claude mcp add shopify-multi-store -- npx -y shopify-multi-store-mcp-server start

各ストアには固定のエイリアスと個別の安全な認証情報が割り当てられます。ストアに対するすべての操作で、そのエイリアスが必要です。

利用できる機能

機能結果
複数のアクティブなストア1 つの AI との会話で、すべての Shopify ストアを利用できます。
ストア横断レポート商品を検索し、カタログを比較し、在庫不足を見つけ、フルフィルメント SLA 違反をレポートできます。
並列 GraphQL最大 100 のストアを対象に、読み取り専用クエリを 1 つ実行できます。
保護されたミューテーション1 つのストアを対象とし、更新ごとに明示的な確認を渡します。
安全な認証情報macOS Keychain、Windows Credential Manager、または Linux Secret Service を使用します。
ポータブルなスキルClaude、Codex、Cursor、その他の互換性のあるエージェントをガイドします。

このサーバーとShopify Dev MCP

この2つのサーバーは、それぞれ異なる課題を解決します。エージェントがShopifyの参考資料とストアへのアクセスの両方を必要とする場合は、両方を使用してください。

機能Shopify Multi-Store MCPShopify Dev MCP
主な目的接続されたShopify Adminストアを操作します。Shopify開発者向けリソースを検索します。
ストアデータ設定済みのストアを読み取り、比較します。Shopify Adminストアデータには接続しません。
複数ストア1つのセッションで名前付きストアをアクティブに保ちます。ストアポートフォリオの操作向けには設計されていません。
レポートすぐに使える運用レポートとカタログレポートを提供します。開発者向けドキュメントとAPIスキーマを提供します。
更新選択した1つのストアに対して、ガード付きの変更操作を実行します。ストアに対するAdmin APIの更新は実行しません。
認証ストアごとに個別の認証情報を使用します。認証は不要です。

Shopify Dev MCPは、エージェントによるShopifyコードの作成や調査を支援します。このサーバーは、選択したストアに対して承認済みの操作を実行します。

すぐに使えるレポート

shopify_reportは、選択したストア全体に対して1つの読み取り専用レポートを実行します。reportには次のいずれかを指定します。

レポート目的
portfolio_snapshot商品、注文、顧客、通貨、プラン、ストアの識別情報を要約します。
order_summary注文金額、割引、税金、配送料、キャンセル、ステータスを要約します。
customer_growth同じ期間における新規顧客数を比較します。
get_product_everywhereすべてのストアから、完全一致するSKUまたはハンドルを1つ検索します。
compare_inventory選択したSKUの在庫数をストア間で比較します。
low_stock_report在庫が少ない商品と、ストア間での移送の候補を見つけます。
compare_prices完全一致するSKUの価格と比較価格の違いを明らかにします。
duplicate_sku_reportストア内で重複しているSKUと、ストア間で共有されているSKUを見つけます。
list_unfulfilled_orders選択したストア全体の未処理のフルフィルメント業務を一覧表示します。
fulfillment_sla_reportフルフィルメントが遅れている注文を見つけ、経過時間別に表示します。
compare_catalogハンドル、ステータス、ベンダー、タイプ、バリエーションごとに商品を比較します。
catalog_gap_report欠落している商品や、ステータスが異なる商品を見つけます。
catalog_health販促情報、SEO、メディア、代替テキスト、在庫データの欠落を見つけます。
recent_product_changes選択した期間内に更新された商品を一覧表示します。
compare_collectionsハンドルごとにコレクションの内容と設定を比較します。
store_locationsロケーション、フルフィルメント、在庫、住所のカバー状況を確認します。
analytics各ストアでShopifyQLクエリを1つ実行し、チャートのヒントを付けます。read_reportsが必要です。

ストア間で商品を検索するには、resource: "products"とstoresを指定してshopify_searchを使用します。

次のようなプロンプトを試してください。

  • 「接続されているすべてのストアのポートフォリオスナップショットを表示してください。」
  • 「過去30日間の注文と現在の注文金額を要約してください。通貨は分けてください。」
  • 「小売店と卸売店全体で、在庫が少ない商品、在庫切れの商品、在庫数がマイナスの商品を表示してください。」
  • 「このストアでは在庫切れですが、別のストアでは在庫がある商品を表示してください。」
  • 「すべてのストアからSKU A123を見つけ、ステータス、価格、在庫を比較してください。」
  • 「すべてのストアで、プロテイン関連の商品を検索してください。」
  • 「経過時間別に、2日以上前の未処理の注文を表示してください。」
  • 「あるストアでは公開中ですが、別のストアでは欠落しているか下書きになっている商品を見つけてください。」
  • 「これらのストアの価格差と重複SKUを見つけてください。」
  • 「小売店と卸売店全体で、SKU A123とB456の在庫を比較してください。」
  • 「3つのストアについて、過去7日間の未処理の注文を一覧表示してください。」
  • 「カタログの健全性を監査し、SEOまたはメディアデータが欠落している商品を表示してください。」
  • 「これらのストアの公開中のカタログと注目のコレクションを比較してください。」

AI クライアントを接続する

このサーバーは、ローカルの stdio MCP サーバーに対応したクライアントで動作します。クライアントがエージェントスキルに対応している場合、ツールの選択が改善されます。

Claude Code

MCP サーバーを追加します:

claude mcp add shopify-multi-store -- npx -y shopify-multi-store-mcp-server start

付属のスキルを個人用にコピーします:

mkdir -p ~/.claude/skills/shopify-multi-store
cp skills/shopify-multi-store/SKILL.md ~/.claude/skills/shopify-multi-store/SKILL.md
Claude Desktop and Cursor

このサーバーをクライアントの MCP 設定に追加します:

{
  "mcpServers": {
    "shopify-multi-store": {
      "command": "npx",
      "args": ["-y", "shopify-multi-store-mcp-server", "start"]
    }
  }
}
VS Code

このサーバーを .vscode/mcp.json に追加します:

{
  "servers": {
    "shopify-multi-store": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "shopify-multi-store-mcp-server", "start"]
    }
  }
}
Other LLM clients

コマンドに npx、引数に -y shopify-multi-store-mcp-server start を指定します。

対応している場合は、skills/shopify-multi-store/SKILL.md をクライアントのスキルディレクトリにコピーします。スキルに対応していないクライアントでも、すべての MCP ツールを利用できます。

チーム向けにホストする

自分のコンピューターでローカルに使う方法(上記)が標準です。ホスティングは任意です。共有サーバーが必要な人がサーバーを実行し、チームは、どのプランでも、普段使っている AI アプリ(Claude(個人用カスタムコネクター)、ChatGPT、Codex、Claude Code、Cursor、VS Code、Gemini CLI、Windsurf、またはリモートサーバーに対応した任意の MCP クライアント)から接続できます。

各自が自分の Shopify スタッフアカウントでサインインし、すべての呼び出しはその人自身の Shopify 権限で実行されます。サーバー上にロールやポリシーファイルは必要なく、各自ができる操作は Shopify が決定します。Shopify のトークンはサーバー上で暗号化されて保管されます。再接続は最大でも1日に1回で、すべてのストアをワンクリックで再接続できます。すべてのツール呼び出しは監査されます。

共有サーバーを必要とする人がセルフホストする方法は2つあります。

  • Cloudflare Workers:Cloudflare にデプロイ 手順については、docs/DEPLOY-CLOUDFLARE.md をご覧ください:Shopify アプリを作成し、4つのシークレットを設定してデプロイし、AI アプリに MCP URL を追加します。
  • 任意のサーバー:shopify-multi-store serve(または付属の Dockerfile)を実行し、https://<host>/mcp を共有します。

クライアントごとの手順はAI アプリから接続する、セットアップは docs/HOSTED.md、ユーザーごとのアクセスと汎用アクションツールについては docs/ACTIONS.md をご覧ください。

ストアの認証

方法コマンド最適な用途
Admin API アクセストークンshopify-multi-store setupストア管理画面ですでに作成したカスタムアプリの shpat_ トークンを使う場合。
クライアント認証情報shopify-multi-store oauthアプリと同じ Shopify 組織内のストアにインストールされた Dev Dashboard アプリを使う場合。
認可コードshopify-multi-store oauthその組織外のストアにインストールされた Dev Dashboard アプリを使う場合。

認可コードのセットアップでは http://127.0.0.1:3456/oauth/callback を使用します。先に、許可されたリダイレクト URL として追加してください。

認可コードのデフォルトのスコープは読み取り専用です。タスクに必要な Admin API スコープのみを付与してください。

最初のストアを接続する

各ストアには、エイリアス(main のような小文字、数字、ハイフン)と、ストア管理画面の「設定」>「ドメイン」に表示される固定の *.myshopify.com ドメインが必要です。認証情報は、Admin API へのアクセス方法によって異なります。Shopify では現在、新しいアプリは Dev Dashboard で作成します。ストア管理画面で作成したカスタムアプリは、すでに存在する場所で引き続き動作します。

Dev Dashboard アプリの場合(新規セットアップ):

  1. Dev Dashboard(dev.shopify.com)を開き、「Apps」>「Create app」を選択して、名前を付けます(例:「Multi-Store MCP」)。
  2. バージョンを作成します。「Access scopes」で必要なスコープを追加します。read_products,read_orders,read_inventory,read_locations,read_customers で読み取りツールを利用できます。ツールの全機能を利用する場合は、node "$(npm root -g)/shopify-multi-store-mcp-server/scripts/print-scopes.mjs" --full を実行して全リストを表示し、アプリで承認されていないスコープを削除してください。認可コード方式を使う場合は、リダイレクト URL http://127.0.0.1:3456/oauth/callback も追加します。
  3. バージョンをリリースしてから、Dev Dashboard でストアにアプリをインストールし、スコープを承認します。
  4. アプリの設定からクライアント ID とクライアントシークレットをコピーします。
  5. shopify-multi-store oauth を実行します。ストアがアプリと同じ Shopify 組織内にある場合は client-credentials を選択し、それ以外の場合は authorization-code を選択します(承認用のブラウザーウィンドウが開きます)。エイリアス、*.myshopify.com ドメイン、クライアント ID、クライアントシークレットを入力します。クライアント認証情報を使う場合、サーバーがトークンを自動で取得・更新します。

ストア管理画面で作成したカスタムアプリの場合:

  1. ストア管理画面で「設定」>「アプリ」(一部の管理画面では「アプリと販売チャネル」)>「アプリを開発」を開き、アプリを選択します。管理画面で引き続き作成できる場合は、そこでアプリを作成できます。
  2. 「設定」で、Admin API に必要なスコープを設定し、アプリをインストールします。
  3. 「API 認証情報」で、Admin API アクセストークンを表示します(shpat_ で始まるトークンで、Shopify は一度だけ表示します)。
  4. shopify-multi-store setup を実行し、エイリアス、*.myshopify.com ドメイン、トークンを入力します。

次に shopify-multi-store doctor を実行してすべてのストアを確認し、追加するストアごとに同じ手順を繰り返します。シークレットはオペレーティングシステムの認証情報ストアに保存され、設定ファイルには保存されません。

ストアを管理する
shopify-multi-store list
shopify-multi-store doctor
shopify-multi-store remove store-alias
既存の stores.json ファイルをインポートする
shopify-multi-store import /absolute/path/to/stores.json

インポートすると、認証情報がオペレーティングシステムの認証情報ストアにコピーされ、設定済みのストアはそのまま保持されます。インポートを確認した後、古い認証情報ファイルを削除してください。

## MCP ツール

サーバーは29個のツールを公開しています。

ツール操作
shopify_list_stores設定済みのストアエイリアスを一覧表示します。
shopify_get_shop_info1つのストアの識別情報を読み取ります。
shopify_check_access1つまたは複数のストアについて、許可されたスコープと、失敗するツールまたはリソースを表示します。
shopify_report複数ストアにまたがるレポートを実行します(上記を参照)。
shopify_search1つまたは複数のストアの商品、コレクション、注文、顧客、販売チャネル、リダイレクト、ページ、ファイル、メタオブジェクト、マーケット、テーマ、配送プロファイルを一覧表示または検索します。
shopify_getIDを指定して、1つの商品、コレクション、注文、在庫、メタフィールドセット、テーマファイル、ブログ記事、アップロード済み画像、または一括操作を読み取ります。
shopify_update_prices1つまたは複数のストアで、最大250 SKUの価格、比較価格、単位原価を設定します。
shopify_set_inventory比較・設定による保護機能を使って、在庫数を設定します。
shopify_create_productオプション、バリエーション、画像を指定して商品を作成します。
shopify_update_product商品のフィールド、バリエーション、メディア、タグを更新します。
shopify_create_collection手動コレクションまたはスマートコレクションを作成し、選択したチャネルに公開します。
shopify_update_collectionコレクションを更新し、手動コレクションに商品を追加します。
shopify_create_discount割引率を指定したディスカウントコードを作成します。
shopify_upload_imageShopify Files に画像をアップロードします。
shopify_metafields任意のオーナーのメタフィールドを設定および削除します。
shopify_redirectsURLリダイレクトを作成および削除します。
shopify_tags商品、注文、顧客、または下書き注文のタグを追加および削除します。
shopify_update_order注文のメモ、メールアドレス、配送先住所、タグを更新します。
shopify_update_customer顧客のメモ、メールアドレス、タグを更新します。
shopify_create_fulfillment任意で追跡情報を指定して、注文の未処理のフルフィルメント注文を処理します。
shopify_find_actionsAdmin API のすべてのミューテーションを検索します。
shopify_describe_action1つのミューテーションについて説明します。
shopify_run_action1つまたは複数のストアで任意のミューテーションを実行します。
shopify_graphql_query読み取り専用の Admin GraphQL クエリを実行します。
shopify_graphql_query_many複数のストアに対して1つのクエリを実行します。
shopify_graphql_mutation正確な認可を得たうえで、1つのストアを変更します。
shopify_graphql_schemaAdmin GraphQL スキーマを調べます。
shopify_validate_graphql_codeblocksGraphQLを実行せずに検証します。
shopify_search_docs_chunksShopify ドキュメントを検索します。

読み取り専用の操作は並列で実行できます。ミューテーションは、選択したストアに限定されます。

すべてのガイド付き書き込みツールは、デフォルトで dryRun: true に設定されています。これにより、何も変更せずに変更前後(または作成予定)のプレビューを返します。ユーザーが対象のストアと変更内容を正確に承認した後、適用するには dryRun: false を指定してください。ツールはその後、結果を読み取って確認します。商品、注文、顧客のタグは addTags と removeTags で変更します。replaceTags はすべてのタグを置き換え、プレビューには削除予定のタグが一覧表示されます。書き込み結果がサイズを理由に破棄されることはありません。大きな結果は、ステータス、件数、適用されなかったすべての項目を残して切り詰められます。

shopify_graphql_mutation と shopify_run_action は拒否リストに登録されたミューテーションを拒否します。また、引数によってのみ破壊的となるもの(商品ステータスに ARCHIVED を指定する場合など)を含む破壊的なミューテーションでは、ミューテーション名を confirm に設定する必要があります。

汎用アクションツール

3つのツールで、Shopify Admin API のすべてのミューテーション(API 2026-04 では514件)にアクセスできます。これには、専用ツールがない483件も含まれます。

ツールアクション
shopify_find_actionsすべてのミューテーションをキーワードとカテゴリで検索し、破壊的なものと、専用ツールがすでにあるものを示します。
shopify_describe_action1つのミューテーションについて、引数、入力フィールド、ペイロード、編集可能なドキュメント、必要なスコープのヒントを表示します。
shopify_run_action1〜100個のストアで、ストアごとの変数を指定してミューテーションを実行します。デフォルトではドライランになり、操作対象となるすべてのレコード ID を解決します。破壊的なミューテーションでは、confirm にミューテーション名を設定する必要があります。

認証情報を発行するミューテーションや、アプリ自体の課金を変更するミューテーションは、拒否リストによってブロックされます。スコープ一式を取得するには、node scripts/print-scopes.mjs --full を実行してください。実用的な例や、サードパーティ製アプリではできないことについては、docs/ACTIONS.md を参照してください。

Shopify コンパニオンスキル

Shopify 公式の shopify スキルをインストールします。

shopify-multi-store install-shopify-skills

このコマンドは、検出したすべての対応エージェントにスキルをインストールします。エージェントを1つ選ぶには、--agent <name> を指定します。たとえば、--agent claude-code のように指定します。

shopify スキルは、ルーティングテーブルを備えた1つのスキルです。admin トピックでは、Shopify のドキュメントを検索し、カスタムの Admin GraphQL オペレーションを検証します。shopifyql トピックでは、売上、収益、注文、コンバージョン、トレンドを分析します。Shopify の toolkit 2.0.0 では、以前の shopify-admin スキルと shopify-shopifyql スキルがこの1つのスキルに統合されました。また、toolkit の ucp スキル(ショッピング用 CLI)は、このインストールには含まれません。

Shopify が再びスキルの名前を変更した場合、コマンドはステータス1で終了し、toolkit に含まれるスキルを表示して、名前を指定してインストールするための npx skills add コマンドを示します。何もインストールしていないのに成功を報告することはありません。

ストアの選択、認証情報、実行、ミューテーションの認可は、引き続きこのサーバーが管理します。Shopify のスキルスクリプトは、デフォルトで使用状況のテレメトリーを送信します。

テレメトリーを無効にするには、OPT_OUT_INSTRUMENTATION=true を設定してください。

この統合では、Shopify 公式の Shopify AI Toolkit を使用しています。また、Shopify Admin Skills の有用なパターンも取り入れています。

セキュリティモデル

シークレットがメインの設定ファイルに保存されることはありません。

プラットフォーム認証情報バックエンド
macOSKeychain
WindowsCredential Manager
LinuxSecret Service

設定には、エイリアス、ドメイン、API バージョン、シークレットではない OAuth クライアント ID が保存されます。デフォルトのパスは ~/.config/codex-shopify-multi-store/stores.json です。

パス内および認証情報ストアのサービス名として使われている codex-shopify-multi-store は、プロジェクトの初期バージョンから引き継がれた名前です。既存のインストール環境でストアと認証情報を引き続き利用できるよう、この名前を維持しています。このサーバーが Codex 専用であるという意味ではありません。

別の設定パスを使うには、SHOPIFY_MULTI_STORE_CONFIG を設定してください。

  • アクセストークン、OAuth クライアントシークレット、.env ファイル、認証情報を含む設定ファイルは、絶対にコミットしないでください。
  • タスクに必要な Shopify Admin API スコープのみを付与してください。
  • ミューテーションを実行する前に、必ず対象のストアを確認してください。
  • 脆弱性の報告については、SECURITY.md をお読みください。

Linux で認証情報を保存するには、GNOME Keyring や KWallet などの Secret Service プロバイダーが必要です。

その他のインストール方法

グローバルインストールせずにヘルスチェックを実行します。

npx -y shopify-multi-store-mcp-server doctor

GitHub から直接インストールします(npm はサーバーをビルドする prepare スクリプトを実行します)。

npm install --global github:alex-brecher/shopify-multi-store

開発

git clone https://github.com/alex-brecher/shopify-multi-store.git
cd shopify-multi-store
npm ci
npm test
npm run test:live
npm pack --dry-run

ライブテストでは、設定済みのストアを使用して、読み取り専用の Shopify Admin API 呼び出しを実行します。

ライセンス

MIT

changelog、貢献ガイド、セキュリティポリシー、ディレクトリへの登録ガイドをお読みください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。