shoplazza-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@shoplazza-mcpShow me my top 5 products by sales this week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
shoplazza-mcp
A Python implementation that wraps Shoplazza OpenAPI (REST) into an MCP (Model Context Protocol) service, enabling MCP-capable clients such as Claude, Cursor, and DSH to directly read and write Shoplazza store data (products, orders, customers, inventory, discounts, webhook subscriptions, etc.).
The endpoint catalog (
data/endpoints.json) is automatically scraped from the official documentation bytools/scrape_endpoints.py, covering 311 real endpoints and 46 resource groups for version 2026-01.
Features
Capability | Description |
61 curated endpoint tools | Products / variants / orders / fulfillments / customers / addresses / collections / discounts / coupons / inventory / stores / pages / blogs / articles / metafields / webhooks / gift cards / suppliers / data reports / authorization scopes, etc. Input parameters are automatically generated from the official documentation. |
Multi-store support | A single service instance can configure multiple stores ( |
Full coverage of 311 endpoints | When |
Generic passthrough tool |
|
Endpoint catalog tools |
|
Dual transports | stdio (default for local clients) / Streamable HTTP (remote service, |
Robustness | Automatically handles header-based authentication, the unified response envelope |
Installation
Requirements: Python ≥ 3.10, uv (recommended) or pip.
cd shoplazza-mcp
uv sync # 创建 .venv 并安装依赖(mcp、httpx)Without uv:
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -e .Configuration
Provide credentials via environment variables (never hardcode secrets into code or commit them to a repository):
# PowerShell / cmd
set SHOPLAZZA_SHOP_DOMAIN=your-store.myshoplazza.com
set SHOPLAZZA_ACCESS_TOKEN=your-access-tokenVariable | Required | Default | Description |
| ✅* | — | Default/single store domain, e.g. |
| ✅* | — | Default/single store access token, corresponding to the |
| Optional | — | Multi-store JSON: |
|
| API version, e.g. | |
|
| Set to | |
|
| Maximum client requests per second (leaky bucket, per store). | |
|
| Maximum seconds to wait on 429. | |
|
| Per-request timeout (seconds). | |
| package | Custom endpoint catalog location. |
* Choose either the single-store configuration (SHOPLAZZA_SHOP_DOMAIN + SHOPLAZZA_ACCESS_TOKEN) or the multi-store configuration (SHOPLAZZA_STORES); if both are set, SHOPLAZZA_SHOP_DOMAIN is the default store.
See .env.example for a full example.
Multi-store usage
After configuring multiple stores, every API tool in the service gains an optional shop_domain parameter:
export SHOPLAZZA_STORES='{"us.myshoplazza.com":"token-us","de.myshoplazza.com":"token-de"}'Without
shop_domain→ uses the default store (SHOPLAZZA_SHOP_DOMAIN, or the first entry in STORES).With
shop_domain→ uses the specified store (unknown stores will error and list the configured stores).shoplazza_list_shops→ view all stores configured in the service and the default store.Each store has its own Access-Token and independent rate-limit bucket (in line with the official per-store rate-limiting rules), so multiple stores do not block each other.
Example conversation:
“Check today’s order count for the US store, then look at the top 5 selling products in the DE store.” → The model will call
shoplazza_orders/shoplazza_productswithshop_domain=us.myshoplazza.comandshop_domain=de.myshoplazza.comrespectively.
Claude Desktop configuration example (multi-store):
{
"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\"}"
}
}
}
}Required API permissions (scopes)
When creating/installing an app in the Partner Center or authorizing a store, follow the principle of least privilege and only request the scopes you need. Use read_* for reading data; add the corresponding write_* only when you need to modify data:
Data you want to access | Requested scope |
Store information |
|
Products / variants / inventory |
|
Categories / collections |
|
Orders / payment information |
|
Refunds / after-sales |
|
Customers |
|
Discount codes / coupons / price rules |
|
Gift cards |
|
Pages / blogs / articles / redirects |
|
Comments |
|
Webhook management | Requires the corresponding resource scope with |
Shoplazza Pay fund data |
|
Data analytics reports |
|
Recommended combination for read-only operations: read_shop, read_product, read_order, read_customer, read_price_rules, read_gift_cards, read_shop_navigation, read_data. After authorization, you can call the shoplazza_oauth_access_scopes tool to verify the scopes actually granted for this installation.
See the official mapping at Access Scopes.
How to get an Access Token
Public app: Follow the OAuth 2.0 Authorization Code flow and exchange the
codefor anaccess_token(valid for 1 year, refreshable withrefresh_token).Private / internal integration: Generate the corresponding access tokens for the app and store in the Shoplazza admin.
Running
stdio (local MCP client, default)
uv run shoplazza-mcpHTTP (remote service)
uv run shoplazza-mcp --transport http --host 0.0.0.0 --port 8765The endpoint path defaults to /mcp and can be changed with --http-path.
Connecting to MCP clients
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: Add the server in Settings → MCP; see examples/mcp-cursor.json.
Remote HTTP (any client): Point the url to http://host:8765/mcp.
You can also run it directly (debug to view the tool list and JSON-RPC interaction):
uv run mcp dev shoplazza-mcpUsage examples (Claude / Cursor conversations)
“List the latest 10 orders in the store.”
“Check the inventory of product
abcd-1234.”“Cancel order
order-xxxwith reasoncustomer requested.”“Create a new discount: 20 off when spending 100.”
“What APIs are available for refunds? Search the endpoints.” → The model will call
shoplazza_search_endpoints("refund")and then automatically call the corresponding endpoint.
All responses return the raw API envelope: {code, message, data, api_call_limit}; list-type responses include cursor / pre_cursor in data, used with page_size / per_page for pagination.
Development and maintenance
tools/scrape_endpoints.py: scrapes the official endpoint documentation page and generatesdata/endpoints.json(including each endpoint's method / path / parameters / request body fields / response structure).Maintenance: to add or remove “curated tools”, just modify the
CURATED_SLUGSlist inshoplazza_mcp/tools.py.scripts/smoke_test.py: offline smoke test (stdio);scripts/http_smoke_test.py: HTTP smoke test.
Security notes
Access Tokens should only be injected via environment variables / client configuration; never write them into a code repository.
The service only uses HTTPS (the official requirement is that all endpoints are HTTPS-only).
When exposing the service as an HTTP endpoint to the public internet, place it in a trusted internal network or add your own authentication (e.g., gateway, firewall).
License
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