本地MCP(模型上下文协议)服务器,使AI助手如Poke能够通过浏览器自动化与您的个人Amazon购物车进行交互。使用Puppeteer控制浏览器,并通过ngrok安全地暴露。
此工具使用浏览器自动化与Amazon.com进行交互。
使用本软件即表示您已知悉并接受这些风险。
克隆仓库:
git clone https://github.com/meimakes/amazon-mcp-server.git
cd amazon-mcp-server
安装依赖项:
npm install
配置环境:
cp .env .env.local # 可选:保持设置分离
编辑.env并设置:
AUTH_TOKEN ——生成一个安全随机令牌(必需)HEADLESS=false ——首次登录时使用AMAZON_DOMAIN=amazon.com ——或您当地的Amazon域名构建项目:
npm run build
启动服务器:
npm start
首次登录:
./user-data/中.env中设置HEADLESS=true通过ngrok暴露(在另一个终端中):
npm run tunnel
# 注意HTTPS URL(例如,https://abc123.ngrok.io)
从终端复制您的ngrok URL
在Poke中添加自定义MCP集成:
https://your-ngrok-url.ngrok.io/sse.env中的AUTH_TOKEN重要: 总是使用/sse端点!
通过询问Poke来测试连接:
| 工具 | 描述 | 参数 |
|---|---|---|
search_amazon | 在Amazon上搜索产品 | query(必需) |
add_to_cart | 将产品添加到购物车 | query或asin,quantity(可选) |
view_cart | 查看当前购物车内容 | 无 |
check_login | 验证Amazon登录状态 | 无 |
┌─────────────────┐
│ Poke.com │ (远程AI助手)
│ (云) │
└────────┬────────┘
│ HTTPS
↓
┌─────────────────┐
│ ngrok │ (安全隧道)
│ 公共HTTPS │
└────────┬────────┘
│ 本地
↓
┌─────────────────┐
│ MCP服务器 │ (端口3000)
│ SSE + HTTP │
└────────┬────────┘
│
↓
┌─────────────────┐
│ Puppeteer │ (浏览器自动化)
│ + Chrome │
│ (持久会话) │
└─────────────────┘
| 变量 | 默认值 | 描述 |
|---|---|---|
PORT | 3000 | 服务器端口 |
AUTH_TOKEN | 必需 | 认证的Bearer Token |
AMAZON_DOMAIN | amazon.com | Amazon域名(例如,amazon.co.uk) |
HEADLESS | false | 以无头模式运行浏览器 |
USER_DATA_DIR | ./user-data | Chrome用户数据目录 |
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 32ngrok安全性
会话数据
./user-data/.gitignore排除网络安全
浏览器自动化
npm audit)tools/list请求check_loginHEADLESS=falsecurl https://your-url.ngrok.io/healthcaffeinate(macOS)amazon-mcp/
├── src/
│ ├── server.ts # MCP服务器 + SSE实现
│ ├── amazon.ts # Amazon自动化逻辑
│ ├── browser.ts # Puppeteer浏览器管理
│ └── types.ts # TypeScript接口
├── dist/ # 编译后的JavaScript(已忽略)
├── user-data/ # Chrome会话数据(已忽略)
├── .env # 环境配置(已忽略)
└── package.json
npm run dev # 使用ts-node,无需编译
npm run build # 将TypeScript编译到dist/
curl http://localhost:3000/health
预期响应:
{"status":"ok","server":"amazon-mcp-server"}
curl -H "Authorization: Bearer YOUR_TOKEN" \
http://localhost:3000/sse
应保持开放连接并发送心跳信号。
本项目设计用于个人、单用户使用。不适用于:
如果您需要企业级合规,请考虑:
欢迎贡献!请:
MIT许可——详情见LICENSE文件。
由@meimakes创建
注意: 运行服务器时请保持计算机唤醒。ngrok隧道和SSE连接对网络中断敏感。