Skip to main content
Glama

Request a quote from a proxy shopper

request_quote

Create an order with a proxy shopper via 2-of-3 escrow and wait for a quote over Nostr; nothing is paid. Returns order ID, price breakdown, and quote validation.

Instructions

Step 2: create an order with one shopper × escrow combination (offer_index from the last find_offers with the same shop_url, region and payment, or both shopper and escrow pubkeys) and wait up to wait_seconds for the quote. Sends a signed, encrypted order request over Nostr; the delivery address is encrypted for the shopper (the escrow can read it only in a dispute). Nothing is paid. Returns the order id, the price breakdown, and our validation of the quote: rate deviation from our own rate sources, the recomputed 2-of-3 escrow address, the timelocks T1/T2. If no quote arrives in time the order stays open; follow it with get_order. Next: accept_quote or cancel_order.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYesitems to buy at the shop (1–20 lines)
escrowNoescrow's pubkey (64 hex), instead of offer_index; needs shopper too
regionYesthe shop's region code, prefix-matched: country 'JP', prefecture 'JP-13', Japanese municipality 'JP-13-13104'
addressYesdelivery address; encrypted end to end for the shopper
paymentNobtc-signet (default) or usdc-evm; must match the find_offers call
shopperNoshopper's pubkey (64 hex), instead of offer_index; needs escrow too
shop_urlYesthe shop's URL, e.g. https://shop.example/
offer_indexNoindex of the offer in the last find_offers result (same shop_url, region, payment)
wait_secondsNohow long to wait for the quote, in seconds (default 60; 0 = do not wait)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior4/5

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

Annotations declare the mutation/safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), which is typical for a create operation, and the description does not contradict them. It adds real behavioral value: signed/encrypted Nostr order request, address encrypted end-to-end with escrow able to read only in a dispute, 'nothing is paid', and the timeout behavior (order stays open).

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?

Front-loaded with the action and the key selection rule, then the behavioral disclosure, then the return summary and next steps. Dense but every clause carries information; slightly long, though no filler.

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 no output schema, the description still covers what is returned (order id, price breakdown, rate deviation, recomputed 2-of-3 escrow address, timelocks T1/T2) and what happens on timeout, plus the follow-up tool. Nothing material is missing for a 9-parameter flow 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 coverage is 100%, so the baseline is 3, but the description adds cross-call semantics the schema cannot: offer_index must reference the last find_offers result with the same shop_url/region/payment, and shopper+escrow are the alternative to offer_index. It does not restate field formats, which the schema already handles.

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 ('create an order', 'request a quote') with scope ('one shopper × escrow combination') and explicitly frames itself as 'Step 2' of the flow. It distinguishes itself from find_offers, accept_quote and cancel_order by name.

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 routing: offer_index must come from the last find_offers with matching shop_url, region and payment, or supply both shopper and escrow pubkeys instead. It names the next alternatives (accept_quote or cancel_order) and the fallback (get_order) if no quote arrives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.