Skip to main content
Glama

Accept the shopper's refund

accept_refund_offer
Destructive

Co-sign and broadcast a shopper's cooperative refund offer to return order funds to your wallet. Preview first; pass confirm to sign, send, and broadcast.

Instructions

Moves money: co-sign and broadcast a cooperative refund the shopper offered (e.g. the item was sold out or delivery failed), returning the funds to your wallet. Refused if the offer does not pay you as the refund template requires. Without confirm: true it shows the offer and its check. Errors if there is no offer (get_order shows refund_offer).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
confirmNotrue to really do it (sign / send / broadcast); omitted or false = preview only, nothing happens
order_idYesorder id (32 hex characters) from request_quote or list_orders

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover the safety profile (destructive, non-idempotent, open-world), and the description adds behavior annotations cannot: a preview mode that shows the offer and its check, a refusal condition tied to the refund template, and an error condition when no offer exists. These are exactly the preconditions an agent needs before a money-moving call.

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 'Moves money:' to signal stakes, then two dense sentences covering effect, failure mode, preview gating, and prerequisite. Parenthetical examples add length but carry useful context rather than 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?

For a 2-parameter destructive tool with no output schema, the description covers effect, confirmation gating, refusal semantics, error routing, and the lookup needed to find an offer. Nothing essential for a correct invocation 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 still adds value by specifying what the non-confirm path actually returns ('shows the offer and its check'), which the schema only summarizes as 'preview only, nothing happens'. order_id semantics are left entirely to 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?

States a specific verb and resource: co-sign and broadcast a cooperative refund the shopper offered, with the effect spelled out (funds return to your wallet). The word 'cooperative' plus 'the shopper offered' distinguishes it from the unilateral sibling refund_after_timelock.

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

Usage Guidelines4/5

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

Gives concrete trigger scenarios (item sold out, delivery failed) and a prerequisite pointer to get_order, which shows refund_offer when no offer exists. It does not explicitly contrast with refund_after_timelock or accept_quote, so routing is clear but not fully disambiguated.

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