opentable_make_reservation and opentable_cancel_reservation each take a confirm argument and each describe the false case as a preview, which puts a readable step between an agent's intention and a real booking on a real account. Around that, the session tools are more prominent than usual for a reason: opentable_status is described as the call to make before any other operation, because from the outside 'no availability' and 'not logged in' look identical. Cancellation carries its own warning that it cannot be undone, which is the one place the preview is worth reading rather than skipping.
An OpenTable client with nine tools covering session status and login, restaurant search and detail, availability checks, and booking, listing and cancelling reservations.
- Session state before anything else: opentable_status reports login status with instructions when not authenticated and is described as the call to make before any other operation, opentable_login returns the login URL and instructions, and opentable_logout clears the stored session cookies.
- Finding somewhere: opentable_search takes location, cuisine, partySize, date and time, and opentable_get_restaurant returns a restaurant's description, address, hours and features.
- Availability rather than a guess: opentable_check_availability returns the open reservation time slots for a restaurant on a date at a party size.
- Booking behind a preview: opentable_make_reservation takes confirm=false to preview and confirm=true to actually book, carries special requests, and requires the user to be logged in.
- Afterwards: opentable_get_reservations lists the logged-in user's upcoming reservations, and opentable_cancel_reservation previews or cancels with its own note that the action cannot be undone.
An OpenTable account the user logs into: the reservation tools require authentication, and opentable_login returns a URL a person completes, after which the session cookies are stored. No credentials are configured on the server itself.
One command plus a key — npx @striderlabs/mcp-opentable, then supply credentials
