Skip to main content
Glama

Ver ofertas por loja

get_offers
Read-onlyIdempotent

Lista as ofertas de um produto por loja, do mais barato para o mais caro: preço, promoção, estoque e updatedAt (quando o preço foi atualizado). Para resultados que o consumidor consegue receber ou retirar, informe a localização: latitude e longitude (mais preciso) e/ou o CEP. Com localização, cada oferta traz distanceKm (distanceApproximate=true quando veio do CEP), pickup (dá para retirar), delivery (taxa, prazo em minutos e pedido mínimo, ou null se a loja não entrega ali; coveredBy=radius_approximate quer dizer que a entrega por raio foi calculada com a coordenada do CEP e pode não valer: confirme com a loja), openNow e buyUrl (link para o consumidor comprar direto na loja, pelo WhatsApp ou site; nulo se a loja não informou canal). Se requiresPrescription for true, o produto exige receita: não conclua a compra; oriente o consumidor a apresentar a receita na farmácia. Se adult for true, o produto é para maiores de 18: confirme a idade com o consumidor antes de seguir. Se inStoreOnly for true (combustível), é vendido só no local: não há carrinho, retirada nem entrega; mostre preço, distanceKm e mapsUrl (rota até a loja). Os preços estão em currency (ISO 4217); priceType diz como ler: FIXED (fechado), FROM (a partir de), PER_NIGHT (por noite), PER_PERSON (por pessoa), PER_DAY (por dia, aluguel), PER_MONTH (por mês, aluguel de imóvel) e ON_REQUEST (sob consulta). fulfillment diz como chega: DELIVERY, PICKUP, IN_STORE (no local), AT_CUSTOMER (a domicílio), BOOKING (reserva), DIGITAL ou VISIT (visita a imóvel ou veículo). Tudo vai para carrinho (create_cart) com o fulfillment da oferta, menos combustível. storeReliability é a reputação da loja nos últimos 90 dias (score 0 a 100; level HIGH, GOOD, FAIR, LOW ou NEW com poucos pedidos): considere ao recomendar e, com o mesmo preço, a loja mais confiável vem primeiro. shipping (com CEP): a loja envia pelo país; preço por pedido, por kg, frete grátis a partir de (freeAbove), prazo em dias úteis e transportadora; use quote_delivery para o valor exato e fulfillment 'shipping' no carrinho. options: adicionais do item nesta loja (grupos com minSelect e maxSelect, cada opção com id e priceDelta); escolha com o consumidor e mande os ids em create_cart. promotional true: a loja marcou o item como promoção (o promoPrice só vale assim). saleMode: STOCK (pronta entrega), PREORDER (pré-venda: sai a partir de availableOn) ou MADE_TO_ORDER (encomenda: fica pronto em leadTimeDays dias); avise o consumidor do prazo. priceType ON_REQUEST: preço sob consulta (price vazio); use request_quote para pedir orçamento à loja. kind RENTAL: aluguel por período (PER_DAY = por dia); informe startDate e endDate no create_cart e veja as unidades livres em check_availability. images: fotos desta oferta (links públicos; a primeira é a capa); mostre ao consumidor, principalmente em aluguel, hospedagem e sob medida. Para ver trabalhos já feitos pela loja, use get_store_portfolio. radiusKm limita às lojas até essa distância do consumidor (ex.: postos num raio de 5 km, para acompanhar o preço da gasolina).

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": {
      "productId": "<productId>"
    },
    "name": "get_offers"
  }
}

Input Schema

NameRequiredDescriptionDefault
countryNoPaís do consumidor, código de 2 letras (ex.: BR, US, PT). Padrão: BR
latitudeNoLatitude do consumidor
radiusKmNoSó lojas até esta distância do consumidor, em km (0 a 100). Exige localização
longitudeNoLongitude do consumidor
productIdYesid do produto vindo de search_products
postalCodeNoCódigo postal do consumidor (no Brasil, o CEP: ex.: 30140-010). De outro país, informe também country

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare a safe read (readOnlyHint/idempotent/non-destructive), and the description adds substantial behavior beyond that: cheapest-first sorting with storeReliability as tiebreaker, distanceApproximate and coveredBy=radius_approximate caveats, null delivery/buyUrl semantics, and explicit agent instructions (confirm age for adult items, warn about PREORDER lead times). These are operational constraints the schema cannot express.

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?

Nearly every clause carries real information, but it is delivered as one dense run-on block with no grouping or headings, so response-field semantics, edge-case handling and cross-tool routing are all interleaved. For a tool this complex some length is justified, yet the lack of structure makes scanning costly.

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, and the description compensates fully by documenting the returned fields (price, promoPrice, distanceKm, pickup, delivery, openNow, buyUrl, storeReliability, shipping, options, images) along with the enums that govern interpretation (priceType, fulfillment, saleMode, kind). An agent has everything needed to call it and to present 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 the baseline is 3; the description earns extra credit by stating precedence ('latitude e longitude (mais preciso) e/ou o CEP') and by giving a concrete use case for radiusKm (postos num raio de 5 km). It stops short of spelling out behavior when both postalCode and coordinates are supplied, so not a 5.

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?

Opens with a specific verb+resource+scope: 'Lista as ofertas de um produto por loja, do mais barato para o mais caro', which immediately distinguishes it from search_products (catalog discovery) and get_promotions. It also names the sibling tools used for adjacent tasks (create_cart, quote_delivery, request_quote, check_availability, get_store_portfolio), so the agent can place it precisely in the flow.

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?

Gives explicit when-to-use conditions ('Para resultados que o consumidor consegue receber ou retirar, informe a localização') and routing rules for edge cases: prescription items → do not complete purchase; inStoreOnly fuel → no cart/pickup/delivery; ON_REQUEST → use request_quote; RENTAL → check_availability. Alternatives are named rather than left to inference.

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