Skip to main content
Glama

Meta Ads: changes

meta_ads_changes
Destructive

Meta Ads, change operations: propose_budget, propose_campaign_status, propose_ad_set_status, propose_ad_status, propose_launch, propose_ad_final_url, propose_ad_set_budget, propose_bid_strategy, propose_ad_set_targeting, create_campaign, create_audience, create_custom_conversion, create_lead_form, create_ad_set, check_creative, create_language_campaign, create_ad, create_first_campaign. A change to an existing object is a proposal: it is applied only after a person approves it, or when the client's auto policy allows a reversible change within limits. New campaigns, ad sets and ads are created paused, with no spend. Creating an audience or a custom conversion does not spend money. Parameters of an operation: get_tool_schema.

Input Schema

NameRequiredDescriptionDefault
paramsNo
operationYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / operation / enum
      Previous value: -[
      -  "propose_budget",
      -  "propose_campaign_status",
      -  "propose_ad_set_status",
      -  "propose_ad_status",
      -  "propose_ad_final_url",
      -  "propose_ad_set_budget",
      -  "propose_bid_strategy",
      -  "propose_ad_set_targeting",
      -  "create_campaign",
      -  "create_audience",
      -  "create_custom_conversion",
      -  "create_lead_form",
      -  "create_ad_set",
      -  "check_creative",
      -  "create_language_campaign",
      -  "create_ad",
      -  "create_first_campaign"
      -]New value: +[
      +  "propose_budget",
      +  "propose_campaign_status",
      +  "propose_ad_set_status",
      +  "propose_ad_status",
      +  "propose_launch",
      +  "propose_ad_final_url",
      +  "propose_ad_set_budget",
      +  "propose_bid_strategy",
      +  "propose_ad_set_targeting",
      +  "create_campaign",
      +  "create_audience",
      +  "create_custom_conversion",
      +  "create_lead_form",
      +  "create_ad_set",
      +  "check_creative",
      +  "create_language_campaign",
      +  "create_ad",
      +  "create_first_campaign"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / operation / enum
      Previous value: -[
      -  "propose_budget",
      -  "propose_campaign_status",
      -  "propose_ad_set_status",
      -  "propose_ad_status",
      -  "propose_ad_final_url",
      -  "propose_ad_set_budget",
      -  "propose_bid_strategy",
      -  "propose_ad_set_targeting",
      -  "create_campaign",
      -  "create_audience",
      -  "create_custom_conversion",
      -  "create_lead_form",
      -  "create_ad_set",
      -  "check_creative",
      -  "create_language_campaign",
      -  "create_ad"
      -]New value: +[
      +  "propose_budget",
      +  "propose_campaign_status",
      +  "propose_ad_set_status",
      +  "propose_ad_status",
      +  "propose_ad_final_url",
      +  "propose_ad_set_budget",
      +  "propose_bid_strategy",
      +  "propose_ad_set_targeting",
      +  "create_campaign",
      +  "create_audience",
      +  "create_custom_conversion",
      +  "create_lead_form",
      +  "create_ad_set",
      +  "check_creative",
      +  "create_language_campaign",
      +  "create_ad",
      +  "create_first_campaign"
      +]
  3. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and openWorldHint=true; the description adds real context beyond that, clarifying that changes are applied only after human approval or an auto policy, and that new campaigns/audiences incur no spend. It still doesn't say what auto-policy limits are or what happens on rejection, so not a 5.

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?

The operation enumeration is long but necessary to expose the enum values, and the behavioral rules follow immediately after. The llm-facing content is front-loaded and there is little waste, though the flat comma list is denser than it needs to be.

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 multiplexed mutation tool with no output schema, the description covers the approval lifecycle, paused-creation behavior, and where to find per-operation parameters. It is nearly complete, with only return values and auto-policy specifics left unaddressed.

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 0% and params is an untyped free-form object, so the schema conveys nothing. The description compensates only by delegating to get_tool_schema, which is reasonable but gives no per-operation parameter meaning for 18 operations.

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 names the resource (Meta Ads) and the class of operations (change operations), then enumerates every enum value, so an agent knows exactly what this tool covers. It does not explicitly contrast with the sibling propose_change or meta_ads, which keeps it from a 5.

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 explains the proposal/approval model and that new objects start paused with no spend, which is useful context. But it never says when to pick this over the generic propose_change or the individual create_ad / create_campaign siblings, so the routing decision is left to inference.

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