Skip to main content
Glama

Compare reseller selling fees

compare_fees
Read-onlyIdempotent

Compare what a US sale keeps after fees on 7 platforms. Example: price=45, item_cost=12 ranks platforms by profit.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
priceYesSale price, USD.
item_costNoItem cost, USD.
shipping_costNoYour postage cost, USD.
shipping_chargedNoShipping buyer pays, USD.
ebay_promoted_rate_percentNoeBay promoted rate, percent.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
notesYes
inputsYes
resultsYes
currencyYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed18 schema fields changed
    • changedInput schema / properties / ebay_promoted_rate_percent / description
      Previous value: -"eBay Promoted Listings ad rate as a percent of price plus shipping. Only affects eBay."New value: +"eBay promoted rate, percent."
    • changedInput schema / properties / item_cost / description
      Previous value: -"What you paid for the item in USD. Adds profit, margin, and ROI."New value: +"Item cost, USD."
    • changedInput schema / properties / price / description
      Previous value: -"Sale price in USD, before shipping."New value: +"Sale price, USD."
    • changedInput schema / properties / shipping_charged / description
      Previous value: -"Shipping the buyer pays you in USD. eBay, Etsy, Depop, and Mercari charge fees on it. Ignored for Poshmark and Vinted. Leave out for free shipping."New value: +"Shipping buyer pays, USD."
    • changedInput schema / properties / shipping_cost / description
      Previous value: -"What you pay for postage in USD. Not used for Poshmark or Vinted, where the buyer pays the label."New value: +"Your postage cost, USD."
    • removedOutput schema / properties / currency / description
      Removed value: -"Currency of every amount, always USD."
    • removedOutput schema / properties / inputs / description
      Removed value: -"The inputs used, with defaults filled in."
    • removedOutput schema / properties / notes / description
      Removed value: -"Caveats about the estimate."
    • removedOutput schema / properties / results / description
      Removed value: -"One entry per platform, best first."
    • removedOutput schema / properties / results / items / properties / fee / description
      Removed value: -"Total fees in USD."
    • removedOutput schema / properties / results / items / properties / fee_breakdown / description
      Removed value: -"How the fee is made up."
    • removedOutput schema / properties / results / items / properties / margin_percent / description
      Removed value: -"Profit as a percent of price plus shipping charged."
    • removedOutput schema / properties / results / items / properties / name / description
      Removed value: -"Platform display name."
    • removedOutput schema / properties / results / items / properties / platform / description
      Removed value: -"Platform id."
    • removedOutput schema / properties / results / items / properties / profit / description
      Removed value: -"Profit in USD after item cost and shipping cost, present when costs were given."
    • removedOutput schema / properties / results / items / properties / rates_last_verified / description
      Removed value: -"Date the platform rate was last verified."
    • removedOutput schema / properties / results / items / properties / roi_percent / description
      Removed value: -"Profit as a percent of item cost, null when no item cost was given."
    • removedOutput schema / properties / results / items / properties / you_keep / description
      Removed value: -"Sale price plus shipping charged, minus fees, in USD."
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "currency": {
      +      "description": "Currency of every amount, always USD.",
      +      "type": "string"
      +    },
      +    "inputs": {
      +      "additionalProperties": false,
      +      "description": "The inputs used, with defaults filled in.",
      +      "properties": {
      +        "ebay_promoted_rate_percent": {
      +          "type": "number"
      +        },
      +        "item_cost": {
      +          "type": "number"
      +        },
      +        "price": {
      +          "type": "number"
      +        },
      +        "shipping_charged": {
      +          "type": "number"
      +        },
      +        "shipping_cost": {
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "price",
      +        "shipping_charged",
      +        "item_cost",
      +        "shipping_cost",
      +        "ebay_promoted_rate_percent"
      +      ],
      +      "type": "object"
      +    },
      +    "notes": {
      +      "description": "Caveats about the estimate.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "results": {
      +      "description": "One entry per platform, best first.",
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "fee": {
      +            "description": "Total fees in USD.",
      +            "type": "number"
      +          },
      +          "fee_breakdown": {
      +            "description": "How the fee is made up.",
      +            "type": "string"
      +          },
      +          "margin_percent": {
      +            "description": "Profit as a percent of price plus shipping charged.",
      +            "type": "number"
      +          },
      +          "name": {
      +            "description": "Platform display name.",
      +            "type": "string"
      +          },
      +          "platform": {
      +            "description": "Platform id.",
      +            "type": "string"
      +          },
      +          "profit": {
      +            "description": "Profit in USD after item cost and shipping cost, present when costs were given.",
      +            "type": "number"
      +          },
      +          "rates_last_verified": {
      +            "description": "Date the platform rate was last verified.",
      +            "type": "string"
      +          },
      +          "roi_percent": {
      +            "description": "Profit as a percent of item cost, null when no item cost was given.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "you_keep": {
      +            "description": "Sale price plus shipping charged, minus fees, in USD.",
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "platform",
      +          "name",
      +          "fee",
      +          "you_keep",
      +          "fee_breakdown",
      +          "rates_last_verified"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "currency",
      +    "inputs",
      +    "results",
      +    "notes"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare the full safety profile (readOnly, idempotent, non-destructive, closed-world). The description adds the US geography constraint and the 7-platform scope, which is useful, but it never names the platforms being compared, leaving a notable gap for a comparison 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?

Two tight sentences, front-loaded with the core purpose and followed by a concrete example. No filler; every clause carries 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?

An output schema exists, so return values need not be spelled out, and annotations cover the safety profile. The description is nearly complete but omits which 7 platforms are compared, which an agent might want to know before calling.

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 all five parameters with units and bounds. The description only echoes price and item_cost from the required/example fields and adds no syntax or semantics beyond the schema, so baseline 3 applies.

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 (compare) and resource (net proceeds after fees) with a concrete scope: US sales across 7 platforms. It is clearly distinguishable, though the lone sibling (check_username) is unrelated, so no differentiation effort is needed.

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 example 'price=45, item_cost=12 ranks platforms by profit' implies how to invoke it and what the output is, but there is no explicit when-to-use or when-not guidance and no named alternative. Usage is only implied.

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.