Skip to main content
Glama

BookTheTee Golf Tee Times

Server Details

Find public golf courses near NYC and get official tee-time booking links.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A3.6/5.0

Scored across 3 tools

Disambiguation4/5

The three tools are mostly distinct: search_courses finds courses, get_course returns one course's full record, and get_booking_link returns the deep link. There is minor overlap since get_course's record likely includes booking details, which could confuse selection with get_booking_link, but descriptions draw a clear line.

Naming Consistency5/5

All three tools follow a consistent verb_noun snake_case pattern: search_courses, get_course, get_booking_link. The convention is predictable and readable throughout.

Tool Count4/5

Three tools is on the lean side but well-scoped for a course-discovery and booking-handoff server. Each tool earns its place, though the surface is minimal for a domain with booking workflows.

Completeness3/5

Search, lookup, and booking-link handoff are covered, but there is no live tee-time availability check and no booking/reservation action, which are core to the tee-time domain. The design intentionally delegates booking externally, but the surface leaves notable gaps for agents expecting availability data.

Available Tools

3 tools
get_courseGet course detailsB
Read-only
Inspect

Full record for one course by slug (fees, caveats, resident rules, sources).

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYes

TDQS

B3.2/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read. The description adds genuine value by enumerating the record contents (fees, caveats, resident rules, sources), but says nothing about behavior when the slug is unknown or whether the record can be partial — a gap, though modest given the read-only annotation.

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?

A single tight sentence with the key (slug) and payload (fields) front-loaded; nothing is wasted. The parenthetical field list is informative rather than filler.

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 one-param read tool with no output schema, the description gives a rough sense of the returned record but omits error behavior for an invalid slug and any note on where slugs come from. Adequate but with clear gaps.

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 0% and there is one required parameter, so the description must carry the load. It identifies the parameter's nature ('slug') but adds no format, example, or source guidance (e.g., where to get a valid slug), leaving the schema's bare 'type: string' largely unenriched.

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?

States a specific retrieval action ('full record for one course') plus the lookup key ('by slug'), which clearly distinguishes it from search_courses (plural, list) and get_booking_link (different resource). It stops short of explicitly naming those siblings, but the verb+resource is unambiguous.

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 explicit when-to-use guidance or mention of alternatives. The phrase 'by slug' hints that a slug must first be obtained (presumably from search_courses), but the description never says this or explains when to prefer this tool over the sibling lookup.

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

search_coursesSearch golf coursesA
Read-only
Inspect

Search public golf courses (currently NYC metro) with official tee-time booking links. Filters are optional. Courses with unknown fee/location are excluded only when that filter is set. Does not check live tee-time availability; date is echoed back with booking-window notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoYYYY-MM-DD desired play date (informational)
limitNo
regionNoRegion id, e.g. "nyc"
max_feeNoMax USD; matches courses whose green_fee_max <= max_fee (or green_fee_min if max unknown)
near_latNo
near_lngNo
radius_miNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered; the description adds real behavior beyond that: unknown fee/location courses are excluded only when the relevant filter is set, live availability is not checked, and `date` is echoed back with booking-window notes.

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?

Three dense sentences, front-loaded with scope and value, followed by filter behavior and the availability caveat. No sentence is filler and each adds a distinct constraint.

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?

With no output schema and no annotations covering permissions, the description carries most of the load and does it well for a 7-param search: scope, optionality, exclusion rules, and the availability caveat are all stated. The undocumented proximity and limit params keep it just short of 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 coverage is only 43% (limit, near_lat, near_lng, radius_mi are undocumented). The description clarifies `date` as informational/echoed and explains the unknown-fee exclusion rule that governs max_fee, but says nothing about the proximity trio or limit, so it only partially compensates.

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?

States a specific verb+resource ('Search public golf courses') plus scope ('currently NYC metro') and the differentiating payload (official tee-time booking links). It doesn't explicitly name siblings get_course/get_booking_link, but the search-vs-get distinction is inferable from the verb and result description.

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?

'Filters are optional' tells the agent all parameters can be omitted, and 'Does not check live tee-time availability' is an explicit when-not. It never routes the agent to get_course or get_booking_link for detail/booking, which is the remaining gap.

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. 3 tool updates
    • First observedget_booking_link
    • First observedget_course
    • First observedsearch_courses

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to search and retrieve live local happenings in New York City — music, theater, comedy, film, art, sports, festivals, markets, food and drink, classes, tours and nightlife — each with dates, times, prices, booking links and images. Two tools, search_directions and get_details, let assistants answer time-sensitive questions about what is happening nearby and return bookable results.
    176
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Provides tools for discovering events at Madison Square Garden via the Ticketmaster API, returning structured data with event details like name, date, price, and ticket purchase links.
    1
    664 npm
    25
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Automates tennis court bookings on San Francisco Recreation websites using browser automation, with tools to check availability, initiate booking with SMS verification, and complete bookings.
    9
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources