Skip to main content
Glama

fulfillment_cancel

Destructive

Cancel a fulfillment order that has not yet shipped. If cancellation is unavailable, it returns the print service's reason and instructions to relay as-is.

Instructions

Cancel a fulfillment order (if still cancellable).

        Args:
            order_id: Order ID to cancel.

        Only orders that have not yet shipped can be cancelled. When the
        print service has nothing to cancel (an unpaid order is never
        made) or cancels only on a written request, the error message
        says which and how; pass it on to the person as it is.
        

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "order_id": "<order_id>"
    },
    "name": "fulfillment_cancel"
  }
}

Input Schema

NameRequiredDescriptionDefault
order_idYesOrder ID to cancel.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.5.1
    • addedInput schema / properties / order_id / description
      Added value: +"Order ID to cancel."
  2. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuinely new behavioral context: the not-yet-shipped precondition, and the specific failure modes (unpaid orders are never made; some print services cancel only on written request) with the instruction to relay the error verbatim. What it does not say is what a successful cancellation returns or whether it is reversible.

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 scoping qualifier is front-loaded in the first line, and the error-handling paragraph is short and purposeful. The 'Args: order_id: Order ID to cancel.' block is pure duplication of the schema and could be dropped without loss, which keeps this from a 5.

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 one-parameter destructive tool with no output schema, the description covers the essentials: what it acts on, the precondition, and how failures surface. The only remaining gap is post-success behavior, which is minor given that destructiveHint already signals irreversibility.

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?

There is a single parameter with 100% schema description coverage, so the schema already carries the meaning. The description's Args block merely repeats 'Order ID to cancel', adding no format, source, or lookup guidance. Baseline 3 is the correct ceiling here.

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 opens with a specific verb and resource: 'Cancel a fulfillment order', qualified by '(if still cancellable)'. That is enough for an agent to distinguish it from the sibling read tools fulfillment_order and fulfillment_order_status. It stops short of the top mark because it never names the nearby cancel variants (cancel_print_service_order, cancel_queued_job), leaving the agent to infer which cancel applies.

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 gives a real precondition — 'Only orders that have not yet shipped can be cancelled' — which tells the agent when the call will succeed. But it offers no guidance on which sibling to use instead when the precondition fails, and no routing versus fulfillment_alerts or fulfillment_order_status. Usage is implied rather than fully spelled out.

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

Deploy Server

Other Tools