opentable-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@opentable-mcpFind Italian restaurants in San Francisco"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
opentable-mcp
MCP server for OpenTable restaurant search and availability, reverse-engineered from observed web traffic.
Built entirely by Claude Opus 4.8 via Claude Code.
Overview
Exposes anonymous, read-only OpenTable restaurant discovery and availability through MCP tools. It can find restaurants and check tables — it cannot book.
opentable_autocomplete— resolve a place, cuisine, or restaurant name to search anchors (restaurantId, lat/long, metroId, areaId)opentable_list_regions— metro and sub-region geography with ids and restaurant countsopentable_nearby_restaurants— restaurants near a lat/long with name, restaurantId, cuisine, price band, rating, phone, and profile URLopentable_restaurant_availability— bookable time slots for one or more restaurants on a single date, time, and party sizeopentable_multi_day_availability— a single restaurant's availability scanned forward across many daysopentable_session_status— inspect or force-refresh the session and Akamai cookie state
Typical workflow: opentable_autocomplete resolves a name to a restaurantId, then opentable_restaurant_availability or opentable_multi_day_availability checks tables. Availability slots are raw data — each dateTime is ISO-8601 local to the restaurant (no timezone), plus the raw timeOffsetMinutes.
Setup
npm install
npm run build
npm run verifyNo configuration is required — the server mints its own session on first use. Copy .env.example to .env for optional overrides (default search center, captured-cookie fallback, browser settings).
Requires Node.js 20+ and Google Chrome installed (used via playwright-core to mint an Akamai-valid session; no separate browser download). No OpenTable account needed.
MCP Setup
The server runs over stdio. Example client configuration:
{
"mcpServers": {
"opentable": {
"command": "node",
"args": ["/absolute/path/to/opentable-mcp/dist/index.js"],
"cwd": "/absolute/path/to/opentable-mcp"
}
}
}For local development, use npx tsx src/index.ts instead of the built output. A manifest.json is included for bundle-aware clients.
Notes
Anonymous and read-only — no account, no booking. The booking flow is intentionally out of scope.
OpenTable is behind Akamai Bot Manager, whose
_abckcookie is only validated by a real browser. The server mints a session lazily with a headful (offscreen) Chrome via your installed Chrome, persists it to~/.config/opentable-mcp/session.json, and re-mints only when a request is blocked — no scheduler. A capturedOPENTABLE_COOKIEis used as a fallback when present.Minting launches Chrome with
--disable-blink-features=AutomationControlled(required for the availability endpoint to trust the session), which shows a cosmetic "unsupported command-line flag" banner.Heavy back-to-back use can trip Akamai IP rate-limiting; it recovers after a short cooldown.
Tool errors carry a machine-readable
code(AKAMAI_BLOCKED,PERSISTED_QUERY_NOT_FOUND,CSRF_REJECTED,SESSION_UNAVAILABLE). Seedocs/api-spec.mdfor the reverse-engineering notes.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/atfinke/opentable-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server