WooCommerce多租户服务器

一个为AI聊天机器人提供完整电子商务功能的多租户WooCommerce服务器,支持同时管理多个商店。

  • by jaimeVargas90
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 jaimeVargas90/mvp-mcp-woocomerce

使用说明

🚀 MCP WooCommerce多租户服务器

一个模型上下文协议(MCP)服务器,旨在为AI聊天机器人(UChat、5ire、Claude等)提供完整的电子商务功能,同时支持多个商店。

📖 描述

该项目充当您的AI助手和WooCommerce之间的“智能桥梁”。与简单的集成不同,此服务器:

  • 多客户端: 一个服务器实例可以管理数百个不同的商店。
  • 上下文: 工具是为人工智能理解上下文而设计的(例如,如果搜索鞋子,它会返回可用尺寸;如果用户想取消,它会更改订单状态)。
  • 安全: 在将数据发送到WooCommerce之前对其进行验证,并保护关键操作。

✨ 主要特点

  • 多租户架构: 通过动态商店选择 x-client-id 头球
  • 性能优化: 用于客户端配置的内存缓存系统(避免冗余磁盘读取)。
  • 稳健验证: 使用Zod来确保AI发送正确的数据。
  • 清洁响应: 处理WooCommerce响应(清理HTML、汇总数据)以保存令牌并提高人工智能理解能力。

🛠️ 工具目录

服务器向AI公开以下功能:

1.🔍 searchWooProducts(主搜索)

产品发现的多功能工具。

  • 功能: 按关键字搜索、按价格范围过滤、分页和排序(价格、新鲜度、相关性)。
  • 情报:
    • 如果没有提供搜索词,它将列出目录(新到货)。
    • 返回变体ID和属性(大小、颜色),以促进精确销售。
    • 从描述中清除HTML。

2.🛒 创建订单(销售)

订单生成。

  • 能力:
    • 支持简单和可变的产品(使用 variationId).
    • 支持客户备注(“门铃坏了”)。
    • 默认设置“货到付款”付款方式。
  • 输出: 返回一个包含订单ID、总计和状态的结构化JSON。

3.📦 getOrderStatus(售后)

客户支持状态查询。

  • 返回信息: 当前状态、总数、项目和收货地址(用于确认目的地)。
  • 安全: 如果用户提供了不正确的ID,则可以优雅地处理404错误。

4.📝 updateOrder(管理)

订单修改和取消。

  • 使用:
    • 取消:将状态更改为 cancelled.
    • 正确:修改地址、电话或电子邮件。
  • 限制: 不允许编辑已“完成”或“发货”的订单。

5.🚚 getShippingMethods(物流)

运费计算器。

  • 逻辑: 接收国家代码(例如CO、MX),在WooCommerce中搜索相应的配送区域,并返回可用的方法和成本。

6.🎟️ checkCoupon(营销)

折扣验证。

  • 功能: 验证促销代码的存在、到期和折扣金额。

7.📂 getStoreCategorys(目录)

类别列表。

  • 功能: 从商店检索产品类别列表。
  • 用例: 当用户询问通常销售哪种类型的产品时使用。

⚙️ 安装与配置

1.先决条件

  • Node.js(v18或更高版本)
  • NPM
  • 生成API密钥的一个或多个WooCommerce商店(读取/写入权限)。

2.环境变量配置

创建一个 .env 根目录下的文件。这 CLIENTS 变量必须是包含存储数组的JSON字符串。

PORT=3000
# Example configuration for 2 clients
CLIENTS='[
  {
    "clientId": "client_alpha",
    "storeUrl": "https://clothing-store.com",
    "consumerKey": "ck_XXXXXXXXXXXXXXXX",
    "consumerSecret": "cs_XXXXXXXXXXXXXXXX"
  },
  {
    "clientId": "client_beta",
    "storeUrl": "https://shoe-store.com",
    "consumerKey": "ck_YYYYYYYYYYYYYYYY",
    "consumerSecret": "cs_YYYYYYYYYYYYYYYY"
  }
]'

3.执行

# Install dependencies
npm install

# Development Mode (with auto-reload)
npm run dev

# Production Mode
npm start

🔌 与UChat/5ire集成

要连接聊天机器人,请按如下方式配置HTTP请求或操作:

  • 网址: https://your-railway-domain.app/mcp
  • 方法: POST
  • 标题:
    • Content-Type: application/json
    • x-client-id:您在JSON中配置的ID(例如。, client_alpha).

消息体(body)将由MCP协议自动处理。

📂 项目结构

src/
├── index.ts           # 🧠 Main Server (Express + MCP + Multi-tenant Logic)
├── types.ts           # 📄 Type Definitions (TS Interfaces)
└── tools/             # 🧰 Modular Tools Folder
    ├── index.ts             # Central tool registration
    ├── search-products.tool.ts  # Advanced search
    ├── create-order.tool.ts     # Order creation
    ├── get-order.tool.ts        # Status query
    ├── update-order.tool.ts     # Edit/Cancel
    ├── get-shipping.tool.ts     # Shipping calculation
    ├── check-coupon.tool.ts     # Coupon validation
    └── get-categories.tool.ts   # Category listing