Skip to main content
Glama
wyhAcc
by wyhAcc
README.md
# 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

A4.2/5.0

Scored across 9 tools

Disambiguation5/5

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.

Naming Consistency5/5

All tool names follow a consistent verbNoun camelCase pattern (e.g., cancelOrder, confirmOrder, findShop, searchProduct). No mixing of naming conventions.

Tool Count5/5

9 tools is well-scoped for a coffee ordering assistant, covering search, ordering, cancellation, status, preferences, and a debug tool. Not excessive or insufficient.

Completeness5/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues