luckin-mcp-proxy
# luckin-mcp-proxy
瑞幸咖啡 MCP 本地代理。包装瑞幸官方远程 MCP,提供:
- ☕ **一句话点单**(`quickOrder`):「大杯冰美式不加糖」一步到预览
- 🔁 **一键复购**(`reorder`)
- 🧠 **记忆**:常用门店、口味偏好自动学习(存 `~/.luckin-mcp/config.json`)
- 🛠 **修复上游缺陷**:搜索失败自动重试;绕过 `switchProduct` 的「非法参数」bug
## 准备:获取瑞幸 MCP token
在瑞幸 App / 官方渠道开通 MCP 服务获取 Bearer token(一段以 LUCKIN_MCP_AI 结尾的长字符串)。
⚠️ token 等同于你的点单权限,**不要提交到 git、不要分享给他人**。
## 安装
需要 Node.js >= 20。
### 方式一:一行命令(推荐)
无需 clone、无需构建,npx 直接从 GitHub 安装:
```bash
claude mcp add my-coffee -e LUCKIN_MCP_TOKEN=<你的token> -- npx -y github:wyhAcc/luckin-mcp-proxy
```
首次启动会自动下载并构建(约半分钟),之后走本地缓存秒启。
其他 MCP 客户端(JSON 配置):
```json
{
"mcpServers": {
"my-coffee": {
"command": "npx",
"args": ["-y", "github:wyhAcc/luckin-mcp-proxy"],
"env": { "LUCKIN_MCP_TOKEN": "<你的token>" }
}
}
}
```
### 方式二:本地 clone(需要改代码时用)
```bash
git clone https://github.com/wyhAcc/luckin-mcp-proxy.git
cd luckin-mcp-proxy
npm install # 会自动构建 dist/
claude mcp add my-coffee -e LUCKIN_MCP_TOKEN=<你的token> -- node "$PWD/dist/index.js"
```
## 工具列表
| 工具 | 说明 |
|---|---|
| `quickOrder` | 一句话点单 → 返回预览 + draftId(不直接下单) |
| `confirmOrder` | 确认 draftId 下单,返回支付链接 |
| `reorder` | 复购上次订单 |
| `orderStatus` | 查订单/取餐码(缺省查最近一单) |
| `cancelOrder` | 取消订单 |
| `searchProduct` | 搜商品(自动重试) |
| `findShop` | 搜门店(首次需经纬度,之后自动记忆) |
| `preferences` | 查看/设置常用门店与口味 |
| `rawCall` | 透传瑞幸原始工具(createOrder 除外,调试用) |
## 示例对话
> 「点一杯大杯冰美式不加糖」 → quickOrder 返回价格预览 → 「确认」 → confirmOrder 返回支付二维码
> 「再来一杯昨天那个」 → reorder
> 「到哪了」 → orderStatus 返回取餐码
## 环境变量
| 变量 | 必填 | 说明 |
|---|---|---|
| `LUCKIN_MCP_TOKEN` | 是 | 瑞幸 MCP Bearer token |
| `LUCKIN_MCP_URL` | 否 | 上游地址,默认官方 `https://gwmcp.lkcoffee.com/order/user/mcp` |
## 开发
```bash
npm test # 单元测试
npm run smoke # 集成冒烟(需真实 token,只读+预览,不下单)
npm run build
```
TDQS
Scored across 9 tools
Each tool has a clearly distinct purpose: order lifecycle (quickOrder, confirmOrder, cancelOrder, orderStatus, reorder), search (findShop, searchProduct), preferences, and a debug backdoor (rawCall). No overlap.
All tool names follow a consistent verbNoun camelCase pattern (e.g., cancelOrder, confirmOrder, findShop, searchProduct). No mixing of naming conventions.
9 tools is well-scoped for a coffee ordering assistant, covering search, ordering, cancellation, status, preferences, and a debug tool. Not excessive or insufficient.
The tool set covers the full ordering lifecycle: shop/product discovery, quick order and reorder, confirmation, cancellation, and status tracking. Preferences and a debug backdoor add completeness. No obvious gaps.