Shopify数据管理服务器

通过GraphQL API与Shopify商店数据交互的服务,提供产品、客户、订单等电商核心数据的管理工具。

  • by kimcchq
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 kimcchq/shopify-mcp-server

使用说明

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. get-variants-by-ids

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

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

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

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

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

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

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

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

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

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

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

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

入门指南

要开始使用Shopify MCP服务器,请按照以下步骤操作:

  1. 克隆存储库:
git clone https://github.com/your-username/shopify-mcp-server.git
  1. 导航到项目目录:
cd shopify-mcp-server
  1. 安装依赖项:
npm install
  1. 创建一个 .env 使用您的Shopify凭据文件:
SHOPIFY_ACCESS_TOKEN=your_access_token
MYSHOPIFY_DOMAIN=your-store.myshopify.com
  1. 构建项目:
npm run build
  1. 运行服务器:
npm start

用例

示例1:管理产品

使用Shopify MCP服务器,您可以轻松管理您的产品。例如,您可以按标题搜索产品,检索产品详细信息,并更新产品信息。

示例2:处理订单

服务器提供高级订单查询和过滤功能。您可以根据各种条件检索订单,例如订单状态、日期范围和客户信息。

客户评价

“Shopify MCP服务器大大简化了我们的产品管理流程。它是一个强大的工具,为我们节省了大量时间。”-店主John Doe

“我们喜欢高级订单过滤选项。它使查找特定订单和高效管理我们的商店变得更加容易。”-电子商务经理Jane Smith

设置

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

测试

该项目使用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-运行时类型验证

贡献

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

许可证

麻省理工学院

社区


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

感谢网站(https://rezajafar.com/)启动项目