mcpField
S
shopify-mcp

shopify-mcp

本地服务
github.com/miller-joe商业与营销220 周前更新

关于 shopify-mcp

shopify-mcp 是通过 Admin GraphQL API 管理 Shopify 商店的 MCP 服务。可选的 ComfyUI 桥接功能能够生成或精修商品图,并将图片用于创建和更新商品。

主要功能

  1. 01管理商品、订单和客户
  2. 02处理库存、变体和商品系列
  3. 03管理履约与草稿订单
  4. 04操作 metafield、metaobject 和 webhook
  5. 05运行 ShopifyQL 分析查询
  6. 06通过 ComfyUI 生成或精修商品图

适用场景

  1. 01创建带生成图片的商品
  2. 02更新商品详情、变体和库存
  3. 03管理草稿订单与履约
  4. 04查询商店销售及商品分析数据

MCP 相关

向 MCP 客户端提供 Shopify Admin API 操作,包括商品、订单、库存和商店管理工具。配置 ComfyUI 后,桥接工具可生成或精修图片并将其附加到 Shopify 商品。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"miller-joe-shopify": {
"command": "npx",
"args": [
"-y",
"@miller-joe/shopify-mcp"
],
"env": {
"SHOPIFY_STORE": "<SHOPIFY_STORE>",
"SHOPIFY_ACCESS_TOKEN": "<SHOPIFY_ACCESS_TOKEN>",
"SHOPIFY_API_VERSION": "<SHOPIFY_API_VERSION>",
"COMFYUI_URL": "<COMFYUI_URL>",
"COMFYUI_PUBLIC_URL": "<COMFYUI_PUBLIC_URL>",
"COMFYUI_DEFAULT_CKPT": "<COMFYUI_DEFAULT_CKPT>"
}
}
}
}
启动命令npx -y @miller-joe/shopify-mcp
需要配置的环境变量
SHOPIFY_STOREStore domain, e.g. 'my-store' or 'my-store.myshopify.com'
SHOPIFY_ACCESS_TOKEN密钥Admin API access token (shpat_...). See README for how to create a custom app on a dev store.
SHOPIFY_API_VERSIONShopify GraphQL Admin API version (default: 2026-04)
COMFYUI_URLComfyUI HTTP URL for bridge tools. When unset, generate_* bridge tools are disabled.
COMFYUI_PUBLIC_URLExternally-reachable ComfyUI URL (defaults to COMFYUI_URL)
COMFYUI_DEFAULT_CKPTDefault ComfyUI checkpoint filename for bridge tools (default: sd_xl_base_1.0.safetensors)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@miller-joe/shopify-mcp0.1.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

shopify-mcp

适用于 Shopify 的 MCP 服务。提供完整的 Admin GraphQL API 工具,并通过 ComfyUI 图像生成实现 AI 驱动的商品创建桥接。

shopify-mcp MCP server

GitHub Sponsors Ko-fi

核心卖点

其他 Shopify MCP 基本都是简单的 Admin API 封装。这个服务可与 @miller-joe/comfyui-mcp 配合使用,让你可以提出这样的要求:

“创建一个名为 ‘Nebula Dreamer’ 的商品。为它生成一张宇宙风格的抽象图片,撰写符合氛围的描述,添加 astrology 标签,状态设为草稿。”

随后,Claude 会运行 ComfyUI、获取生成的图片、创建 Shopify 商品并附上图片,一次调用即可完成。

安装

# npx, no install
npx @miller-joe/shopify-mcp \
  --shopify-store your-store.myshopify.com \
  --shopify-access-token shpat_xxx

# Docker
docker run -p 9110:9110 \
  -e SHOPIFY_STORE=your-store.myshopify.com \
  -e SHOPIFY_ACCESS_TOKEN=shpat_xxx \
  -e COMFYUI_URL=http://comfyui:8188 \
  ghcr.io/miller-joe/shopify-mcp:latest

连接 MCP 客户端

claude mcp add --transport http shopify http://localhost:9110/mcp

或者将 MCP 网关指向 Streamable HTTP 端点。

配置

CLI 标志环境变量默认值说明
--shopify-storeSHOPIFY_STORE(必填)my-store 或 my-store.myshopify.com
--shopify-access-tokenSHOPIFY_ACCESS_TOKEN(必填)Admin API 令牌(shpat_…)
--shopify-api-versionSHOPIFY_API_VERSION2026-04GraphQL Admin API 版本
--hostMCP_HOST0.0.0.0绑定主机(仅 HTTP 模式)
--portMCP_PORT9110绑定端口(仅 HTTP 模式)
--stdioMCP_TRANSPORT=stdio(未设置)通过 stdio 而非 HTTP 传输 MCP。由优先使用 stdio 的 MCP 客户端(Claude Desktop、mcp-inspector)作为子进程启动时使用。
--comfyui-urlCOMFYUI_URL(可选)设置后启用桥接工具
--comfyui-public-urlCOMFYUI_PUBLIC_URL与 --comfyui-url 相同用于传递给 Shopify 的图片引用的外部 URL
(无标志)COMFYUI_DEFAULT_CKPTsd_xl_base_1.0.safetensors桥接工具的默认检查点
传输方式

默认情况下,服务使用 Streamable HTTP(适用于 Claude Code、MetaMCP 和原生 fetch)。传入 --stdio(或设置 MCP_TRANSPORT=stdio)即可切换为 stdio 模式;Claude Desktop 和 MCP Inspector 等优先使用 stdio 的客户端需要此模式:

// claude_desktop_config.json
{
  "mcpServers": {
    "shopify": {
      "command": "npx",
      "args": ["-y", "@miller-joe/shopify-mcp", "--stdio"],
      "env": {
        "SHOPIFY_STORE": "my-store.myshopify.com",
        "SHOPIFY_ACCESS_TOKEN": "shpat_…"
      }
    }
  }
}
获取 Shopify 访问令牌

简单方式,适用于现有开发商店: Shopify Admin → Apps → Develop apps → Create custom app → 启用相关 Admin API 权限范围(write_products、read_orders、write_inventory、read_customers)→ 安装 → 复制 Admin API 访问令牌(以 shpat_ 开头)。

适用于新应用(2026 年 1 月之后): 对于新建应用,旧版自定义应用令牌已弃用。使用 Dev Dashboard 的令牌交换流程获取可用令牌,然后在此处提供。多租户 OAuth 已列入路线图。

工具

核心 Admin
工具描述
list_products使用 Shopify 查询语法分页搜索商品
get_product获取单个商品及其变体、图片和媒体
create_product创建商品(默认状态为 DRAFT);可选择附加图片
update_product更新标题、描述、标签、状态等
upload_product_image将公开图片 URL 附加到现有商品
list_orders按时间从新到旧列出订单,并支持查询筛选
get_order获取单个订单及其行项目
set_inventory_quantity设置某个地点的绝对现有库存数量
list_locations列出商店地点(用于库存操作)
list_customers列出客户,并支持查询筛选
元字段
工具描述
set_metafield在任何 HasMetafields 资源(产品、变体、系列、客户、订单、商店等)上创建或更新元字段
list_metafields列出资源的元字段,可按命名空间筛选
delete_metafield根据(ownerId、namespace、key)删除元字段
草稿订单
工具描述
list_draft_orders使用 Shopify 查询筛选条件列出草稿订单
get_draft_order获取单个草稿订单及其订单项
create_draft_order创建草稿订单。订单项可以是变体引用,也可以是自定义项(标题 + 价格)。
update_draft_order更新客户、订单项、标签、备注和电子邮件
complete_draft_order将草稿订单转换为正式订单。paymentPending 会跳过扣款。
delete_draft_order删除尚未完成的草稿订单
Webhook
工具描述
list_webhooks列出 Webhook 订阅;可按主题筛选
get_webhook获取单个订阅
create_webhook将 HTTPS 回调 URL 订阅到某个主题(例如 ORDERS_CREATE)
update_webhook更改回调 URL、格式或字段/元字段筛选条件
delete_webhook删除订阅
Metaobject
工具描述
list_metaobject_definitions查找商店中的 Metaobject 类型(架构),包括字段定义
list_metaobjects列出指定类型的 Metaobject
get_metaobject获取单个 Metaobject 及其所有字段
create_metaobject创建 Metaobject(类型必须已存在定义)。支持 ACTIVE/DRAFT 状态。
update_metaobject创建或更新字段、更改句柄、切换可发布状态
delete_metaobject删除 Metaobject
履约
工具描述
list_fulfillment_orders列出订单的履约订单(每个配送地点一个),并显示各订单项的剩余数量
get_fulfillment_order获取单个履约订单
get_fulfillment获取单个履约记录(发货记录)及其追踪信息
create_fulfillment将履约订单(或指定数量)标记为已履约。可选择附加追踪信息并通知客户。
update_fulfillment_tracking更新现有履约的承运商、追踪号码或 URL
cancel_fulfillment按 ID 取消履约

支持部分履约。传入包含各订单项 quantity 的特定 fulfillmentOrderLineItems,也可以省略该数组以履约整个履约订单。

变体和产品选项
工具描述
list_variants列出产品的所有变体及其已选选项、价格、SKU 和库存
create_variants批量创建变体(最多 100 个),并设置选项值、价格、SKU、compareAtPrice 和初始库存
update_variants批量更新变体的价格、compareAtPrice、SKU、条形码、taxable、inventoryPolicy 和选项值
delete_variants批量删除产品的变体
reorder_variants设置变体从 1 开始的排序位置
add_product_options添加选项(尺寸 / 颜色 / 等)及其可选值。每个产品最多 3 个选项。

对于全新产品,创建首个实际变体时,必须使用 strategy="REMOVE_STANDALONE_VARIANT" 来替换自动生成的 "Default Title" 变体。

集合与标签
工具描述
list_collections使用查询筛选条件列出集合
get_collection获取单个集合及其产品
create_collection创建手动集合,可选择预先添加产品
update_collection更新标题、描述或句柄
delete_collection删除集合
add_products_to_collection将产品添加到手动集合(由 Shopify 端的异步任务处理)
remove_products_from_collection从手动集合中移除产品
add_tags为任何可添加标签的资源(Product、Order、Customer、DraftOrder、Collection)添加标签
remove_tags从可添加标签的资源中移除标签
分析(ShopifyQL)
工具描述
run_shopifyql_query运行 ShopifyQL 查询,并将结果呈现为 ASCII 表格。传入 raw=true 可获取原始 JSON 载荷。

示例:

  • FROM sales SHOW total_sales BY day SINCE -30d TIMESERIES
  • FROM products SHOW product_title, quantity_sold BY product_id SINCE -7d ORDER BY quantity_sold DESC LIMIT 10
ComfyUI 桥接(配置了 COMFYUI_URL 时)
工具描述
generate_and_create_product生成图片并用它创建产品,一次调用即可完成。如果未提供标题和描述,则根据提示词生成。
generate_product_image生成图片并将其附加到现有产品。
refine_product_image对产品的主图(或指定 URL)运行 img2img,并附加优化后的图片。调整 denoise(0–1)可控制结果与源图的差异程度。
bulk_regenerate_images对符合查询条件的所有产品,使用模板化提示词运行生成器并附加新图片。

bulk_regenerate_images 的模板占位符:{title}、{handle}。

示例:一次调用完成整个流程

Claude, use generate_and_create_product:
  prompt: "minimalist sunset mountain silhouette, warm gradient, vector style"
  title: "Mountain Sunset Poster"
  status: DRAFT
  tags: ["posters", "nature", "minimalist"]

ComfyUI 生成图片,Shopify 创建并附加图片的产品,然后返回产品 ID 和图片 URL。一个提示词,一次调用,即可创建真实商品 listing。

架构

┌────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  MCP client    │────▶│  shopify-mcp     │────▶│  Shopify Admin  │
│  (Claude etc.) │◀────│  (this server)   │◀────│  GraphQL API    │
└────────────────┘     └────────┬─────────┘     └─────────────────┘
                                │
                                │ (bridge tools only)
                                ▼
                       ┌──────────────────┐
                       │  ComfyUI         │
                       │  (txt2img)       │
                       └──────────────────┘

桥接工具通过 HTTP 直接调用 ComfyUI,获取图片 URL,然后将其传递给 Shopify 的 productCreateMedia mutation。Shopify 会获取图片并将其托管在自己的 CDN 上。

开发

git clone https://github.com/miller-joe/shopify-mcp
cd shopify-mcp
npm install
npm run dev   # hot reload via tsx watch
npm run build
npm run typecheck
npm test

需要 Node 20+。

路线图

已发布:

  • 核心产品 CRUD 及图片附加
  • 订单读取、库存设置及位置、客户读取
  • ComfyUI 桥接:generate_and_create_product、generate_product_image、bulk_regenerate_images
  • Metafields:set_metafield、list_metafields、delete_metafield
  • 草稿订单:创建 / 更新 / 完成 / 删除 / 列出 / 获取
  • 集合与标签:CRUD、添加 / 移除产品、add_tags / remove_tags
  • 变体和产品选项:批量创建 / 更新 / 删除 / 重新排序,以及 add_product_options
  • 履行:列出 / 获取履行订单、创建履行(支持部分履行)、更新跟踪信息、取消
  • Webhook:列出 / 获取 / 创建 / 更新 / 删除
  • Metaobjects:定义列表及 metaobject CRUD
  • ShopifyQL 分析:run_shopifyql_query,支持呈现为 ASCII 表格
  • 图片优化桥接:refine_product_image(使用 ComfyUI img2img 处理产品图片)

计划中:

  • 面向新应用身份验证的 OAuth 令牌交换流程。

许可证

MIT © Joe Miller

支持

如果这为你节省了时间,欢迎支持开发:

GitHub Sponsors Ko-fi

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。