使用说明
Shopify MCP服务器
(如果你愿意,请留下一颗星!)
Shopify API的MCP服务器,通过GraphQL API实现与商店数据的交互。此服务器提供用于管理产品、客户、订单等的工具。
📦 包名称: shopify-mcp
🚀 命令: shopify-mcp (不是 shopify-mcp-server)
🌟 新特点
- 🔄 Modo双:支持STDIO(用于IDE)和HTTP(用于远程访问)
- 🌐 HTTP 服务器:通过API密钥认证的远程访问
- 🔒 安全:强大的认证和CORS支持
- 🛠 兼容:与光标、VS代码、克劳德桌面等一起工作
特性
- 产品管理:搜索和检索产品信息
- 客户管理:加载客户数据并管理客户标签
- 订单管理:高级订单查询和筛选
- GraphQL集成:与Shopify的GraphQL Admin API直接集成
- 全面的错误处理:清除API和身份验证问题的错误消息
先决条件
- Node.js(版本16或更高)
- Shopify自定义应用访问令牌(请参阅下面的设置说明)
🚀 操作方式
该MCP服务器现在支持两种模式:
📱 STDIO模式(默认)
- 与IDE兼容,如光标、VS代码、Claude Desktop
- 过程到过程的直接沟通
- 传统MCP配置
🌐 HTTP模式(新)
- 通过API密钥进行身份验证的远程HTTP服务器
- 从任何支持HTTP的工具访问
- 非常适合分布式设备和远程访问
设置
Shopify访问令牌
要使用此MCP服务器,您需要在Shopify商店中创建一个自定义应用程序:
- 从您的Shopify管理员,转到 设置 > 应用程序和销售渠道
- 点击 开发应用程序 (您可能需要先启用开发人员预览)
- 点击 创建应用程序
- 为您的应用程序设置一个名称(例如,“Shopify MCP服务器”)
- 点击 配置管理员API作用域
- 选择以下范围:
read_products,write_productsread_customers,write_customersread_orders,write_orders
- 点击 保存
- 点击 安装应用程序
- 点击 安装 让应用程序访问您的商店数据
- 安装后,您将看到 管理员API访问令牌
- 复制此令牌-您需要它进行配置
📋 快速配置
STDIO模式(传统)
克劳德桌面
将此添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"shopify": {
"command": "npx",
"args": [
"shopify-mcp",
"--accessToken",
"<YOUR_ACCESS_TOKEN>",
"--domain",
"<YOUR_SHOP>.myshopify.com"
]
}
}
}
光标/VS代码
{
"mcpServers": {
"shopify": {
"command": "node",
"args": ["/ruta/a/shopify-mcp/dist/index.js"],
"env": {
"SHOPIFY_ACCESS_TOKEN": "tu_token",
"MYSHOPIFY_DOMAIN": "tu-tienda.myshopify.com"
}
}
}
}
Modo HTTP(远程)
1.互联网服务HTTP
# Instalar dependencias
npm install
# Compilar
npm run build
# Ejecutar en modo HTTP
SHOPIFY_ACCESS_TOKEN=tu_token \
MYSHOPIFY_DOMAIN=tu-tienda.myshopify.com \
SERVER_MODE=http \
API_KEY=tu-clave-api-segura \
npm run start:http
2.配置远程访问的IDE
{
"mcpServers": {
"shopify-remote": {
"transport": "http",
"url": "http://localhost:3000/mcp",
"headers": {
"X-API-Key": "tu-clave-api-segura"
}
}
}
}
Claude Desktop配置文件的位置:
- MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%/Claude/claude_desktop_config.json
替代方案:使用环境变量在本地运行
如果您更喜欢使用环境变量而不是命令行参数:
-
创建一个
.env使用您的Shopify凭据文件:SHOPIFY_ACCESS_TOKEN=your_access_token MYSHOPIFY_DOMAIN=your-store.myshopify.com -
使用npx运行服务器:
npx shopify-mcp
直接安装(可选)
如果要全局安装该软件包:
npm install -g shopify-mcp
然后运行它:
shopify-mcp --accessToken=<YOUR_ACCESS_TOKEN> --domain=<YOUR_SHOP>.myshopify.com
⚠️ 重要提示: 如果在使用命令行参数时看到有关“SHOPY_ACCESS_TOKEN环境变量是必需的”的错误,则可能安装了不同的包。确保您正在使用 shopify-mcp,不 shopify-mcp-server.
可用工具
产品管理
-
get-products- 获取所有产品或按标题搜索
- 输入:
searchTitle(可选字符串):按标题筛选产品limit(数量):可退回的最大产品数量
-
get-product-by-id- 按ID获取特定产品
- 输入:
productId(string):要检索的产品的ID
-
create-product- 在店内创建新产品
- 输入:
title(string):产品名称descriptionHtml(string):产品描述vendor(string):产品供应商productType(string):产品类型tags(array):产品标签status(string):产品的状态“ACTIVE”、“DRAFT”、“ARCHIVED”。默认“草稿”
-
create-order- 使用客户数据、产品和账单信息创建新订单
- 输入:
customer(对象,必填):客户信息email(字符串,必填):客户电子邮件地址firstName(string):客户名字lastName(string):客户姓氏phone(string):客户电话号码
lineItems(数组,必填):订单中要包含的产品variantId(字符串,必填):产品变体IDquantity(数字,必填):订购数量price(数字):每单位定制价格(可选)
billingAddress(object):账单地址信息shippingAddress(object):收货地址信息note(string):订单备注tags(数组):订单标签financialStatus(string):财务状况(“待定”、“已支付”等)fulfillmentStatus(string):完成状态sendReceipt(boolean):向客户发送收据电子邮件inventoryBehaviour(string):如何处理库存
客户管理
-
get-customers- 获取客户或按姓名/电子邮件搜索
- 输入:
searchQuery(可选字符串):按姓名或电子邮件筛选客户limit(可选数量,默认值:10):可退回的最大客户数量
-
create-customer- 使用个人信息、地址和偏好创建新客户
- 输入:
email(字符串,必填):客户电子邮件地址(必须唯一)firstName(string):客户名字lastName(string):客户姓氏phone(string):客户电话号码acceptsMarketing(boolean):客户是否接受营销电子邮件marketingOptInLevel(字符串):营销选择加入级别(“SINGLE_opt_in”、“CONFIRMED_opt_in”、“未知”)state(string):客户帐户状态(“禁用”、“邀请”、“启用”、“已停用”)taxExempt(boolean):客户是否免税note(string):关于客户的内部说明tags(数组):组织的客户标签addresses(数组):客户地址,需要地址1、城市、国家、邮政编码metafields(数组):为客户自定义图元字段
-
update-customer- 更新客户信息
- 输入:
id(字符串,必填):Shopify客户ID(仅限数字ID,如“6276879810626”)firstName(字符串,可选):客户的名字lastName(字符串,可选):客户的姓氏email(字符串,可选):客户的电子邮件地址phone(字符串,可选):客户的电话号码tags(字符串数组,可选):应用于客户的标签note(string,可选):关于客户的注释taxExempt(boolean,可选):客户是否免税metafields(对象数组,可选):用于存储其他数据的客户元字段
-
get-customer-orders- 获取特定客户的订单
- 输入:
customerId(字符串,必填):Shopify客户ID(仅限数字ID,如“6276879810626”)limit(可选数字,默认值:10):要返回的最大订单数
订单管理
-
get-orders- 使用可选过滤功能获取订单
- 输入:
status(可选字符串):按订单状态筛选limit(可选数字,默认值:10):要返回的最大订单数
-
get-order-by-id- 按ID获取特定订单
- 输入:
orderId(字符串,必填):完整的Shopify订单ID(例如,“gid://shopify/Order/6090960994370")
-
update-order- 用新信息更新现有订单
- 输入:
id(字符串,必填):Shopify订单IDtags(字符串数组,可选):订单的新标签email(字符串,可选):更新客户电子邮件note(字符串,可选):订单备注customAttributes(对象数组,可选):订单的自定义属性metafields(对象数组,可选):对图元字段进行排序shippingAddress(对象,可选):收货地址信息
📚 补充文件
- 用法.md:两种模式的详细使用指南
- IDE_CONFIG.md:不同IDE和工具的特定配置
🔧 可用脚本
# Desarrollo
npm run dev # Modo STDIO (por defecto)
npm run dev:http # Modo HTTP
npm run dev:stdio # Modo STDIO explícito
# Producción
npm run build # Compilar TypeScript
npm run start # Modo STDIO (por defecto)
npm run start:http # Modo HTTP
npm run start:stdio # Modo STDIO explícito
🌐 端点HTTP(Modo HTTP)
- 健康检查:
GET /health - MCP端点:
GET /mcp(服务器发送的事件)
调试
音频
如果遇到问题,请检查Claude Desktop的MCP日志:
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
Modo HTTP
检查服务器日志和测试终结点:
# Verificar salud del servidor
curl -H "X-API-Key: tu-clave-api" http://localhost:3000/health
# Ver logs del servidor
npm run start:http
许可证
麻省理工学院
