核心用法
opentable-mcp 是一个非官方 MCP 服务器,让用户通过自然语言与 OpenTable 交互完成餐厅预订全流程。核心工作流依赖 fetchproxy 浏览器扩展——该扩展从用户已登录的 opentable.com 标签页转发请求,避免处理 Cookie、密码或验证码。
主要功能模块
| 模块 | 功能 |
|------|------|
| **搜索发现** | `search_restaurants` 按关键词/位置/时间搜索;`get_restaurant` 获取餐厅详情(含用餐区域 ID);`find_slots` 查询可预订时段 |
| **预订管理** | `book_preview` → `book` 两步确认(信用卡担保餐厅必须预览);`modify_preview` → `modify` 修改现有预订;`cancel` 取消预订 |
| **用户数据** | `list_reservations` 查看历史/ upcoming 预订;`get_profile` 获取会员信息;`add/remove_favorite` 管理收藏 |
关键限制
- 必须依赖浏览器扩展:fetchproxy 扩展必须安装并保持 opentable.com 登录状态,否则所有调用失败
- 短时效令牌:
reservation_token和slot_hash仅存活 60-90 秒,需即查即订 - 用餐区域 ID 必填:预订前必须先调用
get_restaurant获取diningAreas[]中的区域 ID - 信用卡担保餐厅强制预览:高需求餐厅需先
book_preview展示取消政策和绑定卡片,用户确认后方可预订 - 非即时预订识别:
bookable=false的餐厅仅展示信息,实际预订需电话或外部链接
显著优点
- 无凭证风险:认证完全在用户浏览器内完成,MCP 服务器不接触密码或 Cookie
- 自然语言友好:触发词覆盖「帮我订位」「取消我的 OpenTable 预订」「今晚有什么餐厅可选」等日常表达
- 完整预订生命周期:从搜索到修改到取消,覆盖全流程
- 体验型餐厅支持:正确处理 prix-fixe、主厨餐桌等需先选 Experience 的特殊预订
潜在缺点与局限性
| 问题 | 说明 |
|------|------|
| **非官方实现** | 依赖逆向 OpenTable Web 端点,官方 API 变更可能导致功能中断 |
| **单点故障风险** | fetchproxy 扩展停更或 OpenTable 反爬升级会直接影响可用性 |
| **延迟与稳定性** | Chrome MV3 Service Worker 休眠后冷启动延迟 2-5 秒;收藏夹读写有 10 秒延迟 |
| **地理位置依赖** | 搜索精度受浏览器地理位置权限影响 |
| **无支付信息暴露** | 设计如此,但也意味着无法程序化添加新支付方式 |
适合人群
- 希望通过 AI 助手语音/文字快速完成餐厅预订的 OpenTable 活跃用户
- 需要批量查询、对比多餐厅可用时段的「选择困难症」用户
- 频繁修改预订(时间、人数)的商务宴请安排者
常规风险
- 预订失效风险:令牌过期导致「看到有位订不到」,建议缩短决策时间
- 误操作取消:取消仅需
confirmation_number+security_token,无二次确认,需警惕 AI 误解析 - 信用卡预授权:高需求餐厅的取消政策可能涉及 no-show 扣费,预览阶段务必向用户明确展示
- 隐私边界:用户 OpenTable 收藏、历史订单、会员积分对 AI 可见,共享环境需谨慎
安全评估
- T3 来源可信度:个人开发者开源项目(GitHub: chrischall),无企业背书
- S 安全等级:无直接凭证泄露风险(浏览器代理模式),但依赖非官方端点存在长期稳定性与合规不确定性