Skip to main content
Glama

AdsAgent — Meta Ads MCP

copy_ad_clone_structure

Prepare a same-account 1:1 campaign/ad-set tree clone, keeping each ad's creative. Pass ad_account_id and exactly one source_campaign_id or source_adset_id; copies=1-10. paused is default; inherit may resume spend. Use copy_ad_quick_copy to expand selected ads. Review exclusions, then launch_confirm after approval Use the workflow's original link_id when exposed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
copiesNo
start_timeNo
ad_account_idYes
status_optionNopaused
engagement_modeNopreserve_post
source_adset_idNo
connection_contextNo
source_campaign_idNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
messageNo
retryableNo
support_refNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedOutput schema / else / then / properties / category
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / else / then / properties / expected
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / else / then / properties / failure_kind
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / else / then / properties / responsibility_hint
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / else / then / properties / route
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / else / then / properties / user_visible
      Added value: +{
      +  "type": "boolean"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / connection_context
      Added value: +{
      +  "pattern": "^mctx_v1_[0-9a-f]{64}$",
      +  "type": "string"
      +}
  3. Changed3 schema fields changed
    • addedOutput schema / else / else / properties / approval_request / properties / summary / properties / preflight / properties / checks / items / properties / provider_error_code
      Added value: +{
      +  "type": "integer"
      +}
    • addedOutput schema / else / else / properties / approval_request / properties / summary / properties / preflight / properties / checks / items / properties / provider_error_subcode
      Added value: +{
      +  "type": "integer"
      +}
    • addedOutput schema / else / else / properties / approval_request / properties / summary / properties / preflight / properties / checks / items / properties / reason_code
      Added value: +{
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • addedOutput schema / else / else / properties / approval_request / properties / summary / properties / preflight
      Added value: +{
      +  "properties": {
      +    "ad_account_id": {
      +      "type": "string"
      +    },
      +    "billing": {
      +      "properties": {
      +        "available_funds_major": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "balance_semantics": {
      +          "type": "string"
      +        },
      +        "currency": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "low_remaining_spend_cap": {
      +          "type": "boolean"
      +        },
      +        "note": {
      +          "type": "string"
      +        },
      +        "reported_balance_major": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "spend_cap_remaining_major": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "checked_at": {
      +      "type": "string"
      +    },
      +    "checks": {
      +      "items": {
      +        "properties": {
      +          "asset_id": {
      +            "type": "string"
      +          },
      +          "asset_type": {
      +            "type": "string"
      +          },
      +          "message": {
      +            "type": "string"
      +          },
      +          "status": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "status": {
      +      "type": "string"
      +    },
      +    "timing": {
      +      "properties": {
      +        "account_local_now": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "hours_left_today": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "note": {
      +          "type": "string"
      +        },
      +        "schedule_valid": {
      +          "type": "boolean"
      +        },
      +        "timezone_name": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "utc_offset_hours": {
      +          "type": "number"
      +        },
      +        "windows": {
      +          "items": {
      +            "properties": {
      +              "end_time": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "hours_remaining": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "hours_until_start": {
      +                "type": "number"
      +              },
      +              "paused": {
      +                "type": "boolean"
      +              },
      +              "potential_delivery_hours_today": {
      +                "type": "number"
      +              },
      +              "start_time": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "version": {
      +      "type": "integer"
      +    },
      +    "warnings": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "version",
      +    "checked_at",
      +    "ad_account_id",
      +    "status",
      +    "checks",
      +    "warnings"
      +  ],
      +  "type": "object"
      +}
  5. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly=false, destructive=false, openWorld=false, so the safety profile is covered. The description adds meaningful behavioral context beyond that: 'paused is default; inherit may resume spend' warns that a status choice can restart spend, and the reference to review/approval implies a staged, non-immediate mutation. It stops short of stating auth requirements or whether the copy is reversible, so not a full 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?

Front-loads purpose, then packs constraints, defaults, alternatives, and next steps into a compact paragraph with no filler sentences. Structure is dense rather than wasteful, though it runs on and has a missing punctuation break before 'Use the workflow's original link_id when exposed', slightly hurting readability.

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 needn't be described. For a complex 8-parameter, staged-clone tool the description covers purpose, key inputs, defaults, and the confirm workflow. It is nearly complete but omits guidance on engagement_mode and start_time, which an agent would need to call correctly.

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%, so the description carries the burden. It explains ad_account_id, the source_campaign_id/source_adset_id exclusivity, copies=1-10, and the paused default. However, it leaves engagement_mode (preserve_post/new_creatives), start_time, and connection_context entirely undocumented, so several parameters remain opaque.

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

Purpose5/5

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

States a specific verb and resource: 'Prepare a same-account 1:1 campaign/ad-set tree clone, keeping each ad's creative.' It also scopes it ('same-account 1:1') and explicitly distinguishes itself from a named sibling ('Use copy_ad_quick_copy to expand selected ads'), so an agent can tell the two apart without opening either schema.

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

Usage Guidelines5/5

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

Gives the prerequisite inputs ('ad_account_id and exactly one source_campaign_id or source_adset_id'), the range limit ('copies=1-10'), the alternative tool for a different workflow ('copy_ad_quick_copy to expand selected ads'), and the downstream sequence ('Review exclusions, then launch_confirm after approval'). This is explicit routing and workflow context.

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