Book restaurant reservations via OpenTable using AI agents
Part of Strider Labs — action execution for personal AI agents.
npm install @striderlabs/mcp-opentableOr with npx:
npx @striderlabs/mcp-opentableAdd to your ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"opentable": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-opentable"]
}
}
}"Book a table for 4 at the best Italian place near work for 7 PM tonight"
→ Agent searches restaurants → Checks availability → Reserves table
- 🔍 Search restaurants by cuisine, location, and rating
- ⏰ Check availability for specific times and party sizes
- 📅 Make reservations with one-click confirmation
- 📝 View booking history and manage reservations
- 🏷️ Filter by price, cuisine, and dining style
- 🔐 Persistent sessions - stay logged in across restarts
- 🔄 Automatic MFA - handles multi-factor authentication
- 📱 Per-user credentials - encrypted session storage
- Weekly downloads: 33 (Apr 3-9, 2026) — Top restaurant connector
- Status: ✅ Live in production
- Reliability: 85%+ task completion rate
- Discovery: npm, Claude Plugins, mcpservers.org, ClawHub, PulseMCP
- npm: npmjs.com/@striderlabs/mcp-opentable
- Claude Plugins: Search "Strider Labs" in Claude
- mcpservers.org: Strider Labs OpenTable
- Full Strider Labs: github.com/striderlabsdev/striderlabs
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()- Each user has encrypted, persistent credentials
- Automatic OAuth token refresh
- MFA handling (SMS/email)
- Sessions survive agent restarts
- 85%+ task completion rate
- Automated UI change detection (connectors update when OpenTable changes)
- Fallback paths for failures
- 24/7 monitoring + alerting
# 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:3000This 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:
- User-controlled: Your agent only accesses your own OpenTable account
- Session-based: We store your login session securely, not your password
- Change-aware: We detect OpenTable UI changes and alert immediately
- Fingerprinting: We use realistic browser profiles to avoid bot detection
- Rate-limited: We respect OpenTable's infrastructure with appropriate delays
- Credentials stored encrypted in your local
.envor secure vault - Sessions isolated per user
- No data sent to third parties
- MIT Licensed — audit the code yourself
We welcome contributions! Areas of interest:
- Bug reports and fixes
- Feature requests (new filters, integrations, etc.)
- Performance improvements
- Documentation enhancements
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.