关于 Shopify MCP Server
Shopify MCP Server 通过 Shopify GraphQL Admin API 提供店铺操作工具,面向开发者和店铺运营人员。功能涵盖商品、客户、订单、折扣、草稿订单、店铺信息及 Webhook。
主要功能
- 01搜索和获取商品
- 02浏览系列商品
- 03获取客户并管理标签
- 04筛选和查询订单
- 05创建折扣和草稿订单
- 06管理商品系列与 Webhook
适用场景
- 01按标题或系列查找商品
- 02通过筛选和排序查看订单
- 03为客户添加标签并获取客户记录
- 04创建折扣或完成草稿订单
MCP 相关
它向 MCP 客户端提供工具,通过 Shopify GraphQL Admin API 查询和管理店铺数据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Shopify MCP 服务
用于 Shopify API 的 MCP 服务,可通过 GraphQL API 与商店数据交互。此服务提供用于管理产品、客户、订单等内容的工具。
目录
功能
- 产品管理:搜索和获取产品信息
- 客户管理:加载客户数据并管理客户标签
- 订单管理:高级订单查询与筛选
- GraphQL 集成:直接集成 Shopify 的 GraphQL Admin API
- 全面的错误处理:针对 API 和身份验证问题提供清晰的错误消息
工具
-
get-products- 获取所有产品或按标题搜索
- 输入:
searchTitle(可选字符串):按标题筛选产品limit(数字):要返回的产品数量上限
- 返回:格式化的产品详情,包括标题、描述、handle 和变体
-
get-products-by-collection- 获取指定系列中的产品
- 输入:
collectionId(字符串):要获取产品的系列 IDlimit(可选数字,默认值:10):要返回的产品数量上限
- 返回:指定系列中的格式化产品详情
-
get-products-by-ids- 按产品 ID 获取产品
- 输入:
productIds(字符串数组):要获取的产品 ID 数组
- 返回:指定产品的格式化详情
-
get-variants-by-ids- 按 ID 获取产品变体
- 输入:
variantIds(字符串数组):要获取的变体 ID 数组
- 返回:详细的变体信息,包括产品详情
-
get-customers- 获取 Shopify 客户,支持分页
- 输入:
limit(可选数字):要返回的客户数量上限next(可选字符串):下一页游标
- 返回:JSON 格式的客户数据
-
tag-customer- 为客户添加标签
- 输入:
customerId(字符串):要添加标签的客户 IDtags(字符串数组):要添加到客户的标签
- 返回:成功或失败消息
-
get-orders- 使用高级筛选和排序获取订单
- 输入:
first(可选数字):要返回的订单数量上限after(可选字符串):下一页游标query(可选字符串):使用查询语法筛选订单sortKey(可选枚举):排序字段('PROCESSED_AT'、'TOTAL_PRICE'、'ID'、'CREATED_AT'、'UPDATED_AT'、'ORDER_NUMBER')reverse(可选布尔值):是否反转排序顺序
- 返回:格式化的订单详情
-
get-order- 按 ID 获取单个订单
- 输入:
orderId(字符串):要获取的订单 ID
- 返回:详细的订单信息
-
create-discount- 创建基本折扣码
- 输入:
title(字符串):折扣标题code(字符串):客户将输入的折扣码valueType(枚举):折扣类型('percentage' 或 'fixed_amount')value(数字):折扣值(百分比用小数表示,或填写固定金额)startsAt(字符串):ISO 格式的开始日期endsAt(可选字符串):ISO 格式的可选结束日期appliesOncePerCustomer(布尔值):折扣是否只能由每位客户使用一次
- 返回:已创建的折扣详情
-
create-draft-order- 创建草稿订单
- 输入:
lineItems(数组):包含 variantId 和 quantity 的商品数组email(字符串):客户邮箱shippingAddress(对象):收货地址详情note(可选字符串):订单的可选备注
- 返回:已创建的草稿订单详情
-
complete-draft-order- 完成草稿订单
- 输入:
draftOrderId(字符串):要完成的草稿订单 IDvariantId(字符串):草稿订单中变体的 ID
- 返回:已完成的订单详情
-
get-collections- 获取所有产品系列
- 输入:
limit(可选数字,默认值:10):要返回的产品系列数量上限name(可选字符串):按名称筛选产品系列
- 返回:产品系列详情
-
get-shop- 获取店铺详情
- 输入:无
- 返回:店铺基本信息
-
get-shop-details- 获取包含配送国家/地区在内的扩展店铺详情
- 输入:无
- 返回:包含配送国家/地区在内的扩展店铺信息
-
manage-webhook- 订阅、查找或取消订阅 Webhook
- 输入:
action(枚举):要执行的操作('subscribe'、'find'、'unsubscribe')callbackUrl(字符串):Webhook 回调 URLtopic(枚举):要订阅的 Webhook 主题webhookId(可选字符串):Webhook ID(取消订阅时必填)
- 返回:Webhook 详情或成功消息
入门指南
要开始使用 Shopify MCP Server,请按以下步骤操作:
- 克隆代码库:
git clone https://github.com/your-username/shopify-mcp-server.git
- 进入项目目录:
cd shopify-mcp-server
- 安装依赖:
npm install
- 使用你的 Shopify 凭据创建
.env文件:
SHOPIFY_ACCESS_TOKEN=your_access_token
MYSHOPIFY_DOMAIN=your-store.myshopify.com
- 构建项目:
npm run build
- 运行服务:
npm start
使用场景
示例 1:管理商品
使用 Shopify MCP Server,你可以轻松管理商品。例如,你可以按标题搜索商品、获取商品详情并更新商品信息。
示例 2:处理订单
该服务提供高级订单查询和筛选功能。你可以根据各种条件获取订单,例如订单状态、日期范围和客户信息。
用户评价
“Shopify MCP Server 极大简化了我们的商品管理流程。它是一个强大的工具,为我们节省了大量时间。”——John Doe,店主
“我们很喜欢高级订单筛选选项。它让我们更轻松地查找特定订单并高效管理店铺。”——Jane Smith,电商经理
设置
Shopify 访问令牌
要使用此 MCP 服务,你需要在 Shopify 店铺中创建一个自定义应用:
- 在 Shopify 管理后台中,前往 设置 > 应用和销售渠道
- 点击 开发应用(你可能需要先启用开发者预览)
- 点击 创建应用
- 为应用设置名称(例如,“Shopify MCP Server”)
- 点击 配置 Admin API 访问范围
- 选择以下访问范围:
read_products、write_productsread_customers、write_customersread_orders、write_orders
- 点击 保存
- 点击 安装应用
- 点击 安装,授予应用访问店铺数据的权限
- 安装后,你会看到 Admin API 访问令牌
- 复制此令牌——配置时需要用到
注意:请妥善保管访问令牌。它可用于访问店铺数据,绝不可分享或提交到版本控制中。
关于如何创建 Shopify 应用的更多详情,请参阅此处。
在 Claude Desktop 中使用
将以下内容添加到你的 claude_desktop_config.json:
{
"mcpServers": {
"shopify": {
"command": "npx",
"args": ["-y", "shopify-mcp-server"],
"env": {
"SHOPIFY_ACCESS_TOKEN": "<YOUR_ACCESS_TOKEN>",
"MYSHOPIFY_DOMAIN": "<YOUR_SHOP>.myshopify.com"
}
}
}
}
开发
- 克隆代码库
- 安装依赖:
npm install
- 创建
.env文件:
SHOPIFY_ACCESS_TOKEN=your_access_token
MYSHOPIFY_DOMAIN=your-store.myshopify.com
- 构建项目:
npm run build
- 运行测试:
npm test
测试
项目使用 Jest 进行单元测试。测试按模块结构组织:
src/__tests__/utils/- 工具函数的测试src/__tests__/tools/- 工具模块的测试src/__tests__/ShopifyClient.test.ts- Shopify 客户端的测试
运行测试:
npm test
运行测试并生成覆盖率报告:
npm test -- --coverage
测试使用模拟对象,避免向 Shopify 发起真实 API 调用,确保测试运行快速、可靠,且无需实际凭据。
依赖项
- @modelcontextprotocol/sdk - MCP 协议实现
- graphql-request - Shopify API 的 GraphQL 客户端
- zod - 运行时类型验证
贡献
欢迎贡献!请先阅读我们的贡献指南。
许可证
MIT
社区
使用 Model Context Protocol 构建,❤️ 倾情打造
感谢 Website (https://rezajafar.com/) 发起本项目
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。