reservations-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@reservations-mcp Discover restaurants near Union Square with outdoor seating and vegetarian options"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
reservations-mcp
An auditable Model Context Protocol server for restaurant discovery and reservations, across multiple providers.
Built as a transparent alternative to the "just npx this mystery package" reservation
MCPs floating around: every line is here in src/, it talks only to each provider's
own API, it uses no browser automation or bot-detection evasion, and credentials come
only from your own environment or local config — never logged, never sent anywhere else.
What it does
Provider | Discovery | Availability | Booking |
Resy | ✅ venue search | ✅ | ✅ (two-step, opt-in) |
Google Places | ✅ (rich: | — | — |
Yelp | ✅ ( | — | — |
Tock | ⚠️ stub in v1 (returns a direct link; see | — | — |
OpenTable is intentionally excluded. It has no public reservation API, so booking it requires browser automation that violates its ToS and risks an account ban. Out of scope.
Related MCP server: Maître d'MCP
Tools
discover_restaurants— natural-language search ("Hudson waterfront, skyline view, outdoor, kid-friendly, great cocktails"). Read-only.resy_search— find Resy venue ids by name/keyword.resy_availability— open slots for a venue / date / party size.resy_booking_preview— step 1: resolve a slot, surface time + seating + any cancellation/no-show fee. Does not book.resy_book— step 2, irreversible: books abook_token. Requiresconfirm: true.resy_payment_methods— list saved card ids (some bookings require a card).resy_login— exchange email+password for a token once (password never stored). PreferRESY_AUTH_TOKEN.resy_my_reservations— your upcoming reservations.tock_search— best-effort stub (see note above).status— which providers are configured.
Setup
npm install
npm run build
cp .env.example .env # then fill in keys/tokens you wantCredentials (all optional — set only what you need)
RESY_AUTH_TOKEN— required for Resy availability/booking. Log in at resy.com, open DevTools → Network, click any restaurant, and copy theX-Resy-Auth-Tokenheader. (Or call theresy_logintool once.)RESY_PAYMENT_METHOD_ID— default card for bookings (resy_payment_methodslists ids).YELP_API_KEY— free from the Yelp Fusion console.GOOGLE_PLACES_API_KEY— Google Places API (New).
RESY_API_KEY defaults to the public key embedded in Resy's own web client; override if it rotates.
Connect to Claude
Add to your Claude Code / Claude Desktop MCP config:
{
"mcpServers": {
"reservations": {
"command": "node",
"args": ["/absolute/path/to/reservations-mcp/dist/index.js"],
"env": {
"RESY_AUTH_TOKEN": "…",
"GOOGLE_PLACES_API_KEY": "…",
"YELP_API_KEY": "…"
}
}
}
}Booking is deliberately two-step
resy_book will refuse without confirm: true. The intended flow:
resy_availability→ pick a slot (bookToken)resy_booking_preview→ review time, seating type, and fees, get a realbook_tokenresy_bookwithconfirm: true→ reserved
This makes the one irreversible, money-adjacent action explicit and reviewable.
Safety / honesty notes
Resy's API is unofficial; endpoints may change. Calls fail loudly rather than guess.
Nothing here evades bot detection or scrapes rendered HTML.
Secrets live in
.env/~/.config/reservations-mcp/(gitignored,0600), never in the repo.Tock is a labelled stub — it does not return fabricated availability.
License
MIT
Available Tools
10 toolsdiscover_restaurantsA
Find restaurants by free-text criteria (e.g. 'Hudson River waterfront with Manhattan skyline view, outdoor seating, kid-friendly, great cocktails'). Read-only. Uses Google Places (richest: returns goodForChildren / outdoorSeating / servesCocktails) and/or Yelp depending on which API keys are configured.
Inputs: query (required), limit, openNow, latitude, +3 more.
resy_availabilityA
List available reservation slots for a Resy venue on a date for a party size. Each slot includes a bookToken used by resy_booking_preview.
Inputs: date (required), venueId (required), partySize (required), latitude, +1 more.
resy_bookA
STEP 2 of booking — IRREVERSIBLE. Books the reservation from a book_token returned by resy_booking_preview. Requires confirm:true. May incur a cancellation/no-show fee per the venue's policy.
Inputs: confirm (required), bookToken (required), paymentMethodId.
resy_booking_previewA
STEP 1 of booking. Resolves a slot bookToken into a confirmable booking and surfaces the time, seating type, and any cancellation/no-show fee. Does NOT book. Returns a real book_token to pass to resy_book.
Inputs: date (required), bookToken (required), partySize (required).
resy_loginA
Exchange your Resy email + password for an auth token, stored locally (~/.config/reservations-mcp). Password is used once and never saved. Prefer setting RESY_AUTH_TOKEN directly if you can.
Inputs: email (required), password (required).
resy_my_reservationsA
List your upcoming Resy reservations.
Inputs: no named parameters.
resy_payment_methodsA
List the payment method ids saved on your Resy account (needed for bookings that require a card).
Inputs: no named parameters.
resy_searchA
Search Resy's own venue index by name/keyword. Returns Resy venue ids needed for availability and booking.
Inputs: query (required), latitude, longitude.
statusA
Show which providers are configured (which API keys / tokens are present).
Inputs: no named parameters.
tock_searchA
Search Tock venues. NOTE: Tock is a best-effort stub in v1 and returns guidance + a direct link rather than live data.
Inputs: query (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Most tools are clearly distinct based on their action in the booking flow (availability, preview, book, list). The main overlap is between resy_search and discover_restaurants, both of which find restaurants but via different data sources; this could cause some confusion for agents.
The majority of tools follow a 'resy_' prefix pattern, but discover_restaurants and status break this convention. The mix of provider-prefixed, standalone, and verb_noun names is somewhat inconsistent.
10 tools is a reasonable size for a reservations-focused server. Each tool targets a specific part of the domain: discovery, availability, booking, account management, and status.
The set covers reservation creation and listing, but misses critical operations like canceling or modifying an existing reservation. Tock support is also only a stub, making the surface incomplete for that provider.
Maintenance
Related MCP Connectors
AI-native restaurant discovery: verified/menu-indexed/discovered tiers + signed allergy-safety data.
Find Resy restaurants and request reservations through Scout; the user approves every booking.
Discover, read and book verified real-world businesses through one endpoint.
Book hard-to-get restaurant reservations on your own Resy, SevenRooms, or OpenTable account.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables users to search, check availability, and book restaurant reservations across Resy and OpenTable platforms. It supports direct booking for Resy and includes an automated reservation 'sniper' for securing high-demand slots the moment they become available.124MIT
- FlicenseAqualityDmaintenanceAn MCP server for restaurant discovery and booking across Resy and OpenTable via natural language. It integrates Google Places data with dietary preferences, visit history, and weather awareness to provide personalized dining recommendations and group reservation management.23-
- AlicenseAqualityDmaintenanceEnables AI agents to search restaurants, check availability, and book reservations on OpenTable, including managing booking history and handling multi-factor authentication.9297 npmMIT
- FlicenseNot gradedqualityBmaintenanceEnables customers and AI agents to check restaurant table availability and create bookings, returning confirmations or nearby alternative times when a slot is full, with atomic capacity control and idempotent handling.-