Skip to main content
Glama
chrischall

resy-mcp

by chrischall

resy-mcp

CI npm license

Resy reservation management as an MCP server for Claude — search restaurants, book tables, manage reservations, favorites, and Priority Notify via natural language.

⚠️ Resy does not publish an official API. This server uses the same private endpoints the Resy web app calls, with the public web-app api_key and one of three user-level auth paths (token override, email + password, or a fetchproxy browser bridge). Use at your own discretion.

Tools

Tool

Purpose

resy_get_profile

Current user profile (name, email, booking count)

resy_search_venues

Search venues with availability for a date + party size

resy_find_slots

List bookable slots at a venue

resy_get_venue

Full venue details

resy_book

Book a reservation (composite: find → details → book)

resy_list_reservations

Upcoming / past reservations

resy_cancel

Cancel by resy_token

resy_list_favorites

Favorited venues

resy_add_favorite / resy_remove_favorite

Manage favorites

resy_list_notify

Priority Notify subscriptions

resy_add_notify / resy_remove_notify

Manage Priority Notify

Related MCP server: Restaurant Reservation MCP Server

Acknowledgement of Terms

By using this MCP server, you acknowledge and agree to the following:

1. This server accesses your own Resy account. Auth happens via your own credentials (email/password) or your own signed-in browser session through the fetchproxy extension. It does not — and cannot — access anyone else's reservations.

2. Resy's Terms of Service govern your use of this server, just as they govern your direct use of resy.com. Resy's ToS prohibits the use of bots and automated booking, enforces rate limits, deploys CAPTCHA, and states that automated booking bots can result in account bans. Reservations are not transferable and may not be resold.

You are agreeing to those terms — read by the maintainer 2026-05-23 — every time you invoke a tool in this server.

3. Personal, non-commercial use only. This project is not affiliated with, endorsed by, sponsored by, or in partnership with Resy or American Express. It is a personal automation tool intended only to help one user manage one person's reservations from the command line. Specifically: do not use it to mass-book, snipe slot-tokens the moment they open, resell tables, or compete with Resy. The booking tools exist so you can book the table you would have booked anyway, faster.

4. Stability is not guaranteed. This server calls the same api.resy.com endpoints the Resy mobile app and web app call, with the same public web-app api_key. Resy may change endpoint shapes, rotate keys, or add new bot detection at any time. It may break.

5. You accept full responsibility for any consequences of using this server in connection with your Resy account — rate limiting, slot-lock rejections, account warnings, suspension, or bans. If Resy objects to your use, stop using this server.

This section is the maintainer's good-faith summary of the terms — it is not legal advice and does not modify or supersede Resy's actual ToS.

Install

npm install
npm run build

Configure

Pick one of three auth paths. The client tries them in this priority order:

  1. RESY_AUTH_TOKEN — pre-obtained x-resy-auth-token. Overrides everything; useful for CI or power users who already have a token.

  2. RESY_EMAIL + RESY_PASSWORD — the classic flow. POSTs /3/auth/password and caches the returned token.

  3. fetchproxy fallback — when no env vars are set, the server uses the fetchproxy browser bridge to call /3/auth/refresh through your signed-in resy.com tab. Install the fetchproxy extension once (Chrome Web Store or Safari .dmg), sign into resy.com, and that's it — no credentials in env.

Copy .env.example to .env and fill in whichever path you want:

# Path 2: password login (classic)
RESY_EMAIL=you@example.com
RESY_PASSWORD=changeme

# Path 1: direct token (overrides everything)
RESY_AUTH_TOKEN=...

# Opt-out of the fetchproxy fallback (forces 1 or 2)
RESY_DISABLE_FETCHPROXY=1

For MCPB / Claude Desktop install, the packaged manifest prompts for all three optional inputs — leave them blank to route through the fetchproxy extension instead.

Run (local stdio)

node dist/bundle.js

Test

npm test             # tsc typecheck + unit tests (mocked fetch)
npm run smoke        # live endpoint probe — requires real .env

Notes

  • The RESY_API_KEY used by the client is the public key baked into resy.com's JS bundle. If Resy rotates it, set RESY_API_KEY in your environment to override.

  • Favorites and Priority Notify endpoint paths are reverse-engineered; if live endpoints differ, run npm run smoke and adjust.


This project was developed and is maintained by AI (Claude Opus 4.7).

Available Tools

15 tools
resy_add_favoriteC

Add a venue to the user's favorites by venue_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
venue_idYes

TDQS

C2.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states the basic action. It does not disclose side effects (e.g., duplicate handling), authentication needs, or any other behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with no wasted words, but it could be improved by adding brief parameter context without detracting from conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks detail on return values, error handling, and behavioral context. For a simple tool with no output schema and no annotations, this is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description adds no meaning for the single parameter 'venue_id'—no hint on how to obtain it or what it represents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Add' and resource 'venue' with clear context 'to the user's favorites'. It distinguishes from sibling tools like 'resy_remove_favorite' and 'resy_list_favorites'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as needing a venue_id from a prior search, nor does it refer to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resy_add_notifyA

Subscribe to Priority Notify for a venue/date/party size. Resy emails you when a matching slot opens. time_start / time_end bound the window you're willing to accept (HH:MM, 24h). Resy's notify booking window only accepts near-term dates (~30 days out).

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesYYYY-MM-DD (must be within Resy's notify window, ~30 days)
time_endNoLatest acceptable time, HH:MM. Defaults 21:00.
venue_idYes
party_sizeYes
time_startNoEarliest acceptable time, HH:MM. Defaults 18:00.
service_type_idNoResy service type (2 = dining room, observed default)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations present, so description fully discloses behavior: Resy emails when a matching slot opens, and notes the 30-day notify window. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-loaded with purpose and key constraints, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers main action and constraints; however, it omits behavior if notification already exists or details on removal (sibling resy_remove_notify exists). Slightly incomplete for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%; description adds context for time_start and time_end formats (HH:MM, 24h) and confirms the 30-day date constraint, enhancing understanding beyond parameter names and type info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Subscribe to Priority Notify for a venue/date/party size' with a specific verb and resource, and it is distinguished from siblings like resy_book (booking) and resy_list_notify (listing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explains when to use (to get an email when a slot opens) and constrains usage with time window and 30-day date limit, but does not explicitly state when not to use or mention alternatives like resy_book for immediate booking.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resy_bookA
Destructive

Book a reservation. Composite tool: internally runs find-slots → get booking details → book. Confirm-gated: without confirm:true this returns a dry-run preview (venue, date, party size, the exact slot time that would be booked, and the payment card last-4) and books nothing. Pass desired_time (HH:MM, 24-hour) to target a specific slot. If your exact desired_time is not available the tool does NOT auto-book a different time — it returns the available times so you can pick, unless you pass allow_closest_time:true. Omit desired_time to take the first available slot. Uses the user's default payment method unless payment_method_id is supplied.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNo
lngNo
dateYesYYYY-MM-DD
confirmNoMust be true to proceed. Without this, the tool returns a preview.
venue_idYes
party_sizeYes
desired_timeNoHH:MM (24h)
payment_method_idNo
allow_closest_timeNoWhen true, if your exact desired_time is unavailable the closest slot is booked instead of returning the available times to pick from. Default false: an unavailable desired_time never silently books a different time.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds significant behavioral context beyond annotations: composite nature, dry-run preview, confirmation requirement, desired_time handling, and default payment method usage. Annotations mark destructiveHint=true and readOnlyHint=false, and the description aligns with those, adding no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose and logically flows through behaviors. While slightly verbose, every sentence adds value. Could be tightened, but remains clear and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (9 params, composite, no output schema), the description covers essential behaviors: confirm, desired_time, allow_closest_time, payment method. Lacks detail on lat/lng usage and return format, but the preview description compensates. Sufficient for correct selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 44%, but the description adds meaning for key parameters: confirm (gating), desired_time (24h format and behavior), allow_closest_time (opt-in for auto-booking), and payment_method_id (overrides default). Missing lat/lng explanation, but overall compensates well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Book a reservation' and explains it's a composite tool with explicit steps (find-slots → get details → book). It distinguishes from sibling tools by detailing the confirm-gated and dry-run behavior, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance: explains require confirmation, how to target a specific time via desired_time, behavior when time unavailable, and the allow_closest_time flag. It also contrasts with other tools like resy_find_slots by noting it does not auto-book different times without explicit opt-in.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resy_cancelA
Destructive

Cancel a Resy reservation by its resy_token (the rr://... identifier returned from resy_book or resy_list_reservations). Confirm-gated: without confirm:true this returns a dry-run preview (venue, date, time, party size, and any cancellation fee) and cancels nothing.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoMust be true to proceed. Without this, the tool returns a preview.
resy_tokenYesrr://... reservation identifier

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals the dry-run preview behavior and cancellation fee disclosure, which goes beyond the annotations (destructiveHint: true) by detailing what happens in preview mode and what information is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first states the core function and identifier source, the second explains the critical confirm gating. No unnecessary words, effectively front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description adequately covers return info (preview details for dry-run, and implies success for actual cancellation). Could briefly mention successful cancellation confirmation, but completeness is high given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 100% schema coverage, the description adds meaning: it specifies the resy_token format ('rr://...') and clarifies the confirm parameter's role as a gating mechanism, enhancing the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Cancel') and the resource ('Resy reservation') using the resy_token identifier. It differentiates from sibling tools like resy_book and resy_list_reservations by focusing solely on cancellation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly explains the confirm-gated behavior: without confirm:true it returns a preview; with confirm:true it executes cancellation. This tells the agent exactly when and how to use the tool, including the dry-run preview content.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resy_find_slotsA
Read-only

List available reservation slots at a specific venue for a date + party size. Returns slot config_tokens suitable for booking. Tokens expire quickly; book soon after fetching.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNo
lngNo
dateYesYYYY-MM-DD
venue_idYes
party_sizeYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

All annotations (readOnlyHint) are consistent with the description. The description adds important behavioral information about token expiration, which is beyond what annotations provide. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, immediately states purpose. Efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Explains purpose, return value (tokens), and expiration warning. Lacks details on optional parameters and return structure, but for a simple list tool it is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 5 parameters with only 20% description coverage (date only). The description reinforces required parameters (venue_id, date, party_size) but does not explain optional lat/lng parameters. Given low coverage, more detail would help.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'available reservation slots' with scope 'specific venue, date, party size'. It distinguishes this tool from siblings like resy_book (booking) and resy_search_venues (searching venues).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides guidance on when to use (right before booking) by noting 'Tokens expire quickly; book soon after fetching,' and explains the purpose of tokens. However, it does not explicitly state when not to use or list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resy_get_profileA
Read-only

Get the authenticated Resy user's profile (name, email, phone, booking count, member-since date). Payment method IDs are not exposed.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoResponse 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 Resy's payload untouched. No field projection: this server has no verified record of which Resy fields matter, and inventing one would risk dropping a field a caller needs.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers the read-only safety profile, so the description's job is lighter. It adds behavioral value by specifying the exact fields returned and explicitly stating that payment method IDs are not exposed, which helps an agent understand response boundaries.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence front-loads the verb and resource, lists the relevant return fields, and adds the key exclusion about payment method IDs. There is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only profile endpoint with one optional parameter fully documented in the schema, the description is complete enough: it states the resource scope, return fields, and a critical boundary. The absence of an output schema is mitigated by the field list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter 'view' has a detailed schema description explaining compact/full behavior. The tool description itself adds no additional parameter guidance, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') with a precise resource ('authenticated Resy user's profile') and enumerates the returned fields. The explicit note that payment-method IDs are not exposed distinguishes it from the sibling resy_list_payment_methods, so an agent can select it unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by naming the authenticated user's profile and listing its contents, but there is no explicit guidance about when to prefer this over alternatives or when not to use it. The sibling list makes the distinction mostly self-evident, yet no usage conditions or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resy_get_venueB
Read-only

Get full details for a single Resy venue by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
venue_idYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description's 'Get full details' aligns. However, it adds no additional behavioral context beyond what annotations provide, earning a baseline score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. While concise, it could include a brief hint about usage or output to improve usefulness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but the tool is simple (1 param). The description states 'full details' without specifying fields, which is adequate for a basic query. However, it lacks mention of potential errors or data constraints, leaving some ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should compensate. It mentions 'by id' but does not clarify the venue_id's origin or format (e.g., from search). The schema specifies type/constraints, but the description adds minimal meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get full details') and resource ('a single Resy venue by id'), with a specific method. It distinguishes from siblings like resy_search_venues and resy_get_profile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use vs. alternatives (e.g., resy_search_venues) or when not to use. The description merely states what it does without contextual cues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resy_healthcheckVerify credentials and upstream reachabilityA
Read-onlyIdempotent

Resolves the credential the way real tools do, then makes one authenticated request to api.resy.com. Reports which source supplied the credential, whether api.resy.com accepted it, the round-trip time, and a plain-English hint distinguishing 'no credential' from 'credential rejected' from 'a api.resy.com-side problem'. Read-only; never returns the credential itself. Call this when a real tool fails and you want to know which hop broke.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the annotations. It discloses that the tool makes exactly one authenticated request (bounding the side-effect footprint), never returns the credential itself (privacy guarantee), and reports three distinct failure classes plus round-trip time. The read-only property is redundant with the annotation, but everything else adds genuinely new operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each earning its place: purpose, report shape, safety property, trigger condition — with the core action front-loaded. The only blemish is a minor grammar slip ('a api.resy.com-side problem').

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema, the description fully covers inputs (none needed), behavior (credential resolution, one call, no credential leakage), outputs (source, acceptance, RTT, plain-English hint), and the trigger/timing for use. An agent can invoke this tool correctly with nothing further from the schema or annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema carries no burden and the baseline is 4. The description compensates by explaining exactly what the tool does upon invocation — credential resolution, one upstream request, and a human-readable report — so an agent knows what the 'argument' to expect.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verifiable action — resolve the credential the way real tools do, then make one authenticated request to api.resy.com — and immediately differentiates it from the operational sibling tools, all of which perform actual booking/search/favorite actions. Reporting the credential source, acceptance status, RTT, and a three-way failure hint gives the tool a crisp, unambiguous diagnostic mission.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The final sentence makes the trigger precise: 'Call this when a real tool fails and you want to know which hop broke.' This gives the agent a clear use-after-failure condition. It never names exclusions or alternative tools explicitly, but for a standalone healthcheck the context is sufficiently clear to route the agent correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resy_list_favoritesA
Read-only

List the user's favorited Resy venues ("hit list").

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoResponse 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 Resy's payload untouched. No field projection: this server has no verified record of which Resy fields matter, and inventing one would risk dropping a field a caller needs.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only safety profile is known. The description adds no extra behavioral context such as pagination, ordering, authentication needs, or response envelope details; it merely restates the resource. With annotations covering the main safety hint, this is adequate but not enriched.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that captures the tool's purpose without any filler. It is appropriately sized for a tool with one optional parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple read-only list with one optional enum parameter fully documented in the schema. Combined with the readOnlyHint annotation and the description of the returned resource, an agent has everything needed to call the tool correctly; no output schema or additional return-value explanation is necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the view parameter has a thorough description in the schema itself, so the tool description does not need to repeat it. The description adds no additional parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses an explicit verb ('List') and a specific resource ('the user's favorited Resy venues'), making the operation unmistakable. The parenthetical 'hit list' clarifies Resy terminology, and the phrasing clearly separates it from mutation siblings like add_favorite/remove_favorite and from other read tools like list_reservations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states what the tool does but does not explicitly say when to prefer it over alternatives or when not to use it. Sibling names imply the distinction (list vs add/remove favorites), but the description itself offers no routing guidance to an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resy_list_notifyA
Read-only

List Priority Notify subscriptions — tables you are waiting for when reservations open up.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoResponse 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 Resy's payload untouched. No field projection: this server has no verified record of which Resy fields matter, and inventing one would risk dropping a field a caller needs.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint=true annotation already establishes the read-only safety profile, and the description adds useful domain context about what a Priority Notify subscription is. However, it discloses no further behavioral traits (pagination, ordering, response size), and with annotations present the bar for additional credit is higher.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence with the action front-loaded and the em-dash clause adding genuinely useful clarification rather than filler. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-parameter, read-only tool with 100% schema coverage, the description covers what it lists and why that matters. The only gap is the absence of any hint about response shape, and with no output schema defined the agent gets no structured guidance there.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema's own explanation of the single 'view' parameter is exceptionally detailed (default behavior, what compact strips, the no-field-projection rationale). The tool description adds no parameter-level information, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') with a specific resource ('Priority Notify subscriptions') and explains the domain concept ('tables you are waiting for when reservations open up'). This clearly differentiates it from resy_list_reservations (different resource) and resy_add_notify/resy_remove_notify (different operation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by the verb-resource pairing and sibling names (add/remove_notify), but the description itself offers no explicit when-to-use guidance and names no alternatives or exclusions. An agent must infer that this is the read counterpart to the notify mutation tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resy_list_payment_methodsA
Read-only

List the user's saved payment methods on Resy. Returns id, brand, last four digits, expiry, and is_default. The id can be passed as payment_method_id to resy_book.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoResponse 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 Resy's payload untouched. No field projection: this server has no verified record of which Resy fields matter, and inventing one would risk dropping a field a caller needs.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as readOnlyHint=true, and the description adds the returned field list and the integration contract with resy_book. It doesn't discuss auth or edge cases, but for a simple read-only list operation supported by annotations, this is sufficient added context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the first states the operation and return fields, the second conveys the key downstream usage. No filler or redundancy, and the most important purpose information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-optional-parameter, read-only list tool with a richly documented schema and no output schema, the description provides the essential return contract and the connection to resy_book. An agent has enough information to invoke it correctly without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the input schema thoroughly documents the single 'view' parameter, including compact/full behavior and its tradeoffs. The tool description adds no parameter-level detail, so the schema carries the full burden and a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific verb ('List') and resource ('the user's saved payment methods on Resy'), and enumerates return fields. It clearly differs from sibling list tools (reservations, favorites, notify) by naming the payment-method domain and specifying the fields returned.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The sentence 'The id can be passed as payment_method_id to resy_book' gives a concrete, actionable use case for when this tool's result is needed. It does not explicitly enumerate exclusions or alternatives, but the downstream booking context is clear enough for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resy_list_reservationsA
Read-only

List the user's Resy reservations. Defaults to upcoming; pass scope="past" or "all" to broaden. Each result includes the resy_token needed for cancellation, plus occasion/special_request/cancellability.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as readOnlyHint=true. The description adds value by disclosing that results include resy_token, occasion, special_request, and cancellability, enhancing the agent's understanding of the output without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences. The first sentence states the core purpose, and the second adds parameter guidance and output details. No redundant information, front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter, no output schema, existing annotations), the description is nearly complete. It explains the action, parameter use, and key output fields. Minor gap: it doesn't explicitly state that it returns the user's own reservations, but that is implied by 'the user's Resy reservations'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description bears full responsibility. It explains the 'scope' parameter, its allowed values (upcoming, past, all), and the default behavior, providing semantic meaning beyond the schema's enum list.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List the user's Resy reservations' with a specific verb and resource. It distinguishes from sibling tools like resy_book or resy_cancel, and mentions key output fields (resy_token, occasion, special_request, cancellability) that add specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on the 'scope' parameter: defaults to upcoming, with options to pass 'past' or 'all'. While it doesn't explicitly mention when not to use this tool or suggest alternatives, the context is sufficient for a list operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resy_remove_favoriteB

Remove a venue from the user's favorites by venue_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
venue_idYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for disclosing behavior. It only states the removal action, but does not mention side effects (e.g., irreversible), required user authentication, or behavior when the venue is not already a favorite. This lacks critical context for an AI agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with 10 words, no redundancy. Every word is informative and directly describes the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple removal tool with one required parameter, the description is minimally sufficient. However, it omits details like whether removal is permanent, whether the venue must exist in favorites, or what the return behavior is (e.g., success indication). Given no output schema, these are gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, meaning the description must compensate. However, the description only mentions 'by venue_id' and adds no deeper semantics (e.g., format, origin, or constraints) beyond what the schema already provides. The parameter name is not sufficiently explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb 'Remove' and resource 'venue from the user's favorites', with the parameter 'by venue_id'. This clearly differentiates from the sibling 'resy_add_favorite' and leaves no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly suggests when to use the tool (when removing a favorite), but it does not explicitly state when not to use it or mention alternatives like 'resy_add_favorite'. For a simple opposite operation, the context is adequate but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resy_remove_notifyB

Cancel a Priority Notify subscription by notify_id. The tool looks up the full spec from resy_list_notify internally — no other input needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
notify_idYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full burden. It discloses that the tool internally looks up the full spec from resy_list_notify, which is helpful. However, it does not mention side effects, idempotency, or error handling, leaving gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the action and purpose. Every sentence adds necessary context, with no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description is largely sufficient. It explains the core action and a key internal detail. Missing some behavioral context, but overall complete given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only repeats the parameter name 'notify_id' without adding meaning (e.g., format, source, or constraints). The schema itself defines it as an integer with a range, but the description adds no extra semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Cancel a Priority Notify subscription') and the resource ('by notify_id'), making the purpose unambiguous. However, it does not explicitly differentiate from sibling tools like resy_add_notify, though the opposite action is implied.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies that the notify_id should come from resy_list_notify, but does not explicitly state when to use this tool over alternatives or provide conditions for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resy_search_venuesA
Read-only

Search Resy for restaurants with availability. Returns venues including any bookable slot tokens for the requested date + party size. Defaults to NYC geo if lat/lng omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude (default 40.7128 NYC)
lngNoLongitude (default -73.9876 NYC)
dateYesDesired date YYYY-MM-DD
viewNoResponse 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 Resy's payload untouched. No field projection: this server has no verified record of which Resy fields matter, and inventing one would risk dropping a field a caller needs.
limitNoMax venues (default 20)
queryNoVenue name or keyword
party_sizeYesNumber of guests
radius_metersNoSearch radius in meters (default 16100)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers safety, and the description adds useful behavioral context: returns slot tokens, depends on date and party size, and defaults to NYC geo when lat/lng are omitted. This goes beyond the annotation, though it does not discuss limits or potential empty-result behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences carry the core purpose, return value, and default behavior with no filler. The most important facts are front-loaded, and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description does a good job of telling the agent what to expect (venues with bookable slot tokens). It could be more explicit about when to choose this over resy_find_slots, but the schema covers the parameters and the description covers purpose and defaults well enough for a competent call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description reinforces the importance of date and party_size and notes lat/lng defaults, but it does not add meaning beyond what the schema already documents for parameters like radius_meters, query, view, or limit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Search'), a specific resource ('Resy restaurants'), and the key differentiator: it returns venues with availability and bookable slot tokens for a date and party size. This clearly distinguishes it from siblings like resy_get_venue and resy_find_slots.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for discovering restaurants with availability, and the mention of bookable slot tokens gives a clear search-oriented context. It does not explicitly name alternatives or state when not to use it, but the intended use case is reasonably clear from the sibling set.

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.

  1. 5 tool updatesv0.13.0
    • Changedresy_get_profile2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / properties / view
        Added 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 Resy's payload untouched. No field projection: this server has no verified record of which Resy fields matter, and inventing one would risk dropping a field a caller needs.",
        +  "enum": [
        +    "compact",
        +    "full"
        +  ],
        +  "type": "string"
        +}
    • Changedresy_list_favorites2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / properties / view
        Added 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 Resy's payload untouched. No field projection: this server has no verified record of which Resy fields matter, and inventing one would risk dropping a field a caller needs.",
        +  "enum": [
        +    "compact",
        +    "full"
        +  ],
        +  "type": "string"
        +}
    • Changedresy_list_notify2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / properties / view
        Added 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 Resy's payload untouched. No field projection: this server has no verified record of which Resy fields matter, and inventing one would risk dropping a field a caller needs.",
        +  "enum": [
        +    "compact",
        +    "full"
        +  ],
        +  "type": "string"
        +}
    • Changedresy_list_payment_methods2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / properties / view
        Added 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 Resy's payload untouched. No field projection: this server has no verified record of which Resy fields matter, and inventing one would risk dropping a field a caller needs.",
        +  "enum": [
        +    "compact",
        +    "full"
        +  ],
        +  "type": "string"
        +}
    • Changedresy_search_venues1 field changed
      • addedInput schema / properties / view
        Added 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 Resy's payload untouched. No field projection: this server has no verified record of which Resy fields matter, and inventing one would risk dropping a field a caller needs.",
        +  "enum": [
        +    "compact",
        +    "full"
        +  ],
        +  "type": "string"
        +}
  2. 1 tool updatev0.9.0
    • Addedresy_healthcheck
  3. 4 tool updatesv0.6.2
    • Addedresy_get_profile
    • Addedresy_get_venue
    • Addedresy_list_payment_methods
    • Addedresy_search_venues
  4. 4 tool updatesv0.6.1
    • Removedresy_get_profile
    • Removedresy_get_venue
    • Removedresy_list_payment_methods
    • Removedresy_search_venues
  5. 2 tool updatesv0.5.4
    • Changedresy_book2 fields changed
      • addedInput schema / properties / allow_closest_time
        Added value: +{
        +  "description": "When true, if your exact desired_time is unavailable the closest slot is booked instead of returning the available times to pick from. Default false: an unavailable desired_time never silently books a different time.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / confirm
        Added value: +{
        +  "description": "Must be true to proceed. Without this, the tool returns a preview.",
        +  "type": "boolean"
        +}
    • Changedresy_cancel1 field changed
      • addedInput schema / properties / confirm
        Added value: +{
        +  "description": "Must be true to proceed. Without this, the tool returns a preview.",
        +  "type": "boolean"
        +}
  6. 14 tool updatesv0.5.1
    • First observedresy_add_favorite
    • First observedresy_add_notify
    • First observedresy_book
    • First observedresy_cancel
    • First observedresy_find_slots
    • First observedresy_get_profile
    • First observedresy_get_venue
    • First observedresy_list_favorites
    • First observedresy_list_notify
    • First observedresy_list_payment_methods
    • First observedresy_list_reservations
    • First observedresy_remove_favorite
    • First observedresy_remove_notify
    • First observedresy_search_venues

TDQS

A3.9/5.0

Scored across 15 tools

Disambiguation5/5

Each tool targets a distinct resource/action combination: venue search, slot lookup, booking, cancellation, favorites, notifications, profile, and payments. Resy search_venues and find_slots have mild overlap, but their descriptions clearly separate broad availability search from per-venue slot listing.

Naming Consistency5/5

All tools follow a uniform pattern: resy_ + verb + noun (get_, list_, add_, remove_, search_, find_, cancel_, book_). The naming is predictable and lets an agent infer each tool's purpose before reading the description.

Tool Count5/5

Fifteen tools is at the upper edge of the ideal range but still well-scoped for the Resy domain. Every tool maps to a concrete user task or workflow step, and none feel redundant.

Completeness4/5

The core reservation lifecycle is well covered: search venues, find slots, book, list reservations, and cancel. The main gap is lack of a reservation modification/update tool, but agents can work around it by canceling and rebooking.

Maintenance

ActivityActive
ResponsivenessResponsive

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables restaurant reservation management through SevenRooms API, allowing users to create reservations and query available time slots with guest details and party size information.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Manage OpenTable reservations via natural language — find slots, book, cancel, manage favorites, and read your dashboard using your own browser session.
    14
    455
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Connects AI assistants to the Meitre restaurant reservation platform, enabling operations like checking availability, searching reservations, booking, rescheduling, and canceling through natural language.
    -