Skip to main content
Glama

issue_refund

Refund part or all of an order to the original payment method, with built-in checks for time limits, refundable balance, and approval on amounts over $100.

Instructions

Refund part or all of an order to the original payment method. Policy (enforced by the tool): within 30 days of the order, never more than what is left to refund, and refunds over $100 are held for a human specialist's approval. Call get_order first to check amounts.

Input Schema

NameRequiredDescriptionDefault
amountYesRefund amount in USD, e.g. 24.00.
reasonYesShort reason in the customer's words.
order_idYesOrder number, e.g. NW-5001.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false, so the description carries most of the behavioral burden — and it does well, disclosing the 30-day window, the remaining-balance ceiling, and that refunds over $100 are held for human approval rather than executed. What it omits is the observable result of a held refund (does the call succeed with a pending status or fail?), which matters for a mutation tool.

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?

Three short sentences, front-loaded with the action, followed by enforced constraints and the prerequisite call. No filler; each clause carries actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-param mutation with no output schema, the agent knows the action, the hard policy limits, the prerequisite lookup, and that high-value refunds are gated. The remaining gap is what a successful versus held response looks like, but nothing prevents a correct invocation.

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 coverage is 100%, so amount, reason, and order_id are already fully documented with format examples. The description adds only the notion that 'amount' may be partial, which is marginal. Baseline 3 applies when the schema does the heavy lifting.

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 — refunding part or all of an order to the original payment method — which no sibling tool (get_order, escalate_to_human, etc.) shares. The scope ('part or all') is precise enough that an agent can pick this tool without inspecting the schema.

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?

Explicitly names a prerequisite sibling and action: 'Call get_order first to check amounts.' The policy block also functions as when-not guidance (over 30 days, exceeding remaining balance, >$100 requires human approval). It stops short of naming escalate_to_human as the alternative for the held case, leaving that inference to the agent.

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