Skip to main content
Glama

ActionShip by Teapplix Demo

Get Shipping Rates for Order

teapplix_get_rates_for_order
Read-only

Get shipping rates for an existing Teapplix order. Requires TxnId, From (ship-from address or profile), and a Packages array (each package must include Method; Weight and Dimensions default to the order's stored values if omitted). [DEMO]

Input Schema

NameRequiredDescriptionDefault
FromYesShip-from address OR a saved shipping profile — supply exactly one shape.
TxnIdYesTeapplix order ID.
OptionsNoAdvanced, rarely used. Omit unless the user explicitly requests features such as signature confirmation, insurance type, COD, etc.
PackagesYesOne or more packages to rate. Each package must include Method; Weight and Dimensions default to the order's stored values if omitted. All packages must use the same carrier. To compare carriers, prefer a RATESHOP method; otherwise make separate calls per carrier.
ProviderNoForce the rate source. MARKETPLACE = rate through the marketplace's carrier accounts at marketplace-negotiated rates (e.g. Amazon Buy Shipping, Walmart shipping programs — same carriers like UPS/FedEx/USPS but at the marketplace's rates); NATIVE = rate through the seller's own carrier account from the shipping profile. When omitted on a RATESHOP method, the API automatically compares both marketplace and native rates and returns the cheapest — check Rate.Provider in the response to see which source won (marketplace name like "amazon" if marketplace, absent if native). When omitted on a direct method, uses whichever provider is configured on the profile.
ShipDateNoShip date (YYYY-MM-DD). Defaults to today. Interpreted as Pacific timezone.
CustomsDeclarationNoInternational shipments only. Omit unless shipping outside the domestic country. Fields: ReasonForExport, IOssNumber, Items: [{Description, Quantity, Value, Weight, HSTariffNumber, CountryOfOrigin}].

Output Schema

NameRequiredDescriptionDefault
RateNoRate for the requested method. If present with Error set, the method is unavailable on this route (Transportation=0) — treat as a failure. If absent, the requested method failed — inspect AltRates for carrier suggestions. For RATESHOP, this is the winning (lowest-cost) candidate.
ZoneNoCarrier zone for the selected rate (e.g. "3").
AltRatesNoCarrier-provided alternate quotes. May appear alongside a successful Rate (carrier suggestions) or without Rate (requested method failed). Items with Error set are methods the carrier could not quote. For RATESHOP, all non-winning evaluated candidates — valid higher-cost quotes and failed methods.
WarningsNoWarnings about the rate response. When the main Rate has Error set (service unavailable), Warnings contains the specific reason the carrier cannot service this route.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedInput schema / properties / Provider
      Added value: +{
      +  "description": "Force the rate source. MARKETPLACE = rate through the marketplace's carrier accounts at marketplace-negotiated rates (e.g. Amazon Buy Shipping, Walmart shipping programs — same carriers like UPS/FedEx/USPS but at the marketplace's rates); NATIVE = rate through the seller's own carrier account from the shipping profile. When omitted on a RATESHOP method, the API automatically compares both marketplace and native rates and returns the cheapest — check Rate.Provider in the response to see which source won (marketplace name like \"amazon\" if marketplace, absent if native). When omitted on a direct method, uses whichever provider is configured on the profile.",
      +  "enum": [
      +    "MARKETPLACE",
      +    "NATIVE"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / AltRates / items / properties / Error / description
      Previous value: -"This will only be returne inside AltRates, never the main Rate return. When running RATESHOP, this is set to indicate that one of the candidate rates did not return a successful result and is skipped. Having this means that the winning rate may not be fully optimal as we have some methods fail to obtain a rate for comparison. It is up to calling logic to decide to proceed or force user to solve the failure."New value: +"Error message indicating a rate could not be obtained. Can appear on both AltRates and the main Rate. On AltRate: a candidate method failed (e.g. during RATESHOP evaluation) — the winning Rate may not be fully optimal. On main Rate: the specifically-requested method is unavailable on this route (service unavailable). Transportation will be 0. Callers must check Rate.Error before treating Rate as a valid quote."
    • changedOutput schema / properties / AltRates / items / properties / Provider / description
      Previous value: -"This typically will indicate that this rate is supplied by a e-commerce marketplace like Amazon or Walmart that supplied their own shipping labels"New value: +"Present when the rate comes from a marketplace's carrier account. The value is the marketplace name in lowercase (e.g. \"amazon\", \"ebay\", \"walmart\", \"tiktok\") — NOT the literal string \"MARKETPLACE\". Absent or empty when the rate comes from the seller's own native carrier account. Note: if you set Provider in the request, you already know the source — this response field is mainly useful when Provider was omitted and you need to detect whether the profile's default used a marketplace rate."
    • changedOutput schema / properties / Rate / description
      Previous value: -"Rate for the requested method when it succeeded. Absent means the requested method failed — inspect AltRates for carrier suggestions. For RATESHOP, this is the winning (lowest-cost) candidate."New value: +"Rate for the requested method. If present with Error set, the method is unavailable on this route (Transportation=0) — treat as a failure. If absent, the requested method failed — inspect AltRates for carrier suggestions. For RATESHOP, this is the winning (lowest-cost) candidate."
    • changedOutput schema / properties / Rate / properties / Error / description
      Previous value: -"This will only be returne inside AltRates, never the main Rate return. When running RATESHOP, this is set to indicate that one of the candidate rates did not return a successful result and is skipped. Having this means that the winning rate may not be fully optimal as we have some methods fail to obtain a rate for comparison. It is up to calling logic to decide to proceed or force user to solve the failure."New value: +"Error message indicating a rate could not be obtained. Can appear on both AltRates and the main Rate. On AltRate: a candidate method failed (e.g. during RATESHOP evaluation) — the winning Rate may not be fully optimal. On main Rate: the specifically-requested method is unavailable on this route (service unavailable). Transportation will be 0. Callers must check Rate.Error before treating Rate as a valid quote."
    • changedOutput schema / properties / Rate / properties / Provider / description
      Previous value: -"This typically will indicate that this rate is supplied by a e-commerce marketplace like Amazon or Walmart that supplied their own shipping labels"New value: +"Present when the rate comes from a marketplace's carrier account. The value is the marketplace name in lowercase (e.g. \"amazon\", \"ebay\", \"walmart\", \"tiktok\") — NOT the literal string \"MARKETPLACE\". Absent or empty when the rate comes from the seller's own native carrier account. Note: if you set Provider in the request, you already know the source — this response field is mainly useful when Provider was omitted and you need to detect whether the profile's default used a marketplace rate."
    • changedOutput schema / properties / Warnings / description
      Previous value: -"optional warning message, you can safely ignore"New value: +"Warnings about the rate response. When the main Rate has Error set (service unavailable), Warnings contains the specific reason the carrier cannot service this route."
  2. First observed

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds one genuinely useful behavioral flag, the '[DEMO]' marker, plus the note that Weight/Dimensions silently fall back to stored order values. It says nothing about latency, rate-limiting, or how failed carrier lookups behave.

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?

Three tight sentences with the resource named first and the required inputs following; nothing is padding. The trailing '[DEMO]' tag is terse but its meaning is unexplained, slightly weakening the structure.

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?

With an output schema present and full parameter coverage in the schema, the description need not explain return values or optional fields, and it correctly front-loads the three required inputs. Its one real gap is the unresolved overlap with the sibling teapplix_get_rates tool, which the description never addresses.

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 100%, so the schema already documents every parameter exhaustively, including the defaulting behavior the description restates. The description adds no syntax, format, or constraint detail beyond what the schema provides, so the baseline of 3 is correct.

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?

States a specific verb and resource ('Get shipping rates for an existing Teapplix order'), which distinguishes it from the bare rate tool by anchoring it to an order. However, it never names teapplix_get_rates or teapplix_get_order_ship_options, so the agent must infer the boundary rather than being told.

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?

The description enumerates required inputs (TxnId, From, Packages) which implies usage 'when you have an existing order', but gives no explicit when-to-use vs. when-not guidance and no routing to the sibling rate/ship-option tools. Rich guidance about Method, RATESHOP, and Provider lives in the schema rather than the description.

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