Skip to main content
Glama

25karats — Made-to-Order Wedding & Engagement Rings

price_product

Read-onlyIdempotent

Exact live price in USD for a fully configured item — the same number the customer pays on 25karats.com (computed from current metal market pricing, not a cached feed price). Identify the item by variant_id (from get_product) or style_code, optionally with metal. For wedding bands pass ring_size/width/thickness/color/finish (option_value ids or display values from get_product); for his & hers sets pass his/her objects with those keys; for engagement rings pass stone_type and ring_size. Unset axes use the product's defaults. Returns the price, the resolved configuration, and a deep_link_url that opens the product page pre-configured for checkout. Invalid values return the list of valid ones — correct and retry. Any option group can also be set through the options object keyed by the option_id values returned by get_product (the only way to configure generic jewelry). His & hers options and engraving belong inside the respective his/her object. Inputs that do not apply to the item (stone_type on a band, top-level ring_size on a set) are rejected with the inputs that do; settings sold without a center stone say so in configuration and notes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
herNoHis & hers sets: configuration and optional engraving for the her band
hisNoHis & hers sets: configuration and optional engraving for the his band
urlNo
slugNo
colorNo
metalNo
widthNoBands: option_value id or display value, e.g. '6' (mm)
finishNo
optionsNoMap option_id (from get_product) to an option_value id or display label; an alternative to the named axes for any customizable item
ring_sizeNo
thicknessNo
stone_typeNoEngagement rings with a diamond-type choice: 'natural' or 'lab' (or the id from get_product). Rejected on settings sold without a center stone (get_product shows stone_types: [] and setting_only: true)
style_codeNo
variant_idNoVariant id from get_product (preferred)
engraving_fontNoWedding bands only; for H&H put this inside his/her
engraving_textNoWedding bands only; for H&H put this inside his/her

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
metalYesCustomer-facing metal name
notesYes
priceYes
titleYes
currencyYes
lead_timeYes
metal_codeYes
style_codeYes
price_as_ofYes
availabilityYes
configurationYes
deep_link_urlYes

TDQS

A5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, but the description adds valuable behavior context: the price is computed from live metal pricing (not cached), the response includes a deep_link_url, invalid inputs return a list of valid values, and settings without a center stone are flagged in configuration/notes. No contradiction exists; the description enriches beyond annotations.

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

Conciseness5/5

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

Though long, every sentence serves a distinct purpose and the text is front-loaded with the core purpose. It's logically structured by product category (bands, sets, rings) and error handling, with no redundant statements. The grammar is compact and information-dense; the conciseness is appropriate for the tool's complexity.

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?

The tool is complex (16 params, nested objects, output schema) but the description covers all major aspects: identification, per-product-type configuration, defaults, error recovery, generic option mapping, and special cases (engraving, settings without center stones). The presence of an output schema reduces the need to explain return structure, but the description still mentions key return components (price, resolved configuration, deep_link_url). It is complete for the intended use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema coverage at 50%, the description compensates thoroughly. It explains the priority of variant_id vs style_code, maps named axes to specific product types, clarifies the options object as an alternative for generic jewelry, and gives examples like width='6' (mm) and stone_type='natural' or 'lab'. It also clarifies nesting for his/her objects and edge cases like engraving placement, adding significant meaning beyond 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 description states a specific verb and resource: 'Exact live price in USD for a fully configured item' with explicit context that it's the same number the customer pays on 25karats.com. It clearly distinguishes itself from siblings like get_product (which retrieves product data) by focusing on pricing, and from search tools by being a computation tool for configured items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when and how to use the tool: identifies parameters for variant_id/style_code, specifies required inputs per product type (wedding bands, his & hers sets, engagement rings), explains handling of unset axes using defaults, and states that invalid values return valid ones for retry. It also warns about non-applicable inputs being rejected, giving clear when-not-to-use guidance.

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.

TDQS

A4.6/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: browse_collection is for deterministic category browsing while search_products is for free-text discovery, and get_product, get_product_images, and price_product each cover a separate aspect of product research. The diamond search is also cleanly separated from catalog product search.

Naming Consistency5/5

All eight tools follow a consistent snake_case verb_noun pattern: browse_, get_, list_, price_, and search_. Any variability is purely semantic (e.g., list_collections vs browse_collection) rather than a style mismatch.

Tool Count5/5

Eight tools is well-scoped for a made-to-order jewelry e-commerce assistant: taxonomy, product search/browse, product detail, images, pricing, diamond inventory, and store policy information are all covered without redundant or unnecessary tools.

Completeness5/5

The tool set covers the full shopper journey: discover collections, search products, inspect product details and images, configure and price a product, research diamonds, and find store policies. The deep_link_url from price_product provides an effective handoff to checkout, eliminating any hard dead end.

Resources