🚀 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