Skip to main content
Glama

Product fee estimates

get_product_fee_estimates
Read-only

Return Amazon fee estimates. view=current, history, and changes read report-backed GET_FBA_ESTIMATED_FBA_FEES_TXT_DATA snapshots; view=live requests Amazon's Product Fees API for one SKU and caller-supplied candidate price. Live results preserve Amazon-provided fee details and estimation time, and are estimates rather than actual-fee guarantees.

Input Schema

NameRequiredDescriptionDefault
skuNoFilter by exact seller SKU. Required for view=live.
asinNoFilter by exact ASIN.
viewNocurrent returns the latest report-backed snapshot; history returns bounded snapshot rows; changes compares two compatible snapshots; live requests Amazon's Product Fees API for one SKU and a caller-supplied price.current
fnskuNoFilter by exact FNSKU.
limitNoMax rows (1-1000, default 100).
priceNolive only. Candidate listing price, zero or greater.
offsetNoPagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue.
sort_byNoColumn to sort by. Allowed columns depend on view.
end_dateNohistory only. Snapshot end date (YYYY-MM-DD). Defaults to today.
sort_orderNoSort direction.desc
start_dateNohistory only. Snapshot start date (YYYY-MM-DD). Defaults to 30 days ago.
compare_dateNochanges only. Older snapshot date (YYYY-MM-DD). Pass with current_date, or omit both to compare the two latest snapshots.
current_dateNochanges only. Newer snapshot date (YYYY-MM-DD). Pass with compare_date, or omit both to compare the two latest snapshots.
snapshot_dateNocurrent only. Exact report snapshot date (YYYY-MM-DD). Defaults to latest within the bounded serving window.
shipping_priceNolive only. Optional candidate shipping price.
include_raw_rowsNoFor tabular results, false returns compact rows capped at MCP_TEXT_ROW_PREVIEW_LIMIT (default 10), regardless of limit. Complete-page and custom non-tabular responses may ignore this option; see tool-specific notes. Default true; large full-row responses are capped separately. Freshness fields require include_diagnostics=true in either row mode, where supported.
include_diagnosticsNoTrue enables expanded freshness diagnostics. Where supported, snapshot_capture_at and snapshot_data_through_date are populated only when include_diagnostics=true, in both compact and full-row modes; values may still be null if source data is unavailable. Default false. Basic empty-result data-window diagnostics are included by default when available.
is_amazon_fulfilledNolive only. Required fulfillment flag for Amazon's estimate.

Output Schema

NameRequiredDescriptionDefault
evidenceNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed30 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedInput schema / properties / sort_by / enum
      Previous value: -[
      -  "snapshot_date",
      -  "estimated_fee_total",
      -  "estimated_referral_fee_per_unit",
      -  "expected_fulfillment_fee_per_unit",
      -  "estimated_fixed_closing_fee",
      -  "your_price",
      -  "sales_price",
      -  "asin",
      -  "sku",
      -  "fnsku",
      -  "product_size_tier",
      -  "current_snapshot_date",
      -  "change_type",
      -  "estimated_fee_total_delta",
      -  "estimated_referral_fee_per_unit_delta",
      -  "expected_fulfillment_fee_per_unit_delta",
      -  "current_estimated_fee_total",
      -  "asin",
      -  "sku",
      -  "fnsku"
      -]New value: +[
      +  "snapshot_date",
      +  "estimated_fee_total",
      +  "estimated_referral_fee_per_unit",
      +  "expected_fulfillment_fee_per_unit",
      +  "estimated_fixed_closing_fee",
      +  "your_price",
      +  "sales_price",
      +  "asin",
      +  "sku",
      +  "fnsku",
      +  "product_size_tier",
      +  "current_snapshot_date",
      +  "change_type",
      +  "estimated_fee_total_delta",
      +  "estimated_referral_fee_per_unit_delta",
      +  "expected_fulfillment_fee_per_unit_delta",
      +  "current_estimated_fee_total"
      +]
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedOutput schema / additionalProperties
      Previous value: -trueNew value: +{}
    • removedOutput schema / properties / evidence / properties / effective_scope / $ref
      Removed value: -"#/properties/evidence/properties/requested_scope"
    • addedOutput schema / properties / evidence / properties / effective_scope / additionalProperties
      Added value: +false
    • addedOutput schema / properties / evidence / properties / effective_scope / properties
      Added value: +{
      +  "end_date": {
      +    "anyOf": [
      +      {
      +        "format": "date",
      +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "filters": {
      +    "additionalProperties": {},
      +    "propertyNames": {
      +      "type": "string"
      +    },
      +    "type": "object"
      +  },
      +  "group_by": {
      +    "items": {
      +      "maxLength": 128,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "marketplace_id": {
      +    "anyOf": [
      +      {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "reporting_time_zone": {
      +    "anyOf": [
      +      {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "sort": {
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "direction": {
      +          "enum": [
      +            "asc",
      +            "desc"
      +          ],
      +          "type": "string"
      +        },
      +        "field": {
      +          "maxLength": 128,
      +          "minLength": 1,
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "field",
      +        "direction"
      +      ],
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "start_date": {
      +    "anyOf": [
      +      {
      +        "format": "date",
      +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  }
      +}
    • addedOutput schema / properties / evidence / properties / effective_scope / required
      Added value: +[
      +  "marketplace_id",
      +  "start_date",
      +  "end_date",
      +  "reporting_time_zone",
      +  "group_by",
      +  "sort",
      +  "filters"
      +]
    • addedOutput schema / properties / evidence / properties / effective_scope / type
      Added value: +"object"
    • removedOutput schema / properties / evidence / properties / grain / items / $ref
      Removed value: -"#/properties/evidence/properties/tool"
    • addedOutput schema / properties / evidence / properties / grain / items / maxLength
      Added value: +128
    • addedOutput schema / properties / evidence / properties / grain / items / minLength
      Added value: +1
    • addedOutput schema / properties / evidence / properties / grain / items / type
      Added value: +"string"
    • removedOutput schema / properties / evidence / properties / join_keys / items / properties / field / $ref
      Removed value: -"#/properties/evidence/properties/tool"
    • addedOutput schema / properties / evidence / properties / join_keys / items / properties / field / maxLength
      Added value: +128
    • addedOutput schema / properties / evidence / properties / join_keys / items / properties / field / minLength
      Added value: +1
    • addedOutput schema / properties / evidence / properties / join_keys / items / properties / field / type
      Added value: +"string"
    • changedOutput schema / properties / evidence / properties / observed / properties / data_start / anyOf
      Previous value: -[
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "format": "date",
      +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / evidence / properties / observed / properties / data_through / anyOf
      Previous value: -[
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "format": "date",
      +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / evidence / properties / requested_scope / properties / end_date / anyOf
      Previous value: -[
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "format": "date",
      +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / evidence / properties / requested_scope / properties / filters / propertyNames
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / evidence / properties / requested_scope / properties / group_by / items / $ref
      Removed value: -"#/properties/evidence/properties/tool"
    • addedOutput schema / properties / evidence / properties / requested_scope / properties / group_by / items / maxLength
      Added value: +128
    • addedOutput schema / properties / evidence / properties / requested_scope / properties / group_by / items / minLength
      Added value: +1
    • addedOutput schema / properties / evidence / properties / requested_scope / properties / group_by / items / type
      Added value: +"string"
    • removedOutput schema / properties / evidence / properties / requested_scope / properties / sort / items / properties / field / $ref
      Removed value: -"#/properties/evidence/properties/tool"
    • addedOutput schema / properties / evidence / properties / requested_scope / properties / sort / items / properties / field / maxLength
      Added value: +128
    • addedOutput schema / properties / evidence / properties / requested_scope / properties / sort / items / properties / field / minLength
      Added value: +1
    • addedOutput schema / properties / evidence / properties / requested_scope / properties / sort / items / properties / field / type
      Added value: +"string"
    • changedOutput schema / properties / evidence / properties / requested_scope / properties / start_date / anyOf
      Previous value: -[
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "format": "date",
      +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed2 schema fields changed
    • changedInput schema / properties / include_diagnostics / description
      Previous value: -"True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available."New value: +"True enables expanded freshness diagnostics. Where supported, snapshot_capture_at and snapshot_data_through_date are populated only when include_diagnostics=true, in both compact and full-row modes; values may still be null if source data is unavailable. Default false. Basic empty-result data-window diagnostics are included by default when available."
    • changedInput schema / properties / include_raw_rows / description
      Previous value: -"False returns compact rows. Default true."New value: +"For tabular results, false returns compact rows capped at MCP_TEXT_ROW_PREVIEW_LIMIT (default 10), regardless of limit. Complete-page and custom non-tabular responses may ignore this option; see tool-specific notes. Default true; large full-row responses are capped separately. Freshness fields require include_diagnostics=true in either row mode, where supported."
  3. Changed5 schema fields changed
    • changedOutput schema / properties / evidence / properties / basis / properties / date / items / enum
      Previous value: -[
      -  "order_date",
      -  "reporting_date",
      -  "click_attribution_date",
      -  "posted_date",
      -  "settlement_date",
      -  "snapshot_date",
      -  "live_observation_time",
      -  "event_time",
      -  "effective_date",
      -  "not_applicable",
      -  "not_reported"
      -]New value: +[
      +  "order_date",
      +  "reporting_date",
      +  "click_attribution_date",
      +  "posted_date",
      +  "financial_event_group_start",
      +  "settlement_date",
      +  "snapshot_date",
      +  "live_observation_time",
      +  "event_time",
      +  "effective_date",
      +  "not_applicable",
      +  "not_reported"
      +]
    • changedOutput schema / properties / evidence / properties / entity_types / items / enum
      Previous value: -[
      -  "account",
      -  "marketplace",
      -  "product",
      -  "variation_family",
      -  "listing",
      -  "offer",
      -  "inventory_item",
      -  "fulfillment_center",
      -  "order",
      -  "order_item",
      -  "campaign",
      -  "ad_group",
      -  "ad",
      -  "target",
      -  "keyword",
      -  "search_query",
      -  "portfolio",
      -  "store",
      -  "audience_segment",
      -  "dsp_advertiser",
      -  "shipment",
      -  "inbound_plan",
      -  "fulfillment_operation",
      -  "transaction",
      -  "settlement",
      -  "financial_event",
      -  "return",
      -  "reimbursement",
      -  "promotion",
      -  "review",
      -  "catalog_definition",
      -  "audit_event",
      -  "not_applicable"
      -]New value: +[
      +  "account",
      +  "marketplace",
      +  "product",
      +  "variation_family",
      +  "listing",
      +  "offer",
      +  "inventory_item",
      +  "fulfillment_center",
      +  "order",
      +  "order_item",
      +  "campaign",
      +  "ad_group",
      +  "ad",
      +  "target",
      +  "keyword",
      +  "search_query",
      +  "portfolio",
      +  "store",
      +  "audience_segment",
      +  "dsp_advertiser",
      +  "shipment",
      +  "inbound_plan",
      +  "fulfillment_operation",
      +  "transaction",
      +  "settlement",
      +  "financial_event",
      +  "financial_event_group",
      +  "return",
      +  "reimbursement",
      +  "promotion",
      +  "review",
      +  "catalog_definition",
      +  "audit_event",
      +  "not_applicable"
      +]
    • changedOutput schema / properties / evidence / properties / join_keys / items / properties / entity_type / enum
      Previous value: -[
      -  "account",
      -  "marketplace",
      -  "product",
      -  "variation_family",
      -  "listing",
      -  "offer",
      -  "inventory_item",
      -  "fulfillment_center",
      -  "order",
      -  "order_item",
      -  "campaign",
      -  "ad_group",
      -  "ad",
      -  "target",
      -  "keyword",
      -  "search_query",
      -  "portfolio",
      -  "store",
      -  "audience_segment",
      -  "dsp_advertiser",
      -  "shipment",
      -  "inbound_plan",
      -  "fulfillment_operation",
      -  "transaction",
      -  "settlement",
      -  "financial_event",
      -  "return",
      -  "reimbursement",
      -  "promotion",
      -  "review",
      -  "catalog_definition",
      -  "audit_event",
      -  "not_applicable"
      -]New value: +[
      +  "account",
      +  "marketplace",
      +  "product",
      +  "variation_family",
      +  "listing",
      +  "offer",
      +  "inventory_item",
      +  "fulfillment_center",
      +  "order",
      +  "order_item",
      +  "campaign",
      +  "ad_group",
      +  "ad",
      +  "target",
      +  "keyword",
      +  "search_query",
      +  "portfolio",
      +  "store",
      +  "audience_segment",
      +  "dsp_advertiser",
      +  "shipment",
      +  "inbound_plan",
      +  "fulfillment_operation",
      +  "transaction",
      +  "settlement",
      +  "financial_event",
      +  "financial_event_group",
      +  "return",
      +  "reimbursement",
      +  "promotion",
      +  "review",
      +  "catalog_definition",
      +  "audit_event",
      +  "not_applicable"
      +]
    • changedOutput schema / properties / evidence / properties / join_keys / items / properties / role / enum
      Previous value: -[
      -  "account_id",
      -  "marketplace_id",
      -  "asin",
      -  "advertised_asin",
      -  "purchased_asin",
      -  "child_asin",
      -  "parent_asin",
      -  "seller_sku",
      -  "fnsku",
      -  "order_id",
      -  "order_item_id",
      -  "campaign_id",
      -  "ad_group_id",
      -  "ad_id",
      -  "target_id",
      -  "keyword_id",
      -  "search_query",
      -  "portfolio_id",
      -  "shipment_id",
      -  "inbound_plan_id",
      -  "operation_id",
      -  "transaction_id",
      -  "settlement_id",
      -  "promotion_id",
      -  "not_applicable"
      -]New value: +[
      +  "account_id",
      +  "marketplace_id",
      +  "asin",
      +  "advertised_asin",
      +  "purchased_asin",
      +  "child_asin",
      +  "parent_asin",
      +  "seller_sku",
      +  "fnsku",
      +  "order_id",
      +  "order_item_id",
      +  "campaign_id",
      +  "ad_group_id",
      +  "ad_id",
      +  "target_id",
      +  "keyword_id",
      +  "search_query",
      +  "portfolio_id",
      +  "shipment_id",
      +  "inbound_plan_id",
      +  "operation_id",
      +  "transaction_id",
      +  "financial_event_group_id",
      +  "settlement_id",
      +  "promotion_id",
      +  "not_applicable"
      +]
    • changedOutput schema / properties / evidence / properties / metric_families / items / enum
      Previous value: -[
      -  "sales",
      -  "traffic",
      -  "advertising",
      -  "inventory",
      -  "returns",
      -  "reimbursements",
      -  "fees",
      -  "profitability",
      -  "catalog",
      -  "rank",
      -  "fulfillment",
      -  "pricing",
      -  "promotions",
      -  "reviews",
      -  "audit",
      -  "availability",
      -  "not_applicable"
      -]New value: +[
      +  "sales",
      +  "traffic",
      +  "advertising",
      +  "inventory",
      +  "returns",
      +  "reimbursements",
      +  "payouts",
      +  "fees",
      +  "profitability",
      +  "catalog",
      +  "rank",
      +  "fulfillment",
      +  "pricing",
      +  "promotions",
      +  "reviews",
      +  "audit",
      +  "availability",
      +  "not_applicable"
      +]
  4. Changed6 schema fields changed
    • addedInput schema / properties / is_amazon_fulfilled
      Added value: +{
      +  "description": "live only. Required fulfillment flag for Amazon's estimate.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / price
      Added value: +{
      +  "description": "live only. Candidate listing price, zero or greater.",
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / shipping_price
      Added value: +{
      +  "description": "live only. Optional candidate shipping price.",
      +  "minimum": 0,
      +  "type": "number"
      +}
    • changedInput schema / properties / sku / description
      Previous value: -"Filter by exact seller SKU."New value: +"Filter by exact seller SKU. Required for view=live."
    • changedInput schema / properties / view / description
      Previous value: -"current returns the latest report-backed snapshot; history returns bounded snapshot rows; changes compares two compatible snapshots deterministically."New value: +"current returns the latest report-backed snapshot; history returns bounded snapshot rows; changes compares two compatible snapshots; live requests Amazon's Product Fees API for one SKU and a caller-supplied price."
    • changedInput schema / properties / view / enum
      Previous value: -[
      -  "current",
      -  "history",
      -  "changes"
      -]New value: +[
      +  "current",
      +  "history",
      +  "changes",
      +  "live"
      +]
  5. Added

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already establish that this is a read-only, non-destructive operation, but the description adds meaningful context about data provenance: report-backed GET_FBA_ESTIMATED_FBA_FEES_TXT_DATA snapshots versus live Product Fees API calls. It also discloses that live results are estimates rather than actual-fee guarantees and preserve Amazon-provided fee details and estimation time, which is useful behavioral context beyond the annotations.

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?

The description is three dense sentences with no filler. The core purpose and view-mode distinction are front-loaded, and the estimate caveat is placed at the end where it serves as a natural qualification.

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?

Given the complex 18-parameter schema, full schema coverage, and an output schema, the description covers the essential conceptual split between report-backed views and live API calls. It does not discuss pagination, sorting dependencies, or diagnostics options, but those are adequately handled by the schema and output schema.

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 input schema already documents all 18 parameters in detail. The description reinforces the most consequential parameter semantics by explaining the view modes and noting that live mode requires one SKU and a caller-supplied candidate price, but it does not add much beyond what the schema already provides.

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 states a specific verb and resource ("Return Amazon fee estimates") and distinguishes the four view modes by data source: report-backed snapshots versus Amazon's live Product Fees API. It does not explicitly differentiate this tool from closely named siblings such as get_fba_storage_fees or get_profitability_review, so it falls short of the top score for 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 gives useful mode-level guidance by explaining that current/history/changes read report-backed snapshots while live calls Amazon's Product Fees API for one SKU and a candidate price. However, it does not explicitly say when to choose this tool over sibling fee or profitability tools, nor does it state exclusions or prerequisites beyond the live-view SKU requirement.

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.