Skip to main content
Glama
noahelson208-prog

@striderlabs/mcp-opentable

@striderlabs/mcp-opentable

Book restaurant reservations via OpenTable using AI agents

npm MCP Registry Claude Desktop License: MIT

Part of Strider Labs β€” action execution for personal AI agents.

Get Started in 2 Minutes

For Claude Desktop Users

  1. Add this to your Claude Desktop config:

{
  "mcpServers": {
    "opentable": {
      "command": "npx",
      "args": ["-y", "@striderlabs/mcp-opentable"]
    }
  }
}
  1. Restart Claude.

  2. Tell Claude: "Book a table for 4 at an Italian restaurant for 7 PM tonight"

Your agent can now book reservations. That's it.


Related MCP server: Restaurant Reservation MCP Server

Installation (NPM)

npm install @striderlabs/mcp-opentable

Or with npx directly:

npx @striderlabs/mcp-opentable

Features

  • πŸ” Search restaurants by cuisine, location, and rating

  • ⏰ Check availability for specific times and party sizes

  • πŸ“… Make reservations with one-click confirmation

  • πŸ“ View booking history and manage reservations

  • 🏷️ Filter by price, cuisine, and dining style

  • πŸ” Persistent sessions - stay logged in across restarts

  • πŸ”„ Automatic MFA - handles multi-factor authentication

  • πŸ“± Per-user credentials - encrypted session storage

Tested & Compatible

Component

Version

Status

MCP SDK

^1.0.0

βœ…

Node.js

18+

βœ…

Claude Desktop

Latest

βœ…

Claude (API)

claude-3.5-sonnet+

βœ…

Anthropic SDK

^0.20+

βœ…

Metrics

  • Weekly downloads: 187 (Apr 10-17, 2026) β€” Top restaurant connector (+467% growth)

  • Status: βœ… Live in production

  • Reliability: 85%+ task completion rate

  • Discovery: npm, Claude Plugins, mcpservers.org, ClawHub, PulseMCP

Available Elsewhere

How It Works

For Agents

Your agent can use these capabilities:

// Search for restaurants
restaurants = search_restaurants({
  location: "San Francisco, CA",
  cuisine: "Italian",
  price_range: "$$",
  date: "2026-04-15",
  party_size: 4,
  time: "19:00"
})

// Get detailed restaurant info
details = get_restaurant_details({
  restaurant_id: "ristorante-milano-sf"
})

// Check availability
availability = check_availability({
  restaurant_id: "ristorante-milano-sf",
  party_size: 4,
  date: "2026-04-15",
  time: "19:00"
})

// Make a reservation
booking = make_reservation({
  restaurant_id: "ristorante-milano-sf",
  party_size: 4,
  date: "2026-04-15",
  time: "19:00",
  special_requests: "Window seat if possible"
})

// View your reservations
reservations = get_my_reservations()

Session Management

  • Each user has encrypted, persistent credentials

  • Automatic OAuth token refresh

  • MFA handling (SMS/email)

  • Sessions survive agent restarts

Reliability

  • 85%+ task completion rate

  • Automated UI change detection (connectors update when OpenTable changes)

  • Fallback paths for failures

  • 24/7 monitoring + alerting

Configuration

Environment Variables

# Optional: Use a specific OpenTable account
OPENTABLE_EMAIL=your-email@example.com
OPENTABLE_PASSWORD=your-password  # Highly recommend using .env file

Self-Hosted

# Clone the repo
git clone https://github.com/striderlabsdev/mcp-opentable
cd mcp-opentable

# Install dependencies
npm install

# Start the server
npm start

# Your agent can now connect to localhost:3000

Architecture

How We Connect

This connector uses browser automation (Playwright) to interact with OpenTable, because OpenTable doesn't have a comprehensive public API for reservations. Here's why that's safe and reliable:

  • User-controlled: Your agent only accesses your own OpenTable account

  • Session-based: We store your login session securely, not your password

  • Change-aware: We detect OpenTable UI changes and alert immediately

  • Fingerprinting: We use realistic browser profiles to avoid bot detection

  • Rate-limited: We respect OpenTable's infrastructure with appropriate delays

Security

  • Credentials stored encrypted in your local .env or secure vault

  • Sessions isolated per user

  • No data sent to third parties

  • MIT Licensed β€” audit the code yourself

Support

Contributing

We welcome contributions! Areas of interest:

  • Bug reports and fixes

  • Feature requests (new filters, integrations, etc.)

  • Performance improvements

  • Documentation enhancements

See CONTRIBUTING.md for guidelines.

License

MIT β€” Free to use, modify, and distribute. See LICENSE for details.


Built by Strider Labs β€” Making AI agents actually useful.

GitHub | Website | Discord

Available Tools

9 tools
opentable_cancel_reservationA

Cancel an existing reservation. Set confirm=false to preview, confirm=true to actually cancel. This action cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesSet to true to actually cancel, false to preview the cancellation
reservationIdYesThe reservation ID to cancel (from opentable_get_reservations)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full responsibility for disclosing behavior. It clearly states the irreversible nature ('This action cannot be undone.') and explains the preview vs. execute mechanism. However, it omits potential error conditions or side effects, which would have pushed the score to 5.

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 three concise sentences, each with a distinct purpose: state the action, explain parameter usage, and warn about irreversibility. There is no filler or redundancy, and the most critical information is 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?

For a cancellation tool with two required parameters and no output schema, the description covers essential context: what it does, how to use the confirm flag for preview, and the permanence of the action. It does not mention prerequisites like authentication or post-cancellation behavior, but these are less critical for invoking the tool correctly.

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?

The input schema already comprehensively describes both parameters (100% coverage), including the preview/cancel semantics for 'confirm' and the source of 'reservationId'. The description's mention of 'confirm=false to preview' adds no new information beyond the schema, meeting the baseline for high schema coverage.

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 starts with a clear verb ('Cancel') and specific resource ('existing reservation'), unambiguously defining the tool's function. It also distinguishes itself from sibling tools like opentable_make_reservation and opentable_get_reservations by its unique cancellation purpose.

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 explicit usage context by explaining the two-step process: 'Set confirm=false to preview, confirm=true to actually cancel.' This guides the user on how to use the confirm parameter. It does not mention alternative tools, but cancellation has no direct sibling, making the guidance sufficient.

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

opentable_check_availabilityA

Check available reservation time slots for a restaurant on a specific date and party size.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate to check in YYYY-MM-DD format
timeYesPreferred time in HH:MM format (e.g. '19:00'). Availability is shown for nearby times.
partySizeYesNumber of guests
restaurantIdYesThe restaurant ID or profile URL

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the basic function and adds no behavioral details such as whether it is read-only, requires authentication, or returns nearby time slots. The schema does mention 'Availability is shown for nearby times,' but the description itself provides no transparency beyond the core purpose.

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, concise sentence that front-loads the core purpose. It contains no filler or repetition, every word contributes to understanding the tool's function.

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?

The tool is moderately simple with four parameters, but there is no output schema and no annotations. The description implies the output (available time slots) but does not explicitly state the return format or any edge-case behavior. It is adequate for basic understanding but could benefit from mentioning what the response contains or typical use scenarios.

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?

The input schema provides full descriptions (100% coverage) for all four parameters, so the description does not need to add much. It redundantly mentions date and party size but omits time and restaurantId. Since the schema already documents the parameters clearly, the description adds no significant semantic value, but the schema coverage keeps this at baseline 3.

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 ('Check'), the resource ('available reservation time slots'), and the context ('for a restaurant on a specific date and party size'). This distinguishes it from sibling tools like opentable_make_reservation or opentable_search, 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 Guidelines3/5

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

The intended use case (checking availability before booking) is implied by the description and the sibling tool set, but there is no explicit guidance on when to use this tool versus alternatives, nor any exclusion criteria. The context makes it fairly obvious, but the description itself offers no direct instruction.

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

opentable_get_reservationsA

List all upcoming reservations for the logged-in user. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It mentions 'requires authentication' and 'for the logged-in user', which are useful behavioral traits. However, it does not state whether the operation is read-only, what happens if the user is not authenticated, or what the response format contains, leaving significant 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 one concise sentence with an additional clause about authentication. Every word contributes to the meaning, and it is front-loaded with the core action. There is no redundancy or filler.

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 simple, zero-parameter read tool with no output schema, the description is largely complete: it states the operation, the actor, and a key prerequisite (authentication). Minor details like the exact scope of 'upcoming' (e.g., today or future) are unspecified, but the description provides enough context for basic use.

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 description need not add parameter details. Per the rubric, 0 parameters provides a baseline of 4, and the description adds no unnecessary parameter information. The schema is trivially fully covered with an empty properties object.

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 and resource: 'List all upcoming reservations for the logged-in user.' This clearly distinguishes it from sibling tools like opentable_make_reservation or opentable_cancel_reservation, and it explicitly scopes the action to the user's own upcoming 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 implies the tool is for viewing a user's own upcoming reservations and requires authentication, hinting at the need to log in first. However, it does not explicitly tell when to use this tool versus alternatives such as searching for restaurants or checking availability, so usage guidance is only implicit.

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

opentable_get_restaurantA

Get detailed information about a specific restaurant including description, address, hours, and features.

ParametersJSON Schema
NameRequiredDescriptionDefault
restaurantIdYesThe restaurant ID or profile URL (from search results)

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits but only says 'Get', which implies read-only. It does not mention authentication requirements, error behavior, or that it makes no state changes. The verb alone is insufficient for full transparency.

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 concise sentence that is front-loaded with the key action and resource, then lists the main data categories. There is no redundant or filler content.

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?

There is no output schema, so the description must explain what is returned. It mentions several fields but uses vague terms like 'features' and omits possibly important details (ratings, reviews, contact info). For a simple get tool, it is adequate but not fully comprehensive.

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% (restaurantId is described as 'The restaurant ID or profile URL (from search results)'). The tool description adds no additional parameter guidance, so it meets the baseline but does not exceed it.

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') and a specific resource ('detailed information about a specific restaurant'), and it enumerates the content (description, address, hours, features). This clearly distinguishes it from siblings like search, availability, and reservation tools.

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?

There is no explicit when-to-use or alternative guidance in the description. The need to have a restaurant ID is implied by 'specific restaurant' and clarified in the schema ('from search results'), but the description itself does not state a preferred workflow or exclusions.

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

opentable_loginA

Get the OpenTable login URL and instructions for the user to authenticate. Use this when opentable_status returns not logged in.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses the core behavior (returns URL and instructions) and user authentication, but does not mention side effects, state changes, or how the URL is consumed. This is adequate but not highly transparent.

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, front-loaded with purpose, then condition. No filler or redundant details.

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-parameter tool with no output schema, the description is reasonably complete: it states what is returned (URL and instructions) and when to use it. Could specify return format more explicitly, but the essential context is present.

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 empty schema covers everything. Baseline for 0 parameters is 4, and the description implies no input required. It does not introduce any separate parameter semantics, which 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 clearly states a specific action ('Get the OpenTable login URL and instructions') and the resource (OpenTable authentication). It distinguishes from siblings by specifying the trigger condition 'when opentable_status returns not logged in.'

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?

The description explicitly provides a usage condition referencing opentable_status, and the alternative (when already logged in) is implicitly clear. This is actionable guidance for when to invoke the tool.

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

opentable_logoutA

Clear the stored OpenTable session cookies. Use this to log out or reset the authentication state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently states that it clears stored session cookies, which implies a mutation of local state. It could add more detail about idempotency or behavior when no cookies exist, but the primary effect is clearly disclosed.

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 exceptionally concise, consisting of two short sentences. The action is front-loaded in the first sentence, and the usage context is in the second. There is no wasted text or repetition of schema information.

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?

Given the tool's simplicityβ€”no parameters, no output schema, and no annotationsβ€”the description is fully complete. It explains what the tool does, when to use it, and the effect on authentication state. No additional context seems necessary for an agent to invoke it correctly.

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, and the input schema is an empty object. According to the rubric, a baseline of 4 applies for zero-parameter tools. The description adds no parameter information, which is appropriate since there is nothing to explain.

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 with a specific verb and resource: 'Clear the stored OpenTable session cookies.' It also explicitly states the purpose: 'Use this to log out or reset the authentication state,' which distinguishes it from sibling tools like opentable_login and opentable_status.

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 when to use the tool: 'Use this to log out or reset the authentication state.' It gives a direct usage context, though it does not explicitly mention alternatives or when not to use it. Given the tool's simplicity, this is adequate.

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

opentable_make_reservationA

Book a restaurant reservation on OpenTable. Set confirm=false to preview before booking, confirm=true to actually book. Requires the user to be logged in.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesReservation date in YYYY-MM-DD format
timeYesReservation time in HH:MM format (e.g. '19:00')
confirmYesSet to true to actually book the reservation, false to just preview details
partySizeYesNumber of guests
restaurantIdYesThe restaurant ID or profile URL
specialRequestsNoAny special requests or dietary requirements (optional)

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the burden of disclosing behavior. It transparently explains the confirmed booking vs preview distinction and explicitly requires the user to be logged in. However, it does not mention potential failure modes (e.g., unavailability) or the nature of the response after booking, leaving some behavioral aspects undisclosed.

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 three short sentences, each carrying essential information: the core action, the preview/booking toggle, and the login requirement. There is no redundant or extraneous text, making it efficient and well-structured.

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?

Given the lack of an output schema and the tool's side-effectful nature, the description could be more complete by explaining what the tool returns on success or failure. It covers the main workflow and login prerequisite but leaves the agent uncertain about response formats and exceptional cases.

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?

The schema provides complete descriptions for all six parameters, including formats and semantics for date, time, partySize, restaurantId, confirm, and specialRequests. The description does not add new parameter details beyond what the schema already states; it only repeats the confirm flag's behavior, so it adds minimal value above 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 the specific verb 'Book' and identifies the resource as 'restaurant reservation on OpenTable', making the tool's purpose unmistakable. It also clarifies the confirm parameter's role in preview vs actual booking, which distinguishes it from related tools like availability checking or cancellation.

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 gives clear context that this tool is for booking or previewing a reservation, and notes the login requirement as a prerequisite. However, it does not explicitly state when to prefer this tool over alternatives such as opentable_check_availability or opentable_cancel_reservation, so it falls short of explicit when/when-not guidance.

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

opentable_statusA

Check if the user is logged in to OpenTable. Returns login status and instructions if not authenticated. Call this before any other OpenTable operations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states it returns login status and instructions if not authenticated, which conveys the tool's behavior. However, it does not explicitly state that it is read-only or has no side effects, which is a minor gap for a status/check tool.

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-loaded with the main purpose, and includes a useful usage instruction without unnecessary 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 simple status check with no parameters and no output schema, the description provides the essential information: what it does, what it returns, and when to call it. It could add more detail about the exact return format or next steps, but it adequately covers the tool's operation.

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 input schema is empty (0 parameters) and schema coverage is 100%, so the description is not required to explain parameters. The baseline for 0 parameters is 4, and the description does not miss any parameter 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?

The description states 'Check if the user is logged in to OpenTable,' which clearly identifies a specific verb and resource. This distinguishes it from sibling tools like opentable_login and opentable_logout, which perform different actions.

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 explicitly instructs 'Call this before any other OpenTable operations,' providing clear when-to-use guidance. It does not discuss when not to use it or explicitly name alternatives, but the context is clear and sufficient.

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.

  1. 9 tool updatesv0.1.5
    • First observedopentable_cancel_reservation
    • First observedopentable_check_availability
    • First observedopentable_get_reservations
    • First observedopentable_get_restaurant
    • First observedopentable_login
    • First observedopentable_logout
    • First observedopentable_make_reservation
    • First observedopentable_search
    • First observedopentable_status

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct concern: auth status/login/logout, restaurant search/details, availability checking, and reservation create/list/cancel. No two tools overlap in purpose, so an agent can easily select the right one.

Naming Consistency5/5

All tools use a consistent opentable_ prefix followed by clear verb_noun names (search, get_restaurant, check_availability, make_reservation, get_reservations, cancel_reservation). Even the auth tools (status, login, logout) follow the same verb style. The pattern is predictable and uniform.

Tool Count5/5

With 9 tools, the server is well-scoped for an OpenTable integration. Each tool serves a necessary function in the core workflow (auth, search, details, availability, reservation management), and none feel redundant or superficial.

Completeness4/5

The toolset covers the full reservation lifecycle: search, view details, check availability, book, list, and cancel. A minor gap is the lack of a modify/update reservation tool, but agents can work around this by canceling and rebooking. Overall, the surface is complete for the main domain.

Maintenance

ActivitySlowing
ResponsivenessNo issues

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

Latest Blog Posts

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/noahelson208-prog/mcp_opentable'

If you have feedback or need assistance with the MCP directory API, please join our Discord server