Skip to main content
Glama

get_product

Get the detailed response for a specific product ID. Use this after discover_products or find_similar_products when you need merchant description, store info, all images, SKU-level availability variants, SKU, colorKey/size matrix, exact variant prices/compareAtPrice in the requested currency, and the direct link to purchase.

Input Schema

NameRequiredDescriptionDefault
countryNoOptional shopper location as an ISO-3166-1 alpha-2 country code (e.g. "US", "GB", "DE"). Recorded for analytics and used to improve future offer geo-matching. Omit if unknown — absence preserves current behavior.
currencyNoISO 4217 currency code to render prices in (e.g. "GBP", "EUR", "USD"). Defaults to USD.
product_idYesThe product ID (from a previous search result)

Output Schema

NameRequiredDescriptionDefault
idYes
tagsNo
brandNo
priceYes
storeNo
titleYes
colorsNo
genderNo
imagesNo
inStockNo
sleevesNo
summaryNo
categoryNo
closuresNo
currencyYes
necklineNo
materialsNo
productUrlNo
silhouetteNo
availabilityYes
isSustainableNo
compareAtPriceNo
relevanceScoreNo
similarityScoreNo
merchantDescriptionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed16 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / availability / properties / color / items / properties / compareAtPriceRange / $ref
      Removed value: -"#/properties/availability/properties/color/items/properties/priceRange"
    • addedOutput schema / properties / availability / properties / color / items / properties / compareAtPriceRange / additionalProperties
      Added value: +false
    • addedOutput schema / properties / availability / properties / color / items / properties / compareAtPriceRange / properties
      Added value: +{
      +  "currency": {
      +    "type": "string"
      +  },
      +  "max": {
      +    "type": "number"
      +  },
      +  "min": {
      +    "type": "number"
      +  }
      +}
    • addedOutput schema / properties / availability / properties / color / items / properties / compareAtPriceRange / required
      Added value: +[
      +  "min",
      +  "max",
      +  "currency"
      +]
    • addedOutput schema / properties / availability / properties / color / items / properties / compareAtPriceRange / type
      Added value: +"object"
    • removedOutput schema / properties / availability / properties / sizes / items / properties / compareAtPriceRange / $ref
      Removed value: -"#/properties/availability/properties/color/items/properties/priceRange"
    • addedOutput schema / properties / availability / properties / sizes / items / properties / compareAtPriceRange / additionalProperties
      Added value: +false
    • addedOutput schema / properties / availability / properties / sizes / items / properties / compareAtPriceRange / properties
      Added value: +{
      +  "currency": {
      +    "type": "string"
      +  },
      +  "max": {
      +    "type": "number"
      +  },
      +  "min": {
      +    "type": "number"
      +  }
      +}
    • addedOutput schema / properties / availability / properties / sizes / items / properties / compareAtPriceRange / required
      Added value: +[
      +  "min",
      +  "max",
      +  "currency"
      +]
    • addedOutput schema / properties / availability / properties / sizes / items / properties / compareAtPriceRange / type
      Added value: +"object"
    • removedOutput schema / properties / availability / properties / sizes / items / properties / priceRange / $ref
      Removed value: -"#/properties/availability/properties/color/items/properties/priceRange"
    • addedOutput schema / properties / availability / properties / sizes / items / properties / priceRange / additionalProperties
      Added value: +false
    • addedOutput schema / properties / availability / properties / sizes / items / properties / priceRange / properties
      Added value: +{
      +  "currency": {
      +    "type": "string"
      +  },
      +  "max": {
      +    "type": "number"
      +  },
      +  "min": {
      +    "type": "number"
      +  }
      +}
    • addedOutput schema / properties / availability / properties / sizes / items / properties / priceRange / required
      Added value: +[
      +  "min",
      +  "max",
      +  "currency"
      +]
    • addedOutput schema / properties / availability / properties / sizes / items / properties / priceRange / type
      Added value: +"object"
  2. Changed1 schema field changed
    • addedInput schema / properties / country
      Added value: +{
      +  "description": "Optional shopper location as an ISO-3166-1 alpha-2 country code (e.g. \"US\", \"GB\", \"DE\"). Recorded for analytics and used to improve future offer geo-matching. Omit if unknown — absence preserves current behavior.",
      +  "pattern": "^[A-Za-z]{2}$",
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "availability": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "color": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "availableSizes": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "inStock": {
      +                      "type": "boolean"
      +                    },
      +                    "label": {
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "label",
      +                    "inStock"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "color": {
      +                "type": "string"
      +              },
      +              "colorKey": {
      +                "type": "string"
      +              },
      +              "compareAtPrice": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "compareAtPriceRange": {
      +                "$ref": "#/properties/availability/properties/color/items/properties/priceRange"
      +              },
      +              "currency": {
      +                "type": "string"
      +              },
      +              "imageUrls": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "inStock": {
      +                "type": "boolean"
      +              },
      +              "label": {
      +                "type": "string"
      +              },
      +              "price": {
      +                "type": "number"
      +              },
      +              "priceRange": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "currency": {
      +                    "type": "string"
      +                  },
      +                  "max": {
      +                    "type": "number"
      +                  },
      +                  "min": {
      +                    "type": "number"
      +                  }
      +                },
      +                "required": [
      +                  "min",
      +                  "max",
      +                  "currency"
      +                ],
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "colorKey",
      +              "color",
      +              "label",
      +              "availableSizes"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "dimensions": {
      +          "items": {
      +            "enum": [
      +              "color",
      +              "size"
      +            ],
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "sizes": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "compareAtPrice": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "compareAtPriceRange": {
      +                "$ref": "#/properties/availability/properties/color/items/properties/priceRange"
      +              },
      +              "currency": {
      +                "type": "string"
      +              },
      +              "inStock": {
      +                "type": "boolean"
      +              },
      +              "label": {
      +                "type": "string"
      +              },
      +              "price": {
      +                "type": "number"
      +              },
      +              "priceRange": {
      +                "$ref": "#/properties/availability/properties/color/items/properties/priceRange"
      +              }
      +            },
      +            "required": [
      +              "label",
      +              "inStock"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "variants": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "colorKey": {
      +                "type": "string"
      +              },
      +              "compareAtPrice": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "currency": {
      +                "type": "string"
      +              },
      +              "imageUrl": {
      +                "type": "string"
      +              },
      +              "inStock": {
      +                "type": "boolean"
      +              },
      +              "price": {
      +                "type": "number"
      +              },
      +              "size": {
      +                "type": "string"
      +              },
      +              "sku": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "inStock"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "dimensions",
      +        "color",
      +        "sizes"
      +      ],
      +      "type": "object"
      +    },
      +    "brand": {
      +      "type": "string"
      +    },
      +    "category": {
      +      "type": "string"
      +    },
      +    "closures": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "colors": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "compareAtPrice": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "currency": {
      +      "type": "string"
      +    },
      +    "gender": {
      +      "type": "string"
      +    },
      +    "id": {
      +      "type": "string"
      +    },
      +    "images": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "inStock": {
      +      "type": "boolean"
      +    },
      +    "isSustainable": {
      +      "type": "boolean"
      +    },
      +    "materials": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "merchantDescription": {
      +      "type": "string"
      +    },
      +    "neckline": {
      +      "type": "string"
      +    },
      +    "price": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "productUrl": {
      +      "type": "string"
      +    },
      +    "relevanceScore": {
      +      "type": "number"
      +    },
      +    "silhouette": {
      +      "type": "string"
      +    },
      +    "similarityScore": {
      +      "type": "number"
      +    },
      +    "sleeves": {
      +      "type": "string"
      +    },
      +    "store": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "domain": {
      +              "type": "string"
      +            },
      +            "name": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "name",
      +            "domain"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "summary": {
      +      "type": "string"
      +    },
      +    "tags": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "title": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "title",
      +    "price",
      +    "currency",
      +    "availability"
      +  ],
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • addedInput schema / properties / currency
      Added value: +{
      +  "description": "ISO 4217 currency code to render prices in (e.g. \"GBP\", \"EUR\", \"USD\"). Defaults to USD.",
      +  "maxLength": 3,
      +  "type": "string"
      +}
  5. First observed

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare destructiveHint=false and openWorldHint=false, and the description correctly frames the tool as a retrieval that follows a search. However, readOnlyHint=false sits awkwardly against a pure "get" framing, and the description does not explain the side effect the schema hints at (country is recorded for analytics) or what happens for an unknown product ID.

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?

Two sentences, with the core action front-loaded ahead of the usage condition. The second sentence is a long comma-separated inventory of returned fields, which is information-dense but slightly list-like and partly redundant given an output schema exists.

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 three-parameter read tool with a full output schema and safety annotations, the definition covers the essentials: what it returns, when to reach for it, and which siblings precede it. The minor gaps are failure behavior for invalid IDs and the non-read-only annotation signal, neither of which blocks 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?

Schema coverage is 100%, so all three parameters are already documented, including the currency and country codes, which sets a baseline of 3. The description only adds the phrase "in the requested currency," which clarifies that prices render in the currency parameter, but it never mentions country or the analytics-recording behavior of that field.

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 the detailed response for a specific product ID") and then enumerates exactly what detail is returned: merchant description, store info, images, SKU-level variants, colorKey/size matrix, prices and purchase link. Naming discover_products and find_similar_products as the upstream producers makes it distinguishable from every sibling at a glance.

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?

Gives an explicit precondition ("Use this after discover_products or find_similar_products") plus the condition that selects this tool over those: you need detail fields rather than a list. It stops short of stating when not to use it, e.g. whether to batch multiple IDs or avoid calling it for every result of a broad search.

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.