Shopify Admin MCP について
Shopify Admin MCPは、Admin GraphQL APIを通じて単一のShopifyストアを参照・管理するAIアプリ向けMCPサーバーです。ストアデータの確認と対応する変更のためのツールを備え、変更エラーやAPIコストも返します。
主な機能
- 01ストア、商品、注文、顧客、ロケーション、割引の参照
- 02商品と基本的な割引コードの作成
- 03商品項目、バリアント価格、在庫の更新
- 04返金・再入庫の指定による対象注文のキャンセル
- 05任意のAdmin GraphQLリクエストの実行
- 06変更エラーとGraphQLコストの報告
活用シーン
- 01最近の注文と在庫のある商品の確認
- 02バリアント価格の変更や在庫数の設定
- 03基本的な割引コードの準備と作成
- 04注文の確認や対象注文のキャンセル
MCP 対応
16個の専用ツールと任意のGraphQLリクエストツールをMCPクライアントに公開します。Admin GraphQL APIを介して、設定済みの単一Shopifyストアに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y mcp-shopify-adminSHOPIFY_STORE_DOMAINPermanent store host, e.g. my-store.myshopify.com (a bare store name works too).SHOPIFY_ACCESS_TOKENシークレットReady-made Admin API access token (legacy apps created before 2026-01-01). Alternative to the client id/secret pair.SHOPIFY_CLIENT_IDClient id of a Dev Dashboard app; with the secret the server mints and refreshes its own token.SHOPIFY_CLIENT_SECRETシークレットClient secret of that app. Treat it as a secret.SHOPIFY_API_VERSIONAdmin API version: a quarterly YYYY-MM release or unstable.SHOPIFY_API_BASEFull http/https URL of the GraphQL endpoint, replacing host and version (e.g. a local mock).SHOPIFY_TIMEOUT_MSPer-request timeout in milliseconds.SHOPIFY_MAX_RETRIESRetries on THROTTLED/429 (always) and on 5xx / network errors for reads only.SHOPIFY_TOKEN_LEEWAY_SECONDSシークレットRe-mint the token this many seconds before it expires.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
16掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
Shopify Admin MCP
英語 | Русский
A1 Shopify Admin MCP は、Admin GraphQL API を通じて AI アプリケーションを 1 つの Shopify ストアに接続します。商品、注文、顧客、在庫、割引、ショップデータについて自然な言葉で質問すると、アシスタントがサーバーの既成ツールを使って結果を表示します。
- サーバーごとに 1 つのストア。 ストアのドメインと認証情報は設定から取得されます。ツールで別のストアに切り替えることはできません。
- トークンは常に最新です。 Shopify Dev Dashboard アプリのクライアント ID とシークレットをサーバーに渡すと、サーバーが Admin API トークンを自動発行してメモリ内だけに保持し、有効期限の 24 時間前に再発行します。以前のカスタムアプリで発行した既成トークンも使用できます。
- 用途を絞った 16 個のツール。 ショップデータ、商品、注文、顧客、ロケーション、在庫、割引を読み取り、対応するレコードを作成または更新できます。
- GraphQL のエラーを通知します。 Shopify はミューテーションの失敗時に HTTP 200 を返すことがあるため、サーバーは
userErrorsを確認し、空または不正な GraphQL レスポンスを拒否します。 - コストを意識したレスポンス。 各結果には GraphQL のコストバケットが含まれ、リクエストのコストと次の呼び出しに現在利用できるポイントを確認できます。
- リスクを明確に表示します。 読み取りは読み取り専用です。商品、価格、在庫、割引の書き込みは明示され、注文のキャンセルと任意の GraphQL は破壊的操作として表示されます。
まずは読み取り専用のリクエストから始めましょう。
最新の注文と、現在在庫のある商品を表示してください。
サーバーに接続する · ユースケースを見る · 技術ドキュメントを開く
1 分で動作を確認
あなた: 最新の注文と、現在在庫のある商品を表示してください。
アシスタント: 最近の注文をステータスと合計金額とともに表示し、その後、価格と在庫を含む商品を表示します。変更は行われません。
あなた: 2 週間有効な
SUMMERという 20% 割引コードを用意してください。アシスタント: 作成予定のコード、割引率、日付、制限を表示し、作成前に確認を求めます。
あなた: 確認します。
目次
クイックスタート
Node.js 20 以降、my-store.myshopify.com のようなストアドメイン、Admin API の認証情報が必要です。推奨されるのは、Shopify Dev Dashboard アプリのクライアント ID とシークレットです。サーバーがこれらを使ってアクセストークンを取得し、そのトークンを常に最新の状態に保ちます。この権限付与で Shopify が発行するトークンは 24 時間で期限切れになるため、これは重要です。アプリとストアは同じ Shopify 組織に属している必要があります。
- アクセス権を取得し、アプリのクライアント ID とクライアントシークレットを準備します。
- MCP サーバーを AI アプリケーションに追加します。
- 冒頭のセクションにある安全なリクエストを送信します。
サーバーは npx を介した stdio でローカル実行されます。ブラウザーのみで利用する ChatGPT および Claude のウェブセッションから、ローカルの stdio プロセスを直接起動することはできません。
以下の各スニペットでは、この 2 つの認証情報を使用しています。ストアに管理者が作成したカスタムアプリの既成トークンが残っている場合は、SHOPIFY_CLIENT_ID と SHOPIFY_CLIENT_SECRET を単一の SHOPIFY_ACCESS_TOKEN に置き換えてください。詳しくはアクセス権の取得をご覧ください。
Codex
アプリから設定する場合:
-
Settings → MCP servers を開きます。
-
Add server を選択します。
-
STDIO を選択し、
npx -y mcp-shopify-admin@latestを入力して、SHOPIFY_STORE_DOMAIN、SHOPIFY_CLIENT_ID、SHOPIFY_CLIENT_SECRETを設定します。 -
Save を選択し、次に Restart を選択します。
CLI から設定する場合:
codex mcp add shopify-admin \
--env SHOPIFY_STORE_DOMAIN=my-store.myshopify.com \
--env SHOPIFY_CLIENT_ID=your_client_id \
--env SHOPIFY_CLIENT_SECRET=your_client_secret \
-- npx -y mcp-shopify-admin@latest
codex mcp list
Claude Code
claude mcp add \
--env SHOPIFY_STORE_DOMAIN=my-store.myshopify.com \
--env SHOPIFY_CLIENT_ID=your_client_id \
--env SHOPIFY_CLIENT_SECRET=your_client_secret \
--transport stdio --scope user shopify-admin \
-- npx -y mcp-shopify-admin@latest
claude mcp list
Claude Desktop
現在の公式な手順は Settings → Extensions です。カスタムデスクトップ拡張機能を使う場合は、Advanced settings → Extension Developer → Install Extension… を開き、.mcpb ファイルを選択して、画面の指示に従ってください。
このリポジトリでは現在、npm の stdio パッケージを公開しており、.mcpb バンドルは含まれていません。ローカル設定に引き続き対応している Claude Desktop ビルドでは、次の JSON stdio 設定を代替手段として使用してください。
{
"mcpServers": {
"shopify-admin": {
"command": "npx",
"args": ["-y", "mcp-shopify-admin@latest"],
"env": {
"SHOPIFY_STORE_DOMAIN": "my-store.myshopify.com",
"SHOPIFY_CLIENT_ID": "your_client_id",
"SHOPIFY_CLIENT_SECRET": "your_client_secret"
}
}
}
}
これらのビルドでは、macOS の場合は ~/Library/Application Support/Claude/claude_desktop_config.json、Windows の場合は %APPDATA%\Claude\claude_desktop_config.json に保存します。
Cursor
macOS/Linux では ~/.cursor/mcp.json、Windows では %USERPROFILE%\.cursor\mcp.json にこのサーバーを追加します。
{
"mcpServers": {
"shopify-admin": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-shopify-admin@latest"],
"env": {
"SHOPIFY_STORE_DOMAIN": "my-store.myshopify.com",
"SHOPIFY_CLIENT_ID": "your_client_id",
"SHOPIFY_CLIENT_SECRET": "your_client_secret"
}
}
}
}
VS Code
MCP: Open User Configuration を実行し、次を追加します。
{
"inputs": [
{
"type": "promptString",
"id": "shopify_store_domain",
"description": "Shopify store domain, for example my-store.myshopify.com"
},
{
"type": "promptString",
"id": "shopify_client_id",
"description": "Client ID of the Shopify Dev Dashboard app"
},
{
"type": "promptString",
"id": "shopify_client_secret",
"description": "Client secret of that app",
"password": true
}
],
"servers": {
"shopify-admin": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-shopify-admin@latest"],
"env": {
"SHOPIFY_STORE_DOMAIN": "${input:shopify_store_domain}",
"SHOPIFY_CLIENT_ID": "${input:shopify_client_id}",
"SHOPIFY_CLIENT_SECRET": "${input:shopify_client_secret}"
}
}
}
}
MCP: List Servers を実行して、サーバーを確認します。
できること
- ストアを確認します。 ショップの詳細、ロケーション、商品、注文、顧客、またはディスカウントを表示します。
- 商品を操作します。 商品の下書きを作成したり、商品フィールドを更新したり、バリアントの価格を変更したりします。
- 在庫を追跡します。 ロケーションを検索し、在庫アイテムの絶対数として利用可能数量を設定します。
- 注文を確認します。 注文を検索して詳細を確認したり、明示的に返金と再入庫の方法を指定して、条件を満たす注文をキャンセルしたりします。
- ディスカウントを管理します。 既存のディスカウントを一覧表示したり、基本的なコードディスカウントを作成したりします。
- 汎用実行手段を使用します。 専用ツールがない機能には、任意の Admin GraphQL ドキュメントを実行します。
Shopify で変更できる内容
| 操作 | 起こること | データ境界 |
|---|---|---|
| ショップ、商品、注文、顧客、ロケーション、ディスカウント | ストアのデータを読み取ります | 読み取り専用 |
| 商品フィールドまたはバリエーション価格 | リクエストで指定されたフィールドを置き換えます | オンラインストアのデータを変更します |
| 在庫数量 | 絶対値で利用可能な数量を設定します | 商品の販売可能状況を変更します |
| 商品またはディスカウントの作成 | 新しい Shopify オブジェクトを作成します | データを作成し、自動では取り消せません |
| 注文のキャンセル | 注文をキャンセルし、返金や在庫の再補充を行う場合があります | 破壊的で、取り消せません |
graphql_request | 任意の Admin API クエリまたはミューテーションを実行できます | 破壊的な操作になる可能性があります |
このサーバーには、注文の作成、フルフィルメント、顧客データの書き込み、バリエーションの作成、メディア、対象を絞ったディスカウント、販売チャネルへの商品の公開を行う専用ツールはありません。ドキュメントとその userErrors レスポンスを理解している場合に限り、graphql_request を使用してください。
AI クライアントは書き込み前に確認を求める場合がありますが、確認の動作はそのクライアントに依存します。作成、更新、設定、キャンセルを明確に依頼した場合、対応するサーバー操作が許可されたことになります。
アクセスの取得
サーバーは、2 つの方法のいずれかで認証します。Dev Dashboard アプリのクライアント ID とシークレットを使ってサーバー自身がアクセストークンと交換する方法、またはすぐに使える Admin API アクセストークンをそのまま送信する方法です。両方が設定されている場合は、既成のトークンが優先されます。
Dev Dashboard アプリ(推奨)
Shopify は 2026-01-01 に、管理画面から新しいカスタムアプリを作成する機能の提供を終了したため、現在セットアップするストアではこの方法を使います。
- ストアが属するものと同じ Shopify 組織内で、Shopify Dev Dashboard または Shopify CLI を使用してアプリを作成します。
read_products、write_products、read_orders、read_customers、read_locations、write_inventory、read_discounts、write_discountsなど、必要な Admin API アクセススコープを付与します。- ストアにアプリをインストールします。
- アプリのクライアント ID とクライアントシークレットを、それぞれ
SHOPIFY_CLIENT_IDとSHOPIFY_CLIENT_SECRETとして使用します。
以降、サーバーは クライアント認証情報グラントを使用して、https://{store}.myshopify.com/admin/oauth/access_token に対して独自に処理します。Shopify が返すトークンの有効期間は 24 時間 です。サーバーはトークンをメモリ内だけに保持し、ディスクには保存しません。期限切れの少し前に再発行し、並行するツール呼び出しでは 1 回の交換を共有します。また、API が 401 を返した場合は新しいトークンを発行します。手動で更新する必要はありません。
このグラントが機能するのは、アプリとストアが同じ Shopify 組織に属している場合に限られます。そうでない場合、Shopify は shop_not_permitted を返し、サーバーは組織の不一致を示すヒントをそのまま伝えます。認証情報を再発行しても解決しません。アプリをストアの組織に移動するか、その組織に属するストアを使用してください。
Shopify 管理画面で作成した既存のカスタムアプリ(レガシー)
2026-01-01 より前に Shopify 管理画面で作成したアプリは引き続き動作し、そのトークンも引き続き受け付けられます。すでに管理しているアプリがある場合は、次の手順に従ってください。
- Shopify 管理画面でアプリを開きます。
read_products、write_products、read_orders、read_customers、read_locations、write_inventory、read_discounts、write_discountsなど、必要な Admin API アクセススコープを確認します。- Shopify から認証情報の生成を求められた場合は、アプリをインストールまたは再インストールします。
- 発行された Admin API アクセストークンを
SHOPIFY_ACCESS_TOKENとして使用します。
サーバーはこのトークンをそのまま送信し、更新することはありません。そのため、トークンが使えなくなったときの交換はご自身で行ってください。Shopify のレガシーの管理画面作成カスタムアプリに関するドキュメントを参照してください。
アクセストークンとクライアントシークレットはパスワードとして扱い、Git に絶対にコミットしないでください。安全にテストするには、Shopify 開発ストアを使用してください。
設定
| 変数 | 必須 | 説明 |
|---|---|---|
SHOPIFY_STORE_DOMAIN | はい* | my-store.myshopify.com のような永続的なストアホスト名です。ストア名のみの指定も可能です。 |
SHOPIFY_CLIENT_ID | はい** | Dev Dashboard アプリのクライアント ID です。シークレットと組み合わせると、サーバーが独自の 24 時間有効なアクセストークンを発行し、最新の状態に保ちます。 |
SHOPIFY_CLIENT_SECRET | はい** | そのアプリのクライアントシークレットです。ストアの /admin/oauth/access_token にのみ送信され、発行されたトークンはメモリ内に保持されます。 |
SHOPIFY_ACCESS_TOKEN | はい** | レガシーの代替手段です。2026 年より前のカスタムアプリで発行した、すぐに使える Admin API アクセストークンです。サーバーはこれを X-Shopify-Access-Token で送信し、更新しません。クライアント ID とシークレットも設定されている場合は、こちらが優先されます。 |
SHOPIFY_API_VERSION | いいえ | 四半期ごとの YYYY-MM リリースまたは unstable です。デフォルト:2026-01。 |
SHOPIFY_API_BASE | いいえ | http または https の完全な GraphQL エンドポイントの上書き設定です。ローカルモックに便利です。 |
SHOPIFY_TIMEOUT_MS | いいえ | リクエストごとのタイムアウトです。デフォルト:30000 ミリ秒。 |
SHOPIFY_MAX_RETRIES | いいえ | THROTTLED/429、および読み取り時の 5xx/ネットワークエラーに対する再試行回数です。デフォルト:4。 |
SHOPIFY_TOKEN_LEEWAY_SECONDS | いいえ | 発行済みトークンを置き換えるタイミングをどれだけ早めるかを秒単位で指定します。デフォルト:300 秒。すぐに使えるトークンには影響しません。 |
* ローカルテストでは、SHOPIFY_API_BASE を設定してストアドメインの代わりにできますが、Shopify に実際にリクエストするには認証情報が必要です。
** 2 つの認証方法のいずれかが必要です。SHOPIFY_CLIENT_ID と SHOPIFY_CLIENT_SECRET の組み合わせ、または SHOPIFY_ACCESS_TOKEN を使用します。どちらも設定されていない場合、サーバーは起動して initialize に応答しますが、すべてのツール呼び出しで両方の選択肢を示すエラーが返されます。変数は起動時に読み込まれるため、変更後はサーバーを再起動してください。
データ、制限、バックグラウンド処理
- GraphQL コストバケット。 Shopify から値が提供される場合、各結果には
actualQueryCost、currentlyAvailable、maximumAvailable、restoreRateが表示されます。firstを最大 250 に設定したページは、多数の小さなページより通常はコストが低くなります。 - 再試行の条件は一様ではありません。
THROTTLEDと HTTP 429 は、Shopify が指定する待機時間の後に再試行されます。5xx とネットワークエラーは読み取り時にのみ再試行されます。これらのエラーが発生した後、ミューテーションが再実行されることはありません。 - 注文履歴。 60 日を超える注文には
read_all_ordersスコープが必要です。このスコープがない場合、Shopify はそれらの注文を返しません。 - バックグラウンド監視なし。 サーバーは呼び出されたときに動作します。AI アプリケーションがスケジュール済みタスクに対応している場合は、注文や在庫を定期的に確認できます。
- 匿名のテレメトリ。 サーバーは、シークレット、ストアデータ、引数、プロンプトを含まない技術的なインストールイベントとツール使用イベントを送信します。すべての Ask Ads MCP サーバーで無効にするには、
ASKADS_TELEMETRY=0を設定してください。
技術ドキュメント
- 機能カタログ — 16 個のツールそれぞれについて、タスク指向のページを 1 つ用意しています。
- すべてのツールとパラメーター
- 開発ガイド
- 公開ガイド
- Shopify Admin GraphQL API
サポート
バグや不足しているシナリオを見つけましたか?イシューを作成するか、Telegram からお問い合わせください。
最後までお読みいただき、ありがとうございます!
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。