Shopify Store MCPサーバー
公式のShopify Dev MCPが開発者ドキュメントとスキーマイントロスペクションを提供する一方、ストアMCPサーバーはShopifyストアのAdmin APIに直接接続します。AIツールが実際の操作 -- 商品の作成、注文の取得、在庫の管理、顧客の更新 -- をすべて自然言語で行えるようにします。
コミュニティによって構築された複数のMCPサーバーがストア接続性を提供しています。このガイドでは、最も成熟して広く使用されているオプションを説明します。
ストアMCPサーバーはShopifyストアに対して実際の操作を実行します。「すべての下書き商品を削除」というコマンドは実際に削除します。学習とテストの際は必ず開発ストアを使用してください。どの操作が実行されるかを正確に理解するまで、本番ストアを接続しないでください。
認証: アクセストークン vs OAuth
ストアMCPサーバーをセットアップする前に、2025年1月に大幅に変更されたShopifyの認証モデルを理解する必要があります。
カスタムアプリアクセストークン(レガシーおよび既存アプリ)
2025年1月以前に作成されたアプリ、またはShopify管理画面から作成されたカスタムアプリの場合:
- Shopify管理画面 > 設定 > アプリと販売チャネルに移動
- アプリを開発 > アプリを作成をクリック
- Admin APIスコープを設定(必要な権限を選択)
- アプリをインストールし、Admin APIアクセストークンをコピー
shpat_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
OAuth資格情報(2025年1月以降の新しいアプリ)
Shopifyは2025年1月から新しいパブリックアプリとカスタムアプリの直接アクセストークン作成を廃止しました。新しいアプリはOAuthクライアント資格情報を使用します:
- Shopifyパートナーダッシュボードでアプリを作成
- Client IDとClient Secretを記録
- OAuthフローを使用してアクセストークンを取得
- MCPサーバーがトークンの更新を自動的に処理
- カスタムアプリの開発ストア: アクセストークンを使用(シンプルなセットアップ)
- パートナーダッシュボード経由の新しいアプリ: OAuth資格情報を使用
- 保存されたトークンのある既存アプリ: 既存のアクセストークンを使用
ほとんどのMCPサーバーは両方の方法をサポートしています。特定のサーバーのドキュメントで設定オプションを確認してください。
GeLi2001によるshopify-mcp
ほぼすべてのAdmin API操作をカバーする70以上のツールを持つ、最も包括的なコミュニティMCPサーバーです。完全なストア管理に推奨される選択肢です。
リポジトリ: github.com/GeLi2001/shopify-mcp
Claude Code用インストール
claude mcp add shopify-store -- npx -- -y shopify-mcp --accessToken shpat_your_token_here --domain your-store.myshopify.com
claude mcp add shopify-store -- npx -- -y shopify-mcp --clientId your_client_id --clientSecret your_client_secret --domain your-store.myshopify.com
Cursor用設定
{
"mcpServers": {
"shopify-store": {
"command": "npx",
"args": [
"-y",
"shopify-mcp",
"--accessToken", "shpat_your_token_here",
"--domain", "your-store.myshopify.com"
]
}
}
}
利用可能な操作
サーバーはリソースタイプごとに整理されたツールを提供します:
商品(15以上のツール)
| ツール | 説明 |
|---|---|
get_products | フィルタリングとページネーション付きで商品を一覧 |
get_product | IDで単一商品を取得 |
create_product | バリアント付きで新しい商品を作成 |
update_product | 商品フィールドを更新 |
delete_product | 商品を削除 |
get_product_variants | 商品のバリアントを一覧 |
create_product_variant | 商品にバリアントを追加 |
update_product_variant | バリアント詳細を変更 |
get_product_images | 商品画像を一覧 |
upload_product_image | 商品に画像を追加 |
> Create a new product called "Organic Cotton T-Shirt" with sizes
S, M, L, XL. Price the small at $29.99 and add $2 for each
size up. Set inventory to 50 units per variant at our main location.
注文(10以上のツール)
| ツール | 説明 |
|---|---|
get_orders | ステータスフィルター付きで注文を一覧 |
get_order | ラインアイテム付きで単一注文を取得 |
create_fulfillment | 注文をフルフィルメント |
cancel_order | 注文をキャンセル |
create_draft_order | 下書き注文を作成 |
get_order_risks | 注文の不正リスクを確認 |
> Show me all unfulfilled orders from the last 48 hours with
their customer email and total value.
顧客(8以上のツール)
| ツール | 説明 |
|---|---|
get_customers | 検索付きで顧客を一覧 |
get_customer | 顧客詳細を取得 |
create_customer | 新しい顧客を作成 |
update_customer | 顧客情報を更新 |
get_customer_orders | 顧客の注文を一覧 |
search_customers | メール、名前などで検索 |
コレクション(6以上のツール)
| ツール | 説明 |
|---|---|
get_collections | すべてのコレクションを一覧 |
get_smart_collections | スマート(自動化)コレクションを一覧 |
create_collection | カスタムコレクションを作成 |
add_product_to_collection | コレクションに商品を追加 |
get_collection_products | コレクション内の商品を一覧 |
在庫(5以上のツール)
| ツール | 説明 |
|---|---|
get_inventory_levels | ロケーションでの在庫を確認 |
adjust_inventory | 在庫数量を調整 |
get_locations | ストアロケーションを一覧 |
set_inventory_level | 絶対在庫レベルを設定 |
ディスカウント(6以上のツール)
| ツール | 説明 |
|---|---|
get_price_rules | 価格ルールを一覧 |
create_price_rule | ディスカウントルールを作成 |
create_discount_code | ディスカウントコードを生成 |
get_discount_codes | 価格ルールのコードを一覧 |
ページネーションパターン
ShopifyのAPIはカーソルベースのページネーションを使用します。MCPサーバーがこれを処理しますが、パターンを理解することで効果的なリクエストが可能になります:
> List all products (I have about 500). Fetch them in batches
of 50 and compile the complete list.
MCPサーバーは裏で複数のページネーションAPI呼び出しを行い、pageInfo.hasNextPageに従い、後続のリクエストにendCursorを使用します。
MCPサーバーがページネーションを処理しても、数千のアイテムを取得するとトークンと時間を消費します。具体的にしてください:「全商品を一覧」より「最近更新された20商品を一覧」の方が、完全なカタログが不要な場合は適切です。
実践的なワークフロー
ワークフロー1: 商品カタログ監査
> Analyze our product catalog:
1. List all products with no images
2. Find products with variants that have $0 price
3. Identify products with no inventory at any location
4. List products without descriptions
Compile this into a report with product titles and IDs.
ワークフロー2: 注文調査
> A customer (email: customer@example.com) says they haven't
received their order. Look up their recent orders, check
fulfillment status, and summarize what I should tell them.
ワークフロー3: 一括操作
> Add the tag "summer-2026" to all products in the "Summer
Collection" collection. Also set a metafield
custom.seasonal = "summer" on each one.
ワークフロー4: 在庫照合
> Compare inventory levels between our "Main Warehouse" and
"Retail Store" locations. List any products where the total
across both locations is under 10 units.
セキュリティベストプラクティス
スコープの最小化
ワークフローに必要なスコープのみでアクセストークンを作成してください:
| ワークフロー | 最小スコープ |
|---|---|
| 商品管理 | read_products, write_products |
| 注文閲覧 | read_orders |
| 完全なストア管理 | read_products, write_products, read_orders, write_orders, read_customers, read_inventory, write_inventory |
「念のため」とすべてのスコープを付与する誘惑に抗ってください。MCPワークフローが注文の読み取りのみの場合、read_ordersのみを付与してください。MCPサーバーが侵害されたり誤用されたりした場合、制限されたスコープが被害を限定します。コミュニティが構築したサーバーを使用する場合に特に重要です。
トークンのローテーション
アクセストークンを定期的にローテーションしてください:
- 同じスコープで新しいカスタムアプリを作成
- 新しいトークンでMCPサーバー設定を更新
- 古いカスタムアプリをアンインストール
環境変数
バージョン管理にコミットされる設定ファイルにトークンをハードコードしないでください:
# シェルプロファイルに
export SHOPIFY_MCP_TOKEN=shpat_your_token_here
export SHOPIFY_MCP_DOMAIN=your-store.myshopify.com
# Claude Code MCP設定で
claude mcp add shopify-store -- npx -- -y shopify-mcp --accessToken $SHOPIFY_MCP_TOKEN --domain $SHOPIFY_MCP_DOMAIN
トラブルシューティング
「Unauthorized」エラー
- アクセストークンが正しく、取り消されていないことを確認
- トークンに操作に必要なスコープがあることを確認
- ストアドメインが正しいことを確認(
.myshopify.comドメインを使用)
レート制限
一括操作中にレート制限エラーが発生する場合:
> Retry the operation with a 500ms delay between API calls.
My store is rate-limited right now.
ほとんどのMCPサーバーはレート制限を自動的に処理しますが、非常に積極的な一括操作では制限に達する場合があります。
データの欠落
クエリが予期しない空の結果を返す場合:
- 商品/注文が期待されるステータス(アクティブ、下書き/アーカイブではない)であることを確認
- 日付範囲フィルターが正しい形式であることを確認
- アクセストークンがリソースタイプの
read_スコープを持っていることを確認
次のステップ
ストアデータアクセスが設定されたら、アナリティクスでワークフローをさらに強化できます。Analytics MCPに進んで、MCP経由でShopifyアナリティクスとレポートツールを接続する方法を学びましょう。