shoplazza-mcp
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 つのサービスインスタンスで複数ストアを設定でき( |
311 のエンドポイントを完全カバー |
|
汎用パススルーツール |
|
エンドポイントディレクトリツール |
|
デュアルトランスポート | stdio(ローカルクライアントのデフォルト)/ Streamable HTTP(リモートサービス、 |
堅牢性 | 「リクエストヘッダー認証、統一レスポンスパッケージ |
インストール
要件: 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変数 | 必須 | デフォルト | 説明 |
| ✅* | — | デフォルト/単一ストアのドメイン。例: |
| ✅* | — | デフォルト/単一ストアのアクセストークン。 |
| 任意 | — | 複数ストアの JSON: |
|
| API バージョン。例: | |
|
|
| |
|
| クライアントの 1 秒あたりの最大リクエスト数(リーキーバケット、ストアごとに独立) | |
|
| 429 時の最大待機秒数 | |
|
| 単一リクエストのタイムアウト(秒) | |
| パッケージ内 | カスタムエンドポイントディレクトリの場所 |
* 単一ストア設定の 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 |
ストア情報 |
|
商品 / バリエーション / 在庫 |
|
カテゴリ / コレクション |
|
注文 / 支払い情報 |
|
返金 / アフターサービス |
|
顧客 |
|
割引コード / クーポン / 価格ルール |
|
ギフトカード |
|
ページ / ブログ / 記事 / リダイレクト |
|
レビュー |
|
webhook 管理 | 対応するリソースの |
Shoplazza Pay 資金データ |
|
データ分析レポート |
|
読み取り専用の運用シナリオでの推奨組み合わせ: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-mcpHTTP(リモートサービス)
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
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Manage your NanoCart store from any AI agent: products, orders, coupons, subscribers, reports.
Shopify MCP Pack — wraps the Shopify Admin REST API (2024-01)
Manage your Savanto store from your AI: catalog, content, prompts, and analytics, by chat.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/ThinkPro-GZ/shoplazza-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server