Shopify数据管理服务器

Shopify MCP Server是一个通过GraphQL API与Shopify商店数据交互的服务,提供产品、客户、订单等全面管理功能。

  • by therealhexi
  • TypeScript
  • 本地部署
  • 10 星标
  • 更新于
在 GitHub 查看 therealhexi/shopify-mcp-server-main

使用说明

Shopify MCP服务器

Shopify API的MCP服务器,通过GraphQL API实现与商店数据的交互。此服务器提供用于管理产品、客户、订单等的工具。

特性

  • 产品管理:搜索和检索产品信息
  • 客户管理:加载客户数据并管理客户标签
  • 订单管理:高级订单查询和筛选
  • GraphQL集成:与Shopify的GraphQL Admin API直接集成
  • 全面的错误处理:清除API和身份验证问题的错误消息

工具

  1. get-products

    • 获取所有产品或按标题搜索
    • 输入:
      • searchTitle (可选字符串):按标题筛选产品
      • limit (数量):可退回的最大产品数量
    • 退货:格式化的产品详细信息,包括标题、描述、句柄和变体
  2. get-products-by-collection

    • 从特定收藏中获取产品
    • 输入:
      • collectionId (string):要从中获取产品的集合的ID
      • limit (可选数量,默认值:10):可退回的最大产品数量
    • 返回:来自指定集合的格式化产品详细信息
  3. get-products-by-ids

    • 按ID获取产品
    • 输入:
      • productIds (字符串数组):要检索的产品ID数组
    • 退货:指定产品的格式化产品详细信息
  4. update-product-price

    • 更新其ID的产品价格
    • 输入:
      • productId (string):要更新的产品的ID
      • price (string):产品的新价格
    • 返回:更新的响应
  5. get-variants-by-ids

    • 通过ID获取产品变体
    • 输入:
      • variantIds (字符串数组):要检索的变量ID数组
    • 返回:详细的变体信息,包括产品详细信息
  6. get-customers

    • 通过分页支持让客户购物
    • 输入:
      • limit (可选数量):可退货的最大客户数量
      • next (可选字符串):下一页光标
    • 返回:JSON格式的客户数据
  7. tag-customer

    • 为客户添加标签
    • 输入:
      • customerId (string):要标记的客户ID
      • tags (字符串数组):要添加到客户的标签
    • 返回:成功或失败消息
  8. get-orders

    • 通过高级过滤和排序获取订单
    • 输入:
      • first (可选数字):退货订单限制
      • after (可选字符串):下一页光标
      • query (可选字符串):使用查询语法筛选订单
      • sortKey (可选枚举):要排序的字段(“PROCESSIED_AT”、“TOTAL_PRICE”、“ID”、“CREATED_AT”、”UPDATED_AT“、”ORDER_NUMBER“)
      • reverse (可选布尔值):反向排序顺序
    • 退货:格式化订单详细信息
  9. get-order

    • 按ID获取单个订单
    • 输入:
      • orderId (string):要检索的订单的ID
    • 退货:详细订单信息
  10. create-discount

  • 创建基本折扣码
  • 输入:
    • title (string):折扣标题
    • code (string):客户将输入的折扣码
    • valueType (枚举):折扣类型(“百分比”或“固定金额”)
    • value (数字):折扣值(小数百分比或固定金额)
    • startsAt (字符串):ISO格式的开始日期
    • endsAt (可选字符串):ISO格式的可选结束日期
    • appliesOncePerCustomer (boolean):折扣是否每个客户只能使用一次
  • 退货:已创建折扣详细信息
  1. create-draft-order

    • 创建订单草稿
    • 输入:
      • lineItems (array):具有变量Id和数量的项目数组
      • email (string):客户电子邮件
      • shippingAddress (对象):收货地址详细信息
      • note (可选字符串):订单的可选注释
    • 退货:已创建草稿订单详细信息
  2. complete-draft-order

    • 完成订单草稿
    • 输入:
      • draftOrderId (string):要完成的草稿订单的ID
      • variantId (string):草稿顺序中变量的ID
    • 退货:已完成订单详情
  3. get-collections

    • 获取所有收藏
    • 输入:
      • limit (可选数字,默认值:10):要返回的最大集合数
      • name (可选字符串):按名称筛选集合
    • 退货:收款明细
  4. get-shop

    • 获取店铺详细信息
    • 输入:无
    • 退货:店铺基本信息
  5. get-shop-details

    • 获取包括发货国家在内的扩展店铺详细信息
    • 输入:无
    • 退货:扩展店铺信息,包括发货国家
  6. manage-webhook

    • 订阅、查找或取消订阅webhooks
    • 输入:
      • action (enum):要执行的操作(“订阅”、“查找”、“取消订阅”)
      • callbackUrl (string):Webhook回调URL
      • topic (enum):要订阅的Webhook主题
      • webhookId (可选字符串):Webhook ID(取消订阅时需要)
    • 返回:Webhook详细信息或成功消息

设置

Shopify访问令牌

要使用此MCP服务器,您需要在Shopify商店中创建一个自定义应用程序:

  1. 从您的Shopify管理员,转到 设置 > 应用程序和销售渠道
  2. 点击 开发应用程序 (您可能需要先启用开发人员预览)
  3. 点击 创建应用程序
  4. 为您的应用程序设置一个名称(例如,“Shopify MCP服务器”)
  5. 点击 配置管理员API作用域
  6. 选择以下范围:
    • read_products, write_products
    • read_customers, write_customers
    • read_orders, write_orders
  7. 点击 保存
  8. 点击 安装应用程序
  9. 点击 安装 让应用程序访问您的商店数据
  10. 安装后,您将看到 管理员API访问令牌
  11. 复制此令牌-您需要它进行配置

注意:安全地存储您的访问令牌。它提供对您的存储数据的访问,永远不应该被共享或提交给版本控制。 有关如何创建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"
      }
    }
  }
}

发展

  1. 克隆存储库
  2. 安装依赖项:
npm install
  1. 创建一个 .env 文件:
SHOPIFY_ACCESS_TOKEN=your_access_token
MYSHOPIFY_DOMAIN=your-store.myshopify.com
  1. 构建项目:
npm run build
  1. 运行测试:
npm test

依赖项

  • @modelcontextprotocol/sdk-MCP协议实现
  • graphql-request-Shopify API的graphql客户端
  • zod-运行时类型验证

贡献

欢迎投稿!请阅读我们的 贡献指南 第一。

许可证

麻省理工学院

社区


内置于❤️ 使用 模型上下文协议