GolfData
Server Details
Golf equipment catalog, live retailer prices and daily price history. Keyless search, free key.
- Status
- Healthy
- Uptime
- 99.6% over 25 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Most tools are clearly scoped: search_products and get_product are distinct, and the verified-offer pair is separated by canonical vs source UUID input. The three price tools (compare_prices, get_current_prices, get_price_history) have overlapping data sources, but their output purposes are explained well enough to avoid serious misselection.
All tool names follow a consistent lower_snake_case verb_noun pattern (search_products, get_product, compare_prices). The singular/plural get_verified_offer/get_verified_offers pair is a clear intentional distinction.
Seven tools is well-scoped for a golf equipment data server. Each tool covers a distinct step in the workflow: catalog search, product enrichment, price views, and verified offer lookup.
The set provides a coherent read-only workflow from product search to enrichment, price comparison/history/current values, and verified offers. The only notable gap is that get_verified_offer depends on external source UUIDs, though get_verified_offers covers discovery from a canonical product ID.
Available Tools
8 toolscompare_pricesInspect
Dated advertised retailer observations for one product plus min, max and median, and recorded 30 and 90 day lows. Coverage varies; these are not exact-variant verified purchase quotes. Every price carries observed_at and expires_at; do not quote after expires_at.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | canonical product uuid, from search_products |
get_buy_linkInspect
Tracked 27aDay buy link for one marketplace source (source_kind and source_id from get_verified_offer(s), the offer's source ids). Returns a members.27aday.com/go URL carrying a one time ticket issued to your API key; hand it to the shopper unchanged. The link opens the retailer; no purchase or account action happens here. Free with a key. May return 503 when disabled.
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes | Marketplace source UUID from get_verified_offer(s) | |
| source_kind | Yes |
get_current_pricesInspect
Latest stored advertised prices for one canonical product, with stock observations and stored affiliate links. These are not exact-variant verified buyable offers; use get_verified_offer when a marketplace source ID is known. Every price carries observed_at and expires_at; do not quote after expires_at.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | canonical product uuid, from search_products |
get_price_historyInspect
Dated price observations per retailer, where available. Coverage and refresh times vary by source. These rows are asking prices, not proof that a discount or stock state is current. Every price carries observed_at and expires_at; do not quote after expires_at.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | 1 to 365, default 30 | |
| product_id | Yes | canonical product uuid, from search_products |
get_productAInspect
One product plus its enrichment_sources provenance rows. Every enriched field carries the source URL, confidence and checked_at it came from. Check enrichment_status before relying on specs: 'enriched' means model, release_year, msrp, description and specs are all sourced; 'partial' means some are missing.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | canonical product uuid, from search_products |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It explains what the response contains, the provenance attributes on enriched fields, and the meaning of enrichment_status values, which is substantial context beyond the raw schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three focused sentences convey the core behavior, provenance model, and enrichment-status semantics without wasted words. The most important message, what the tool returns, is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter retrieval tool with no output schema, the description covers the key behavioral details: return scope, provenance fields, and status interpretation. Minor gaps like missing-product behavior are not critical given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes product_id as a canonical product UUID from search_products, and the description adds no parameter-specific detail. With 100% schema description coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: retrieving one product plus its enrichment provenance rows. It implies differentiation from siblings like search_products by emphasizing a single product and provenance detail, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives valuable guidance about checking enrichment_status before trusting specs, which informs how to interpret results. However, it does not explicitly state when to choose this tool versus siblings like get_current_prices or get_verified_offers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_verified_offerInspect
Read-only golf-offer.v1 using Chip's admission, exact-variant and live redirect gate. Requires a known 27aDay marketplace deal/product source UUID; search_products returns canonical IDs, not these source IDs. Explicit variant_id null means no selectable variant. Returns verified_offer, check_price or unavailable; unknown currency/ratings stay unknown. No account actions, click attribution or purchase is performed. Deployment may be disabled (503). Every price carries observed_at and expires_at; do not quote after expires_at.
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes | Known marketplace source UUID, not canonical product UUID | |
| variant_id | Yes | Exact expected variant UUID or explicit null for nonvariant source | |
| source_kind | Yes | ||
| canonical_product_id | Yes | canonical product uuid, from search_products |
get_verified_offersInspect
Discover admitted marketplace sources for a canonical product ID from search_products, then verify each returned offer through Chip's exact-source commerce gate. If variant_id is omitted or null on a variant-bearing product, returns selection_metadata_not_offer options; unsourced specs stay unknown. Supply the exact variant UUID to get offers. Two sources checked per page within a bounded 16-source live window, use next_offset; this is not exhaustive catalog coverage or a stable snapshot. Results retain golf-offer.v1, including check_price and unknown currency. No member actions or click attribution. Deployment may be disabled (503). Every price carries observed_at and expires_at; do not quote after expires_at.
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | Use response next_offset within the bounded live window; default 0 | |
| variant_id | No | Exact variant UUID; null or omitted requests nonvariant offers or variant selection metadata | |
| canonical_product_id | Yes | Canonical product UUID from search_products |
search_productsAInspect
Search the canonical golf equipment catalog by brand, category, or free text. Call this first to resolve a product_id for the other tools. Categories: drivers, iron-sets, wedges, putters, fairway-woods, hybrids, balls, bags, shoes, gloves, apparel, headcovers, complete-sets, accessories, tech, rangefinders, grips.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | free text matched against the product name | |
| brand | No | brand name, case insensitive | |
| limit | No | 1 to 100, default 25 | |
| category | No | one of the categories listed above |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the search matches free text against product names, and lists categories, but it doesn't detail behavior like case sensitivity for categories, whether the search is fuzzy or exact, or the return format. The basic behavior is clear, but richer details are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with the core purpose front-loaded. The category list is a necessary addition for this domain-specific tool. Every sentence serves a purpose: the first defines the tool's function, the second gives usage guidance, and the third lists valid values. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's role as a search entry point with an output schema absentjon, the description doesn't explain the return format or selection logic, which could be important. However, the purpose and basic parameters are covered, and the sibling tools suggest how results are used. It's adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description adds the list of categories, which is also in the schema, and the 'free text matched against the product name' with the 'call this first' context. This adds minimal value beyond the schema, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to search the golf equipment catalog by brand, category, or free text, and to resolve product IDs for other tools. This is specific about the resource (golf equipment catalog) and the action (search), and it distinguishes itself from siblings like get_product by its search role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to call this tool first to resolve product_id for other tools, providing clear when-to-use guidance. It doesn't explicitly mention when not to use it or alternatives, but the context of 'first step' implies it's the entry point, and sibling tools are for specific follow-ups, which is clear enough.
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 tool update
- Added
get_buy_link
Related MCP Connectors
Live UK golf club prices across 40 retailers: offers, price history and deal ratings in GBP.
No key needed. Search real products and live dealer inventory, price-check, keep standing wants.
Search ~2,500 golf headcover listings across ~55 brands. 5 read-only discovery tools.
Live golf tee time availability across US courses. Search by location, date, players, and price.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceProvides secure access to Tennis Warehouse product data via natural language queries, enabling product search, availability checks, and deal discovery.-

idealo MCP Serverofficial
AlicenseNot gradedqualityFmaintenanceEnables product search, price comparison, and price history analysis across 6 European marketplaces (DE, AT, GB, FR, IT, ES).19MIT
Channel3 MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceEnables product search and shopping assistance through natural language, with a free tier available without API key.304 npm2MIT- AlicenseAqualityCmaintenanceEnables searching products, retrieving product details, listing stores, checking stock availability, and comparing prices across Czech DIY retailers.5MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.