Skip to main content
Glama

Server Details

Read-only US golf course, scorecard, equipment, deal, and golf-trip data for AI agents.

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
Uptime
98.6% over 61 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.3/5.0

Scored across 12 tools

Disambiguation4/5

Most tools have distinct resource/action roles, and descriptions explicitly sequence find_nearby_courses into build_golf_trip while restricting search_courses to named courses. However, search_stymie is a broad meta-search that can overlap with search_courses and search_equipment, and search_tee_times sounds like live booking despite being legacy/no-inventory.

Naming Consistency5/5

All names use consistent snake_case with predictable verb_noun/verb_object patterns such as find_nearby_courses, build_golf_trip, get_course, and search_equipment. There is no mixing of camelCase or vague one-word tool names.

Tool Count5/5

12 tools is well within a reasonable range and each maps to a meaningful golf discovery/planning subdomain: location search, trip building, course detail, scorecards, architects, equipment/deals, leaderboards, and coverage.

Completeness4/5

The core golf discovery workflow is covered from nearby search to trip shortlist to course details, scorecards, architects, and equipment deals. There are deliberate gaps: no live tee-time availability or booking, and search_tee_times is a legacy dead end, but these are mostly outside the stated scope.

Available Tools

12 tools
build_golf_tripBuild Golf TripA
Read-onlyIdempotent
Inspect

AFTER find_nearby_courses, pass its center latitude/longitude, access and holes preferences, and number_of_courses to make a 1-4 course shortlist. You can also start directly with a plain-language location (place, station, address, or US ZIP). Optional tee yardage and slope ranges rank matching tees by fit plus straight-line distance; without tee preferences, courses are nearest-first and missing scorecards are retained. Returns ranked course picks with canonical Stymie URLs, reusable slugs, selection reasons, distance, access, holes, and published tee data when available. Public access excludes unknown/private courses; private picks require the golfer to confirm access. No booking, tee-time availability, transit routing, or drive times are provided. Use returned URLs as citations without inventing slugs.

ParametersJSON Schema
NameRequiredDescriptionDefault
holesNo
stateNo
accessNopublic
countryNoCountry code to disambiguate a place; GB means UK
latitudeNo
locationNoPlace name, station, address, or US ZIP; omit when reusing the nearby result coordinates
longitudeNo
slope_maxNo
slope_minNo
tee_yards_maxNo
tee_yards_minNo
distance_milesNoSearch radius in miles: one of 5, 10, 20, 25, 5025
number_of_coursesNo

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnly, idempotent, and openWorld annotations, the description reveals ranking behavior, nearest-first fallback, retention of missing scorecards, public-access filtering, private-course confirmation requirements, and the instruction to use returned canonical URLs as citations. This is substantive context that materially affects how the agent invokes and uses the tool.

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 long but information-dense, with the primary workflow front-loaded in the first sentence. Every clause adds useful operational detail, and the length is justified by the complexity of a 13-parameter tool, though a few caveats could be grouped more tightly.

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 complex tool with no output schema, the description covers invocation modes, ranking logic, return contents, access handling, exclusions, and citation guidance, making it nearly complete. It omits a couple of parameter clarifications like state and distance_miles, but an agent can still call it correctly and interpret results based on this text.

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 description coverage is only 23%, and the description compensates well by explaining latitude/longitude, location, access, holes, number_of_courses, and tee yardage/slope ranges. It does not explicitly cover state, distance_miles, or country, so some parameters still rely on schema or inference.

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 names the operation as building a golf trip shortlist, specifies the output as a 1-4 course ranked selection, and ties itself to find_nearby_courses while also supporting direct location input. This distinguishes it from the search-related siblings without requiring the agent to open their schemas.

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 gives explicit workflow guidance: use after find_nearby_courses and pass its coordinates/preferences, or start directly with a plain-language location. It also states exclusions such as no booking, tee-time availability, transit routing, or drive times, but it does not explicitly name alternative sibling tools for those broader search or booking scenarios.

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

find_nearby_coursesFind Nearby CoursesA
Read-onlyIdempotent
Inspect

START HERE to plan golf near a place, transit station, address, or US ZIP: pass the place text as location, plus access (public/private/all) and holes (9/18) if known. Coordinates are optional; no slug knowledge is needed. Resolves the location and returns its labeled center and a nearest-first ranked shortlist with canonical Stymie URLs, reusable slugs, straight-line miles, access, holes, and scorecard availability. If the place is ambiguous, ask the golfer to choose a candidate. NEXT call build_golf_trip with the returned latitude/longitude and the same preferences for 1-4 course picks. Use search_courses only for a specific course name. Copy returned URLs verbatim; distances are not drive/transit times.

ParametersJSON Schema
NameRequiredDescriptionDefault
holesNoTotal course holes; omit if flexible
limitNo
stateNoState/province code, e.g. IL, ON, or NSW, to disambiguate a place
accessNoall
countryNoCountry code to disambiguate a place; GB means UK
latitudeNo
locationNoPlace name, transit station, address, or US ZIP; extract the place from the golfer’s sentence
longitudeNo
distance_milesNoSearch radius in miles: one of 5, 10, 20, 25, 5025

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, it reveals behavior: location resolution returns a labeled center, results are nearest-first, URLs must be copied verbatim, and distances are straight-line miles not drive/transit times. It also notes coordinates and slug knowledge are optional and warns about ambiguous locations. No contradiction with 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 main guidance is front-loaded ('START HERE'), and every sentence adds distinct value: input requirements, return contents, ambiguity handling, next step, and a caveat about distance types. No filler.

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 9-parameter tool with no output schema, the description covers input, output shape, ranking, URL handling, error/ambiguity behavior, and links to related workflow tools. Nothing essential for invoking it correctly is missing.

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?

With 56% schema description coverage, the description compensates for the most important parameters: location can be place/station/address/ZIP, access/holes are the key filters to pass when known, and coordinates are optional. It omits limit and distance_miles semantics, though those are documented in the schema, so the gap is minor.

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 opens with 'START HERE to plan golf near...' and states a specific verb/resource: resolve a location and return a ranked shortlist of nearby courses. It clearly differentiates itself from search_courses ('only for a specific course name') and build_golf_trip (the next step).

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: use this tool first for location-based course planning, use search_courses only for a specific course name, and follow with build_golf_trip. It also handles ambiguity by instructing the agent to ask the golfer to choose a candidate.

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

get_architectGet ArchitectA
Read-onlyIdempotent
Inspect

Get details about a golf course architect: bio, Wikipedia image, birth/death years, nationality, and all courses they designed grouped by state. Provide either the architect name or URL slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoArchitect name, e.g. "Robert Trent Jones Sr."
slugNoArchitect slug, e.g. "robert-trent-jones-sr"

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful content details like grouping courses by state, but it doesn't describe edge cases, error behavior, or response format. This is similar to the TDQS baseline where annotations carry the burden.

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, front-loaded with the core purpose, then a compact list of return contents, followed by a clear input instruction. Every word earns its place with 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?

Given there is no output schema, the description compensates well by listing the specific fields returned (bio, image, years, nationality, courses grouped by state). It also covers input options. It lacks details on failure modes or pagination, but for a read-only lookup tool this is largely complete.

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 schema fully documents both parameters with examples, but the description adds the key semantic that you should provide 'either' the name or slug—implying mutual exclusivity and that at least one is expected. This goes beyond the schema's 'required: 0' and clarifies usage.

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 opens with a specific verb ('Get') and clearly identifies the resource ('details about a golf course architect'), then enumerates the exact contents (bio, Wikipedia image, birth/death years, nationality, courses by state). It naturally distinguishes from siblings like get_course and get_reviews by focusing on the architect entity.

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 use case: when you need architect details, this is the tool. It also provides invocation guidance ('Provide either the architect name or URL slug'), though it does not explicitly mention alternatives or exclusions. Since no sibling tool targets architects, this is acceptable.

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

get_courseGet CourseA
Read-onlyIdempotent
Inspect

Get full details for a specific golf course by a returned Stymie URL or slug. Returns name, location, type, holes, architect, year built, amenities, public contact info, recorded closure status, and published tee ratings. A recorded open flag is not a live confirmation of seasonal opening or tee-time availability. Covers the US, Canada, UK, Ireland, Australia and New Zealand.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesPaste the canonical Stymie course URL or reusable slug returned by search_courses, find_nearby_courses, or build_golf_trip

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld=false. The description adds genuine context beyond that: the recorded open/closure flag is explicitly not a live confirmation of seasonal opening or tee-time availability, which prevents a plausible misinterpretation. It also scopes geographic coverage.

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?

Three sentences, front-loaded with purpose, then the return payload, then the caveat and coverage. The field enumeration is long but each item carries retrieval value given the absence of an output schema; there is no filler.

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?

With no output schema, the description compensates by enumerating the returned fields, and it adds the caveat about closure status versus live availability. Nothing an agent needs to select and call this tool correctly appears to be missing.

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 single 'slug' parameter is already fully documented in the schema. The description adds only a light restatement (canonical URL or slug) and no format or syntax detail beyond it, 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?

States a specific verb and resource (get full details for a specific golf course) and names the exact key input (a returned Stymie URL or slug). It then enumerates the returned fields, which distinguishes it clearly from search_courses and find_nearby_courses that produce the slug in the first place.

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 schema and description tie the input to the output of search_courses, find_nearby_courses, and build_golf_trip, which implicitly routes the agent through the correct call order. It does not, however, explicitly state when to prefer this over siblings like get_scorecard or when not to use it.

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

get_data_coverageGet Data CoverageA
Read-onlyIdempotent
Inspect

Return a live count of Stymie course, scorecard, logo, architect, equipment, and current-deal coverage. Use this instead of quoting hardcoded catalog sizes.

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?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context by specifying that the count is 'live' and enumerates the coverage categories, which informs the agent about the dynamic nature and scope of the data. This goes beyond the annotations without contradicting them.

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 primary action and resources, and every word contributes value. The usage guidance is appended naturally without redundancy. It is succinct and well-structured.

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, parameterless tool with no output schema, the description is complete. It states the return value (a live count of coverage) and the specific data categories, which is sufficient for an agent to understand what to expect. The annotations cover safety and idempotence, so no further behavioral caveats are needed.

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 there is nothing for the description to explain beyond what the schema already shows (an empty schema). The baseline for 0 parameters is 4, and the description appropriately does not invent parameter details.

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 'Return a live count' and explicitly lists the resources covered (course, scorecard, logo, architect, equipment, current-deal coverage). It clearly distinguishes this from sibling tools that retrieve individual records or search results, and the phrase 'instead of quoting hardcoded catalog sizes' further clarifies its unique role.

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 usage guidance: 'Use this instead of quoting hardcoded catalog sizes.' This indicates when the tool is appropriate and when it is unnecessary (when fresh counts are needed). It does not explicitly name alternative sibling tools, but the context is sufficiently clear for an agent to select it over content-retrieval tools.

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

get_dealsGet DealsA
Read-onlyIdempotent
Inspect

Get golf-equipment sale offers that were marked in stock when checked within the last 48 hours, with a checked price below list price. Returns each product’s canonical Stymie detail URL, merchant offer URL, price, savings and checked_at time. Link every recommended product to its returned Stymie URL, and use the returned offer URL for the merchant. Prices and stock can change after checking; confirm at the merchant. Disclose that offer links may earn Stymie a commission at no extra cost to the buyer.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
categoryNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish readOnly/idempotent/non-destructive safety, but the description adds real behavioral value: a 48-hour freshness window, a warning that prices and stock can change after checking, and a required commission disclosure. These operational caveats are not derivable from the structured fields.

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?

Front-loads the core purpose and scoping in the first sentence, then moves to return fields, usage, caveats, and disclosure. Five sentences may seem long, but each carries distinct, non-redundant information, so little is wasted.

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, the description usefully enumerates the returned fields (Stymie URL, offer URL, price, savings, checked_at), which an agent needs. Missing detail on what the category/limit inputs control is the main gap, but the read-only nature keeps the bar low.

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 never mentions either parameter. It says nothing about the 'limit' cap or the 'category' enum (ball/driver/putter/rangefinder/launch_monitor), so it fails to compensate for the coverage gap even though the raw schema values are fairly self-explanatory.

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?

Specific verb (get) plus a tightly-scoped resource (golf-equipment sale offers) with two precise qualifying conditions: in stock when checked within the last 48 hours and checked price below list price. This clearly separates it from generic siblings like search_equipment, which returns products rather than filtered deals.

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 makes the inclusion criteria explicit (48-hour freshness, price below list) and prescribes how to use results (link products to the Stymie URL, use the offer URL for merchants, disclose the commission). It stops short of naming or excluding an alternative such as search_equipment, so it is clear context without exclusions.

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

get_leaderboardGet LeaderboardA
Read-onlyIdempotent
Inspect

Rank courses in a state using published tee data: hardest uses highest slope, easiest uses lowest slope among public/municipal courses, and longest uses maximum yardage. Returns each course name, access type, measured value and canonical Stymie URL. Link each recommended course using its returned URL and identify the ranking metric. These are tee-data rankings, not quality ratings or current booking availability; disclose private access.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of results
stateYes2-letter state code, e.g. "NJ"
categoryNoRanking categoryhardest

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive). The description adds meaningful context beyond them: the ranking is derived from tee data, access types matter, private access must be disclosed, and results must be linked via the returned URL.

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?

Three dense sentences with the core action front-loaded and constraints following. Every sentence carries information, though the middle sentence packs several directives together.

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, and the description compensates by naming the returned fields (course name, access type, measured value, canonical Stymie URL). For a simple 3-parameter read tool, this is close to complete; only limit/pagination behavior is left implicit.

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 100%, so the baseline is 3. The description earns above that by defining what the category enum values actually mean (hardest = highest slope, easiest = lowest slope among public/municipal, longest = maximum yardage), which the terse schema enum descriptions do not.

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?

States a specific verb (rank) and resource (courses in a state) plus the data basis (published tee data). It is clearly distinguishable from siblings like search_courses and find_nearby_courses, which list or locate rather than rank.

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?

Defines the ranking semantics for each category and explicitly states the negative scope: 'not quality ratings or current booking availability'. It does not, however, name an alternative sibling for when the agent wants non-ranking course lists.

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

get_scorecardGet ScorecardA
Read-onlyIdempotent
Inspect

Get the full scorecard for a golf course: all tee sets with hole-by-hole par, yardage, stroke index, and front/back nine ratings. Available for thousands of courses with scorecard data.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesPaste the canonical Stymie course URL or reusable slug returned by search_courses, find_nearby_courses, or build_golf_trip

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, non-destructive), so the description's added behavior details are valuable beyond them: it specifies the full payload and the coverage limitation ('thousands of courses with scorecard data'). No contradiction exists.

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 tight sentences: the first states the core function and contents, the second adds a relevant coverage qualifier. There is no filler, repetition, or unnecessary detail.

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 single-parameter read-only tool with a fully documented parameter and a clear enumeration of return contents, the description is complete. The lack of an output schema is not a gap because the description explicitly describes what the scorecard contains.

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 already fully explains the slug parameter, including accepted inputs like canonical URLs and reusable slugs from sibling tools. The description itself adds no additional parameter-level meaning, so the 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?

The description uses a specific verb 'Get' plus a specific resource ('full scorecard for a golf course') and enumerates the exact contents: tee sets, hole-by-hole par, yardage, stroke index, and ratings. This clearly distinguishes it from sibling tools like get_course or get_architect.

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 by defining the returned data and noting that availability depends on courses having scorecard data. It does not explicitly name alternatives or state when not to use it, but the distinct data scope makes the intended use unambiguous.

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

search_coursesSearch CoursesA
Read-onlyIdempotent
Inspect

Search for a named course or filter the directory by city/state, access, and holes. For a trip near a place, station, address, or ZIP, call find_nearby_courses FIRST; do not put the place name in query (query searches course names). You may also pass location here for a proximity search. Returns canonical Stymie URLs, reusable slugs, access, holes, scorecard availability, and straight-line miles when a location is supplied. Copy returned URLs; never construct county slugs. Next: get_course with a returned URL, or build_golf_trip with the resolved center and preferences.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipNoUS ZIP; use location for other places
cityNoCity name
pageNoPage number
typeNoCourse type filter
holesNoNumber of holes
limitNoResults per page (max 50)
queryNoCourse name search (partial match)
stateNoState/province code, e.g. IL, ON, NSW
countryNo
locationNoPlain-language place, station, address, or US ZIP; find_nearby_courses is the recommended first step for trips
distance_milesNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish readOnly, openWorld, idempotent, and non-destructive behavior. The description adds valuable context: it lists what is returned (canonical URLs, slugs, access, holes, scorecard availability, miles) and warns 'never construct county slugs.' This goes beyond annotations and gives the agent actionable behavioral guidance.

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 paragraph but well-structured: it fronts the core purpose, then provides usage routing, then the return contract, and finishes with next-step guidance. Every sentence serves a purpose; there is no filler. It is slightly longer than strictly necessary but earns its length.

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 an 11-parameter tool with no output schema and many siblings, the description is thorough. It explains the primary use case, how it differs from find_nearby_courses, what the output contains, and how to chain to other tools. It does not explain every filter parameter (type, holes, country), but those are self-evident and covered by the schema. The description is sufficient for correct 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 82%, so most parameters are already documented. The description adds critical meaning: it clarifies that 'query' searches course names only, not places, and that 'location' may be used for proximity search. This resolves potential ambiguity between query and location, which the schema alone does not fully capture.

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 opens with a specific verb and resource: 'Search for a named course or filter the directory by city/state, access, and holes.' It immediately distinguishes itself from find_nearby_courses by stating that tool should be called first for trips. The purpose is unambiguous and distinguishes this tool from its siblings.

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 states when to use find_nearby_courses instead ('For a trip near a place, station, address, or ZIP, call find_nearby_courses FIRST'), and warns against putting place names in query because 'query searches course names.' It also provides clear follow-up actions (get_course or build_golf_trip), leaving nothing to inference.

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

search_equipmentSearch EquipmentA
Read-onlyIdempotent
Inspect

Search current golf balls, drivers, putters, rangefinders, and launch monitors. Returns official Stymie detail URLs, images, MSRP, and stated best-for guidance when published.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYesBrand and/or model name
categoryNo

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 destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by specifying return fields (official URLs, images, MSRP, best-for guidance) and noting that best-for guidance is only included 'when published,' indicating conditional availability.

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, focused sentence that front-loads the tool's purpose and return details. Every phrase earns its place without redundant fluff.

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 read-only search tool with three parameters, the description is mostly complete: it covers scope and expected output. It doesn't address edge cases like result limits or empty search behavior, but given the simplicity and annotation coverage, the description suffices.

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 describes only the query parameter (33% coverage). The description compensates somewhat by listing the five equipment categories in natural language, aligning with the category enum. However, the limit parameter's semantics and any search behavior nuances are not explained in the description, leaving some gaps.

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 tool searches equipment (golf balls, drivers, putters, rangefinders, launch monitors) and returns specific result fields (URLs, images, MSRP, best-for). This distinguishes it from sibling tools like search_courses and search_tee_times.

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 usage for equipment searches but provides no explicit guidance on when to prefer this tool over search_stymie or other sibling search tools. It doesn't mention exclusions or alternative tools, so usage is implied rather than explicit.

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

search_stymieSearch StymieA
Read-onlyIdempotent
Inspect

Search Stymie across golf courses, current equipment, architects, and major site tools. Use this first when the user does not specify which Stymie collection they need.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYesA course, equipment model, brand, architect, destination, or golf topic
stateNoOptional 2-letter state filter for course results

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds the behavioral trait that the search spans multiple collections ('courses, equipment, architects, and site tools'), which is useful context beyond the annotations. It does not mention pagination or result format, but given the annotation coverage, this is adequate.

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 short sentences with no filler. The purpose is front-loaded, and the usage guideline is stated directly. Every word earns its place, making it easy for an agent to parse quickly.

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 cross-collection search tool with no output schema, the description covers the essential context: what it searches and when to use it. It lacks explicit description of return format, but the search nature makes this inferable. Given the presence of sibling tools and annotation coverage, the information is sufficiently complete for correct invocation.

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 description does not add any parameter-specific information. The schema provides descriptions for query and state, covering 67% of parameters; limit has no description but is a simple integer. Since schema coverage is above the baseline for compensation, a score of 3 is appropriate—the description neither clarifies nor obscures parameter usage.

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 tool's purpose: 'Search Stymie across golf courses, current equipment, architects, and major site tools.' It names specific collections and distinguishes it from more targeted siblings like search_courses and search_equipment, leaving no ambiguity about what 'Stymie' encompasses.

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 provides an explicit usage rule: 'Use this first when the user does not specify which Stymie collection they need.' This tells the agent exactly when to invoke this tool and implies that more specific tools are available when a collection is identified, fulfilling the when-to-use/alternative guidance.

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

search_tee_timesGet course booking informationA
Read-onlyIdempotent
Inspect

Get booking information for a course already returned by search_courses or find_nearby_courses. Returns its Stymie course-page link, where the golfer can find the official website or phone, plus an optional early-access alerts page. This legacy search_tee_times tool does not search live inventory: status is always not_available. It cannot book, pay, enroll in alerts, or confirm availability.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDesired date (YYYY-MM-DD)
slugYesCanonical Stymie course URL or full_slug returned by a course lookup
playersNoNumber of players

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description discloses the critical behavioral caveat that this legacy tool never searches live inventory and always returns not_available status, plus the practical limits of the returned data (a Stymie course-page link and optional alerts page). This proactively prevents an agent from misinterpreting a nominally 'tee times' tool as a booking/availability check.

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?

Three sentences, front-loaded with the core purpose and followed by the key caveats; no wasted prose. Slight overlap between 'does not search live inventory' and 'cannot confirm availability' keeps it from being maximally tight.

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?

With no output schema, the description fills the gap by explaining what the caller receives (the Stymie course-page link and an optional early-access alerts page) and reiterates the never-available status, so an agent has everything needed to call and interpret it 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?

Schema description coverage is 100%, with date, slug, and players each fully documented in the schema, so the schema carries parameter semantics. The description adds nothing parameter-specific, which matches the baseline 3 when structured fields do the heavy lifting.

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 names a specific verb and resource ('Get booking information for a course') and pins the input provenance to courses returned by search_courses or find_nearby_courses, distinguishing it from the other course-related siblings. It also explicitly states the legacy semantics ('status is always not_available'), so an agent knows what this tool actually yields versus its name.

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?

It states the precondition for use (a course already returned by search_courses or find_nearby_courses) and enumerates what the tool cannot do — 'cannot book, pay, enroll in alerts, or confirm availability' — which is exactly the when-not guidance an agent needs for a live tee-time sounding name.

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. 1 tool update
    • Changedsearch_tee_times1 field changed
      • changedInput schema / properties / slug / description
        Previous value: -"Course full_slug"New value: +"Canonical Stymie course URL or full_slug returned by a course lookup"
  2. 6 tool updates
    • Changedbuild_golf_trip14 fields changed
      • addedInput schema / properties / access
        Added value: +{
        +  "default": "public",
        +  "enum": [
        +    "all",
        +    "public",
        +    "private",
        +    "semi_private",
        +    "municipal",
        +    "resort"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / country
        Added value: +{
        +  "description": "Country code to disambiguate a place; GB means UK",
        +  "enum": [
        +    "US",
        +    "CA",
        +    "GB",
        +    "IE",
        +    "AU",
        +    "NZ"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / distance_miles / anyOf
        Previous value: -[
        -  {
        -    "enum": [
        -      "10",
        -      "20",
        -      "25",
        -      "50"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "const": 10,
        -    "type": "number"
        -  },
        -  {
        -    "const": 20,
        -    "type": "number"
        -  },
        -  {
        -    "const": 25,
        -    "type": "number"
        -  },
        -  {
        -    "const": 50,
        -    "type": "number"
        -  }
        -]New value: +[
        +  {
        +    "enum": [
        +      "5",
        +      "10",
        +      "20",
        +      "25",
        +      "50"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "const": 5,
        +    "type": "number"
        +  },
        +  {
        +    "const": 10,
        +    "type": "number"
        +  },
        +  {
        +    "const": 20,
        +    "type": "number"
        +  },
        +  {
        +    "const": 25,
        +    "type": "number"
        +  },
        +  {
        +    "const": 50,
        +    "type": "number"
        +  }
        +]
      • changedInput schema / properties / distance_miles / description
        Previous value: -"Search radius in miles: one of 10, 20, 25, 50"New value: +"Search radius in miles: one of 5, 10, 20, 25, 50"
      • addedInput schema / properties / holes
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "9",
        +        "18",
        +        "27",
        +        "36"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "const": 9,
        +      "type": "number"
        +    },
        +    {
        +      "const": 18,
        +      "type": "number"
        +    },
        +    {
        +      "const": 27,
        +      "type": "number"
        +    },
        +    {
        +      "const": 36,
        +      "type": "number"
        +    }
        +  ]
        +}
      • addedInput schema / properties / location / description
        Added value: +"Place name, station, address, or US ZIP; omit when reusing the nearby result coordinates"
      • changedInput schema / properties / location / maxLength
        Previous value: -100New value: +200
      • removedInput schema / properties / slope_max / default
        Removed value: -155
      • removedInput schema / properties / slope_min / default
        Removed value: -115
      • changedInput schema / properties / state / maxLength
        Previous value: -2New value: +3
      • removedInput schema / properties / tee_yards_max / default
        Removed value: -6200
      • changedInput schema / properties / tee_yards_max / minimum
        Previous value: -4000New value: +500
      • removedInput schema / properties / tee_yards_min / default
        Removed value: -5900
      • changedInput schema / properties / tee_yards_min / minimum
        Previous value: -4000New value: +500
    • Changedfind_nearby_courses6 fields changed
      • addedInput schema / properties / country
        Added value: +{
        +  "description": "Country code to disambiguate a place; GB means UK",
        +  "enum": [
        +    "US",
        +    "CA",
        +    "GB",
        +    "IE",
        +    "AU",
        +    "NZ"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / holes
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "9",
        +        "18",
        +        "27",
        +        "36"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "const": 9,
        +      "type": "number"
        +    },
        +    {
        +      "const": 18,
        +      "type": "number"
        +    },
        +    {
        +      "const": 27,
        +      "type": "number"
        +    },
        +    {
        +      "const": 36,
        +      "type": "number"
        +    }
        +  ],
        +  "description": "Total course holes; omit if flexible"
        +}
      • changedInput schema / properties / location / description
        Previous value: -"City, 5-digit ZIP code, or golf destination"New value: +"Place name, transit station, address, or US ZIP; extract the place from the golfer’s sentence"
      • changedInput schema / properties / location / maxLength
        Previous value: -100New value: +200
      • changedInput schema / properties / state / description
        Previous value: -"Optional 2-letter state or province code to disambiguate a city, e.g. ON for Toronto, Canada"New value: +"State/province code, e.g. IL, ON, or NSW, to disambiguate a place"
      • changedInput schema / properties / state / maxLength
        Previous value: -2New value: +3
    • Changedget_course1 field changed
      • changedInput schema / properties / slug / description
        Previous value: -"Course full_slug, e.g. \"new-jersey/monmouth-county/red-bank/navesink-country-club\""New value: +"Paste the canonical Stymie course URL or reusable slug returned by search_courses, find_nearby_courses, or build_golf_trip"
    • Changedget_scorecard1 field changed
      • changedInput schema / properties / slug / description
        Previous value: -"Course full_slug, e.g. \"new-jersey/monmouth-county/red-bank/navesink-country-club\""New value: +"Paste the canonical Stymie course URL or reusable slug returned by search_courses, find_nearby_courses, or build_golf_trip"
    • Changedsearch_courses12 fields changed
      • addedInput schema / properties / country
        Added value: +{
        +  "enum": [
        +    "US",
        +    "CA",
        +    "GB",
        +    "IE",
        +    "AU",
        +    "NZ"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / distance_miles
        Added value: +{
        +  "default": 50,
        +  "maximum": 50,
        +  "minimum": 1,
        +  "type": "number"
        +}
      • addedInput schema / properties / holes / anyOf
        Added value: +[
        +  {
        +    "enum": [
        +      "9",
        +      "18",
        +      "27",
        +      "36"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "const": 9,
        +    "type": "number"
        +  },
        +  {
        +    "const": 18,
        +    "type": "number"
        +  },
        +  {
        +    "const": 27,
        +    "type": "number"
        +  },
        +  {
        +    "const": 36,
        +    "type": "number"
        +  }
        +]
      • removedInput schema / properties / holes / enum
        Removed value: -[
        -  "9",
        -  "18",
        -  "27",
        -  "36"
        -]
      • removedInput schema / properties / holes / type
        Removed value: -"string"
      • addedInput schema / properties / location
        Added value: +{
        +  "description": "Plain-language place, station, address, or US ZIP; find_nearby_courses is the recommended first step for trips",
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • changedInput schema / properties / state / description
        Previous value: -"2-letter state code, e.g. \"NJ\""New value: +"State/province code, e.g. IL, ON, NSW"
      • changedInput schema / properties / state / maxLength
        Previous value: -2New value: +3
      • changedInput schema / properties / zip / description
        Previous value: -"5-digit ZIP code for proximity search (50 mile radius)"New value: +"US ZIP; use location for other places"
      • removedInput schema / properties / zip / maxLength
        Removed value: -5
      • removedInput schema / properties / zip / minLength
        Removed value: -5
      • addedInput schema / properties / zip / pattern
        Added value: +"^\\d{5}$"
    • Changedsearch_stymie1 field changed
      • changedInput schema / properties / state / maxLength
        Previous value: -2New value: +3
  3. 2 tool updates
    • Changedfind_nearby_courses1 field changed
      • changedInput schema / properties / state / description
        Previous value: -"Optional 2-letter state code to disambiguate a city"New value: +"Optional 2-letter state or province code to disambiguate a city, e.g. ON for Toronto, Canada"
    • Removedget_reviews
  4. 2 tool updates
    • Changedbuild_golf_trip4 fields changed
      • addedInput schema / properties / distance_miles / anyOf
        Added value: +[
        +  {
        +    "enum": [
        +      "10",
        +      "20",
        +      "25",
        +      "50"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "const": 10,
        +    "type": "number"
        +  },
        +  {
        +    "const": 20,
        +    "type": "number"
        +  },
        +  {
        +    "const": 25,
        +    "type": "number"
        +  },
        +  {
        +    "const": 50,
        +    "type": "number"
        +  }
        +]
      • addedInput schema / properties / distance_miles / description
        Added value: +"Search radius in miles: one of 10, 20, 25, 50"
      • removedInput schema / properties / distance_miles / enum
        Removed value: -[
        -  "10",
        -  "20",
        -  "25",
        -  "50"
        -]
      • removedInput schema / properties / distance_miles / type
        Removed value: -"string"
    • Changedfind_nearby_courses4 fields changed
      • addedInput schema / properties / distance_miles / anyOf
        Added value: +[
        +  {
        +    "enum": [
        +      "5",
        +      "10",
        +      "20",
        +      "25",
        +      "50"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "const": 5,
        +    "type": "number"
        +  },
        +  {
        +    "const": 10,
        +    "type": "number"
        +  },
        +  {
        +    "const": 20,
        +    "type": "number"
        +  },
        +  {
        +    "const": 25,
        +    "type": "number"
        +  },
        +  {
        +    "const": 50,
        +    "type": "number"
        +  }
        +]
      • addedInput schema / properties / distance_miles / description
        Added value: +"Search radius in miles: one of 5, 10, 20, 25, 50"
      • removedInput schema / properties / distance_miles / enum
        Removed value: -[
        -  "5",
        -  "10",
        -  "20",
        -  "25",
        -  "50"
        -]
      • removedInput schema / properties / distance_miles / type
        Removed value: -"string"
  5. 13 tool updates
    • First observedbuild_golf_trip
    • First observedfind_nearby_courses
    • First observedget_architect
    • First observedget_course
    • First observedget_data_coverage
    • First observedget_deals
    • First observedget_leaderboard
    • First observedget_reviews
    • First observedget_scorecard
    • First observedsearch_courses
    • First observedsearch_equipment
    • First observedsearch_stymie
    • First observedsearch_tee_times

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides lake conditions, fish-stocking records, fishing-favorability scoring, and live weather for outdoor recreation AI agents, powering trip-planning and fishing apps with 72,000+ US lakes and 293,000+ stocking events.
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Provides AI agents with live, grounded sports data including model probabilities, track records, and European soccer and tennis arbitrage opportunities, so they answer from real numbers instead of stale guesses.
    13
    45 npm
    1
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Query 20 structured datasets from AI agents — healthcare providers (9M NPI records), SEC EDGAR filings, PACER federal courts, USPTO patents and trademarks, OFAC sanctions screening, crypto whale wallets, DeFi liquidation signals, Polymarket smart money, economic indicators (FRED/BLS), federal contracts, NOAA weather, and OTC shell risk scoring. Pay per query, no subscriptions
    75
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources