tock-mcp
# tock-mcp
MCP server for **Tock** ([exploretock.com](https://www.exploretock.com)) — restaurant discovery and availability for Claude. List cities, search a metro, and get a venue's details plus its bookable experiences, prices, party sizes, and open dates/times.
Every request is relayed through your own signed-in browser tab via the [fetchproxy](https://github.com/chrischall/fetchproxy) extension — no cookie paste, no bot-wall dance, no password handling. This project was developed and is maintained by AI (Claude Code).
> Tock publishes no official consumer API, and exploretock.com sits behind a Cloudflare challenge. tock-mcp fetches the same server-rendered pages the Tock web app uses (parsing their embedded `window.$REDUX_STATE` store) through your signed-in tab. It is **read-only** — Tock reservations are prepaid tickets, so booking stays on exploretock.com. Use at your own discretion.
## Install
```json
// .mcp.json
{
"mcpServers": {
"tock": { "command": "npx", "args": ["-y", "tock-mcp"] }
}
}
```
You also need the [fetchproxy browser extension](https://github.com/chrischall/fetchproxy) (shared across the fleet) running in a Chrome/Safari tab. The first tool call prints a one-time pair code to approve in the extension popup — run `tock_healthcheck` to trigger it. Discovery works signed-out; the account tools need you signed in to exploretock.com.
## Tools
- **`tock_list_metros`** — Tock cities/metros with business counts; filter by name/country.
- **`tock_search_restaurants`** — venues in a metro slug (cuisine, price, neighborhood, slug).
- **`tock_get_restaurant`** — venue details + its bookable experiences.
- **`tock_get_availability`** — a venue's bookable calendar (experiences, prices, open dates/times).
- **`tock_list_reservations`** / **`tock_get_profile`** — the signed-in user's purchases and profile.
- **`tock_verify_reservation`** — after a booking attempt, re-query the account and return an explicit `confirmed` / `cancelled` / `not_found` verdict. A success screen is not proof; this is.
- **`tock_healthcheck`** — bridge status + the one-time pair code.
## Develop
```bash
npm install
npm run build # tsc + esbuild bundle → dist/bundle.js
npm test # vitest
```
Architecture and the reverse-engineered Tock surface are documented in [`docs/TOCK-API.md`](docs/TOCK-API.md).
## License
MIT
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose: listing metros, searching restaurants, fetching venue details, checking availability, managing reservations, profile retrieval, verification, and diagnostics. Even related tools like list_reservations and verify_reservation are cleanly separated by intent.
All tools share a consistent 'tock_' prefix and follow a verb_noun pattern (list_metros, search_restaurants, get_restaurant, get_availability, list_reservations, get_profile, verify_reservation). The only deviation is tock_healthcheck, which is a compound noun but still clear and consistent in style.
8 tools is well-scoped for a reservation browsing and verification MCP. Each tool covers a necessary operation without bloat, and the count aligns with typical high-quality servers.
The tool surface covers the full read-only lifecycle: discover metros, search restaurants, get details, check availability, manage user reservations, verify bookings, and retrieve profile. Booking is intentionally omitted, so there are no dead ends for the server's stated purpose.