tock-mcp
This read-only MCP server lets you discover restaurants, browse availability, and manage your Tock account by securely relaying requests through your signed-in browser tab (via the fetchproxy extension).
Discover Metros: List Tock cities/metros (
tock_list_metros), filterable by name, country, or active venues, with business counts.Search Restaurants: Find venues within a metro (
tock_search_restaurants) by cuisine, name, or other filters like price band and neighborhood.Get Restaurant Details: Retrieve comprehensive info (
tock_get_restaurant) including description, location, cuisine, price band, and all bookable experiences with prices and party sizes.Check Availability: View a venue’s bookable calendar (
tock_get_availability) showing experiences, prices, party sizes, cancellation policies, and open dates/times for a specific date or party size.List Reservations: Access your upcoming, past, or canceled Tock reservations (
tock_list_reservations) when signed in.Get Profile: Retrieve your Tock account name and email (
tock_get_profile); may require at least one reservation on the account.Verify Reservations: Confirm a reservation’s existence and status (
tock_verify_reservation) after a booking attempt—returnsconfirmed,cancelled, ornot_found.Health Check: Diagnose fetchproxy bridge connectivity and receive a one-time pair code for extension approval (
tock_healthcheck).
The server is read-only and does not perform bookings.
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., "@tock-mcpsearch for Italian restaurants in New York City"
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.
tock-mcp
MCP server for Tock (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 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_STATEstore) 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
// .mcp.json
{
"mcpServers": {
"tock": { "command": "npx", "args": ["-y", "tock-mcp"] }
}
}You also need the fetchproxy browser extension (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.
Related MCP server: Restaurant Reservation MCP Server
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 explicitconfirmed/cancelled/not_foundverdict. A success screen is not proof; this is.tock_healthcheck— bridge status + the one-time pair code.
Develop
npm install
npm run build # tsc + esbuild bundle → dist/bundle.js
npm test # vitestArchitecture and the reverse-engineered Tock surface are documented in docs/TOCK-API.md.
License
MIT
Available Tools
8 toolstock_get_availabilityARead-only
Get a venue's bookable calendar: each experience (seating/menu) with its price, party sizes, cancellation policy, plus the dates and times the venue is open. Tock returns the full open-date/time set; pass a date to focus the summary. Reservations are prepaid tickets — this MCP does not book; open the venue on exploretock.com to reserve.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD to center the calendar on (optional). | |
| slug | Yes | Tock venue slug, e.g. "alinea" (the exploretock.com/{slug} segment). | |
| party_size | No | Guests — filters experiences to those accepting this size. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, openWorldHint), the description adds that reservations are prepaid tickets and that the tool returns the full open-date/time set, with optional date filtering. It also clarifies the tool does not perform bookings, ensuring agents understand its scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words: the first describes what the tool does, the second adds critical behavioral context and user action. Perfectly front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although there is no output schema, the description adequately hints at the return structure (experiences with price, party sizes, cancellation policy, dates/times). For a read-only tool with good annotations, this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions already cover 100% of parameters, but the description adds value by explaining how 'date' focuses the summary and that 'party_size' filters experiences. This exceeds the baseline 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets a venue's bookable calendar with experiences, pricing, cancellation policy, and open dates/times. The verb 'Get' and resource 'availability' are specific and distinct from siblings like tock_get_restaurant (venue details) and tock_list_reservations (existing bookings).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage by stating what the tool returns and noting it does not book; users are directed to exploretock.com for reservations. However, it does not explicitly contrast with alternative tools for booking or detailed venue info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tock_get_profileARead-only
Get the signed-in user's Tock account identity (name, email). Requires a browser tab signed in to exploretock.com via the fetchproxy extension. Derived from your reservation records, so it needs at least one reservation on the account.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact strips image/avatar URLs from the response; "full" returns Tock's payload untouched. No field projection: this server has no verified record of which Tock fields matter, and inventing one would risk dropping a field a caller needs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and openWorldHint=true. The description adds valuable behavioral context beyond these hints: it requires an authenticated browser tab and explains that the profile is derived from reservation records, so the account must have at least one reservation. This is useful and does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. The core purpose is front-loaded, followed immediately by the two essential prerequisites. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only identity lookup with one optional parameter, the description is complete: it states the return concept (name, email), prerequisites, and derivation dependency. The schema covers the view-shape details, and no output schema is needed given the simple return description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the view parameter already has a rich description explaining compact versus full shapes and the no-field-projection behavior. The tool description itself adds no additional parameter meaning beyond what the input schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Get the signed-in user's Tock account identity (name, email)". It clearly identifies what this tool does and, through the sibling list, is easily distinguishable from restaurant, metro, reservation, and availability tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly explains the conditions for use: a signed-in browser tab via the fetchproxy extension and at least one reservation on the account. It does not explicitly name alternatives or when-not-to-use scenarios, but these prerequisites strongly anchor the appropriate usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tock_get_restaurantARead-only
Get details for a Tock venue by slug: name, cuisine, price band, location, description, and its bookable experiences (with prices and party sizes). Slug comes from tock_search_restaurants (or a exploretock.com/{slug} URL).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Tock venue slug, e.g. "alinea" (the exploretock.com/{slug} segment). | |
| view | No | Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact strips image/avatar URLs from the response; "full" returns Tock's payload untouched. No field projection: this server has no verified record of which Tock fields matter, and inventing one would risk dropping a field a caller needs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds expected response content but does not discuss pagination, error behavior, or the view-dependent response stripping; those details live in the schema rather than the main description. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every clause adds information: the operation, the input, the response fields, and the slug source are all covered without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even with no output schema, the description enumerates the key return fields, including bookable experiences with prices and party sizes, so an agent can predict the response shape. Combined with the rich schema documentation for slug and view, the only notable omission is error/not-found behavior, which is minor for a simple read-only lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the slug parameter has a pattern, example, and source note, while the view parameter has detailed compact/full semantics. The main description contributes only that the slug comes from tock_search_restaurants or a URL, which is helpful but does not need to compensate for schema gaps. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get details for a Tock venue by slug' and enumerates concrete response fields: name, cuisine, price band, location, description, and bookable experiences with prices and party sizes. This clearly distinguishes it from sibling tock_search_restaurants, which is for finding venues rather than retrieving venue details. No tautology or ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It tells the agent that the slug comes from tock_search_restaurants or an exploretock.com URL, establishing a clear prerequisite workflow: search first, then fetch details. This is useful context, but it stops short of explicitly stating when not to use this tool or naming alternatives such as tock_get_availability for availability slots.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tock_healthcheckVerify the fetchproxy bridge end-to-endARead-onlyIdempotent
Round-trips a small public www.exploretock.com URL (/robots.txt) through the fetchproxy bridge and returns diagnostics: the bridge's role (host/peer/null), port, version, the extension link (linked / pair pending / not attached / never answered), the elapsed round-trip time, and a plain-English hint distinguishing 'bridge never came up' from 'extension not connected' from 'real www.exploretock.com-side problem'. Call this when a real tool fails and you want to know which hop broke. Read-only, no auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is covered. The description adds valuable behavioral detail beyond annotations: it exercises a live URL, reports bridge role/port/version/extension link state, and distinguishes failure categories. This meaningfully enriches what annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description packs substantial diagnostic detail into a tight, purposeful sentence, followed by a brief clear usage trigger. Every clause earns its place, and the most important behavioral facts (round-trip through bridge, diagnostics returned) are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description carries the full burden of explaining what the tool returns, and it does so thoroughly: bridge role, port, version, extension link state, elapsed time, and a plain-English failure hint. It also covers when to use it and its safety profile, so an agent has everything needed to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter detail to add. Schema coverage is effectively 100% because the schema is an empty object. A baseline of 4 is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action — round-tripping a known public URL through the fetchproxy bridge — and clearly explains what diagnostics are returned. This clearly distinguishes it from the sibling Tock data/reservation tools, which are all about restaurant availability and reservations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to call it: 'Call this when a real tool fails and you want to know which hop broke.' It also explicitly notes read-only and no-auth requirements, giving an agent clear context for safe invocation. No alternative healthcheck tool exists among siblings, so no exclusion is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tock_list_metrosARead-only
List Tock cities/metros (name, slug, business count, country/state). Use a metro slug with tock_search_restaurants. By default only metros with bookable venues are returned.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max metros to return (default 100). | |
| query | No | Case-insensitive filter on metro name or slug (e.g. "chic"). | |
| country | No | Filter by 2-letter country code (e.g. "US", "GB"). | |
| include_empty | No | Include metros with businessCount 0 (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint. Description adds that by default only metros with bookable venues are returned, which is useful context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no wasted words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 optional params all well-described in schema and no output schema, the description is sufficient. It tells what the tool returns and how to use the result (with tock_search_restaurants).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds minimal parameter-specific information beyond the schema; it only mentions the default filtering behavior which somewhat relates to the include_empty parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists Tock cities/metros with specific fields (name, slug, business count, country/state) and distinguishes itself from siblings by mentioning using the metro slug with tock_search_restaurants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains when to use (to get a metro slug for searching restaurants) and notes default behavior (only bookable venues), but does not explicitly state when not to use or mention alternatives beyond the single sibling referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tock_list_reservationsARead-only
List the signed-in user's Tock reservations (upcoming, past, or canceled) with venue, date/time, party size, and experience. Requires a browser tab signed in to exploretock.com via the fetchproxy extension.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max to return (default 30). | |
| offset | No | Pagination offset (default 0). | |
| status | No | Which reservations to list (default upcoming). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so description does not need to repeat safety. Description adds value by confirming the tool lists the signed-in user's own reservations, which implies data access control, but no further behavioral traits are disclosed. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. First sentence front-loads the purpose and returned fields. Second sentence covers the prerequisite. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description covers purpose, returned fields, parameter defaults (status default is upcoming) implicitly via schema, and authentication requirement. No output schema, but description lists returned fields. Slight gap: does not explain pagination semantics beyond offset/limit, but sufficient for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage, describing all three parameters (limit, offset, status) with default values and constraints. Description does not add extra meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List the signed-in user's Tock reservations' with specific details (venue, date/time, party size, experience) and reservation types (upcoming, past, canceled). This distinguishes it from sibling tools like tock_get_availability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states requirement: 'Requires a browser tab signed in to exploretock.com via the fetchproxy extension.' This tells when to use. Does not explicitly mention when not to use, but sibling tools cover other operations, so guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tock_search_restaurantsARead-only
List / search restaurants in a Tock metro. Pass a metro slug (from tock_list_metros, e.g. "chicago") and an optional text query. Returns venues with cuisine, price band, neighborhood, and their Tock slug (use it with tock_get_restaurant / tock_get_availability). Does NOT include bookable slots.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max venues to return (default 50). | |
| metro | Yes | Metro slug, e.g. "chicago" or "new-york". | |
| query | No | Free-text filter (cuisine or venue name) applied server-side. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint. The description adds context about what fields are returned and that slots are not included, which is useful. However, no additional disclosures about rate limits or pagination are given, hence 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. First sentence states purpose and inputs; second sentence summarizes output and limitations. No waste, front-loaded with critical info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description fully explains return fields (cuisine, price band, neighborhood, slug) and what is missing (bookable slots). This is complete for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions. The description adds value by explaining that metro comes from tock_list_metros, query is free-text and server-side, and limit defaults to 50 (not in schema). This goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List / search restaurants in a Tock metro', specifies required inputs (metro slug) and outputs (venues with cuisine, price band, neighborhood, Tock slug), and distinguishes from sibling tools by explicitly mentioning what it does NOT include (bookable slots).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: use metro slug from tock_list_metros, mentions optional text query, and directs user to other tools for details (tock_get_restaurant / tock_get_availability) and for slots (excluded). This leaves no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tock_verify_reservationARead-only
Verify that a Tock reservation actually exists, by re-querying the account's own reservation lists (upcoming, canceled and past) and returning an explicit verdict. Use this after ANY booking attempt — a success screen or screenshot is not proof that a booking landed. Returns verdict confirmed, cancelled (it existed and was voided) or not_found. A not_found must be reported to the user as "attempted, unverified", never as a failure to book and never as a success. Requires a browser tab signed in to exploretock.com via the fetchproxy extension.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | The local date the reservation is for (YYYY-MM-DD). | |
| venue | Yes | Restaurant name or Tock slug; matched case-insensitively as a substring. | |
| partySize | No | If given, a candidate must also match this party size. | |
| bookedMinutesAgo | No | Minutes since the booking was attempted. Drives the lag caveat: an absence seen within a few minutes of booking is inconclusive, not proof. Omit if unknown (treated as inconclusive). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint and openWorldHint, but the description adds rich behavioral details: the exact verdict values ('confirmed', 'cancelled', 'not_found'), the reporting mandate for 'not_found' ('attempted, unverified'), and the fetchproxy sign-in requirement. These go well beyond the structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph, front-loaded with the core action and resource. Every sentence contributes essential information—usage trigger, return values, reporting rule, and prerequisites—with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by explicitly listing the return verdicts and their meanings. It also covers the required browser environment and the critical reporting behavior, making the tool self-sufficient for an agent to invoke and interpret correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage of all four parameters with clear descriptions (date, venue, partySize, bookedMinutesAgo). The tool description does not add parameter-level detail, but it doesn't need to because the schema is comprehensive. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb 'Verify' and a clear resource ('a Tock reservation'), then explains the method (re-querying reservation lists) and the explicit verdicts. This clearly distinguishes it from sibling tools like tock_list_reservations or tock_get_availability by focusing on verification with a pass/fail outcome.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance ('after ANY booking attempt') and even explains why a success screen is insufficient, plus the prerequisite login requirement. It does not explicitly name alternative tools or provide when-not-to-use conditions, but the context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v0.5.0- Changed
tock_get_profile1 field changed- added
Input schema / properties / viewAdded value: +{ + "description": "Response shape: \"compact\" (default) drops fields the response already carries elsewhere; \"full\" returns every field this server understands. compact strips image/avatar URLs from the response; \"full\" returns Tock's payload untouched. No field projection: this server has no verified record of which Tock fields matter, and inventing one would risk dropping a field a caller needs.", + "enum": [ + "compact", + "full" + ], + "type": "string" +}
- Changed
tock_get_restaurant1 field changed- added
Input schema / properties / viewAdded value: +{ + "description": "Response shape: \"compact\" (default) drops fields the response already carries elsewhere; \"full\" returns every field this server understands. compact strips image/avatar URLs from the response; \"full\" returns Tock's payload untouched. No field projection: this server has no verified record of which Tock fields matter, and inventing one would risk dropping a field a caller needs.", + "enum": [ + "compact", + "full" + ], + "type": "string" +}
1 tool update
v0.3.0- Added
tock_verify_reservation
1 tool update
v0.2.3- Added
tock_list_metros
1 tool update
v0.2.1- Removed
tock_list_metros
7 tool updates
v0.2.0- First observed
tock_get_availability - First observed
tock_get_profile - First observed
tock_get_restaurant - First observed
tock_healthcheck - First observed
tock_list_metros - First observed
tock_list_reservations - First observed
tock_search_restaurants
TDQS
Each tool targets a distinct step in the workflow: metro lookup, restaurant search, venue details, availability, reservation listing, identity, verification, and diagnostics. Even list_reservations and verify_reservation are clearly separated by intent—browsing vs. explicit verification with a verdict.
All tools share a consistent tock_ prefix and generally use a snake_case action_noun pattern (list_metros, search_restaurants, get_availability). tock_healthcheck is the one outlier, since it is a compound command rather than a verb_noun name, but the convention is otherwise uniform and predictable.
Eight tools is well-scoped for the Tock domain: four cover restaurant discovery and availability, three handle signed-in reservation data and verification, and one provides diagnostics. Each tool earns its place without feeling redundant or overwhelming.
The set covers the full discovery-to-availability pipeline and the user-facing reservation verification lifecycle, which is the server's clear purpose. Booking and cancellation are intentionally left to the external exploretock.com site and are explicitly documented as such, making the omission a design choice rather than a critical gap.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Search nearly 20,000 verified restaurants and bars across 24 cities plus the New Mexico region, with venue detail and curated lists.
Book hard-to-get restaurant reservations on your own Resy, SevenRooms, or OpenTable account.
Plan trips directly into TravelOwl from a conversation with Claude.
AI-native restaurant discovery: verified/menu-indexed/discovered tiers + signed allergy-safety data.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables restaurant reservation management through SevenRooms API, allowing users to create reservations and query available time slots with guest details and party size information.-
- FlicenseBqualityFmaintenanceEnables users to search, check availability, and book restaurant reservations across Resy and OpenTable platforms. It supports direct booking for Resy and includes an automated reservation 'sniper' for securing high-demand slots the moment they become available.124-
- FlicenseNot gradedqualityNot gradedmaintenanceAn AI-native restaurant discovery service that enables searching and receiving natural language recommendations for over 2,200 restaurants across 15+ US cities. It provides tools for accessing detailed restaurant info, curated lists, and cuisine-specific searches through the Model Context Protocol.-
- FlicenseBqualityDmaintenanceConnects Claude to the Ticketmaster API to let users discover local events by city, category, keyword, or weekend through natural conversation.4-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/chrischall/tock-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server