Skip to main content
Glama

eatmeprint-ordering

Place a real order (spends money, ships a physical product)

place_order
Destructive

Places a REAL order for physical macarons shipped to a real address, and returns a crypto deposit address to send funds to. Confirm the total, the delivery address and the allergen warning with the person you are acting for BEFORE calling this. Pass either images (nine URLs, simplest — the set is built for you) or the set_hash and add_to_cart_fields returned by a previous preview_set call. Returns an order id, a crypto deposit address and amount, and a status link that needs no account or password. The order only reaches the bakery after the payment confirms. A recipient phone number is REQUIRED - carriers need it to generate a label, so collect it before calling.

Input Schema

NameRequiredDescriptionDefault
noteNoOptional short message for the card in the box.
emailYesAn address a human actually reads.
imagesNoNine public https image URLs in grid order. Simplest route: the set is built and carted for you. Omit if passing set_hash + add_to_cart_fields instead.
set_hashNoFrom preview_set. Requires add_to_cart_fields too.
recipientYesWho receives the box, and where.
shipping_idNoOptional: force a specific shipping-method instance id. Normally omit.
pay_currencyNoCrypto ticker to pay in, e.g. "usdttrc20". Optional; a default is chosen.
max_total_usdNoOptional safety ceiling in USD. The shipping cost is only known once the order exists, so set this to the most your human agreed to pay. If the real total is higher, the order is still created but NO payment instruction is returned.
reorder_nonceNoSet this ONLY to deliberately place a second, separate order with identical details (same set, same recipient). Any distinct value works. Without it, an identical repeat is treated as a retry and returns the original order.
idempotency_keyNoOptional explicit key. If omitted, one is derived from the order details, so retrying the identical request is safe and will not create a duplicate.
confirm_total_usdNoConfirm a total your human has approved. Use this to RESUME an order that already exists: after an over-ceiling result, or when a repeat call matched an existing order and the payment instruction was withheld. Set it to the exact total shown. This never creates a second order - it returns the existing one WITH its payment instruction. This is the correct way to proceed; do NOT use reorder_nonce for this.
add_to_cart_fieldsNoThe `add_to_cart.fields` object exactly as returned by preview_set. Required when using set_hash instead of images.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already flag destructive=true and openWorld=true, but the description goes well beyond them: money is actually spent, the product physically ships, the order only reaches the bakery after payment confirms, retries are deduplicated via a derived key, and exceeding max_total_usd still creates the order while withholding payment instructions. The idempotentHint=false vs. 'retrying the identical request is safe' tension is resolved in-text by distinguishing retry-dedup from deliberate reorders, so it is a nuance rather than a contradiction.

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?

A dense paragraph with no filler: the highest-stakes fact (real order, real money, real shipment) leads, the confirmation prerequisite follows, then the input paths and return values. Every sentence carries distinct operational information an agent would otherwise have to guess.

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?

For a 12-parameter, nested-object, money-spending tool with no output schema, the description still covers return values (order id, deposit address and amount, no-account status link), the payment-gated fulfillment model, and the recovery path via confirm_total_usd. Nothing an agent needs in order to call this safely is missing.

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 an extra point by framing the images-vs-set_hash choice as a cross-parameter decision and recommending the simplest route ('nine URLs, simplest — the set is built for you'). It also reinforces the hard phone requirement, though that is already stated in the nested 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?

States a specific verb and resource ('Places a REAL order for physical macarons shipped to a real address') and immediately names the return artifact (crypto deposit address). It is clearly distinguishable from preview_set (which produces the set_hash) and check_order (which presumably tracks status), so an agent can route without opening a schema.

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 preconditions ('Confirm the total, the delivery address and the allergen warning with the person you are acting for BEFORE calling this'), an either/or input path ('Pass either images ... or the set_hash and add_to_cart_fields returned by a previous preview_set call'), and a pointed exclusion ('do NOT use reorder_nonce for this'). This is exactly the when/when-not/alternative guidance the dimension rewards.

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