Skip to main content
Glama
diogoferacruz-dev

Hey Harper multi-store Shopify MCP server

Сервер Hey Harper multi-store Shopify MCP

Крошечный удалённый MCP-сервер, хранящий постоянные токены Admin API всех пяти магазинов Hey Harper и получающий невыполненные / требующие внимания заказы-кандидаты из каждого магазина за одно подключение — без switch-shop и без повторной авторизации через OAuth для каждого магазина. Именно это позволяет ежедневному отчёту «заказы, требующие внимания» выполняться без участия человека.

Зачем это нужно

Официальный коннектор Shopify работает с одним магазином за раз и требует повторной авторизации через OAuth при каждом переключении магазина — это невозможно автоматизировать для плановой задачи. Этот сервер полностью обходит это, используя токены Admin API из кастомных приложений (постоянные, без OAuth) и напрямую запрашивая все магазины.

Related MCP server: Shopify MCP

Доступные инструменты

Инструмент

Что делает

heyharper_list_stores

Показывает список настроенных магазинов (domain + token заданы).

heyharper_pull_store_orders

Получает невыполненные заказы для одного магазина (store, since_days).

heyharper_pull_all_stores

Главный. Получает невыполненные заказы из ВСЕХ магазинов одним вызовом, с изоляцией ошибок по каждому магазину.

Каждый заказ возвращается нормализованным и обогащённым (парсинг released_hold_at, флаги тегов Everstox, oos по каждой строке), но сервер намеренно не решает, «требует ли внимания» — порог задержки по рабочим дням, правило OOS (только EU/UK/BR/MX) и исключения Everstox остаются в вашей задаче Cowork, чтобы вы могли менять пороги и добавлять календари праздников без повторного развёртывания.


Настройка — пошагово

1. Создайте кастомное приложение + токен в КАЖДОМ магазине

В админке каждого магазина Hey Harper (US, EU, UK, BR, MX):

  1. Settings → Apps and sales channels → Develop appsCreate an app (назовите его, например, cowork-unfulfilled-reader).

  2. Настройте Admin API scopes и включите (достаточно только чтения):

    • read_orders

    • read_all_orders (позволяет запрашивать заказы старше 60 дней)

    • read_products

    • read_inventory

    • read_fulfillments

    • read_merchant_managed_fulfillment_orders

  3. Установите приложение, затем в разделе API credentials откройте Admin API access token (shpat_…). Скопируйте его.

  4. Запишите домен myshopify магазина (например, hey-harper-shop-uk.myshopify.com).

В итоге у вас будет пять пар (domain, token). Никогда не коммитьте их и не вставляйте в чат — они попадают прямо в хранилище секретов хостинга на шаге 3.

2. Разверните сервер

В репозитории есть Dockerfile, поэтому подойдёт любой контейнерный хостинг (Render, Railway, Fly.io, VPS). Нужен обычный доступ в интернет и публичный HTTPS URL.

Render (пример, самый простой):

  • Web ServiceNew → подключите этот репозиторий (или «Deploy from a 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/секретах вашего хостинга:

  • MCP_AUTH_TOKEN — длинная случайная строка (openssl rand -hex 32). Обязательно задайте — это bearer-токен, защищающий вашу конечную точку.

  • HH_US_DOMAIN / HH_US_TOKEN, HH_EU_*, HH_UK_*, HH_BR_*, HH_MX_* — пары из шага 1.

Магазин становится активным только когда оба его параметра (домен и токен) заданы, так что можно начать с UK, а остальные добавлять по мере создания токенов.

4. Добавьте его в Claude как кастомный коннектор

В claude.ai → Settings → Connectors → Add custom connector:

  • URL: https://<your-host>/mcp

  • Auth: укажите bearer-токен (MCP_AUTH_TOKEN), чтобы запросы отправлялись с заголовком Authorization: Bearer <токен>.

Если интерфейс коннектора не позволяет прикрепить статический заголовок, установите MCP_PATH на непредсказуемый путь (например, /mcp/9f3c…) — тогда секретный путь выступает в роли учётных данных. После подключения инструменты heyharper_list_stores, heyharper_pull_store_orders и heyharper_pull_all_stores появятся как доступные.

5. Подключите к ежедневной задаче

Направьте ежедневную задачу Cowork на 9 утра на heyharper_pull_all_stores, затем примените логику классификации (порог опоздания по рабочим дням, правило OOS (только EU/UK/BR/MX), исключения Everstox) в соответствии со спецификацией передачи задач:

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.


Переменные окружения

Переменная

Обязательна

По умолчанию

Примечания

MCP_AUTH_TOKEN

желательно

Bearer-токен для эндпоинта. Если не задан, эндпоинт открыт.

MCP_PATH

нет

/mcp

Путь к эндпоинту.

PORT

нет

3000

Порт.

SHOPIFY_API_VERSION

нет

2024-10

Версия Admin API.

HH_<KEY>_DOMAIN

для каждого

Домен магазина, где KEY ∈ US, EU, UK, BR, MX.

HH_<KEY>_TOKEN

для каждого

Admin API access token (shpat_…).


Локальный запуск

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 для справки и задайте в окружении хостинга (секреты):

  • MCP_AUTH_TOKEN — длинная случайная строка (openssl rand -hex 32). Обязательно задайте — это bearer-токен для вашей конечной точки.

  • HH_US_DOMAIN / HH_US_TOKEN, HH_EU_*, HH_UK_*, HH_BR_*, HH_MX_* — пары из шага 1.

Магазин становится активным только когда заданы оба его домен и токен, так что можно начать с UK, а остальные добавить по мере генерации токенов.

4. Добавьте в Claude как пользовательский коннектор

В claude.ai → Settings → Connectors → Add custom connector:

  • URL: https://<ваш-хост>/mcp

  • Auth: укажите bearer-токен (MCP_AUTH_TOKEN).

Если в вашем тарифе интерфейс коннектора не позволяет прикрепить статический заголовок, задайте MCP_PATH — непредсказуемый путь (например, /9f3c…), и тогда секретный путь выступит как учётные данные.

После подключения инструменты heyharper_list_stores, heyharper_pull_store_orders и heyharper_pull_all_stores появятся в Claude.

5. Настройте ежедневный отчёт

Укажите в задаче вызов heyharper_pull_all_stores и примените логику классификации (она лежит в задаче Cowork, не в сервере), чтобы решить, какие заказы требуют внимания. Затем опубликуйте результат в канале.


Зачем это нужно

Официальный коннектор Shopify держит один магазин за раз и требует повторной OAuth-авторизации при каждом переключении — это делает невозможной автоматическую ежедневную выгрузку. Данный сервер полностью обходит это, используя токены Admin API кастомного приложения и запрашивая все магазины напрямую.

Переменные окружения

Переменная

Обязательна

По умолчанию

Описание

MCP_AUTH_TOKEN

рекомендовано

Bearer-токен для конечной точки. Если не задан, эндпоинт открыт.

MCP_PATH

нет

/mcp

Путь конечной точки.

PORT

нет

3000

Порт для HTTP-сервера.

SHOPIFY_API_VERSION

нет

2024-10

Версия Admin API.

HH_<KEY>_DOMAIN

для каждого

Домен магазина (KEY = US, EU, UK, BR, MX).

HH_<KEY>_TOKEN

для каждого

Admin API access token магазина.


Требования к хостингу

  • Обычный доступ в интернет.

  • Публичный HTTPS URL.

  • Возможность запуска Docker-контейнера.

Render (пример, самый простой): New → Web Service → подключите репозиторий (или "Deploy from a Dockerfile"). Render сам определит Dockerfile, выдаст HTTPS и публичный URL.

Fly.io / Railway: укажите Dockerfile так же, как обычно.

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