Skip to main content
Glama

Get retailer offers for a product

get_product_offers
Read-onlyIdempotent

Current UK retailer offers for one product, in-stock first then cheapest, with variant details (shaft, flex, hand, loft, condition). The summary object always gives the cheapest in-stock new offer and the cheapest in-stock used offer, with counts, whatever condition is requested. Used means every second-hand condition (used, refurbished, ex-display); each offer still states its own condition. Set condition to "new" when the shopper wants a new club and "used" for second-hand; the default "all" mixes both. Each offer and each cheapest entry includes buy_url, a Caddence redirect link. Always present buy_url as the purchase link when the user wants to buy; never reconstruct or substitute retailer URLs.

Input Schema

NameRequiredDescriptionDefault
slugNoAlias for product — pass either
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
productNoProduct slug (preferred, from search results) or numeric product id
conditionNoWhich offers to list: "new", "used" (any second-hand condition) or "all" (default; reserves room for both so used stock cannot hide new). Applied before the 30-offer cap.

Output Schema

NameRequiredDescriptionDefault
noteNo
offersYes
productYes
summaryNo
returnedNo
conditionNo
total_offersNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / properties / condition
      Added value: +{
      +  "description": "Which offers to list: \"new\", \"used\" (any second-hand condition) or \"all\" (default; reserves room for both so used stock cannot hide new). Applied before the 30-offer cap.",
      +  "enum": [
      +    "new",
      +    "used",
      +    "all"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": false,
      +  "properties": {
      +    "condition": {
      +      "enum": [
      +        "new",
      +        "used",
      +        "all"
      +      ],
      +      "type": "string"
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "offers": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "buy_url": {
      +            "description": "Caddence redirect link (https://caddence.golf/go?...&src=mcp). Present this as the purchase link.",
      +            "type": "string"
      +          },
      +          "condition": {
      +            "type": "string"
      +          },
      +          "condition_grade": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "in_stock": {
      +            "type": "boolean"
      +          },
      +          "is_deal": {
      +            "type": "boolean"
      +          },
      +          "last_checked_at": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "original_price": {
      +            "anyOf": [
      +              {
      +                "description": "Price in GBP",
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "price": {
      +            "description": "Price in GBP",
      +            "type": "number"
      +          },
      +          "retailer": {
      +            "type": "string"
      +          },
      +          "variant": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "variant",
      +          "condition",
      +          "condition_grade",
      +          "retailer",
      +          "price",
      +          "original_price",
      +          "in_stock",
      +          "is_deal",
      +          "last_checked_at",
      +          "buy_url"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "product": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "brand": {
      +          "type": "string"
      +        },
      +        "in_stock": {
      +          "type": "boolean"
      +        },
      +        "min_price": {
      +          "anyOf": [
      +            {
      +              "description": "Price in GBP",
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "name": {
      +          "type": "string"
      +        },
      +        "product_type": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "product_url": {
      +          "description": "Absolute URL",
      +          "type": "string"
      +        },
      +        "rrp": {
      +          "anyOf": [
      +            {
      +              "description": "Price in GBP",
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "slug": {
      +          "type": "string"
      +        },
      +        "variant_count": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "name",
      +        "brand",
      +        "slug",
      +        "product_type",
      +        "min_price",
      +        "rrp",
      +        "variant_count",
      +        "in_stock",
      +        "product_url"
      +      ],
      +      "type": "object"
      +    },
      +    "returned": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "summary": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "new": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "cheapest_in_stock": {
      +              "anyOf": [
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "buy_url": {
      +                      "description": "Caddence redirect link (https://caddence.golf/go?...&src=mcp). Present this as the purchase link.",
      +                      "type": "string"
      +                    },
      +                    "condition": {
      +                      "type": "string"
      +                    },
      +                    "condition_grade": {
      +                      "type": [
      +                        "string",
      +                        "null"
      +                      ]
      +                    },
      +                    "price": {
      +                      "description": "Price in GBP",
      +                      "type": "number"
      +                    },
      +                    "retailer": {
      +                      "type": "string"
      +                    },
      +                    "variant": {
      +                      "type": [
      +                        "string",
      +                        "null"
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "price",
      +                    "retailer",
      +                    "variant",
      +                    "condition",
      +                    "condition_grade",
      +                    "buy_url"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "offers_in_stock": {
      +              "maximum": 9007199254740991,
      +              "minimum": -9007199254740991,
      +              "type": "integer"
      +            },
      +            "offers_total": {
      +              "maximum": 9007199254740991,
      +              "minimum": -9007199254740991,
      +              "type": "integer"
      +            }
      +          },
      +          "required": [
      +            "offers_total",
      +            "offers_in_stock",
      +            "cheapest_in_stock"
      +          ],
      +          "type": "object"
      +        },
      +        "used": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "cheapest_in_stock": {
      +              "anyOf": [
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "buy_url": {
      +                      "description": "Caddence redirect link (https://caddence.golf/go?...&src=mcp). Present this as the purchase link.",
      +                      "type": "string"
      +                    },
      +                    "condition": {
      +                      "type": "string"
      +                    },
      +                    "condition_grade": {
      +                      "type": [
      +                        "string",
      +                        "null"
      +                      ]
      +                    },
      +                    "price": {
      +                      "description": "Price in GBP",
      +                      "type": "number"
      +                    },
      +                    "retailer": {
      +                      "type": "string"
      +                    },
      +                    "variant": {
      +                      "type": [
      +                        "string",
      +                        "null"
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "price",
      +                    "retailer",
      +                    "variant",
      +                    "condition",
      +                    "condition_grade",
      +                    "buy_url"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "offers_in_stock": {
      +              "maximum": 9007199254740991,
      +              "minimum": -9007199254740991,
      +              "type": "integer"
      +            },
      +            "offers_total": {
      +              "maximum": 9007199254740991,
      +              "minimum": -9007199254740991,
      +              "type": "integer"
      +            }
      +          },
      +          "required": [
      +            "offers_total",
      +            "offers_in_stock",
      +            "cheapest_in_stock"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "new",
      +        "used"
      +      ],
      +      "type": "object"
      +    },
      +    "total_offers": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "product",
      +    "offers"
      +  ],
      +  "type": "object"
      +}
  2. Changed2 schema fields changed
    • addedInput schema / properties / slug
      Added value: +{
      +  "description": "Alias for product — pass either",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "product",
      -  "context"
      -]New value: +[
      +  "context"
      +]
  3. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent, so the bar is lower; the description nonetheless adds real behavior: result ordering, that the summary always returns cheapest in-stock new and used offers regardless of the requested condition, the definition of 'used' as any second-hand condition, and the buy_url presentation rule. Only pagination/truncation details are left implicit.

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?

Dense but front-loaded: sorting contract first, then summary semantics, then condition guidance, then the buy_url rule. Most sentences carry distinct information, though the buy_url/presentation warning is slightly verbose.

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 read-only lookup with a full output schema and complete parameter descriptions, the description covers the non-obvious output dynamics (ordering, summary independence from filter, condition grouping, redirect link usage) that an agent needs to use results correctly.

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 baseline is 3, but the description goes beyond the schema by explaining the intent mapping for condition values and clarifying that 'used' covers refurbished and ex-display while each offer still states its own condition. It adds semantic depth the enum alone does not convey.

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 with scope ('Current UK retailer offers for one product'), plus an output ordering contract (in-stock first, then cheapest). It is clearly distinguishable from siblings like get_price_history and get_market_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?

Explicitly tells the agent when to pass condition='new' vs 'used' vs the default 'all', including the shopper-intent condition that selects each. It does not, however, route between this tool and sibling tools such as get_market_deals.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources