io.github.chrischall/tock-mcp
Tock (exploretock.com): discover restaurants, search a city, get venue details and availability.
Open source Open in the app JSON README (API)
About
Tock (exploretock.com): discover restaurants, search a city, get venue details and availability.
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- chrischall
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.5.0
- Last push
- 2026-09-05T21:53:38Z
- Repository state
- ativo
- Language
- TypeScript
- License
- MIT
- Added
- 2026-08-29 03:02:34
- Updated
- 2026-09-04 23:00:30
- Origin id
io.github.chrischall/tock-mcp
README
# 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