Woolworths MCP服务器
用于与澳大利亚Woolworths在线购物平台交互的模型上下文协议(MCP)服务器。此服务器提供用于浏览产品、搜索商品、查看特价商品等的工具。
特性
- 浏览器自动化:使用Puppeteer打开浏览器,导航到Woolworths,并捕获会话Cookie
- 会话管理:为经过身份验证的API请求维护会话Cookie
- 产品搜索:通过过滤和排序在Woolworths目录中搜索产品
- 产品详情:获取特定产品的详细信息
- 特价和优惠:浏览当前特价和促销优惠
- 类别浏览:探索产品类别
- 购物车:将商品添加到购物车、查看购物车内容、更新数量和删除商品
安装
- 安装依赖项:
npm install- 构建TypeScript代码:
npm run build用法
运行服务器
MCP服务器在stdio上运行,旨在与MCP兼容的客户端(如Claude Desktop、Cline或其他AI助手)一起使用。
npm startClaude桌面配置
将此添加到您的Claude Desktop配置文件中:
视窗: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"woolworths": {
"command": "node",
"args": ["C:\\Users\\eglass\\Projects\\Woolworths\\dist\\index.js"]
}
}
}确保更新路径以匹配您的安装目录。
可用工具
1.Woolworts_open_browser
打开浏览器并导航到Woolworths网站。这通常是建立会话的第一步。
参数:
headless(boolean,可选):是否在无头模式下运行(默认值:false)
例子:
{
"headless": false
}2.Woolwarts_navigation
导航到Woolworths网站上的特定URL。
参数:
url(字符串,必填):要导航到的URL
3.羊毛制品
从当前浏览器会话中检索并存储会话Cookie。登录后或有活动会话时运行此程序。
参数: 无
4.Woolworts_close_browser
关闭浏览器实例,同时保留捕获的会话Cookie。
参数: 无
5.木材_搜索_产品
在Woolworths上搜索产品。
参数:
searchTerm(字符串,必填):产品搜索词pageSize(number,可选):要返回的结果数(默认值:20)
例子:
{
"searchTerm": "milk",
"pageSize": 20
}6.羊毛制品
通过股票代码获取特定产品的详细信息。
参数:
stockcode(字符串,必填):产品库存代码/ID
7.木工_配件_专业
从Woolworths获取最新特价和优惠。
参数:
category(字符串,可选):类别过滤器(例如,“水果蔬菜”、“肉类海鲜”)pageSize(number,可选):要返回的结果数(默认值:20)
8.木材_配件_类别
获取可用产品类别的列表。
参数: 无
9.Woolworts_add_to_cart
将产品添加到购物车/手推车中。
参数:
stockcode(数字,必填):产品库存代码/IDquantity(数字,可选):要添加的数量(默认值:1)
例子:
{
"stockcode": 123456,
"quantity": 2
}10.羊毛制品
获取购物车/手推车的当前内容。
参数: 无
11.羊毛制品_移除_装饰_艺术
从购物车/手推车中取出产品。
参数:
stockcode(数字,必填):要删除的产品库存代码/ID
12.羊毛制品_更新_零件_数量
更新购物车/手推车中产品的数量。
参数:
stockcode(数字,必填):产品库存代码/IDquantity(数字,必填):新数量
典型工作流程
- 打开浏览器:使用
woolworths_open_browser启动浏览器窗口 - 登录 (如果需要):默认情况下,浏览器将以非无头模式打开,允许您在需要时手动登录您的Woolworths帐户
- 捕获Cookie:使用
woolworths_get_cookies捕获会话Cookie - 关闭浏览器:使用
woolworths_close_browser关闭浏览器(保留Cookie) - 使用API工具:现在您可以使用任何API工具(搜索、获取产品详细信息等)
示例使用场景
1. User: "Open the Woolworths browser"
→ Calls: woolworths_open_browser
2. User manually logs in on the opened browser (if needed)
3. User: "Get the session cookies"
→ Calls: woolworths_get_cookies
4. User: "Close the browser"
→ Calls: woolworths_close_browser
5. User: "Search for bananas"
→ Calls: woolworths_search_products with searchTerm="bananas"
6. User: "What are the current specials?"
→ Calls: woolworths_get_specials
7. User: "Add product 123456 to my cart"
→ Calls: woolworths_add_to_cart with stockcode=123456
8. User: "Show me my cart"
→ Calls: woolworths_get_cart技术细节
浏览器自动化
服务器使用Puppeteer来:
- 启动Chromium浏览器实例
- 浏览Woolworths网站
- 从浏览器会话中捕获Cookie
- 维护用户代理和浏览器指纹
API集成
一旦Cookie被捕获,服务器就会向Woolworths的内部API发出经过身份验证的请求:
- 搜索API:
/apis/ui/Search/products(职位) - API产品详细信息:
/apis/ui/product/detail/{stockcode} - 浏览/分类API:
/apis/ui/browse/category - 类别API:
/apis/ui/PiesCategoriesWithSpecials - 购物车API:
/apis/ui/Trolley/*(AddItem、RemoveItem、UpdateItem、Get)
会话管理
会话Cookie在服务器进程期间存储在内存中。如果服务器重新启动,您需要再次打开浏览器重新捕获Cookie。
发展
观看模式
对于自动重新编译的开发:
npm run dev建筑
npm run build需求
- Node.js 18或更高版本
- npm或纱线
- Chromium/Chrome(由Puppeteer自动安装)
备注
- 默认情况下,浏览器以非无头模式打开,允许手动登录
- 会话Cookie存储在内存中,并持续到服务器重新启动
- API端点基于Woolworths的公共网络接口,可能会更改
- 使用此工具时,始终遵守Woolworths的服务条款
故障排除
浏览器无法打开
- 检查Puppeteer是否正确安装
- 尝试使用headless运行:如果出现显示问题,则为true
API请求失败
- 确保您已通过以下方式捕获Cookie
woolworths_get_cookies - 检查会话是否未过期(您可能需要重新打开浏览器并捕获新的Cookie)
- 验证API终结点是否仍然有效
连接问题
- 确保您有稳定的互联网连接
- 检查Woolworths网站是否可以从您的位置访问
许可证
麻省理工学院
免责声明
这是一个非官方工具,与Woolworths Group Limited无关或不受其认可。使用风险由您自行承担,并确保遵守Woolworths的服务条款。
