Strider Labs OpenTable MCP
MCP server for OpenTable - let AI agents make restaurant reservations and find availability
@striderlabs/mcp-opentable
MCP server for OpenTable — let AI agents search restaurants and book reservations.
Built by Strider Labs.
Features
- 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
Installation
npm install -g @striderlabs/mcp-opentable
Or with npx:
npx @striderlabs/mcp-opentable
Configuration
Add 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"]
}
}
}
Authentication
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
Available Tools
Session Management
| 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) |
Discovery
| 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 |
Reservations
| 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) |
Example Usage
Search for restaurants
{
"tool": "opentable_search",
"arguments": {
"location": "San Francisco",
"cuisine": "italian",
"partySize": 4,
"date": "2026-03-20",
"time": "19:30"
}
}
Check availability
{
"tool": "opentable_check_availability",
"arguments": {
"restaurantId": "restaurant-slug-or-id",
"date": "2026-03-20",
"time": "19:30",
"partySize": 4
}
}
Book a reservation (two-step)
// 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
}
}
View upcoming reservations
{
"tool": "opentable_get_reservations",
"arguments": {}
}
Cancel a reservation
// 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
}
}
Requirements
- Node.js 18+
- Playwright browsers (auto-installed on first run via
playwright install chromium)
How It Works
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
Security
- 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
Limitations
- 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
Development
git clone https://github.com/markswendsen-code/mcp-opentable.git
cd mcp-opentable
npm install
npx playwright install chromium
npm run build
npm start
License
MIT © Strider Labs
Related
- @striderlabs/mcp-doordash - DoorDash MCP connector
- @striderlabs/mcp-gmail - Gmail MCP connector
- Model Context Protocol - Learn more about MCP
Server Terkait
Actual Budget MCP
Docker MCP server connecting Claude Desktop/LibreChat/LobeChat to Actual Budget for natural-language budgeting, transaction management, and financial insights.
BloodHound MCP
Enables Large Language Models to interact with BloodHound Community Edition data.
FPL MCP Server
MCP server for Fantasy Premier League analysis and strategy. This server provides AI assistants with powerful tools, resources, and prompts to help you dominate your FPL mini-leagues with data-driven insights
AstraCipher
Cryptographic identity MCP server for AI agents using W3C DIDs, Verifiable Credentials, and NIST post-quantum cryptography (ML-DSA-65 FIPS 204).
ImmoStage Virtual Staging
AI virtual staging for real estate — stage rooms, beautify floor plans, classify images, generate property descriptions
MCP Hub
A lightweight MCP Hub to centralize your MCP servers in one place.
sapient-mcp
MCP toAutomate SAP GUI
Time MCP Server
Provides current time and timezone conversion capabilities using IANA timezone names, with automatic system timezone detection.
OpenEnded Philosophy MCP Server with NARS Integration
A philosophical reasoning system combining OpenEnded Philosophy with the Non-Axiomatic Reasoning System (NARS) for advanced analysis and synthesis.
Gaggimate MCP
Allows an LLM agent to control your Gaggimate espresso machine