This connects to OpenTable through browser automation to handle restaurant reservations programmatically. You get search_restaurants with filters for cuisine and location, check_availability for party size and time slots, make_reservation with special requests, and get_my_reservations for booking history. It uses Playwright to drive the OpenTable web interface since there's no public reservation API, storing encrypted sessions locally so your agent stays logged in across restarts. The 85% task completion rate and automatic UI change detection suggest it's production-ready. Reach for this when you need an agent to actually book tables instead of just suggesting restaurants, though you'll need to trust browser automation and manage OpenTable credentials through environment variables.
Book restaurant reservations via OpenTable using AI agents
Part of Strider Labs — action execution for personal AI agents.
{
"mcpServers": {
"opentable": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-opentable"]
}
}
}
Your agent can now book reservations. That's it.
npm install @striderlabs/mcp-opentable
Or with npx directly:
npx @striderlabs/mcp-opentable
| Component | Version | Status |
|---|---|---|
| MCP SDK | ^1.0.0 | ✅ |
| Node.js | 18+ | ✅ |
| Claude Desktop | Latest | ✅ |
| Claude (API) | claude-3.5-sonnet+ | ✅ |
| Anthropic SDK | ^0.20+ | ✅ |
Your agent can use these capabilities:
// Search for restaurants
restaurants = search_restaurants({
location: "San Francisco, CA",
cuisine: "Italian",
price_range: "$$",
date: "2026-04-15",
party_size: 4,
time: "19:00"
})
// Get detailed restaurant info
details = get_restaurant_details({
restaurant_id: "ristorante-milano-sf"
})
// Check availability
availability = check_availability({
restaurant_id: "ristorante-milano-sf",
party_size: 4,
date: "2026-04-15",
time: "19:00"
})
// Make a reservation
booking = make_reservation({
restaurant_id: "ristorante-milano-sf",
party_size: 4,
date: "2026-04-15",
time: "19:00",
special_requests: "Window seat if possible"
})
// View your reservations
reservations = get_my_reservations()
# Optional: Use a specific OpenTable account
OPENTABLE_EMAIL=your-email@example.com
OPENTABLE_PASSWORD=your-password # Highly recommend using .env file
# Clone the repo
git clone https://github.com/striderlabsdev/mcp-opentable
cd mcp-opentable
# Install dependencies
npm install
# Start the server
npm start
# Your agent can now connect to localhost:3000
This connector uses browser automation (Playwright) to interact with OpenTable, because OpenTable doesn't have a comprehensive public API for reservations. Here's why that's safe and reliable:
.env or secure vaultWe welcome contributions! Areas of interest:
See CONTRIBUTING.md for guidelines.
MIT — Free to use, modify, and distribute. See LICENSE for details.
Built by Strider Labs — Making AI agents actually useful.
OPENTABLE_EMAIL*OpenTable email for authentication
OPENTABLE_PASSWORD*secretOpenTable account password
OPENTABLE_LOCATIONDefault location/city for restaurant searches