Skip to main content
Glama

Financial events

get_financial_events
Read-only

fee_breakdown supports exact event_type (Shipment, Refund, Adjustment, ServiceFee) and component_type filters in SQL before aggregation and pagination. For storage postings use grain='raw_component', event_type='ServiceFee', and component_type='FBAStorageBilling' or 'FBALongTermStorageBilling'; omit asin/order_id to retain account-level rows. ASIN/order-item pivots include only matching components and still exclude rows without an ASIN/order respectively. Filters are not valid for profitability. Return Finances v0 financial-event rows and deterministic ASIN economics. view='fee_breakdown' returns raw order components when order_id is supplied; otherwise grain='asin' returns the existing ASIN pivot, grain='order_item' returns bulk order/SKU/ASIN fee pivots, and grain='raw_component' returns component rows across the date range. view='profitability' returns ASIN-level shipment_principal, source-signed refund_principal, source-signed refund_net, revenue, fees, tax, tax_withheld, promotions, net, units, refund-event coverage, and data-gap fields. revenue remains shipment_principal + refund_principal for backward compatibility. Promotions and marketplace-facilitator tax Amazon withheld are separate signed components (component_type 'Promotion' and 'ItemWithheldTax:'; a repeat on one item is numbered, e.g. 'Promotion#2'): they are included in net and net_profit and never counted as fees. Its money fields are selected by financial-event posted_date, not order date; order_item_revenue is an independently filtered purchase-date reference, so posted-date economics must not be subtracted from order-date sales as though both cutoffs represented the same orders. Fees on off-Amazon fulfillment (MCF) orders, which carry no Principal, are excluded from total_fees and net_profit and returned in off_amazon_fulfillment_fees (net_including_off_amazon_fulfillment reconciles); prior_period_order_share reports how much posted shipment principal came from orders placed before start_date. Profitability includes Shipment/Refund events only and excludes all ad spend, FBA storage fees, inbound freight, COGS, and account-level Adjustment/ServiceFee events; responses expose date_basis, scope, excluded_costs, and reconciliation_note. Account-level Adjustment/ServiceFee rows remain available with view='fee_breakdown' and grain='raw_component', where they are surfaced for any marketplace key. Rows are attributed to the marketplace Amazon reports for each event, and a marketplace's rows can include components in another currency (for example cross-border fees), so money is scoped to the marketplace currency by default; set include_all_currencies=true to include all component currencies (amounts are then mixed across currencies and should not be summed). Rows carry data_gap='no_refund_events_in_period' when refund adjustments are absent. For pre-settlement Transaction View rows use get_payment_transactions; for finalized settlements use get_settlement_economics.

Input Schema

NameRequiredDescriptionDefault
asinNoFilter by ASIN
viewNoFinancial events view: fee_breakdown returns fee components by ASIN/order grain; profitability returns ASIN economics over financial events.fee_breakdown
grainNofee_breakdown view only. Date-range output grain when order_id is omitted: asin returns the existing ASIN pivot; order_item returns one row per posted_date/order_id/ASIN/SKU/event_type with common fee components pivoted; raw_component returns one row per fee component.asin
limitNoMax rows (1-1000, default 20).
offsetNoPagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue.
sort_byNoColumn to sort by. Allowed columns depend on view and order_id mode.
end_dateNoOptional. YYYY-MM-DD end date for posted_date. The range may span at most 366 days.
order_idNofee_breakdown view only. Specific order ID returns raw component rows for that order. Without dates it searches from the day before the order's stored purchase date through 364 days after it, not only the recent 90 days; order_lookup reports the window searched.
event_typeNofee_breakdown only. Exact event type filter, applied before aggregation and pagination: Shipment, Refund, Adjustment, or ServiceFee.
sort_orderNoSort directiondesc
start_dateNoOptional. YYYY-MM-DD start date for posted_date. The range may span at most 366 days.
component_typeNofee_breakdown only. Exact, case-sensitive component type filter before aggregation and pagination, e.g. FBAStorageBilling or FBALongTermStorageBilling. Pivot totals include only matching components; use grain='raw_component' for account-level fees without an order/ASIN.
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.
include_all_currenciesNoBy default, money is scoped to the marketplace currency so amounts are not summed across USD/CAD/MXN etc. Set true to include all component currencies (amounts are then mixed and should not be summed).

Output Schema

NameRequiredDescriptionDefault
evidenceNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed29 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"
    • 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
    • addedInput schema / properties / component_type
      Added value: +{
      +  "description": "fee_breakdown only. Exact, case-sensitive component type filter before aggregation and pagination, e.g. FBAStorageBilling or FBALongTermStorageBilling. Pivot totals include only matching components; use grain='raw_component' for account-level fees without an order/ASIN.",
      +  "maxLength": 200,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / event_type
      Added value: +{
      +  "description": "fee_breakdown only. Exact event type filter, applied before aggregation and pagination: Shipment, Refund, Adjustment, or ServiceFee.",
      +  "enum": [
      +    "Shipment",
      +    "Refund",
      +    "Adjustment",
      +    "ServiceFee"
      +  ],
      +  "type": "string"
      +}
  3. Changed2 schema fields changed
    • changedInput schema / properties / end_date / description
      Previous value: -"Optional. YYYY-MM-DD end date for posted_date."New value: +"Optional. YYYY-MM-DD end date for posted_date. The range may span at most 366 days."
    • changedInput schema / properties / start_date / description
      Previous value: -"Optional. YYYY-MM-DD start date for posted_date."New value: +"Optional. YYYY-MM-DD start date for posted_date. The range may span at most 366 days."
  4. Changed2 schema fields changed
    • changedInput schema / properties / order_id / description
      Previous value: -"fee_breakdown view only. Specific order ID returns raw component rows for that order."New value: +"fee_breakdown view only. Specific order ID returns raw component rows for that order. Without dates it searches from the day before the order's stored purchase date through 364 days after it, not only the recent 90 days; order_lookup reports the window searched."
    • changedInput schema / properties / sort_by / enum
      Previous value: -[
      -  "posted_date",
      -  "order_id",
      -  "seller_sku",
      -  "event_type",
      -  "component_amount",
      -  "component_type",
      -  "asin",
      -  "revenue",
      -  "shipment_principal",
      -  "refund_principal",
      -  "refund_net",
      -  "fba_fee",
      -  "commission",
      -  "tax",
      -  "other_fees",
      -  "net",
      -  "net_profit",
      -  "total_fees"
      -]New value: +[
      +  "posted_date",
      +  "order_id",
      +  "seller_sku",
      +  "event_type",
      +  "component_amount",
      +  "component_type",
      +  "asin",
      +  "revenue",
      +  "shipment_principal",
      +  "refund_principal",
      +  "refund_net",
      +  "fba_fee",
      +  "commission",
      +  "tax",
      +  "tax_withheld",
      +  "promotions",
      +  "other_fees",
      +  "net",
      +  "net_profit",
      +  "total_fees"
      +]
  5. 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."
  6. 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"
      +]
  7. Added

TDQS

A3.8/5.0
Behavior5/5

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

Annotations only declare a safe read, but the description discloses far more: profitability excludes ad spend, FBA storage fees, inbound freight, COGS and Adjustment/ServiceFee events; MCF fees are excluded from total_fees and surfaced separately; money is scoped to marketplace currency unless include_all_currencies is set; data_gap flags are described. These are exactly the caveats an agent needs to interpret results correctly and none are derivable from 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense block with no front-loaded purpose statement and no paragraph breaks for a 15-parameter tool. Content is repeated across the description and schema (currency scoping and include_all_currencies, the order_id lookup window, the fee_breakdown grain behaviors). The information is valuable but badly ordered, so an agent must read the whole wall to find the entry point.

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 tool with two views, three grains, 15 optional parameters and an output schema, the description covers the semantics an agent needs: date-basis separation, exclusion scope, reconciliation fields, currency mixing, and refund gap flags. It errs toward over-coverage by re-explaining return fields the output schema already defines.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description genuinely adds semantics: event_type/component_type filter before aggregation and pagination, omitting asin/order_id retains account-level rows, and pivots drop non-matching components plus rows lacking an ASIN or order. Those are behavioral consequences of parameter choices, not restatements of the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The actual purpose only surfaces mid-paragraph in 'Return Finances v0 financial-event rows and deterministic ASIN economics', after a long opening about filter mechanics for fee_breakdown. The verb+resource is specific once found, and the closing sentence distinguishes it from get_payment_transactions and get_settlement_economics. But a reader scanning the first sentence gets parameter trivia instead of what the tool returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

Strong routing content: it names get_payment_transactions for pre-settlement Transaction View and get_settlement_economics for finalized settlements, and states 'Filters are not valid for profitability'. It also gives conditional selection between views and grains. It lacks an explicit when-not-to-use statement beyond those two hand-offs and never tells the agent when to prefer get_profitability_review or get_product_performance.

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.