Skip to main content
Glama

SoundCreation Catalog

Get product details

get_product
Read-only

Get full details for one product by id, including description, specs, stock and VAT-included localized price. When the product is NOT in stock the record carries substitutes[]: up to 5 in-stock products of the same kind in the same price band (the same alternatives the product page shows), each as a brief record with its own product_id, price and product_url - offer them instead of searching. Every record also carries companions[]: up to 8 in-stock accessories used together with this product, one per role (role is a short label such as stand, cable, strings, case; other = no specific role) - the list our add-to-cart box shows, chosen from what customers buy together and checked with AI - each as a brief record with its own product_id, price and product_url; when the customer asks what else they need or decides to buy, offer these first (empty = we have no accessory list). Products with a stored buying guide also carry buying_guide: who the product suits (audience.levels are fixed English tokens: beginner, intermediate, professional, child, teacher, gift), typical use cases, plain-language explanations of terms, questions and answers (the last one, when present, lists the accessories of companions[]), and - while the product is in stock - a spec-based comparison with up to 3 in-stock alternatives (each with its own product_id, price and product_url). The guide is Romanian for language=ro and English otherwise; it was written with AI from our product data and a sourced fact sheet. A product sold only in a set quantity (for example speakers sold only in pairs) carries sale_quantity: price is per piece, minimum_quantity / quantity_multiple give the rule, price_for_minimum_quantity is what the customer pays at least, note says it in the record language. A product with quantity prices also carries sale_quantity.quantity_prices: the price per piece from each quantity, in the record currency.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "product_id": "<product_id>"
    },
    "name": "get_product"
  }
}

Input Schema

NameRequiredDescriptionDefault
languageNoLocale for text + pricing. Default ro.
product_idYesCatalog product id.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only cover the safety profile (readOnlyHint, openWorldHint), and the description goes far beyond that: it discloses conditional record shapes (substitutes[] only when out of stock, companions[] only when an accessory list exists, buying_guide only when stored, sale_quantity only for set-quantity products) and states what empty arrays mean. That is exactly the conditional-return behavior an agent cannot infer from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in sentence one, and nearly every clause encodes return-field semantics that have nowhere else to live. But it is a single dense paragraph of semicolon-chained clauses covering five distinct record sections, which hurts scanability; field-by-field structure would serve the agent much better.

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?

There is no output schema, so the description carries the full burden of documenting return values, and it does so thoroughly across substitutes, companions, buying_guide, sale_quantity and quantity_prices. An agent has enough to call the tool and interpret every branch of the response.

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 description coverage is 100% and both parameters are documented there, so baseline is 3. The description only lightly reinforces parameter meaning by tying language=ro to Romanian guide text and 'record language'/'record currency', adding marginal value over the schema.

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 opening sentence names a specific verb and resource scoped to a single record ('Get full details for one product by id') and enumerates what those details contain. This cleanly separates it from search_products and compare_products without needing to name them.

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?

Usage context is clear ('instead of searching', 'offer these first', 'when the customer asks what else they need'), and it explicitly tells the agent to prefer returned substitutes/companions over doing another search. However, it never explicitly frames when to call get_product versus search_products at the tool-selection level, so a small gap remains.

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