Skip to main content
Glama
ThinkPro-GZ

shoplazza-mcp

by ThinkPro-GZ

shoplazza-mcp

Shoplazza OpenAPI(REST) をラップして、 MCP (Model Context Protocol) サービスの Python 実装です。 Claude、Cursor、DSH など MCP をサポートするクライアントから Shoplazza ストアのデータを直接読み書きできます。 (商品、注文、顧客、在庫、割引、webhook 購読など)。

エンドポイントディレクトリ(data/endpoints.json)は tools/scrape_endpoints.py が公式ドキュメントから自動取得し、 2026-01 バージョンで合計 311 の実エンドポイント、46 のリソースグループをカバーしています。


機能

機能

説明

61 の常用エンドポイントツール

商品 / バリエーション / 注文 / 発送 / 顧客 / 住所 / コレクション / 割引 / クーポン / 在庫 / 店舗 / ページ / ブログ / 記事 / metafield / webhook / ギフトカード / 仕入先 / データレポート / 認可スコープなど。入力パラメータは公式ドキュメントから自動生成されます

複数ストア対応

1 つのサービスインスタンスで複数ストアを設定でき(SHOPLAZZA_STORES)、各 API ツールにはオプションの shop_domain パラメータがあり、ストア単位でルーティングします。shoplazza_list_shops で設定済みストアを確認できます。

311 のエンドポイントを完全カバー

SHOPLAZZA_REGISTER_ALL_ENDPOINTS=1 を有効にすると、ディレクトリ内のすべてのエンドポイントが独立したツールとして登録されます。

汎用パススルーツール

call_shoplazza_api(method, path, path_params, query, body) で任意のエンドポイントを呼び出せます。

エンドポイントディレクトリツール

shoplazza_search_endpoints / shoplazza_get_endpoint でモデルが常に正しいエンドポイントとパラメータを発見できます。

デュアルトランスポート

stdio(ローカルクライアントのデフォルト)/ Streamable HTTP(リモートサービス、--transport http)

堅牢性

「リクエストヘッダー認証、統一レスポンスパッケージ {code,message,data}、cursor によるページネーション、429 レート制限リトライ(Retry-After、ストアごとに独立したレート制限)、パスプレースホルダー検証、ビジネスエラーの透過」を自動処理します。


Related MCP server: Shopify MCP Server

インストール

要件: Python ≥ 3.10、uv(推奨)または pip。

cd shoplazza-mcp
uv sync          # 创建 .venv 并安装依赖(mcp、httpx)

uv を使わない場合:

python -m venv .venv
.venv\Scripts\activate   # Windows
pip install -e .

設定

環境変数で認証情報を提供します(秘密鍵をコードに書き込んだりリポジトリにコミットしないでください):

# PowerShell / cmd
set SHOPLAZZA_SHOP_DOMAIN=your-store.myshoplazza.com
set SHOPLAZZA_ACCESS_TOKEN=your-access-token

変数

必須

デフォルト

説明

SHOPLAZZA_SHOP_DOMAIN

✅*

—

デフォルト/単一ストアのドメイン。例: your-store.myshoplazza.com(プロトコルなし)

SHOPLAZZA_ACCESS_TOKEN

✅*

—

デフォルト/単一ストアのアクセストークン。Access-Token リクエストヘッダーに対応

SHOPLAZZA_STORES

任意

—

複数ストアの JSON:{\"a.myshoplazza.com\":\"token-a\",\"b.myshoplazza.com\":\"token-b\"}

SHOPLAZZA_API_VERSION

2026-01

API バージョン。例: 2025-06、2022-01

SHOPLAZZA_REGISTER_ALL_ENDPOINTS

0

1 の場合、全 311 エンドポイントツールを登録します

SHOPLAZZA_MAX_RPS

2.0

クライアントの 1 秒あたりの最大リクエスト数(リーキーバケット、ストアごとに独立)

SHOPLAZZA_MAX_RETRY_WAIT

10.0

429 時の最大待機秒数

SHOPLAZZA_REQUEST_TIMEOUT

60.0

単一リクエストのタイムアウト(秒)

SHOPLAZZA_DATA_DIR

パッケージ内 data/

カスタムエンドポイントディレクトリの場所

* 単一ストア設定の SHOPLAZZA_SHOP_DOMAIN + SHOPLAZZA_ACCESS_TOKEN と複数ストア設定の SHOPLAZZA_STORES はどちらか一方で構いません。両方設定した場合、SHOPLAZZA_SHOP_DOMAIN がデフォルトストアになります。

完全な例は .env.example を参照してください。

複数ストアの使い方

複数のストアを設定すると、サービス内の各 API ツールにオプションの shop_domain パラメータが追加されます:

export SHOPLAZZA_STORES='{"us.myshoplazza.com":"token-us","de.myshoplazza.com":"token-de"}'
  • shop_domain なし → デフォルトストア(SHOPLAZZA_SHOP_DOMAIN、または STORES の最初の項目)を使用

  • shop_domain あり → 指定したストアを使用(不明なストアはエラーとなり、設定済みストアが一覧表示されます)

  • shoplazza_list_shops → サービスに設定されているすべてのストアとデフォルトストアを確認

  • 各ストアには独立した Access-Token と独立したレート制限バケットがあります(公式のストア単位のレート制限ルールに準拠)。複数ストア間で互いにブロックしません。

対話例:

“US ストアの今日の注文数を調べて、DE ストアの売上トップ 5 の商品も見て” → モデルは shop_domain=us.myshoplazza.com と shop_domain=de.myshoplazza.com でそれぞれ shoplazza_orders / shoplazza_products を呼び出します

Claude Desktop 設定例(複数ストア):

{
  "mcpServers": {
    "shoplazza": {
      "command": "uv",
      "args": ["run", "--directory", "D:/projects/DSH-projects/shoplazza-mcp", "shoplazza-mcp"],
      "env": {
        "SHOPLAZZA_STORES": "{\"us.myshoplazza.com\":\"token-us\",\"de.myshoplazza.com\":\"token-de\"}"
      }
    }
  }
}

必要な API 権限(scope)

パートナーセンター でアプリを作成・インストールするか、ストアに認可するときは、「最小権限の原則」に従って必要な scope のみを申請します。データ参照には read_* を、変更が必要な場合は同じ名前の write_* を追加します:

アクセスするデータ

申請する scope

ストア情報

read_shop

商品 / バリエーション / 在庫

read_product

カテゴリ / コレクション

read_collection

注文 / 支払い情報

read_order

返金 / アフターサービス

read_order(アフターサービス記録を含む)+ read_data

顧客

read_customer

割引コード / クーポン / 価格ルール

read_price_rules

ギフトカード

read_gift_cards

ページ / ブログ / 記事 / リダイレクト

read_shop_navigation

レビュー

read_comments

webhook 管理

対応するリソースの write_* scope が必要(例: write_product / write_order)

Shoplazza Pay 資金データ

read_finance

データ分析レポート

read_data

読み取り専用の運用シナリオでの推奨組み合わせ:read_shop, read_product, read_order, read_customer, read_price_rules, read_gift_cards, read_shop_navigation, read_data。 認可後、shoplazza_oauth_access_scopes ツールを呼び出して、今回のインストールで実際に付与された scope を確認できます。 公式の完全なマッピングは アクセス権限スコープ を参照してください。

Access Token の取得方法

  • 公開アプリ:OAuth 2.0 Authorization Code フロー を使用し、code と交換に access_token を取得します(有効期限 1 年、refresh_token で更新可能)。

  • プライベート / 内部統合:Shoplazza 管理画面でアプリとストアに対応するアクセストークンを生成します。

実行

stdio(ローカル MCP クライアント、デフォルト)

uv run shoplazza-mcp

HTTP(リモートサービス)

uv run shoplazza-mcp --transport http --host 0.0.0.0 --port 8765

エンドポイントパスはデフォルトで /mcp です。--http-path で変更できます。

MCP クライアントへの接続

Claude Desktop(claude_desktop_config.json):

{
  "mcpServers": {
    "shoplazza": {
      "command": "uv",
      "args": ["run", "--directory", "D:/projects/DSH-projects/shoplazza-mcp", "shoplazza-mcp"],
      "env": {
        "SHOPLAZZA_SHOP_DOMAIN": "your-store.myshoplazza.com",
        "SHOPLAZZA_ACCESS_TOKEN": "your-access-token"
      }
    }
  }
}

Cursor:設定 → MCP でサーバーを追加します。設定は examples/mcp-cursor.json を参照してください。

リモート HTTP(任意のクライアント):url を http://host:8765/mcp に向けます。

直接実行することもできます(debug でツールリストと JSON-RPC のやり取りを確認):

uv run mcp dev shoplazza-mcp

使用例(Claude / Cursor などの会話)

  • “ストアの最新 10 件の注文を一覧表示”

  • “商品 abcd-1234 の在庫を確認”

  • “注文 order-xxx をキャンセルして、理由は customer requested にする”

  • “100 以上で 20 引きの割引を新規作成”

  • “返金に使える API は?エンドポイントを検索して” → モデルは shoplazza_search_endpoints("refund") を呼び出した後、対応するエンドポイントを自動的に呼び出します。

すべてのレスポンスは API の元のパッケージを返します:{code, message, data, api_call_limit}。リスト型のレスポンスは data に cursor / pre_cursor を含み、page_size / per_page パラメータと組み合わせてページングします。

開発とメンテナンス

  • tools/scrape_endpoints.py:公式エンドポイントドキュメントページ から取得して data/endpoints.json を生成します(各エンドポイントの method / path / パラメータ / リクエストボディフィールド / レスポンス構造を含む)。

  • Curated メンテナンス:「よく使うツール」の追加・削除は、shoplazza_mcp/tools.py 内の CURATED_SLUGS リストを変更するだけです。

  • scripts/smoke_test.py:オフラインのスモークテスト(stdio);scripts/http_smoke_test.py:HTTP スモークテスト。

セキュリティに関する注意

  • Access Token は環境変数 / クライアント設定経由でのみ注入し、コードリポジトリに書き込まないでください。

  • サービスは HTTPS のみを使用します(公式では全エンドポイントが HTTPS のみのアクセスを要求しています)。

  • HTTP サービスとして外部ネットワークに公開する場合は、信頼できる内部ネットワークに配置するか、独自に認証(ゲートウェイやファイアウォールなど)を追加してください。

ライセンス

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with live Shopify stores through Admin and Storefront APIs for tasks like GraphQL execution, bulk operations, and file uploads. It includes built-in rate limiting and operation logging to manage store data and schema discovery securely.
    28 npm
    3
    ISC
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to access and manage Shopify store data including products, orders, inventory, and analytics through the Model Context Protocol. It allows users to query store performance and customer details using natural language.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to read and write Shopify store data including products, orders, customers, inventory, and more via the Admin GraphQL API.
    28
    58 npm
    MIT