Skip to main content
Glama
diogoferacruz-dev

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

公開されるツール

ツール

機能

heyharper_list_stores

現在設定されているストア(ドメインとトークンの両方が設定されているもの)を一覧表示します。

heyharper_pull_store_orders

1つのストアの未発送注文を取得します(storesince_days)。

heyharper_pull_all_stores

メインのツール。 全ストアの未発送注文を1回の呼び出しで取得し、ストアごとのエラー分離を行います。

各注文は正規化・エンリッチされて返されます(解析済みのreleased_hold_at、Everstoxタグフラグ、行ごとのoos)が、「要対応」の判定は意図的に行いません。営業日の遅延しきい値、OOSルール(EU/UK/BR/MXのみ)、Everstoxの除外はCoworkタスク側に残し、再デプロイなしでしきい値の調整や祝日カレンダーの追加ができるようにしています。


セットアップ — ステップバイステップ

1. 各ストアでカスタムアプリとトークンを作成する

すべてのHey Harperストア管理画面(US、EU、UK、BR、MX)で:

  1. 設定 → アプリと販売チャネル → 開発アプリアプリを作成(例: cowork-unfulfilled-reader という名前)。

  2. Admin APIスコープを設定し、以下を有効にします(読み取り専用で十分です):

    • read_orders

    • read_all_orders (60日より古い注文をクエリできるようにします)

    • read_products

    • read_inventory

    • read_fulfillments

    • read_merchant_managed_fulfillment_orders

  3. アプリをインストールし、API資格情報の下でAdmin APIアクセストークンshpat_…)を表示してコピーします。

  4. ストアの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/health

3. ホストに環境シークレットを設定する

.env.exampleを参照用にコピーし、ホストのenv/シークレットUIで以下を設定します:

  • MCP_AUTH_TOKEN — 長いランダム文字列(openssl rand -hex 32)。必ず設定してください — エンドポイントを保護するベアラートークンです。

  • HH_US_DOMAIN / HH_US_TOKENHH_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_storesheyharper_pull_store_ordersheyharper_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_*スコープのみ)です。サーバーはストアを変更できません。

環境変数

変数

必須

デフォルト

備考

MCP_AUTH_TOKEN

推奨

エンドポイントのベアラートークン。未設定の場合、エンドポイントは公開されます。

MCP_PATH

いいえ

/mcp

エンドポイントのパス。

PORT

いいえ

3000

通常はホストが設定します。

SHOPIFY_API_VERSION

いいえ

2024-10

Admin APIのバージョン。

HH_<KEY>_DOMAIN

ストアごと

KEY ∈ US、EU、UK、BR、MX。

HH_<KEY>_TOKEN

ストアごと

shpat_… Admin APIアクセストークン。

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    A 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.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for Shopify Admin API. Enables product, order, customer, and inventory management via natural language.
    8
    1
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Hosted 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.

View all related MCP servers

Related MCP Connectors

  • Official remote MCP server for Color Me Shop.

  • MCP server for interacting with the Supabase platform

  • Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/diogoferacruz-dev/heyharper-shopify-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server