Hey Harper multi-store Shopify MCP server
Hey Harper マルチストア Shopify MCP サーバー
5店舗すべてのHey Harperストアの永続的なShopify Admin APIトークンを保持し、1つの接続で全ストアの未発送・要対応候補の注文を取得する、小さなリモートMCPサーバーです。switch-shopも、ストアごとのOAuth再認証も不要です。これにより、毎日の「要対応注文」レポートを無人で実行できるようになります。
これが存在する理由
公式のShopifyコネクタは一度に1ストアのみを保持し、ストアを切り替えるたびにOAuthの再認証を強制するため、スケジュールジョブでの自動化は不可能です。このサーバーは、カスタムアプリのAdmin APIトークン(永続的、OAuth不要)を使用し、全ストアを直接クエリすることで、この問題を完全に回避します。
Related MCP server: Shopify MCP
公開されるツール
ツール | 機能 |
| 現在設定されているストア(ドメインとトークンの両方が設定されているもの)を一覧表示します。 |
| 1つのストアの未発送注文を取得します( |
| メインのツール。 全ストアの未発送注文を1回の呼び出しで取得し、ストアごとのエラー分離を行います。 |
各注文は正規化・エンリッチされて返されます(解析済みのreleased_hold_at、Everstoxタグフラグ、行ごとのoos)が、「要対応」の判定は意図的に行いません。営業日の遅延しきい値、OOSルール(EU/UK/BR/MXのみ)、Everstoxの除外はCoworkタスク側に残し、再デプロイなしでしきい値の調整や祝日カレンダーの追加ができるようにしています。
セットアップ — ステップバイステップ
1. 各ストアでカスタムアプリとトークンを作成する
すべてのHey Harperストア管理画面(US、EU、UK、BR、MX)で:
設定 → アプリと販売チャネル → 開発アプリ → アプリを作成(例:
cowork-unfulfilled-readerという名前)。Admin APIスコープを設定し、以下を有効にします(読み取り専用で十分です):
read_ordersread_all_orders(60日より古い注文をクエリできるようにします)read_productsread_inventoryread_fulfillmentsread_merchant_managed_fulfillment_orders
アプリをインストールし、API資格情報の下でAdmin APIアクセストークン(
shpat_…)を表示してコピーします。ストアのmyshopifyドメインをメモします(例:
hey-harper-shop-uk.myshopify.com)。
最終的に5つの(ドメイン, トークン)のペアが得られます。これらをコミットしたり、チャットに貼り付けたりしないでください — ステップ3でホストのシークレットストアに直接入れます。
2. サーバーをデプロイする
リポジトリにはDockerfileが同梱されているため、任意のコンテナホスト(Render、Railway、Fly.io、VPS)で動作します。通常のインターネットアクセスと公開HTTPS URLが必要です。
Render(例、最も簡単):
新規 → Webサービス → このリポジトリを接続(または「Dockerfileからデプロイ」)。
RenderがDockerfileを自動検出します。ビルド/開始コマンドは不要です。
HTTPSと公開URLが自動的に提供されます。
Fly.io / Railway: 同じようにDockerfileを指定します。
ローカルテスト:
npm install
npm run build
MCP_AUTH_TOKEN=$(openssl rand -hex 32) HH_UK_DOMAIN=hey-harper-shop-uk.myshopify.com HH_UK_TOKEN=shpat_xxx npm start
# health check:
curl localhost:3000/health3. ホストに環境シークレットを設定する
.env.exampleを参照用にコピーし、ホストのenv/シークレットUIで以下を設定します:
MCP_AUTH_TOKEN— 長いランダム文字列(openssl rand -hex 32)。必ず設定してください — エンドポイントを保護するベアラートークンです。HH_US_DOMAIN/HH_US_TOKEN、HH_EU_*、HH_UK_*、HH_BR_*、HH_MX_*— ステップ1のペア。
ストアはドメインとトークンの両方が設定された場合のみ有効になるため、UKから始めて、トークンを生成したら残りを追加できます。
4. Claudeにカスタムコネクタとして追加する
claude.ai → 設定 → コネクタ → カスタムコネクタを追加:
URL:
https://<your-host>/mcp認証: ベアラートークン(
MCP_AUTH_TOKEN)を提供し、リクエストがAuthorization: Bearer <token>を送信するようにします。
コネクタUIがお使いのプランで静的ヘッダーを添付できない場合の代替案として、
MCP_PATHを推測不能なパス(例:/mcp/9f3c…)に設定し、それをURLとして使用する方法があります。秘密のパスが資格情報として機能します。サポートされている場合はベアラートークンが推奨されます。
接続すると、heyharper_list_stores、heyharper_pull_store_orders、heyharper_pull_all_storesがツールとして表示されます。
5. 日次レポートを配線する
毎朝9時のCoworkタスクをheyharper_pull_all_storesに向け、分類ロジック(ハンドオフ仕様に従ってタスク内に保持)を適用します:
clock = releasedHoldAt if hasReleasedHold else processedAt
late = business_days_since(clock) >= 2 (weekends excluded, warehouse TZ)
shop_oos = anyLineOos (only where storeAppliesOos)
excluded = hasOosEverstox OR (hasHoldEverstox AND NOT hasReleasedHold)
OR (hasSetOnHold AND NOT hasReleasedHold)
needs_attention = (late OR shop_oos) AND NOT excludedロールアップを#daily-unfulfilledに投稿します。
セキュリティに関する注意
トークンはホストのenv/シークレットにのみ存在し、リポジトリには決して入れません(
.envはgitignoreされています)。URLを公開する前に必ず
MCP_AUTH_TOKENを設定してください。欠落している場合、サーバーは警告をログに記録します。すべてのツールは読み取り専用(
read_*スコープのみ)です。サーバーはストアを変更できません。
環境変数
変数 | 必須 | デフォルト | 備考 |
| 推奨 | — | エンドポイントのベアラートークン。未設定の場合、エンドポイントは公開されます。 |
| いいえ |
| エンドポイントのパス。 |
| いいえ |
| 通常はホストが設定します。 |
| いいえ |
| Admin APIのバージョン。 |
| ストアごと | — | KEY ∈ US、EU、UK、BR、MX。 |
| ストアごと | — |
|
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted Shopify MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Unified MCP server for 70+ eCommerce platforms: products, orders, customers, and more.
MCP server for Shoprocket — orders, products, customers, store stats and discount codes.
Hosted MCP server with managed OAuth for 15+ toolkits: Google Workspace, Fitbit, Oura, Kalshi, etc.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server exposing Shopify commerce backend with ~22 typed tools for orders, inventory, logistics, and fulfillment, including read/write separation and structured errors.ISC
- AlicenseAqualityAmaintenanceA read-only MCP server that exposes the full Shopify Admin GraphQL API through 6 universal tools, with multi-store support and mutation rejection at the parser level for safety.625 PyPI1MIT
- AlicenseCqualityDmaintenanceMCP server for Shopify Admin API. Enables product, order, customer, and inventory management via natural language.148 npm1MIT
- FlicenseNot gradedqualityDmaintenanceHosted MCP server connecting Shopify, Klaviyo, GA4, Meta Ads, Google Ads, Xero, Gorgias and 20+ e-commerce data sources so AI assistants can answer merchant questions that span every source at once.-