← 返回
未分类 Key 中文

Tmp.WXvNQiYmFK

Manage Resy restaurant reservations via MCP — search venues, book tables, list and cancel reservations, manage favorites, and subscribe to Priority Notify. T...
通过 MCP 管理 Resy 餐厅预订——搜索场所、预订座位、列出和取消预订、管理收藏夹以及订阅 Priority Notify。T...
chrischall chrischall 来源
未分类 clawhub v0.5.2 8 版本 100000 Key: 需要
★ 0
Stars
📥 706
下载
💾 0
安装
8
版本
#latest

概述

resy-mcp

MCP server for Resy — natural-language restaurant reservation management. Uses Resy's private web-app API with email + password auth.

> ⚠️ Resy does not publish an official API. This server uses the same private endpoints the Resy web app calls, with the public web-app api_key and user-level auth via email + password. Use at your own discretion.

Setup

Option A — npx (recommended)

Add to .mcp.json in your project or ~/.claude/mcp.json:

{
  "mcpServers": {
    "resy": {
      "command": "npx",
      "args": ["-y", "resy-mcp"],
      "env": {
        "RESY_EMAIL": "you@example.com",
        "RESY_PASSWORD": "yourpassword"
      }
    }
  }
}

Option B — from source

git clone https://github.com/chrischall/resy-mcp
cd resy-mcp
npm install && npm run build

Then add to .mcp.json:

{
  "mcpServers": {
    "resy": {
      "command": "node",
      "args": ["/path/to/resy-mcp/dist/bundle.js"],
      "env": {
        "RESY_EMAIL": "you@example.com",
        "RESY_PASSWORD": "yourpassword"
      }
    }
  }
}

Or place .env in the project directory with RESY_EMAIL= and RESY_PASSWORD=.

Authentication

  • RESY_EMAIL + RESY_PASSWORD are required. The client logs in lazily on first request via POST /3/auth/password, caches the returned token for the process lifetime, and re-logs automatically on 401 / 419 / auth-like 500 responses.
  • RESY_API_KEY is optional. If unset, the client uses the public web-app key baked into resy.com's JS bundle. Override only if Resy rotates it.

Tools

User

ToolDescription
-------------------
resy_get_profileCurrent user profile — name, email, phone, booking count, member-since. Payment method IDs are stripped.
resy_list_payment_methodsList saved payment methods (id, brand, last_four, exp_month, exp_year, is_default). The id feeds resy_book's payment_method_id.

Venues

ToolDescription
-------------------
resy_search_venues(date, party_size, query?, lat?, lng?, limit?, radius_meters?)Search venues with availability for a date + party size. Defaults to NYC geo.
resy_find_slots(venue_id, date, party_size, lat?, lng?)List bookable slots at a venue — each includes a short-lived config_token.
resy_get_venue(venue_id)Full venue details.

Reservations

ToolDescription
-------------------
resy_book(venue_id, date, party_size, desired_time?, lat?, lng?, payment_method_id?)Composite: find fresh slot → details → book. desired_time is "HH:MM" (24h); closest match wins if no exact slot. Uses default payment method unless payment_method_id is supplied.
resy_list_reservations(scope?)List reservations. scope: upcoming (default), past, or all. Each result includes the resy_token needed for cancellation.
resy_cancel(resy_token)Cancel by resy_token (rr://…). Inspects the response body to set cancelled: true/false honestly.

Favorites

ToolDescription
-------------------
resy_list_favoritesList favorited venues ("hit list").
resy_add_favorite(venue_id)Add a venue to favorites.
resy_remove_favorite(venue_id)Remove from favorites.

Priority Notify

ToolDescription
-------------------
resy_list_notifyList Priority Notify subscriptions.
resy_add_notify(venue_id, date, party_size, time_start?, time_end?)Subscribe to notifications when slots open. time_start / time_end are HH:MM (24h); default window 18:00–21:00.
resy_remove_notify(notify_id)Cancel a Priority Notify subscription.

Workflows

Book a specific restaurant at a specific time:

resy_search_venues(query: "carbone", date: "2026-05-01", party_size: 2)
  → find venue_id
resy_book(venue_id, date: "2026-05-01", party_size: 2, desired_time: "19:00")

See what's available tonight near me:

resy_search_venues(date: "2026-04-20", party_size: 2, lat: 37.7749, lng: -122.4194)
  → returns venues with baked-in slot availability

Cancel a reservation:

resy_list_reservations() → find resy_token for the one to cancel
resy_cancel(resy_token)

Stalking a hard-to-get table:

resy_search_venues(query: "4 charles prime rib", ...) → venue_id
resy_add_notify(venue_id, date: "2026-05-31", party_size: 2, time_start: "19:00", time_end: "21:00")
# Resy emails you when a slot opens

Notes

  • Slot config_tokens expire within minutes of being fetched. resy_book re-fetches fresh slots internally — don't try to thread a stale token from resy_find_slots into a book call manually.
  • resy_book requires a payment method on file at resy.com/account. If none exists it throws a clear error.
  • Default geo is NYC (40.7128, -73.9876). Pass lat/lng for other cities.
  • Favorites and Priority Notify endpoint paths are reverse-engineered. If a call fails with 404, run npm run smoke locally against your credentials and adjust the path.
  • RESY_API_KEY env var overrides the baked-in public web-app key if Resy ever rotates it.

版本历史

共 8 个版本

  • v0.5.2 当前
    2026-06-14 19:24 安全 安全
  • v0.5.1
    2026-06-06 06:33
  • v0.5.0
    2026-05-31 13:18
  • v0.4.0
    2026-05-29 20:49 安全 安全
  • v0.3.0
    2026-05-29 13:23
  • v0.2.4
    2026-05-28 13:14
  • v0.1.5
    2026-05-23 16:19 安全 安全
  • v0.1.3
    2026-05-07 19:18 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

office-efficiency

Tmp.XUCqN5AiCi

chrischall
用于处理用户对Gmail的阅读、整理、草稿、转发、自动回复等深度操作,触发条件包括会话、标签等。
★ 0 📥 1,680
life-service

Sonoscli

steipete
控制Sonos音箱(发现/状态/播放/音量/分组)
★ 56 📥 85,218
life-service

Weather

steipete
获取当前天气和预报(无需API密钥)
★ 457 📥 229,301