亚马逊购物车MCP服务器
⚠️ 重要免责声明
该工具使用浏览器自动化与Amazon.com进行交互。
- 用户全权负责 确保其使用符合 亚马逊的服务条款
- 这个项目是 仅供个人教育使用 -不适用于商业自动化或转售
- 使用风险自负 -作者对违反亚马逊政策或由此产生的后果不承担任何责任
- 不隶属于亚马逊 -这是一个独立的、非官方的工具
- 亚马逊可能会随时更改其网站或政策,从而可能破坏其功能
- 过度自动化可能会导致帐户限制或禁止
使用此软件即表示您承认并接受这些风险。
特性
- 🔍 搜索亚马逊 -通过搜索查询查找产品
- 🛒 加入购物车 -自动将商品添加到您的亚马逊购物车
- 👀 查看购物车 -检查当前购物车内容和小计
- 🔐 登录持久性 -会话在本地保存以实现无缝使用
- 🌐 安全访问 -通过ngrok隧道进行承载令牌身份验证
快速开始
先决条件
- Node.js v20或更高版本
- npm或纱线
- ngrok帐户(免费版有效)
安装
- 克隆存储库:
git clone https://github.com/meimakes/amazon-mcp-server.git
cd amazon-mcp-server- 安装依赖项:
npm install- 配置环境:
cp .env .env.local # Optional: keep your settings separate编辑 .env 并设置:
- AUTH_TOKEN -生成安全的随机令牌(必需) - HEADLESS=false -首次登录 - AMAZON_DOMAIN=amazon.com -或您当地的亚马逊域名
- 构建项目:
npm run build- 启动服务器:
npm start- 首次登录:
- Chrome浏览器窗口将打开 - 手动登录您的亚马逊帐户 - 会话将保存在 ./user-data/ - 登录一次后,您可以: - 停止服务器(Ctrl+C) - 集 HEADLESS=true 在 .env - 以无头模式重新启动
- 通过ngrok暴露(在单独的终端中):
npm run tunnel
# Note the HTTPS URL (e.g., https://abc123.ngrok.io)连接到Poke
- 从终端复制您的ngrok URL
- 在Poke中,添加自定义MCP集成:
- 网址: https://your-ngrok-url.ngrok.io/sse - API密钥: 你的 AUTH_TOKEN 从 .env - 类型: MCP服务器
- 重要提示: 始终使用
/sse端点!
- 通过询问Poke来测试连接:
- “你有什么工具?” - “在亚马逊上搜索无线鼠标”
连接到克劳德桌面
- 构建项目:
npm run build - 打开克劳德桌面→ 设置→ 开发者→ 编辑配置
- 增添
mcpServers:
{
"mcpServers": {
"amazon-cart": {
"command": "node",
"args": ["/absolute/path/to/amazon-mcp-server/dist/server.js"],
"env": {
"AUTH_TOKEN": "your-token-here",
"HEADLESS": "true",
"AMAZON_DOMAIN": "amazon.com"
}
}
}
}- 重新启动克劳德桌面
- 您应该在工具菜单中看到可用的亚马逊工具(🔧)
首次设置: 使用以下命令运行服务器一次HEADLESS=false手动登录亚马逊。之后,设置HEADLESS=true克劳德桌面。
可用工具
| 工具 | 说明 | 参数 |
|---|---|---|
search_amazon | 在亚马逊上搜索产品 | query (必填) |
add_to_cart | 将产品添加到购物车 | query 或 asin, quantity (可选) |
view_cart | 查看当前购物车内容 | 无 |
check_login | 验证亚马逊登录状态 | 无 |
建筑
┌─────────────────┐
│ Poke.com │ (Remote AI Assistant)
│ (Cloud) │
└────────┬────────┘
│ HTTPS
↓
┌─────────────────┐
│ ngrok │ (Secure Tunnel)
│ Public HTTPS │
└────────┬────────┘
│ Local
↓
┌─────────────────┐
│ MCP Server │ (Port 3000)
│ SSE + HTTP │
└────────┬────────┘
│
↓
┌─────────────────┐
│ Puppeteer │ (Browser Automation)
│ + Chrome │
│ (Persistent │
│ Session) │
└─────────────────┘配置
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
PORT | 3000 | 服务器端口 |
AUTH_TOKEN | *必需的* | 用于身份验证的承载令牌 |
AMAZON_DOMAIN | amazon.com | 亚马逊域名(例如Amazon.co.uk) |
HEADLESS | false | 在无头模式下运行浏览器 |
USER_DATA_DIR | ./user-data | Chrome用户数据目录 |
示例.env
PORT=3000
AUTH_TOKEN=a1b2c3d4-e5f6-4789-a012-3b4c5d6e7f8a
AMAZON_DOMAIN=amazon.com
HEADLESS=false
USER_DATA_DIR=./user-data安全
⚠️ 重要安全注意事项
- AUTH_TOKEN保护
- 永不承诺 .env Git(已在 .gitignore) - 使用加密安全的随机令牌 - 生成方式: openssl rand -hex 32
- ngrok安全
- 免费层URL是公开的,但不可访问 - 考虑ngrok的身份验证功能以获得额外的安全性 - 针对保留域和IP限制升级到ngrok付费计划
- 会话数据
- 登录会话存储在 ./user-data/ - 包含Cookie和身份验证令牌 - 切勿共享或提交此目录 - 已通过排除 .gitignore
- 网络安全
- 服务器只接受经过身份验证的请求 - 所有通过ngrok的流量都是HTTPS加密的 - 本地服务器仅绑定到本地主机
- 浏览器自动化
- Puppeteer在禁用沙盒的情况下运行(某些系统需要) - 通过Chrome用户数据目录进行会话隔离 - 未向第三方发送数据
最佳实践
- ✅ 使用强大、独特的AUTH_TOKEN
- ✅ 永远不要公开分享你的ngrok网址
- ✅ 定期旋转AUTH_TOKEN
- ✅ 监控服务器日志以查找可疑活动
- ✅ 保持依赖关系更新(
npm audit) - ✅ 在生产中使用HEADLES=true
- ⚠️ 这仅供个人使用,不适合多用户场景的生产
故障排除
Poke中未显示的工具
- 重新启动服务器
- 在Poke中删除并重新添加MCP连接
- 检查服务器日志
tools/list请求 - 验证ngrok隧道是否处于活动状态
未添加到购物车的商品
- 验证您是否已登录亚马逊:
- 检查浏览器窗口(如果可见) - 或者让Poke跑 check_login
- 如果未登录:
- 集 HEADLESS=false - 重启服务器 - 在浏览器窗口中手动登录
连接持续中断
- 正常行为-按需重新连接
- 如果持续存在,请检查ngrok连接:
curl https://your-url.ngrok.io/health
计算机睡眠模式
- 服务器和ngrok在计算机睡眠时暂停
- Poke将在唤醒时自动重新连接
- 防止睡眠:跑步
caffeinate在单独的终端(macOS)中
发展
项目结构
amazon-mcp/
├── src/
│ ├── server.ts # MCP server + SSE implementation
│ ├── amazon.ts # Amazon automation logic
│ ├── browser.ts # Puppeteer browser management
│ └── types.ts # TypeScript interfaces
├── dist/ # Compiled JavaScript (gitignored)
├── user-data/ # Chrome session data (gitignored)
├── .env # Environment config (gitignored)
└── package.json在发展中奔跑
npm run dev # Uses ts-node, no build required建筑
npm run build # Compiles TypeScript to dist/测试
健康检查
curl http://localhost:3000/health预期响应:
{"status":"ok","server":"amazon-mcp-server"}测试SSE连接
curl -H "Authorization: Bearer YOUR_TOKEN" \
http://localhost:3000/sse应与心跳保持开放连接。
合规说明
该项目旨在 仅供个人、单用户使用。它不适用于:
- ❌ 多租户部署
- ❌ 生产SaaS应用程序
- ❌ SOC 2 II类合规场景
- ❌ HIPAA或其他受监管的数据处理
- ❌ 大规模商业自动化
如果您需要企业级合规性,请考虑:
- 实现正确的身份验证(OAuth 2.0)
- 添加审核日志记录
- 对会话使用加密存储
- 部署到合规的基础设施(AWS、具有合规认证的GCP)
- 实施限速和防止滥用
贡献
欢迎投稿!拜托:
- 克隆该仓库
- 创建要素分支
- 进行更改
- 提交拉取请求
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
支持
- 🐛 问题:
- 📧 联系人: 通过GitHub
作者
由...创建 @meimakes
______________________________________________________________________
注: 运行服务器时保持计算机处于唤醒状态。ngrok隧道和SSE连接对网络中断很敏感。
