Skip to main content
Glama

Tanatasa Beauty

request_order_change

Idempotent

Ask Tanatasa to cancel a paid order that hasn't shipped (kind cancel) or to take back a shipped or delivered order (kind return), with the customer's reason. Staff review it and email the customer; nothing is refunded or changed until then. Repeating the call returns the open request. Unpaid orders need no cancellation: they are never charged.

Input Schema

NameRequiredDescriptionDefault
kindYescancel: a paid order that hasn't shipped. return: a shipped or delivered order.
itemsNoFor a return of only some items: variant_id and quantity from get_order. Omit for the whole order.
reasonYesThe customer's reason, in their words.
order_idYesorder_id from prepare_payment, get_checkout or list_orders, e.g. TN-…
guest_tokenNoPrivate guest session token from create_cart. Retain for cart, checkout and purchase-status calls; no account login needed.
account_tokenNoPrivate account token from sign_in, after the customer gave you the code from their email. Lets quotes and checkout use their cashback credit, and opens their orders.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "anyOf": [
      -    {
      -      "$schema": "http://json-schema.org/draft-07/schema#",
      -      "additionalProperties": true,
      -      "properties": {
      -        "already_requested": {
      -          "type": "boolean"
      -        },
      -        "next_action": {
      -          "type": "string"
      -        },
      -        "order_id": {
      -          "type": "string"
      -        },
      -        "request": {
      -          "additionalProperties": true,
      -          "properties": {
      -            "created_at": {
      -              "type": "string"
      -            },
      -            "kind": {
      -              "type": "string"
      -            },
      -            "reason": {
      -              "type": "string"
      -            },
      -            "request_id": {
      -              "type": "integer"
      -            },
      -            "status": {
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "request_id",
      -            "kind",
      -            "status",
      -            "reason",
      -            "created_at"
      -          ],
      -          "type": "object"
      -        }
      -      },
      -      "required": [
      -        "order_id",
      -        "already_requested",
      -        "request",
      -        "next_action"
      -      ],
      -      "type": "object"
      -    },
      -    {
      -      "additionalProperties": true,
      -      "properties": {
      -        "error": {
      -          "additionalProperties": true,
      -          "properties": {
      -            "code": {
      -              "type": "string"
      -            },
      -            "message": {
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "code",
      -            "message"
      -          ],
      -          "type": "object"
      -        }
      -      },
      -      "required": [
      -        "error"
      -      ],
      -      "type": "object"
      -    }
      -  ],
      -  "type": "object"
      -}New value: +null
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "anyOf": [
      +    {
      +      "$schema": "http://json-schema.org/draft-07/schema#",
      +      "additionalProperties": true,
      +      "properties": {
      +        "already_requested": {
      +          "type": "boolean"
      +        },
      +        "next_action": {
      +          "type": "string"
      +        },
      +        "order_id": {
      +          "type": "string"
      +        },
      +        "request": {
      +          "additionalProperties": true,
      +          "properties": {
      +            "created_at": {
      +              "type": "string"
      +            },
      +            "kind": {
      +              "type": "string"
      +            },
      +            "reason": {
      +              "type": "string"
      +            },
      +            "request_id": {
      +              "type": "integer"
      +            },
      +            "status": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "request_id",
      +            "kind",
      +            "status",
      +            "reason",
      +            "created_at"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "order_id",
      +        "already_requested",
      +        "request",
      +        "next_action"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "additionalProperties": true,
      +      "properties": {
      +        "error": {
      +          "additionalProperties": true,
      +          "properties": {
      +            "code": {
      +              "type": "string"
      +            },
      +            "message": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "code",
      +            "message"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "error"
      +      ],
      +      "type": "object"
      +    }
      +  ],
      +  "type": "object"
      +}
  3. Added

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations, it discloses the approval workflow (staff review, email to customer), that no refund or state change occurs until review, and that repeated calls return the existing open request. This gives real safety/expectation context for a non-read-only tool whose destructiveHint=false could otherwise mislead about immediate effects.

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?

Four tight sentences, each front-loading the essential fact (what it does, the two kinds, the review gate, retry behavior, unpaid edge case). No filler and no repetition of schema content beyond what is needed for context.

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?

With no output schema, the description still tells the agent what happens on success (open request returned, staff review pending) and the retry semantics. Combined with a fully documented 6-parameter schema, nothing material is missing for 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 the enum meanings, partial-return items, and token patterns are already documented in the schema. The description only restates the kind split and that the reason is the customer's own words, adding minimal meaning beyond the schema — baseline 3 applies.

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?

The description uses a concrete verb ('Ask Tanatasa to cancel... or take back') and names both the resource (order) and the two operating modes (cancel vs return) with their eligibility conditions. An agent can distinguish this from checkout/order-read siblings like get_order or list_orders without opening 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 Guidelines5/5

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

It explicitly routes between the two modes ('cancel' for paid-not-shipped, 'return' for shipped/delivered) and adds a genuine exclusion: 'Unpaid orders need no cancellation: they are never charged.' It also tells the agent what happens on repeat invocation, removing ambiguity about retries.

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