About opentable
opentable is an MCP server for agents that search restaurants and handle OpenTable reservations. It also supports booking history and reservation management, with persistent sessions and MFA handling.
Key features
- 01Search by cuisine, location, and rating
- 02Check availability by time and party size
- 03Make restaurant reservations
- 04View booking history and manage reservations
- 05Filter by price and dining style
- 06Persist sessions and handle MFA
Use cases
- 01Find restaurants matching a location and cuisine
- 02Check tables for a chosen date and group size
- 03Book a table and review existing reservations
MCP support
The server exposes restaurant search, availability checks, bookings, and reservation management as tools for MCP clients. It uses browser automation to interact with OpenTable.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @striderlabs/mcp-opentableOPENTABLE_EMAILOpenTable email for authenticationOPENTABLE_PASSWORDSecretOpenTable account passwordOPENTABLE_LOCATIONDefault location/city for restaurant searchesLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project README@striderlabs/mcp-opentable
Book restaurant reservations via OpenTable using AI agents
Part of Strider Labs — action execution for personal AI agents.
Get Started in 2 Minutes
For Claude Desktop Users
- Add this to your Claude Desktop config:
{
"mcpServers": {
"opentable": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-opentable"]
}
}
}
- Restart Claude.
- Tell Claude: "Book a table for 4 at an Italian restaurant for 7 PM tonight"
Your agent can now book reservations. That's it.
Installation (NPM)
npm install @striderlabs/mcp-opentable
Or with npx directly:
npx @striderlabs/mcp-opentable
Features
- 🔍 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
Tested & Compatible
| Component | Version | Status |
|---|---|---|
| MCP SDK | ^1.0.0 | ✅ |
| Node.js | 18+ | ✅ |
| Claude Desktop | Latest | ✅ |
| Claude (API) | claude-3.5-sonnet+ | ✅ |
| Anthropic SDK | ^0.20+ | ✅ |
Metrics
- Weekly downloads: 187 (Apr 10-17, 2026) — Top restaurant connector (+467% growth)
- Status: ✅ Live in production
- Reliability: 85%+ task completion rate
- Discovery: npm, Claude Plugins, mcpservers.org, ClawHub, PulseMCP
Available Elsewhere
- 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
How It Works
For Agents
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()
Session Management
- Each user has encrypted, persistent credentials
- Automatic OAuth token refresh
- MFA handling (SMS/email)
- Sessions survive agent restarts
Reliability
- 85%+ task completion rate
- Automated UI change detection (connectors update when OpenTable changes)
- Fallback paths for failures
- 24/7 monitoring + alerting
Configuration
Environment Variables
# Optional: Use a specific OpenTable account
[email protected]
OPENTABLE_PASSWORD=your-password # Highly recommend using .env file
Self-Hosted
# 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
Architecture
How We Connect
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:
- 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
Security
- 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
Support
Contributing
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.
License
MIT — Free to use, modify, and distribute. See LICENSE for details.
Built by Strider Labs — Making AI agents actually useful.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.