Tmp.XuBXJbJg0f

🍽️ 自然语言操控浏览器,零密码预订餐厅

通过 MCP 自然语言管理 OpenTable 餐厅预订,无需 API 密钥或密码,直接操作用户已登录浏览器会话完成搜索、预订、取消等全流程。

收藏
4k
安装
1.3k
版本
0.14.1
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

opentable-mcp 是一个基于 Model Context Protocol 的 OpenTable 自动化工具,允许用户通过自然语言指令完成餐厅预订全生命周期管理。其核心架构采用"浏览器代理"模式:MCP 服务器本身不直接连接 OpenTable,而是通过 fetchproxy 浏览器扩展,将请求转发至用户本地已登录的 opentable.com 标签页执行。

支持的操作包括:

  • 餐厅搜索:按关键词、位置、日期、时间、人数筛选,获取评分、价位、菜系等信息
  • 可用时段查询:获取指定餐厅的可预订空位及短期有效的预订令牌
  • 预订管理:标准预订(即时确认)和需信用卡担保的预订(需先预览确认政策)
  • 体验型预订:支持 prix-fixe、品鉴菜单等必须选择体验项目的餐厅预订
  • 订单修改/取消:修改时间/人数/区域,或取消现有预订
  • 收藏夹管理:保存心仪餐厅、查看收藏列表

关键工作流约束
1. 预订必须通过 get_restaurant 获取 dining_area_id(餐厅区域ID),无法自动推断

2. 信用卡担保类预订必须先调用 book_preview 获取 booking_token,否则会被拒绝

3. 时段令牌(reservation_token + slot_hash)有效期仅 60-90 秒,需即查即订

4. 修改预订必须使用专用 modify_previewmodify 流程,禁止"取消+重新预订"以避免触发反刷单检测

---

显著优点

| 维度 | 优势 |
|------|------|
| **认证安全** | 零密码/零 API 密钥设计,认证完全依托用户浏览器中的 OpenTable 会话(密码less邮箱OTP),消除凭证泄露风险 |
| **反检测能力** | 通过真实浏览器标签页执行请求,携带完整浏览器指纹、Cookie、Akamai `_abck` 等,天然绕过反爬虫机制 |
| **功能完整** | 覆盖 OpenTable Web 端全部核心能力:搜索、预订、修改、取消、收藏、体验菜单,甚至支持需要信用卡预授权的稀缺时段 |
| **架构简洁** | 单一扩展(fetchproxy)服务多个 MCP 工具,复用已登录会话,无需为每个工具单独配置认证 |

---

潜在缺点与局限性

运维依赖性高

  • 浏览器常驻要求:必须保持 fetchproxy 扩展运行 + opentable.com 已登录标签页,任何环节断开都会导致服务不可用
  • 冷启动延迟:Chrome MV3 Service Worker 休眠后首次唤醒需 2-5 秒
  • 写入延迟:收藏夹添加后约 10 秒才能通过 list_favorites 读取

技术脆弱性

  • 非官方 API:依赖 OpenTable 内部 GraphQL 端点,若官方重构(如 persisted query hash 变更),需手动从 DevTools 捕获新 hash 修复
  • 令牌时效严苛:用户若犹豫超过 90 秒,时段令牌失效,必须重新查询空位
  • 无自动重试SessionNotAuthenticatedError 需用户手动刷新页面解决

功能边界

  • 纯列表餐厅不可订:部分餐厅仅展示信息,实际预订需电话/官网直连,工具会正确识别并引导用户外呼
  • 请求预订(request-to-book)未支持:v1 版本暂不支持需人工确认的预订类型
  • 无支付管理:无法添加/修改支付方式,若用户无默认支付信息,预览步骤会失败并抛出设置链接

---

适合人群

  • 高频 OpenTable 用户:每周多次预订、希望用自然语言快速操作("今晚 7 点两人位意大利菜")
  • 多任务场景:在 Claude 对话中直接完成"搜索-对比-预订"闭环,无需切换浏览器标签
  • 隐私敏感用户:不愿向第三方服务提交 OpenTable 账号密码,接受本地浏览器代理模式

不适合:无桌面浏览器环境、无法/不愿安装浏览器扩展、需要完全无人值守自动化(因需人工处理 OTP/验证码挑战)的用户。

---

常规风险

| 风险类型 | 具体表现 | 缓解措施 |
|----------|----------|----------|
| **预订冲突** | 同一时段快速取消+重订可能触发 OpenTable 反刷单机制,导致时段被释放 | 必须使用 `modify` 流程,禁止 cancel+book 组合 |
| **信用卡误扣** | CC-required 预订若未正确理解取消政策,可能产生 no-show 费用 | `book_preview` 强制展示政策,需用户明确确认 |
| **时段失效** | 用户长时间犹豫导致令牌过期,返回空位已被抢占 | 设计短决策路径,或在令牌过期前主动重查 |
| **会话过期** | OpenTable SSO 或 Akamai Cookie 轮换导致 401 | 引导用户刷新 opentable.com 页面重新认证 |
| **扩展失效** | fetchproxy 扩展崩溃或标签页关闭 | 监控徽章颜色(绿/黄/红),建立扩展健康检查 |

Tmp.XuBXJbJg0f 内容

手动下载zip · 6.1 kB
skill-card.mdtext/markdown
请选择文件