Skip to main content
Glama

Refund order

refund_order
Destructive

Refund an order back to the original payment source. Refunds the whole order unless item_ids (from get_order) are given. Memberships/packs are terminated on refund unless refund_without_termination is true. [requires scope: money]

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNo
reasonNoCancellation reason (short)
restockNo
item_idsNoPartial refund: item_id values from get_order
order_idYes
refund_without_terminationNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4/5.0
Behavior5/5

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

The annotations already indicate destructiveness, and the description adds meaningful behavioral detail: money returns to the original payment source, memberships/packs are terminated on refund unless refund_without_termination is true, and the required scope is [money]. These are exactly the side effects an agent needs before invoking a destructive refund.

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 tight sentences: main action, full-vs-partial scope, and the critical membership-termination caveat. No filler, and the most decision-relevant details are front-loaded.

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 destructive six-parameter refund tool with no output schema, the description covers the core behavior, the main conditional (item_ids), and the biggest side effect (termination). It doesn't describe response shape or restock/note/reason semantics, but the parameter names are mostly self-explanatory and the required order_id is obvious.

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 only 33%, and the description does partially compensate by explaining item_ids ('from get_order') and refund_without_termination's effect on membership/pack termination. Other parameters like note, reason, restock, and order_id rely on their names or schema-only descriptions, so compensation is incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action — refund an order to the original payment source — and adds key scoping: the whole order is refunded unless item_ids are provided. It doesn't explicitly name or contrast a sibling tool such as cancel_membership, so it stops short of full sibling differentiation.

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

Usage Guidelines3/5

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

It provides useful conditional usage context: full refund by default, partial refund only when item_ids are supplied, and termination can be suppressed with refund_without_termination. However, it doesn't state when to choose this tool over alternatives like cancel_membership or charge_client, leaving alternative routing implicit.

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.

TDQS

A3.7/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, and the descriptions carefully separate operations like attendance_report, list_classes, and get_class_roster. A few reads overlap conceptually (get_client, get_reservation_history, get_credit_history, get_client_notes all return client-related data), but each has a specific output that an agent can distinguish with reasonable effort.

Naming Consistency5/5

Tool names overwhelmingly follow a consistent action_object pattern: add_client_note, cancel_class, freeze_membership, refund_order, set_client_tag, unfreeze_membership. The get_/list_ prefix distinction is used predictably, and auth tools (login, logout, whoami) are standard exceptions rather than inconsistent naming.

Tool Count2/5

41 tools is well beyond the 25+ threshold for a heavy tool set. Although each tool appears to serve a real studio-operations need, the sheer number creates a large surface for an agent to navigate and places significant burden on selection accuracy.

Completeness4/5

The tool set covers the core lifecycle well across clients, classes, memberships, orders, payments, and communications, with no obvious dead ends. Minor gaps exist, such as no update_client profile tool and no class-scheduling creation, but staff workflows can generally be completed.

Resources