Skip to main content
Glama

get_product_recommendation

Read-only

Translate a customer's primary concern into a product recommendation. primary_concern must be one of: blockout, heat, glare, moisture, privacy, security, automation. Optionally narrow by room (bedroom, lounge, etc.), location, budget, and aesthetic. Returns a recommended product_id with rationale, pass it to get_price or configure_product next. Security concern routes to brochure MCP (Garden Route customers only).

Input Schema

NameRequiredDescriptionDefault
roomNo
locationNo
aestheticNo
max_budget_zarNo
primary_concernYes

Output Schema

NameRequiredDescriptionDefault
notesNo
handoffNo
recommendationsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • removedInput schema / properties / aesthetic / description
      Removed value: -"Optional style preference. Noted in the reply."
    • removedInput schema / properties / location / description
      Removed value: -"Optional customer city or suburb. Accepted but not currently used."
    • removedInput schema / properties / max_budget_zar / description
      Removed value: -"Optional budget in ZAR. Drops options whose 1000x1000mm starting price is above it."
    • removedInput schema / properties / primary_concern / description
      Removed value: -"Main need: blockout, heat, glare, moisture, privacy, security or automation. security returns a Garden Route handoff, not shop products."
    • removedInput schema / properties / room / description
      Removed value: -"Optional room, e.g. \"bedroom\". Noted in the reply."
  2. Changed5 schema fields changed
    • addedInput schema / properties / aesthetic / description
      Added value: +"Optional style preference. Noted in the reply."
    • addedInput schema / properties / location / description
      Added value: +"Optional customer city or suburb. Accepted but not currently used."
    • addedInput schema / properties / max_budget_zar / description
      Added value: +"Optional budget in ZAR. Drops options whose 1000x1000mm starting price is above it."
    • addedInput schema / properties / primary_concern / description
      Added value: +"Main need: blockout, heat, glare, moisture, privacy, security or automation. security returns a Garden Route handoff, not shop products."
    • addedInput schema / properties / room / description
      Added value: +"Optional room, e.g. \"bedroom\". Noted in the reply."
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "handoff": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "product_family": {
      +          "type": "string"
      +        },
      +        "reason": {
      +          "type": "string"
      +        },
      +        "url": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "url",
      +        "product_family",
      +        "reason"
      +      ],
      +      "type": "object"
      +    },
      +    "notes": {
      +      "type": "string"
      +    },
      +    "recommendations": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "currency": {
      +            "const": "ZAR",
      +            "type": "string"
      +          },
      +          "product_id": {
      +            "type": "string"
      +          },
      +          "product_name": {
      +            "type": "string"
      +          },
      +          "reason": {
      +            "type": "string"
      +          },
      +          "shop_url": {
      +            "type": "string"
      +          },
      +          "starting_price_zar_for_1m_x_1m": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "product_id",
      +          "product_name",
      +          "reason",
      +          "starting_price_zar_for_1m_x_1m",
      +          "currency",
      +          "shop_url"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "recommendations"
      +  ],
      +  "type": "object"
      +}
  4. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, and the description adds real context beyond that: what comes back (product_id plus rationale), what to do with it, and a coverage limitation (security routing only for Garden Route customers). It does not contradict the read-only annotation — the tool recommends, it does not create or modify.

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?

Four sentences, front-loaded with the core action and ending with the next-step routing — no wasted framing. Repeating the enum values is mild redundancy against the schema, but it keeps the tool callable from the description alone.

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?

With an output schema present, the description needn't detail return structure, yet it still summarizes the payload and the downstream handoff, which is exactly what an agent needs to chain calls. Coverage of required input, optional narrowing, and the one exceptional routing case makes this complete for a five-parameter read tool.

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 description coverage is 0%, so the description must compensate, and it does: it lists the required concern values and names all four optional narrowing dimensions (room, location, budget, aesthetic), mapping to room, location, max_budget_zar, and aesthetic. It still gives no format or unit hints (e.g. ZAR currency is only inferable from the property name), so it falls just short of full coverage.

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?

The description uses a specific verb+resource ("Translate a customer's primary concern into a product recommendation") and immediately positions itself relative to siblings by naming get_price and configure_product as the natural next calls. An agent can distinguish this recommendation step from search_products or get_product without opening either schema.

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?

It clearly states the trigger (a customer's primary concern) and the follow-on path (pass product_id to get_price or configure_product), plus an explicit routing exception for security concerns to the brochure MCP. The only friction is that "security" is both an accepted primary_concern value and a value that gets routed elsewhere, which leaves the agent slightly unsure whether to call this tool at all for that case.

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