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
関連サーバー
Enedis Linky MCP Server
A production-ready Model Context Protocol (MCP) server written in Go that wraps the Conso API, giving AI assistants like Claude direct access to your Enedis Linky smart meter data.
mcp-server-gemini-bridge
Bridge to Google Gemini API. Access Gemini Pro and Flash models through MCP.
OnlySwaps
Multi-chain DEX meta-aggregator for AI agents. Best prices from 15+ aggregators across 13 chains.
Airplane.Live MCP Server
MCP server that connects to the Airplanes.live API to provide real-time flight and aircraft data for analysis or visualization.
FatSecret
Server that connects Claude/Cursor to the FatSecret Platform API. Search foods, track your diet, manage recipes, and monitor weight directly from your AI assistant.
Stockfish
Enables AI to communicate with the Stockfish chess engine.
TengineAI
Run MCP tools in production without managing your own server — built-in retries, permissions, and observability.
Questrade MCP Server
An unofficial server to integrate with the Questrade API, providing access to trading accounts, market data, and portfolio information.
RiskState
Deterministic risk governance and policy engine for crypto trading agents. 5-level policy with position sizing, leverage limits, and trade blocking. BTC + ETH. 9+ real-time data sources.
Card Catalog
Certification authority for AI agents. Adversarial exams, Ed25519-signed credentials, examiner economy. 20K free credits on registration.