关于 shopify-multi-store
shopify-multi-store 是面向运营团队的 MCP 服务,可在一个会话中连接多个 Shopify Admin 店铺,生成跨店报告并执行受控更新。它支持本地运行或团队托管,并按每位用户的 Shopify 权限处理操作。
主要功能
- 01在单个会话中连接多个店铺
- 02生成跨店商品、库存和订单报告
- 03对多个店铺执行只读 GraphQL 查询
- 04每次更新均要求明确确认
- 05使用操作系统凭据存储保存密钥
- 06提供 Shopify Admin 操作工作流
适用场景
- 01比较多个店铺的商品目录和价格
- 02查找库存不足或跨店库存差异
- 03汇总未履约订单并检查 SLA
- 04经确认后更新指定店铺
MCP 相关
该 MCP 服务将 Shopify Admin 店铺数据和操作工具提供给 MCP 客户端,支持本地 stdio 和远程服务器连接。每项店铺操作都需指定别名;更新针对单个店铺并要求明确确认。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
29收录的工具列表 · 更新于 5 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| store | string | 是 | |
| type_name | string | 是 |
详细介绍
Shopify Multi-Store MCP
一个 MCP 服务,连接所有 Shopify 店铺。
通过 Claude、ChatGPT、Codex、Cursor、VS Code 和其他 MCP 客户端,查询、比较和报告 Shopify 店铺数据,并进行受保护的更新。
版本 2.0
可在本地运行,也可为团队托管一个服务:每个人都使用自己的 Shopify 员工账号登录,并从 Claude、ChatGPT、Codex 或任何远程 MCP 客户端连接。每个人能执行的操作由 Shopify 自身的员工权限决定。内置引导式 Admin 工作流、ShopifyQL 报告、架构验证,以及可用于任何 Admin 变更的通用操作接口。 请参阅功能覆盖范围和验收要求。 目前尚未验证与 Shopify ChatGPT 的完全一致性。
查看运行效果
演示使用的是示例店铺和示例数据。服务会将每个真实店铺的凭据分开保存。
快速开始
安装服务、连接店铺并运行健康检查:
npm install --global shopify-multi-store-mcp-server
shopify-multi-store setup
shopify-multi-store doctor
Claude Code 用户可以用一条命令添加服务:
claude mcp add shopify-multi-store -- npx -y shopify-multi-store-mcp-server start
每个店铺都有一个永久别名和单独的安全凭据。每次店铺操作都必须指定该别名。
功能一览
| 功能 | 效果 |
|---|---|
| 多个活跃店铺 | 在一段 AI 对话中访问所有 Shopify 店铺。 |
| 跨店铺报告 | 搜索商品、比较目录、查找库存缺口,并报告履约 SLA 违约情况。 |
| 并行 GraphQL | 对多达一百个店铺运行一条只读查询。 |
| 受保护的变更 | 指定一个店铺,并为每次更新提供明确确认。 |
| 安全凭据 | 使用 macOS Keychain、Windows Credential Manager 或 Linux Secret Service。 |
| 可移植技能 | 为 Claude、Codex、Cursor 和其他兼容 Agent 提供操作指引。 |
此服务器与 Shopify Dev MCP
这两个服务器解决的是不同的问题。当 Agent 需要 Shopify 参考资料并访问你的店铺时,请同时使用它们。
| 能力 | Shopify Multi-Store MCP | Shopify Dev MCP |
|---|---|---|
| 主要用途 | 操作已连接的 Shopify Admin 店铺。 | 搜索 Shopify 开发者资源。 |
| 店铺数据 | 读取并比较已配置的店铺。 | 不连接 Shopify Admin 店铺数据。 |
| 多个店铺 | 在一个会话中保留多个命名店铺处于活动状态。 | 并非为店铺组合运营而设计。 |
| 报告 | 提供现成的运营和商品目录报告。 | 提供开发者文档和 API 架构。 |
| 更新 | 对一个选定店铺执行受保护的变更。 | 不会对你的店铺运行 Admin API 更新。 |
| 身份验证 | 为每个店铺使用单独的凭据。 | 无需身份验证。 |
Shopify Dev MCP 可帮助 Agent 创建和检查 Shopify 代码。此服务器则会对选定店铺执行获批的操作。
现成报告
shopify_report 会针对选定的店铺运行一份只读报告。将 report 设置为以下选项之一:
| 报告 | 用途 |
|---|---|
portfolio_snapshot | 汇总商品、订单、客户、货币、套餐和店铺身份信息。 |
order_summary | 汇总订单金额、折扣、税费、运费、取消情况和状态。 |
customer_growth | 比较等长时间段内的新客户数量。 |
get_product_everywhere | 在各店铺中查找一个精确的 SKU 或 handle。 |
compare_inventory | 比较各店铺中所选 SKU 的库存数量。 |
low_stock_report | 查找低库存情况和跨店铺调货机会。 |
compare_prices | 标出精确 SKU 的价格和划线价差异。 |
duplicate_sku_report | 查找店铺内重复的 SKU,以及多个店铺共用的 SKU。 |
list_unfulfilled_orders | 列出所选店铺中尚未履行的订单。 |
fulfillment_sla_report | 查找逾期未履行的订单并显示逾期时长分布。 |
compare_catalog | 按 handle、状态、供应商、类型和变体比较商品。 |
catalog_gap_report | 查找缺失商品或状态不同的商品。 |
catalog_health | 查找缺失的商品营销、SEO、媒体、替代文本和库存数据。 |
recent_product_changes | 列出所选时间段内更新的商品。 |
compare_collections | 按 handle 比较系列内容和配置。 |
store_locations | 检查地点、履行、库存和地址覆盖情况。 |
analytics | 在每个店铺上运行一条 ShopifyQL 查询,并提供图表提示。需要 read_reports。 |
若要跨店铺搜索商品,请使用 shopify_search,并设置 resource: "products" 和 stores。
可以尝试以下提示词:
- “为每个已连接的店铺生成一份组合概览。”
- “汇总过去 30 天的订单和当前订单金额。不同货币分开显示。”
- “显示零售和批发店铺中的低库存、零库存和负库存。”
- “显示在此店铺缺货、但在其他店铺有库存的商品。”
- “在每个店铺中查找 SKU A123,并比较其状态、价格和库存。”
- “在每个店铺中搜索与蛋白质相关的商品。”
- “按逾期时长分组,显示逾期两天以上尚未履行的订单。”
- “查找在一个店铺中处于启用状态、但在另一个店铺中缺失或处于草稿状态的商品。”
- “查找这些店铺中的价格差异和重复 SKU。”
- “比较零售和批发店铺中 SKU A123 和 B456 的库存。”
- “列出三个店铺过去七天内尚未履行的订单。”
- “审计商品目录健康状况,并显示缺少 SEO 或媒体数据的商品。”
- “比较这些店铺中的启用商品目录和精选系列。”
连接 AI 客户端
此服务适用于支持本地 stdio MCP 服务的客户端。如果客户端支持 Agent Skills,Agent Skills 可改善工具选择。
Claude Code
添加 MCP 服务:
claude mcp add shopify-multi-store -- npx -y shopify-multi-store-mcp-server start
复制随附的技能文件供个人使用:
mkdir -p ~/.claude/skills/shopify-multi-store
cp skills/shopify-multi-store/SKILL.md ~/.claude/skills/shopify-multi-store/SKILL.md
Claude Desktop and Cursor
将此服务添加到客户端的 MCP 配置中:
{
"mcpServers": {
"shopify-multi-store": {
"command": "npx",
"args": ["-y", "shopify-multi-store-mcp-server", "start"]
}
}
}
VS Code
将此服务添加到 .vscode/mcp.json:
{
"servers": {
"shopify-multi-store": {
"type": "stdio",
"command": "npx",
"args": ["-y", "shopify-multi-store-mcp-server", "start"]
}
}
}
Other LLM clients
将 npx 用作命令,并将 -y shopify-multi-store-mcp-server start 用作参数。
如果客户端支持,请将 skills/shopify-multi-store/SKILL.md 复制到客户端的技能目录。不支持技能的客户端仍可使用所有 MCP 工具。
为团队托管
默认方式是在自己的电脑上本地使用(如上所述)。托管是可选的:想要共享服务的人可以运行一个服务,团队成员则通过自己已在使用的 AI 应用连接,不限方案:Claude(个人自定义连接器)、ChatGPT、Codex、Claude Code、Cursor、VS Code、Gemini CLI、Windsurf,或任何支持远程服务的 MCP 客户端。
每个人都使用自己的 Shopify 员工账号登录,每次调用都使用该用户自己的 Shopify 权限:Shopify 决定他们可以执行的操作,服务端不设置角色或策略文件。Shopify 令牌保存在服务端并经过加密。重新连接最多每天一次,即可一键连接所有商店。每次工具调用都会被审计。
托管方式有两种,均由想要共享服务的人自行托管:
- Cloudflare Workers:
请参阅 docs/DEPLOY-CLOUDFLARE.md 中的分步说明:创建 Shopify 应用,设置四个密钥,进行部署,然后在 AI 应用中添加 MCP URL。
- 任意服务器:运行
shopify-multi-store serve(或使用随附的 Dockerfile),并分享https://<host>/mcp。
请参阅从 AI 应用连接了解各客户端的操作步骤,参阅 docs/HOSTED.md了解设置方法,并参阅 docs/ACTIONS.md了解各用户的访问权限和通用操作工具。
商店身份验证
| 方法 | 命令 | 最适用场景 |
|---|---|---|
| Admin API 访问令牌 | shopify-multi-store setup | 你已在商店管理后台创建的自定义应用,并拥有其 shpat_ 令牌。 |
| 客户端凭据 | shopify-multi-store oauth | Dev Dashboard 应用已安装在与该应用属于同一 Shopify 组织的商店中。 |
| 授权码 | shopify-multi-store oauth | Dev Dashboard 应用已安装在该组织之外的商店中。 |
授权码设置使用 http://127.0.0.1:3456/oauth/callback。请先将其添加为允许的重定向 URL。
默认授权码作用域为只读。请仅授予任务所需的 Admin API 作用域。
连接第一个店铺
每个店铺都需要一个别名(由小写字母、数字和连字符组成,例如 main),以及永久的 *.myshopify.com 域名。店铺管理员可在 Settings > Domains 下查看该域名。凭据取决于获取 Admin API 访问权限的方式。Shopify 现在会在 Dev Dashboard 中创建新应用;在店铺管理员中创建的自定义应用,在原有位置仍可继续使用。
使用 Dev Dashboard 应用(新设置):
- 打开 Dev Dashboard(dev.shopify.com),选择 Apps > Create app,并为应用命名(例如 “Multi-Store MCP”)。
- 创建一个版本。在 access scopes 下添加所需权限范围。
read_products,read_orders,read_inventory,read_locations,read_customers涵盖只读工具;如需查看工具可执行的全部操作所需的权限范围,请运行node "$(npm root -g)/shopify-multi-store-mcp-server/scripts/print-scopes.mjs" --full输出完整列表,并移除应用未获批准的权限范围。使用授权码方式时,还需添加重定向 URLhttp://127.0.0.1:3456/oauth/callback。 - 发布该版本,然后从 Dev Dashboard 将应用安装到店铺,并批准权限范围。
- 从应用设置中复制客户端 ID 和客户端密钥。
- 运行
shopify-multi-store oauth。如果店铺与应用位于同一个 Shopify 组织中,选择client-credentials;否则选择authorization-code(此时会打开浏览器以供批准)。输入别名、*.myshopify.com域名、客户端 ID 和客户端密钥。使用客户端凭据时,服务会自行获取和刷新令牌。
使用在店铺管理员中创建的自定义应用:
- 在店铺管理员中,打开 Settings > Apps(部分管理员中为 Apps and sales channels)> Develop apps,然后打开你的应用。如果管理员仍提供此选项,也可以在那里创建应用。
- 在 Configuration 下为 Admin API 设置所需的权限范围,然后安装应用。
- 在 API credentials 下显示 Admin API 访问令牌(以
shpat_开头;Shopify 只会显示一次)。 - 运行
shopify-multi-store setup,并输入别名、*.myshopify.com域名和令牌。
然后运行 shopify-multi-store doctor 检查每个店铺,并对其他店铺重复上述步骤。密钥会存储在操作系统凭据存储区中,不会写入配置文件。
管理店铺
shopify-multi-store list
shopify-multi-store doctor
shopify-multi-store remove store-alias
导入现有的 stores.json 文件
shopify-multi-store import /absolute/path/to/stores.json
导入过程会将凭据复制到操作系统凭据存储区,并保留已配置的店铺。确认导入无误后,删除旧凭据文件。
该服务提供 29 个工具。
| 工具 | 操作 |
|---|---|
shopify_list_stores | 列出已配置的商店别名。 |
shopify_get_shop_info | 读取单个商店的身份信息。 |
shopify_check_access | 显示已授予的权限范围,以及哪些工具或资源会失败;可检查一个或多个商店。 |
shopify_report | 运行跨商店报告(见上文)。 |
shopify_search | 在一个或多个商店中列出或搜索产品、系列、订单、客户、发布内容、重定向、页面、文件、元对象、市场、主题或配送资料。 |
shopify_get | 按 ID 读取单个产品、系列、订单、库存、元字段集、主题文件、博客文章、已上传图片或批量操作。 |
shopify_update_prices | 在一个或多个商店中为最多 250 个 SKU 设置价格、划线价和单位成本。 |
shopify_set_inventory | 设置可用库存,并启用比较并设置保护。 |
shopify_create_product | 创建包含选项、变体和图片的产品。 |
shopify_update_product | 更新产品字段、变体、媒体和标签。 |
shopify_create_collection | 创建手动系列或智能系列,并将其发布到选定渠道。 |
shopify_update_collection | 更新系列,并向手动系列添加产品。 |
shopify_create_discount | 创建百分比折扣码。 |
shopify_upload_image | 将图片上传到 Shopify Files。 |
shopify_metafields | 为任意所有者设置和删除元字段。 |
shopify_redirects | 创建和删除 URL 重定向。 |
shopify_tags | 为产品、订单、客户或草稿订单添加和移除标签。 |
shopify_update_order | 更新订单备注、电子邮件、配送地址和标签。 |
shopify_update_customer | 更新客户备注、电子邮件和标签。 |
shopify_create_fulfillment | 履行订单中未完成的履行订单,可选附带追踪信息。 |
shopify_find_actions | 搜索所有 Admin API mutation。 |
shopify_describe_action | 描述单个 mutation。 |
shopify_run_action | 在一个或多个商店上运行任意 mutation。 |
shopify_graphql_query | 运行只读 Admin GraphQL 查询。 |
shopify_graphql_query_many | 在多个商店中运行同一个查询。 |
shopify_graphql_mutation | 在获得精确授权后修改单个商店。 |
shopify_graphql_schema | 探索 Admin GraphQL 架构。 |
shopify_validate_graphql_codeblocks | 验证 GraphQL,但不运行。 |
shopify_search_docs_chunks | 搜索 Shopify 文档。 |
只读操作可以并行运行。变更操作仅针对所选商店执行。
所有引导式写入工具默认使用 dryRun: true,返回变更前后(或将创建内容)的预览,不会进行任何修改;用户授权确切的商店和变更后,传入 dryRun: false 即可应用变更。随后,工具会读取结果。产品、订单和客户的标签通过 addTags 和 removeTags 更改;replaceTags 会替换所有标签,预览中会列出将移除的标签。写入结果不会因过大而被丢弃:对于大型结果,会进行截断,同时保留状态、计数以及所有未应用的条目。
shopify_graphql_mutation 和 shopify_run_action 会拒绝列入拒绝名单的 mutation;对于具有破坏性的 mutation(包括仅因参数而具有破坏性的 mutation,例如将产品状态设为 ARCHIVED),必须将 confirm 设置为 mutation 名称。
通用操作工具
三个工具可调用 Shopify Admin API 中的所有变更操作(API 2026-04 中共 514 个),包括其中没有专用工具的 483 个:
| 工具 | 操作 |
|---|---|
shopify_find_actions | 按关键词和类别搜索所有变更操作;标记具有破坏性的操作和已有专用工具的操作。 |
shopify_describe_action | 显示某个变更操作的参数、输入字段、负载、可供编辑的文档和权限范围提示。 |
shopify_run_action | 在 1 到 100 个商店上运行变更操作,并为每个商店指定变量。默认执行试运行,解析其将触及的每条记录 ID;具有破坏性的变更操作需要将 confirm 设置为变更操作名称。 |
拒绝列表会阻止创建凭据或更改应用自身账单的变更操作。使用 node scripts/print-scopes.mjs --full 请求完整的权限范围集。有关示例和第三方应用无法执行的操作,请参阅 docs/ACTIONS.md。
Shopify 配套技能
安装 Shopify 官方的 shopify 技能:
shopify-multi-store install-shopify-skills
该命令会为其检测到的每个受支持的 Agent 安装此技能。传入 --agent <name> 可选择一个 Agent,例如 --agent claude-code。
shopify 技能包含一个路由表。其 admin 主题用于搜索 Shopify 文档并验证自定义 Admin GraphQL 操作;shopifyql 主题涵盖销售额、收入、订单、转化和趋势分析。Shopify toolkit 2.0.0 将原有的 shopify-admin 和 shopify-shopifyql 技能合并为此技能;toolkit 的 ucp 技能(购物命令行工具)不包含在此安装中。
如果 Shopify 再次重命名该技能,命令会以状态码 1 退出,打印 toolkit 附带的技能,并显示用于按名称安装技能的 npx skills add 命令。若未安装任何内容,命令绝不会报告成功。
此服务仍负责控制商店选择、凭据、执行和变更授权。Shopify 的技能脚本默认会发送使用情况遥测数据。
设置 OPT_OUT_INSTRUMENTATION=true 可关闭此遥测功能。
此集成使用官方的 Shopify AI Toolkit。它也借鉴了 Shopify Admin Skills 中的实用模式。
安全模型
机密信息不会进入主配置文件。
| 平台 | 凭据后端 |
|---|---|
| macOS | Keychain |
| Windows | Credential Manager |
| Linux | Secret Service |
配置中存储别名、域名、API 版本和非机密的 OAuth 客户端 ID。默认路径为 ~/.config/codex-shopify-multi-store/stores.json。
codex-shopify-multi-store 这一名称在该路径和凭据存储的服务名称中均有使用,是项目早期版本遗留下来的名称。为确保现有安装仍能使用其商店和凭据,此名称会保留;它并不表示此服务仅适用于 Codex。
设置 SHOPIFY_MULTI_STORE_CONFIG 可使用其他配置路径。
- 切勿提交访问令牌、OAuth 客户端机密、
.env文件或包含凭据的配置文件。 - 仅授予任务所需的 Shopify Admin API 权限范围。
- 每次执行变更操作前,确认目标商店。
- 漏洞报告请参阅 SECURITY.md。
Linux 凭据存储需要 Secret Service 提供程序,例如 GNOME Keyring 或 KWallet。
其他安装选项
无需全局安装即可运行健康检查:
npx -y shopify-multi-store-mcp-server doctor
直接从 GitHub 安装(npm 会运行 prepare 脚本来构建服务):
npm install --global github:alex-brecher/shopify-multi-store
开发
git clone https://github.com/alex-brecher/shopify-multi-store.git
cd shopify-multi-store
npm ci
npm test
npm run test:live
npm pack --dry-run
实时测试使用已配置的商店,并且只会调用 Shopify Admin API 的只读接口。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。