Skip to main content
Glama

Acorn Harness

Create a wire harness order

create_order

Create an unpaid order for one or more wire harness designs and get a checkout_url on acornharness.com for the buyer. The buyer opens it to pay (card, Link or wallet, via Stripe) and enter the US shipping address and shipping speed; nothing is charged or built until they pay there, and the link expires after 24 hours. Quote first with quote_harness and confirm the design, quantity and price with the user before calling this. Never ask for or accept card numbers or other payment details in the conversation. Items take the same fields as quote_harness and must be just as complete: pass back each quoted item's config (or design) once the user has confirmed it.

Input Schema

NameRequiredDescriptionDefault
emailNoBuyer's email, only if they gave it: prefills checkout; the receipt, invoice and tracking go there.
itemsYes1–40 wire harness designs. Volume discounts count every harness across all items.
referenceNoBuyer's PO number or note, echoed back on the order.
idempotency_keyNoAny unique string. Retrying with the same key and the same items returns the same order instead of a second one.

Output Schema

NameRequiredDescriptionDefault
idYesOrder id; pass to get_order_status
itemsYes
statusYes
currencyYes
excludesYes
ships_toYes
subtotalYesUSD
harnessesYesTotal harnesses across all items
referenceYes
expires_atYescheckout_url stops working after this time (ISO 8601)
checkout_urlYesWhere the buyer pays, on acornharness.com
volume_discountYesFraction off every item, e.g. 0.1
shipping_optionsYes
next_volume_breakYes
lead_time_business_daysYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, and the description usefully adds that nothing is charged or built until payment, the link expires in 24 hours, and payment runs through Stripe. However, it does not reconcile the idempotentHint=false annotation with the idempotency_key parameter's replay behavior, which is exactly the kind of behavioral nuance an agent needs before retrying. Good added context, but the retry semantics gap keeps it at a 3.

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?

The outcome and the checkout_url come first, followed by lifecycle details and then the sequencing constraint, so it is well front-loaded. It is dense and slightly long, but nearly every clause carries operational information; only the payment-method enumeration ("card, Link or wallet, via Stripe") is arguably surplus.

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 mutating order-creation tool with a rich nested item schema and an output schema, the description covers the essential extras: the unpaid state, checkout link expiry, who supplies shipping, the quote-first workflow, and the prohibition on handling card data. Nothing an agent needs in order to invoke it correctly is missing.

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 the item schema is extremely detailed, so the baseline is 3. The description adds one genuinely useful rule not in the schema: items must be as complete as in quote_harness, and the quoted item's config or design should be passed back once confirmed. Beyond that it defers to the schema rather than explaining individual fields.

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 unpaid order for one or more wire harness designs") and the concrete outcome ("get a checkout_url on acornharness.com for the buyer"). It clearly separates this from the sibling quote_harness by noting that quoting precedes ordering and that nothing is charged until the buyer pays.

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?

Explicitly prescribes the sequence: "Quote first with quote_harness and confirm the design, quantity and price with the user before calling this." It also gives a clear prohibition (never ask for or accept card numbers) and tells the agent to reuse the confirmed quoted item fields, so both when-to-use and when-not-to-use are covered.

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.