Query Tock (exploretock.com — restaurant discovery, availability, and the signed-in user's reservations) from a shell with the fpx CLI (@fetchproxy/cli) instead of running the tock-mcp server — list metros, search a metro's restaurants, get a venue's bookable calendar, and list reservations, all through a signed-in browser tab. Use when you want Tock data without the MCP, in a script, or on a machine where the MCP isn't installed.
浏览器
tock-mcp
试用Discover restaurants on Tock (exploretock.com) via MCP — list cities, search a metro, and get a venue's details plus its bookable experiences, prices, party sizes, and open dates/times. Triggers on phrases like "search Tock for", "what's on Tock in Chicago", "find a Tock reservation at", "does Alinea have availability on Tock", "what experiences does <venue> offer on Tock", or "my Tock reservations". Requires tock-mcp installed and the fetchproxy browser extension running in a signed-in exploretock.com tab.
它能做什么
Discover restaurants on Tock (exploretock.com) via MCP — list cities, search a metro, and get a venue's details plus its bookable experiences, prices, party sizes, and open dates/times. Triggers on phrases like "search Tock for", "what's on Tock in Chicago", "find a Tock reservation at", "does Alinea have availability on Tock", "what experiences does <venue> offer on Tock", or "my Tock reservations". Requires tock-mcp installed and the fetchproxy browser extension running in a signed-in exploretock.com tab.
技能文档
tock-mcp
MCP server for Tock (exploretock.com) — restaurant discovery and availability. Every request is relayed through the user's signed-in browser tab via the fetchproxy extension, so there's no cookie paste, no bot-wall dance, and no password handling.
- npm: npmjs.com/package/tock-mcp
- Source: github.com/chrischall/tock-mcp
Tock does not publish an official consumer API, and exploretock.com sits behind a Cloudflare challenge. This server fetches the same server-rendered pages the Tock web app uses (parsing their embedded
window.$REDUX_STATEstore) through your own signed-in browser tab. It is read-only: Tock reservations are prepaid tickets, so booking is left to exploretock.com. Use at your own discretion.
Setup
The MCP server is half of the picture — the other half is the fetchproxy browser extension that talks to Tock from your signed-in tab. Both are required.
1. Install the MCP server
Add to .mcp.json in your project or ~/.claude/mcp.json:
{
"mcpServers": {
"tock": {
"command": "npx",
"args": ["-y", "tock-mcp"]
}
}
}
Or from source:
git clone https://github.com/chrischall/tock-mcp
cd tock-mcp
npm install && npm run build
# then point .mcp.json at dist/bundle.js
2. Install the fetchproxy extension
tock-mcp shares a single browser extension with every other fetchproxy-based MCP. Install it once from github.com/chrischall/fetchproxy, then open exploretock.com and sign in (only needed for the account tools; discovery works signed-out).
3. Approve the one-time pair code
The first tool call prints a pair code to approve in the Transporter extension popup (trust-on-first-use, per identity). Run tock_healthcheck to trigger it, approve the code, and you're paired for good.
Tools
| Tool | What it does |
|---|---|
tock_list_metros | List Tock cities/metros (name, slug, business count). Filter by name/country. |
tock_search_restaurants | List / search venues in a metro slug (cuisine, price, neighborhood, slug). |
tock_get_restaurant | Venue details + its bookable experiences (prices, party sizes). |
tock_get_availability | A venue's bookable calendar: experiences, prices, open dates/times. |
tock_list_reservations | The signed-in user's purchases / reservations (needs a signed-in tab). |
tock_get_profile | The signed-in user's profile (needs a signed-in tab). |
tock_verify_reservation | After a booking attempt, re-query the account and return confirmed / cancelled / not_found (needs a signed-in tab). Use this instead of eyeballing a success screen. |
tock_healthcheck | Round-trip the bridge; reports status + the pair code on first run. |
Typical flow
tock_list_metros { query: "chicago" }→ find the metro slug.tock_search_restaurants { metro: "chicago", query: "tasting menu" }→ get venue slugs.tock_get_availability { slug: "alinea", date: "2026-07-10", party_size: 2 }→ see experiences and open dates/times.- To book, open
exploretock.com/— reservations are prepaid tickets and are completed on Tock.
Booking verification protocol
Booking happens outside these tools (on exploretock.com, by hand or by UI automation), but verification is this server's job. A booking counts as confirmed only when BOTH hold:
- a confirmation ID, receipt URL, or confirmation email was captured, and
tock_verify_reservation { venue, date, partySize, bookedMinutesAgo }returns verdictconfirmed.
Use tock_verify_reservation rather than reading tock_list_reservations
yourself: it checks the canceled and past lists too (a created-then-voided
booking appears only in canceled), and it applies the lag rule below for you,
returning recheckAdvised: true when an absence is still inconclusive.
Anything less — including a screenshot of a success screen — must be reported as "attempted, unverified." Two Tock-specific traps make the stricter rule non-negotiable:
- The post-booking modal is not proof: a confirm submitted with a stale cart is a silent no-op that still renders the success modal.
- The reservations backend (
PatronReservationHistory) lags the Reservations tab by minutes. A single immediate re-read proving absence proves nothing; re-query after a couple of minutes (and once more before giving a verdict).
Notes
- Read-only. No booking, cancelling, or payment — Tock reservations are prepaid/Turnstile-gated checkouts left to the site.
- Discovery needs no login. Only
tock_list_reservations,tock_get_profileandtock_verify_reservationrequire a signed-in exploretock.com tab. - Errors are actionable: a Cloudflare challenge asks you to clear it in the signed-in tab; a signed-out account tool asks you to sign in.
相关技能
用自然语言管理 OpenTable 餐厅预订——搜索、查看可订时段、预订、改期、取消、收藏。
Search Viator tours, activities and experiences via MCP. Use when the user asks to find tours, activities, excursions, day trips, tickets, or "things to do" in a city or destination, get details/pricing/availability for a Viator product, list attractions in a destination, or convert supplier-currency prices. Triggers on phrases like "things to do in Rome", "find a food tour in Paris", "is this tour available in September", "Viator", "book an excursion" (search only — no booking), or "skip-the-line Colosseum tickets". Requires the @chrischall/viator-mcp package installed and the viator server registered (see Setup), plus a Viator Partner API key (free Basic Access affiliate tier).
用自然语言搜索、预订、取消 Resy 餐厅订位,管理收藏和 Priority Notify 提醒。
This skill should be used when the user asks about GetYourGuide tours, activities, or attraction tickets. Triggers on phrases like "find tours on GetYourGuide", "things to do in Paris", "skip-the-line tickets", "GetYourGuide reviews", "book an activity", or any request involving searching tours, activities, day trips, or attraction tickets.
Manage Resy restaurant reservations via MCP — search venues, book tables, list and cancel reservations, manage favorites, and subscribe to Priority Notify. Triggers on phrases like "book a table at", "find me a reservation", "what reservations do I have", "cancel my Resy", "add to my Resy hit list", or any request involving restaurant reservations on Resy. Requires resy-mcp installed and the resy server registered (see Setup below).