餐厅预订MCP服务器
本地MCP服务器,用于通过Resy和OpenTable搜索和预订餐厅预订。
特性
- 统一搜索:使用单个查询搜索Resy和OpenTable
- 实时可用性:检查任何日期的可用时间段
- 直接预订:直接预订Resy预订;获取OpenTable的预订链接
- 预订狙击手:自动预订即时插槽可用
- 安全凭据:存储在Windows凭据管理器中的所有凭据(使用DPAPI加密)
安装
cd C:\Users\jrkle\Desktop\restaurant-mcp
npm install
npm run build配置Claude代码
添加到 ~/.claude/settings.json:
{
"mcpServers": {
"restaurant-reservations": {
"command": "node",
"args": ["C:\\Users\\jrkle\\Desktop\\restaurant-mcp\\dist\\index.js"]
}
}
}入门指南
1.设置Resy凭据
首先,您需要您的Resy API密钥和身份验证令牌。登录resy.com后,您可以在浏览器的开发人员工具中找到这些内容:
# In Claude, use these tools:
set_credentials(platform: "resy", api_key: "YOUR_API_KEY", auth_token: "YOUR_TOKEN")
# Or for automatic token refresh, use:
set_login(platform: "resy", email: "your@email.com", password: "your-password")2.搜索餐厅
search_restaurants(query: "Carbone", location: "New York", party_size: 2)你不需要知道餐厅使用哪个平台! 搜索会自动并行检查Resy和OpenTable。每个结果包括 platform 现场(resy 或 opentable)以及类似的ID resy-12345 或 opentable-67890 -直接使用这些 check_availability 和 make_reservation.
3.检查可用性
check_availability(restaurant_id: "resy-12345", platform: "resy", date: "2025-02-15", party_size: 2)4.预订
make_reservation(
restaurant_id: "resy-12345",
platform: "resy",
slot_id: "123456",
party_size: 2,
date: "2025-02-15"
)预订狙击手
对于在特定时间发布预订的热门餐厅:
snipe_reservation(
restaurant_id: "resy-12345",
platform: "resy",
date: "2025-02-15",
party_size: 2,
preferred_times: ["7:00 PM", "7:30 PM", "8:00 PM"],
release_time: "2025-02-01T09:00:00"
)狙击手将:
- 在发布时间前30秒开始轮询
- 发布时间点击后每500ms轮询一次
- 立即预订第一个匹配的插槽
- 返回确认或错误
可用工具
| 工具 | 说明 |
|---|---|
search_restaurants | 在Resy和/或OpenTable上按名称/位置搜索餐厅 |
check_availability | 获取餐厅的可用时段 |
make_reservation | 预订 |
list_reservations | 查看您即将进行的预订 |
cancel_reservation | 取消预订 |
set_credentials | 安全存储API密钥/令牌 |
set_login | 存储电子邮件/密码以进行自动刷新 |
check_auth_status | 验证凭据是否有效 |
refresh_token | 手动刷新身份验证令牌 |
snipe_reservation | 安排插槽打开时的自动预订 |
list_snipes | 查看预定狙击 |
cancel_snipe | 取消预定的狙击 |
安全
- 无信用卡数据:此MCP从不处理付款信息。预订使用您的Resy/OpenTable帐户中保存的付款方式。
- Windows凭据管理器:所有使用DPAPI加密的凭据(与Chrome/Edge密码的安全性相同)
- 没有文件:凭据从未写入磁盘文件
- 仅限HTTPS:所有API调用都使用TLS 1.3
- 速率限制:每个平台每分钟最多10个请求
平台说明
惊讶
- 通过非官方API提供完整的预订支持
- 过期时自动刷新令牌
- 可以查看和取消预订
开放式餐桌
- 无需身份验证即可进行搜索和可用性工作
- 无法通过API完成预订 -返回一个URL以在OpenTable的网站上完成
- 预订列表不可用
故障排除
“未配置Resy API密钥”
跑 set_credentials 首先使用API密钥。
“重新进行身份验证失败”
您的令牌已过期。跑 set_login 启用自动刷新或手动获取新令牌。
OpenTable预订返回URL
这是意料之中的。OpenTable不允许第三方预订-单击URL在他们的网站上完成。
局限性
- 使用可能更改的非官方API
- OpenTable需要手动完成预订
- 仅供个人使用
