{"serverId":"mcp-registry/co.golfdata/golfdata","tools":[{"name":"compare_prices","fixed":{"name":"compare_prices","description":"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.","inputSchema":{"type":"object","required":["product_id"],"properties":{"product_id":{"type":"string","description":"canonical product uuid, from search_products"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":131,"tokensAfter":131},{"name":"get_buy_link","fixed":{"name":"get_buy_link","description":"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.","inputSchema":{"type":"object","required":["source_kind","source_id"],"properties":{"source_id":{"type":"string","description":"Marketplace source UUID from get_verified_offer(s)"},"source_kind":{"enum":["deal","product"],"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":190,"tokensAfter":190},{"name":"get_current_prices","fixed":{"name":"get_current_prices","description":"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.","inputSchema":{"type":"object","required":["product_id"],"properties":{"product_id":{"type":"string","description":"canonical product uuid, from search_products"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":144,"tokensAfter":144},{"name":"get_price_history","fixed":{"name":"get_price_history","description":"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.","inputSchema":{"type":"object","required":["product_id"],"properties":{"days":{"type":"integer","description":"1 to 365, default 30"},"product_id":{"type":"string","description":"canonical product uuid, from search_products"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":149,"tokensAfter":149},{"name":"get_product","fixed":{"name":"get_product","description":"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.","inputSchema":{"type":"object","required":["product_id"],"properties":{"product_id":{"type":"string","description":"canonical product uuid, from search_products"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":142,"tokensAfter":142},{"name":"get_verified_offer","fixed":{"name":"get_verified_offer","description":"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; ","inputSchema":{"type":"object","required":["source_kind","source_id","canonical_product_id","variant_id"],"properties":{"source_id":{"type":"string","description":"Known marketplace source UUID, not canonical product UUID"},"variant_id":{"type":["string","null"],"description":"Exact expected variant UUID or explicit null for nonvariant source"},"source_kind":{"enum":["deal","product"],"type":"string"},"canonical_product_id":{"type":"string","description":"canonical product uuid, from search_products"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":302,"tokensAfter":302},{"name":"get_verified_offers","fixed":{"name":"get_verified_offers","description":"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. Result","inputSchema":{"type":"object","required":["canonical_product_id"],"properties":{"offset":{"type":"integer","maximum":15,"minimum":0,"description":"Use response next_offset within the bounded live window; default 0"},"variant_id":{"type":["string","null"],"description":"Exact variant UUID; null or omitted requests nonvariant offers or variant selection metadata"},"canonical_product_id":{"type":"string","description":"Canonical product UUID from search_products"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":291,"tokensAfter":291},{"name":"search_products","fixed":{"name":"search_products","description":"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.","inputSchema":{"type":"object","properties":{"q":{"type":"string","description":"free text matched against the product name"},"brand":{"type":"string","description":"brand name, case insensitive"},"limit":{"type":"integer","description":"1 to 100, default 25"},"category":{"type":"string","description":"one of the categories listed above"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":195,"tokensAfter":195}],"toolsChanged":8,"tokensSaved":0,"todo":[{"tool":"get_buy_link","params":["source_kind"]},{"tool":"get_verified_offer","params":["source_kind"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}