Skip to main content
Glama

Budget recommendations

get_budget_recommendations
Read-only

Returns Amazon Ads budget recommendation API fields for campaigns, including suggested budgets and estimated missed impressions, clicks, and sales.

Input Schema

NameRequiredDescriptionDefault
profile_idNoNumeric Amazon Ads profile ID. Optional when this API key has exactly one enabled Ads profile; agentcentral will default it. Call get_account_info for amazon_ads.enabled_profile_ids. Do not use the marketplace ID, tenant ID, or API key prefix.
campaign_idsYesCampaign IDs to get budget recommendations for
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.

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
    • 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. Added

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds some value by disclosing that values are estimates (missed impressions, clicks, sales) rather than actuals, but says nothing about freshness, rate limits, or that the 100-campaign cap limits batching beyond what the schema states.

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?

A single front-loaded sentence with no filler or repetition. It is appropriately brief, though brevity comes at the cost of any routing or behavioral detail.

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, a fully described 4-parameter schema, and annotations covering the read-only/open-world profile, the description does not need to restate returns or safety. The remaining gap is guidance on when to select this versus adjacent recommendation and pacing tools.

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%, including detailed profile_id fallback behavior and the include_raw_rows/include_diagnostics semantics, so the schema does the heavy lifting. The description adds no parameter-level meaning beyond what is already documented, which is the expected baseline of 3.

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 ('Returns') and resource ('Amazon Ads budget recommendation API fields') scoped to campaigns, and enumerates the payload (suggested budgets, estimated missed impressions/clicks/sales). It implicitly separates itself from get_bid_recommendations by naming budget rather than bid, but never calls out that sibling explicitly.

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

Usage Guidelines2/5

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

There is no when-to-use guidance at all: nothing tells the agent to prefer this over get_budget_pacing, get_bid_recommendations, or get_campaign_performance. The only inference available is that it concerns budget recommendations for campaigns, which the agent must derive from the name and payload list.

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.