MCP server for Resy — let AI agents search restaurants, check availability, make reservations, and join waitlists.
Part of the Strider Labs MCP connector suite alongside Instacart, DoorDash, OpenTable, and Uber Eats.
npx @striderlabs/mcp-resyOr install globally:
npm install -g @striderlabs/mcp-resyAdd to your claude_desktop_config.json:
{
"mcpServers": {
"resy": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-resy"]
}
}
}Use the resy_login tool with your Resy email and password. Session cookies are stored at ~/.striderlabs/resy/cookies.json and persist across sessions.
Check authentication status. Always call this first.
Returns: { isLoggedIn: boolean, message: string }
Authenticate with Resy via browser automation.
| Parameter | Type | Required | Description |
|---|---|---|---|
| string | Yes | Resy account email | |
| password | string | Yes | Resy account password |
Clear the stored Resy session cookies.
Search for restaurants on Resy.
| Parameter | Type | Required | Description |
|---|---|---|---|
| location | string | Yes | City or location (e.g. "New York", "San Francisco") |
| query | string | No | Restaurant name or cuisine filter |
| date | string | No | Date in YYYY-MM-DD format |
| partySize | number | No | Number of guests (default: 2) |
Returns: { venues: [{ id, name, cuisine, neighborhood, priceRange, rating, profileUrl }] }
Get detailed venue information including photos, description, hours, and contact info.
| Parameter | Type | Required | Description |
|---|---|---|---|
| venueId | string | Yes | Venue ID, slug, or profile URL |
Check available time slots at a venue.
| Parameter | Type | Required | Description |
|---|---|---|---|
| venueId | string | Yes | Venue ID, slug, or profile URL |
| date | string | Yes | Date in YYYY-MM-DD format |
| time | string | Yes | Preferred time in HH:MM format (e.g. "19:00") |
| partySize | number | Yes | Number of guests |
Returns: { venueName, slots: [{ time, date, partySize, configId }] }
Book a table at a Resy restaurant. Requires authentication.
| Parameter | Type | Required | Description |
|---|---|---|---|
| venueId | string | Yes | Venue ID, slug, or profile URL |
| date | string | Yes | Date in YYYY-MM-DD format |
| time | string | Yes | Time in HH:MM format (e.g. "19:00") |
| partySize | number | Yes | Number of guests |
| specialRequests | string | No | Special requests or dietary notes |
| confirm | boolean | Yes | false to preview, true to book |
Returns: { reservation: { id, venueName, date, time, partySize, status, confirmationNumber } }
List upcoming reservations for the logged-in user. Requires authentication.
Returns: { reservations: [{ id, venueName, date, time, partySize, status }] }
Cancel an existing reservation. Requires authentication.
| Parameter | Type | Required | Description |
|---|---|---|---|
| reservationId | string | Yes | Reservation ID (from resy_get_reservations) |
| confirm | boolean | Yes | false to preview, true to cancel |
Check if a venue has a waitlist available and get estimated wait times.
| Parameter | Type | Required | Description |
|---|---|---|---|
| venueId | string | Yes | Venue ID, slug, or profile URL |
Returns: { waitlist: { available, estimatedWaitTime } }
Join the waitlist at a restaurant. Requires authentication.
| Parameter | Type | Required | Description |
|---|---|---|---|
| venueId | string | Yes | Venue ID, slug, or profile URL |
| partySize | number | Yes | Number of guests |
| confirm | boolean | Yes | false to preview, true to join |
Cookies are stored at ~/.striderlabs/resy/cookies.json. Delete this file or use resy_logout to clear your session.
MIT — Strider Labs