mcpField
S
shopify-mcp

shopify-mcp

ローカル
github.com/miller-joeビジネス・マーケティング220 週間前に更新

shopify-mcp について

shopify-mcpは、Admin GraphQL APIを通じてShopifyストアを管理するMCPサーバーです。オプションのComfyUI連携により、商品画像を生成・補正し、商品の作成や更新に利用できます。

主な機能

  1. 01商品、注文、顧客の管理
  2. 02在庫、バリエーション、コレクションの操作
  3. 03フルフィルメントと下書き注文の管理
  4. 04メタフィールド、メタオブジェクト、Webhookの操作
  5. 05ShopifyQL分析クエリの実行
  6. 06ComfyUIによる商品画像の生成・補正

活用シーン

  1. 01生成画像付きの商品を作成
  2. 02商品情報、バリエーション、在庫を更新
  3. 03下書き注文とフルフィルメントを管理
  4. 04ストアの売上や商品分析を照会

MCP 対応

Shopify Admin APIの操作機能をMCPクライアントに提供し、商品、注文、在庫、ストア管理などに対応します。ComfyUIを設定すると、画像を生成または補正し、Shopify商品に追加する連携ツールも利用できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"miller-joe-shopify": {
"command": "npx",
"args": [
"-y",
"@miller-joe/shopify-mcp"
],
"env": {
"SHOPIFY_STORE": "<SHOPIFY_STORE>",
"SHOPIFY_ACCESS_TOKEN": "<SHOPIFY_ACCESS_TOKEN>",
"SHOPIFY_API_VERSION": "<SHOPIFY_API_VERSION>",
"COMFYUI_URL": "<COMFYUI_URL>",
"COMFYUI_PUBLIC_URL": "<COMFYUI_PUBLIC_URL>",
"COMFYUI_DEFAULT_CKPT": "<COMFYUI_DEFAULT_CKPT>"
}
}
}
}
起動コマンドnpx -y @miller-joe/shopify-mcp
設定が必要な環境変数
SHOPIFY_STOREStore domain, e.g. 'my-store' or 'my-store.myshopify.com'
SHOPIFY_ACCESS_TOKENシークレットAdmin API access token (shpat_...). See README for how to create a custom app on a dev store.
SHOPIFY_API_VERSIONShopify GraphQL Admin API version (default: 2026-04)
COMFYUI_URLComfyUI HTTP URL for bridge tools. When unset, generate_* bridge tools are disabled.
COMFYUI_PUBLIC_URLExternally-reachable ComfyUI URL (defaults to COMFYUI_URL)
COMFYUI_DEFAULT_CKPTDefault ComfyUI checkpoint filename for bridge tools (default: sd_xl_base_1.0.safetensors)

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

パッケージ
npm@miller-joe/shopify-mcp0.1.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

shopify-mcp

Shopify 向けの MCP サーバーです。Admin GraphQL API の全機能に加え、ComfyUI による画像生成を介した、AI 主導の商品作成ブリッジを備えています。

shopify-mcp MCP server

GitHub Sponsors Ko-fi

ここがポイント

ほかの Shopify MCP はどれも、単なる Admin API のラッパーです。この MCP は @miller-joe/comfyui-mcp と連携するため、次のように指示できます。

「*『Nebula Dreamer』*という商品を作成してください。宇宙をテーマにした抽象的な画像を生成し、雰囲気に合った説明文を付け、タグに astrology を設定し、ステータスを下書きにしてください。」

Claude が ComfyUI を実行して画像を取得し、Shopify 商品を作成して画像を添付するまで、すべてを一度の呼び出しで行います。

インストール

# npx, no install
npx @miller-joe/shopify-mcp \
  --shopify-store your-store.myshopify.com \
  --shopify-access-token shpat_xxx

# Docker
docker run -p 9110:9110 \
  -e SHOPIFY_STORE=your-store.myshopify.com \
  -e SHOPIFY_ACCESS_TOKEN=shpat_xxx \
  -e COMFYUI_URL=http://comfyui:8188 \
  ghcr.io/miller-joe/shopify-mcp:latest

MCP クライアントへの接続

claude mcp add --transport http shopify http://localhost:9110/mcp

または、MCP ゲートウェイの接続先として Streamable HTTP エンドポイントを指定してください。

設定

CLI フラグ環境変数デフォルト備考
--shopify-storeSHOPIFY_STORE(必須)my-store または my-store.myshopify.com
--shopify-access-tokenSHOPIFY_ACCESS_TOKEN(必須)Admin API トークン(shpat_…)
--shopify-api-versionSHOPIFY_API_VERSION2026-04GraphQL Admin API のバージョン
--hostMCP_HOST0.0.0.0バインドするホスト(HTTP モードのみ)
--portMCP_PORT9110バインドするポート(HTTP モードのみ)
--stdioMCP_TRANSPORT=stdio(未設定)HTTP ではなく、stdio 経由で MCP と通信します。stdio を優先する MCP クライアント(Claude Desktop、mcp-inspector)のサブプロセスとして起動する場合に使用します。
--comfyui-urlCOMFYUI_URL(任意)設定するとブリッジツールが有効になります
--comfyui-public-urlCOMFYUI_PUBLIC_URL--comfyui-url と同じShopify に渡す画像参照で使用する外部 URL
(フラグなし)COMFYUI_DEFAULT_CKPTsd_xl_base_1.0.safetensorsブリッジツールのデフォルトチェックポイント
トランスポート

デフォルトでは、サーバーはストリーミング可能な HTTP を使用します(Claude Code、MetaMCP、直接の fetch に最適です)。--stdio を渡すか、MCP_TRANSPORT=stdio を設定すると、stdio モードに切り替わります。Claude Desktop や MCP Inspector など、stdio を優先するクライアントが想定するモードです。

// claude_desktop_config.json
{
  "mcpServers": {
    "shopify": {
      "command": "npx",
      "args": ["-y", "@miller-joe/shopify-mcp", "--stdio"],
      "env": {
        "SHOPIFY_STORE": "my-store.myshopify.com",
        "SHOPIFY_ACCESS_TOKEN": "shpat_…"
      }
    }
  }
}
Shopify アクセストークンの取得

簡単な方法(既存の開発ストアの場合): Shopify Admin → アプリ → アプリを開発 → カスタムアプリを作成 → 関連する Admin API スコープ(write_products、read_orders、write_inventory、read_customers)を有効化 → インストール → Admin API アクセストークン(shpat_ で始まる)をコピーします。

新しいアプリの場合(2026 年 1 月以降): 新規作成されたアプリでは、従来のカスタムアプリトークンは非推奨です。Dev Dashboard のトークン交換フローを一度実行して有効なトークンを取得し、ここで指定してください。マルチテナント OAuth は今後の予定です。

ツール

Admin の基本機能
ツール説明
list_productsShopify のクエリ構文を使用した、ページネーション対応の商品検索
get_productバリエーション、画像、メディアを含む商品を 1 件取得
create_product商品を作成(デフォルトは DRAFT)。画像の添付も可能
update_productタイトル、説明、タグ、ステータスなどを更新
upload_product_image公開画像 URL を既存の商品に添付
list_ordersクエリフィルターを指定して、新しい順に注文を一覧表示
get_order明細項目を含む注文を 1 件取得
set_inventory_quantityロケーションの在庫数を絶対値で設定
list_locationsストアのロケーションを一覧表示(在庫操作用)
list_customersクエリフィルターを指定して顧客を一覧表示
メタフィールド
ツール説明
set_metafield任意の HasMetafields リソース(商品、バリエーション、コレクション、顧客、注文、ストアなど)のメタフィールドを作成または更新します
list_metafieldsリソースのメタフィールドを一覧表示します。必要に応じてネームスペースで絞り込めます
delete_metafield(ownerId, namespace, key) を指定してメタフィールドを削除します
下書き注文
ツール説明
list_draft_ordersShopify のクエリフィルターを使って下書き注文を一覧表示します
get_draft_order1 件の下書き注文とその明細項目を取得します
create_draft_order下書き注文を作成します。明細項目にはバリエーション参照またはカスタム項目(タイトル+価格)を指定できます。
update_draft_order顧客、明細項目、タグ、メモ、メールアドレスを更新します
complete_draft_order下書き注文を実際の注文に変換します。paymentPending を指定すると決済の確定をスキップします。
delete_draft_order完了していない下書き注文を削除します
Webhook
ツール説明
list_webhooksWebhook サブスクリプションを一覧表示します。トピックで絞り込めます
get_webhook1 件のサブスクリプションを取得します
create_webhookHTTPS コールバック URL をトピック(例:ORDERS_CREATE)に登録します
update_webhookコールバック URL、形式、フィールド/メタフィールドのフィルターを変更します
delete_webhookサブスクリプションを削除します
Metaobject
ツール説明
list_metaobject_definitionsフィールド定義を含む、ストアの metaobject タイプ(スキーマ)を確認します
list_metaobjects指定したタイプの metaobject を一覧表示します
get_metaobject1 件の metaobject とすべてのフィールドを取得します
create_metaobjectmetaobject を作成します(タイプは定義としてすでに存在している必要があります)。ACTIVE/DRAFT ステータスに対応しています。
update_metaobjectフィールドを作成または更新し、ハンドルを変更し、公開可能ステータスを切り替えます
delete_metaobjectmetaobject を削除します
フルフィルメント
ツール説明
list_fulfillment_orders注文のフルフィルメント注文を一覧表示します(配送ロケーションごとに 1 件)。明細項目ごとの残数量も表示します
get_fulfillment_order1 件のフルフィルメント注文を取得します
get_fulfillment追跡情報を含む 1 件のフルフィルメント(出荷記録)を取得します
create_fulfillmentフルフィルメント注文(または指定した数量)をフルフィルメント済みとして記録します。必要に応じて追跡情報を追加し、顧客に通知できます。
update_fulfillment_tracking既存のフルフィルメントの配送業者、追跡番号、URL を更新します
cancel_fulfillmentID を指定してフルフィルメントをキャンセルします

部分的なフルフィルメントに対応しています。各明細の quantity を指定した fulfillmentOrderLineItems を渡すか、配列を省略すると、フルフィルメント注文のすべてをフルフィルメントします。

バリエーションと商品オプション
ツール説明
list_variants選択済みオプション、価格、SKU、在庫を含む商品のすべてのバリエーションを一覧表示します
create_variantsオプション値、価格、SKU、compareAtPrice、初期在庫を指定して、バリエーションを一括作成します(最大 100 件)
update_variantsバリエーションの価格、compareAtPrice、SKU、バーコード、課税対象、inventoryPolicy、オプション値を一括更新します
delete_variants商品のバリエーションを一括削除します
reorder_variantsバリエーションの位置を 1 始まりの番号で設定します
add_product_optionsオプション(Size/Color など)とその選択可能な値を追加します。商品あたり最大 3 つのオプションを設定できます。

まったく新しい商品で最初の実際のバリエーションを作成するには、自動生成された「Default Title」バリエーションを置き換えるため、strategy="REMOVE_STANDALONE_VARIANT" を指定する必要があります。

コレクションとタグ付け
ツール説明
list_collectionsクエリフィルターを指定してコレクションを一覧表示します
get_collection商品を含む単一のコレクションを取得します
create_collection商品を任意で追加して、手動コレクションを作成します
update_collectionタイトル、説明、またはハンドルを更新します
delete_collectionコレクションを削除します
add_products_to_collection手動コレクションに商品を追加します(Shopify 側で非同期ジョブが実行されます)
remove_products_from_collection手動コレクションから商品を削除します
add_tagsタグ付け可能なあらゆるリソース(Product、Order、Customer、DraftOrder、Collection)にタグを追加します
remove_tagsタグ付け可能なリソースからタグを削除します
アナリティクス(ShopifyQL)
ツール説明
run_shopifyql_queryShopifyQL クエリを実行し、結果を ASCII テーブルとして表示します。生の JSON ペイロードを取得するには raw=true を指定します。

例:

  • FROM sales SHOW total_sales BY day SINCE -30d TIMESERIES
  • FROM products SHOW product_title, quantity_sold BY product_id SINCE -7d ORDER BY quantity_sold DESC LIMIT 10
ComfyUI ブリッジ(COMFYUI_URL が設定されている場合)
ツール説明
generate_and_create_product1 回の呼び出しで画像を生成し、その画像を使って商品を作成します。指定がない場合、タイトルと説明はプロンプトから生成されます。
generate_product_image画像を生成し、既存の商品に添付します。
refine_product_image商品の注目画像(または明示的に指定した URL)に img2img を実行し、調整後の画像を添付します。結果が元画像からどの程度変化するかは、denoise(0–1)で調整します。
bulk_regenerate_imagesクエリに一致するすべての商品に対して、テンプレート化されたプロンプトで画像を生成し、新しい画像を添付します。

bulk_regenerate_images のテンプレートプレースホルダー:{title}、{handle}。

例:一度の呼び出しで全体を実現

Claude, use generate_and_create_product:
  prompt: "minimalist sunset mountain silhouette, warm gradient, vector style"
  title: "Mountain Sunset Poster"
  status: DRAFT
  tags: ["posters", "nature", "minimalist"]

ComfyUI が画像を生成し、Shopify が画像を添付して商品を作成します。商品 ID と画像 URL が返されます。プロンプト 1 つ、呼び出し 1 回で、実際の商品を掲載できます。

アーキテクチャ

┌────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  MCP client    │────▶│  shopify-mcp     │────▶│  Shopify Admin  │
│  (Claude etc.) │◀────│  (this server)   │◀────│  GraphQL API    │
└────────────────┘     └────────┬─────────┘     └─────────────────┘
                                │
                                │ (bridge tools only)
                                ▼
                       ┌──────────────────┐
                       │  ComfyUI         │
                       │  (txt2img)       │
                       └──────────────────┘

ブリッジツールは HTTP 経由で ComfyUI を直接呼び出し、画像 URL を取得して Shopify の productCreateMedia ミューテーションに渡します。Shopify が画像を取得し、CDN でホストします。

開発

git clone https://github.com/miller-joe/shopify-mcp
cd shopify-mcp
npm install
npm run dev   # hot reload via tsx watch
npm run build
npm run typecheck
npm test

Node 20 以降が必要です。

ロードマップ

リリース済み:

  • 商品の基本的な CRUD と画像の添付
  • 注文の読み取り、在庫の設定とロケーション、顧客の読み取り
  • ComfyUI ブリッジ:generate_and_create_product、generate_product_image、bulk_regenerate_images
  • メタフィールド:set_metafield、list_metafields、delete_metafield
  • 下書き注文:作成/更新/完了/削除/一覧表示/取得
  • コレクションとタグ付け:CRUD、商品の追加/削除、add_tags/remove_tags
  • バリエーションと商品オプション:一括作成/更新/削除/並べ替え、および add_product_options
  • フルフィルメント:フルフィルメント注文の一覧表示/取得、フルフィルメントの作成(一部対応)、追跡情報の更新、キャンセル
  • Webhook:一覧表示/取得/作成/更新/削除
  • メタオブジェクト:定義の一覧表示とメタオブジェクトの CRUD
  • ShopifyQL アナリティクス:ASCII テーブル表示に対応した run_shopifyql_query
  • 画像調整ブリッジ:refine_product_image(商品画像に対する ComfyUI の img2img)

予定:

  • 新しいアプリの認証用 OAuth トークン交換フロー。

ライセンス

MIT © Joe Miller

サポート

このツールで時間を節約できた場合は、開発への支援をご検討ください。

GitHub Sponsors Ko-fi

コメント

MCP は初めてですか?

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

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