MCP server for OpenTable — let AI agents search restaurants and book reservations.
Built by Strider Labs.
- Search restaurants by location, cuisine, party size, date and time
- Get detailed restaurant info — description, address, hours, and features
- Check real-time availability for any date, time, and party size
- Book reservations with a confirmation step before committing
- View all upcoming reservations in one place
- Cancel reservations safely with a confirm gate
- Persistent sessions — stay logged in across restarts
npm install -g @striderlabs/mcp-opentableOr with npx:
npx @striderlabs/mcp-opentableAdd to your MCP client configuration (e.g., Claude Desktop ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"opentable": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-opentable"]
}
}
}This connector uses browser automation via Playwright. On first use:
- Call
opentable_status— it returns a login URL - Open the login URL in your browser and sign in to OpenTable
- Session cookies are automatically saved to
~/.strider/opentable/cookies.json - Sessions persist across restarts — no need to log in again
To log out or reset your session:
opentable_logout
| Tool | Description |
|---|---|
opentable_status |
Check login status; returns login URL if not authenticated |
opentable_login |
Get the OpenTable login URL and instructions |
opentable_logout |
Clear stored session cookies (log out) |
| Tool | Description |
|---|---|
opentable_search |
Search restaurants by location, cuisine, party size, date/time |
opentable_get_restaurant |
Get full details for a specific restaurant |
opentable_check_availability |
List available time slots for a restaurant |
| Tool | Description |
|---|---|
opentable_make_reservation |
Book a reservation (requires confirm=true) |
opentable_get_reservations |
List all upcoming reservations |
opentable_cancel_reservation |
Cancel a reservation (requires confirm=true) |
{
"tool": "opentable_search",
"arguments": {
"location": "San Francisco",
"cuisine": "italian",
"partySize": 4,
"date": "2026-03-20",
"time": "19:30"
}
}{
"tool": "opentable_check_availability",
"arguments": {
"restaurantId": "restaurant-slug-or-id",
"date": "2026-03-20",
"time": "19:30",
"partySize": 4
}
}// Step 1: Preview
{
"tool": "opentable_make_reservation",
"arguments": {
"restaurantId": "restaurant-slug-or-id",
"date": "2026-03-20",
"time": "19:30",
"partySize": 4,
"specialRequests": "Window table if possible",
"confirm": false
}
}
// Step 2: Confirm and book
{
"tool": "opentable_make_reservation",
"arguments": {
"restaurantId": "restaurant-slug-or-id",
"date": "2026-03-20",
"time": "19:30",
"partySize": 4,
"specialRequests": "Window table if possible",
"confirm": true
}
}{
"tool": "opentable_get_reservations",
"arguments": {}
}// Step 1: Preview cancellation
{
"tool": "opentable_cancel_reservation",
"arguments": {
"reservationId": "res-abc123",
"confirm": false
}
}
// Step 2: Confirm cancellation
{
"tool": "opentable_cancel_reservation",
"arguments": {
"reservationId": "res-abc123",
"confirm": true
}
}- Node.js 18+
- Playwright browsers (auto-installed on first run via
playwright install chromium)
This connector uses Playwright for browser automation:
- Headless Chrome — runs a real browser in the background
- Cookie persistence — maintains logged-in state across sessions
- Stealth mode — uses realistic browser fingerprints to avoid detection
- Structured responses — all data returned as JSON
- Session cookies are stored locally in
~/.strider/opentable/cookies.json - No credentials are stored — authentication uses browser-based login
- Cookies are only readable by the current OS user
- OpenTable must be available in your region
- Some reservation flows may require additional profile information on your OpenTable account
- Bot-detection countermeasures on OpenTable's site may occasionally interrupt automation
git clone https://github.com/markswendsen-code/mcp-opentable.git
cd mcp-opentable
npm install
npx playwright install chromium
npm run build
npm startMIT © Strider Labs
- @striderlabs/mcp-doordash - DoorDash MCP connector
- @striderlabs/mcp-gmail - Gmail MCP connector
- Model Context Protocol - Learn more about MCP