Golf equipment catalog, live retailer prices and daily price history. Keyless search, free key.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional. Free key from POST https://golfdata.co/v1/keys. Unlocks prices, history, compare and offers.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
canonical product uuid, from search_products
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| product_id* | string | canonical product uuid, from search_products |
{
"type": "object",
"required": [
"product_id"
],
"properties": {
"product_id": {
"type": "string",
"description": "canonical product uuid, from search_products"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| source_id* | string | Marketplace source UUID from get_verified_offer(s) |
| source_kind* | string |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| product_id* | string | canonical product uuid, from search_products |
{
"type": "object",
"required": [
"product_id"
],
"properties": {
"product_id": {
"type": "string",
"description": "canonical product uuid, from search_products"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| days | integer | 1 to 365, default 30 |
| product_id* | string | canonical product uuid, from search_products |
{
"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"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| product_id* | string | canonical product uuid, from search_products |
{
"type": "object",
"required": [
"product_id"
],
"properties": {
"product_id": {
"type": "string",
"description": "canonical product uuid, from search_products"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| source_id* | string | Known marketplace source UUID, not canonical product UUID |
| variant_id* | string | null | Exact expected variant UUID or explicit null for nonvariant source |
| source_kind* | string | |
| canonical_product_id* | string | canonical product uuid, from search_products |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| offset | integer | Use response next_offset within the bounded live window; default 0 |
| variant_id | string | null | Exact variant UUID; null or omitted requests nonvariant offers or variant selection metadata |
| canonical_product_id* | string | Canonical product UUID from search_products |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| q | string | free text matched against the product name |
| brand | string | brand name, case insensitive |
| limit | integer | 1 to 100, default 25 |
| category | string | one of the categories listed above |
{
"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"
}
}
}