Skip to main content
Glama

Adbloop Meta Ads

bulk_create_multi_account

Destructive

Launch the SAME campaign set across MULTIPLE ad accounts in one call (up to 5 accounts; chain calls for more). Each account gets its own currency-aware guardrails, capacity check (throttled accounts are skipped, not hammered), and correct Page/Instagram/pixel. WRITES live.

Input Schema

NameRequiredDescriptionDefault
confirmNo
campaignsYes
account_idsYesUp to 5 Meta ad account IDs.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / campaigns / items / properties / geoLocations
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "OPTIONAL specific places instead of whole countries (replaces countries when set). Get keys from search_locations. cities: [{ key, radius (km, 17-80; omit for the city only), country_code }], regions: [{ key, country_code }] (states), zips: [{ key e.g. \"IN:380015\", country_code }] (PIN/ZIP codes). Meta rejects overlapping places (e.g. a PIN inside a city radius). With a Special Ad Category: no zips, and cities need a radius of at least 25 km.",
      +  "properties": {
      +    "cities": {
      +      "items": {
      +        "properties": {
      +          "country_code": {
      +            "type": "string"
      +          },
      +          "key": {
      +            "type": "string"
      +          },
      +          "radius": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "key"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "regions": {
      +      "items": {
      +        "properties": {
      +          "country_code": {
      +            "type": "string"
      +          },
      +          "key": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "key"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "zips": {
      +      "items": {
      +        "properties": {
      +          "country_code": {
      +            "type": "string"
      +          },
      +          "key": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "key"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Adds real behavior beyond the annotations: per-account currency-aware guardrails, an automatic capacity check, and the crucial partial-failure rule that throttled accounts are 'skipped, not hammered'. 'WRITES live' reinforces destructiveHint=true rather than contradicting it. What's missing is what a skipped account means for the response/rollback.

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?

Two dense sentences with the account cap and write warning front-loaded; every clause carries information, and nothing is repeated from structured fields verbatim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested, destructive bulk-write tool with no output schema, the description leaves gaps: no mention of the confirm flag, no indication of what the per-account result looks like, and no pointer to sibling pre-flight tools. It is adequate to call the tool safely but not to predict its outcome.

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 low (33%) — only account_ids is documented at the top level — so the description carries weight, and it does match the 'up to 5' cap on account_ids. However, it never explains the 'confirm' flag or the top-level 'campaigns' array, leaving a destructive-write gate undocumented in both schema and description.

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+resource+scope: 'Launch the SAME campaign set across MULTIPLE ad accounts in one call'. The 'MULTIPLE ad accounts' framing distinguishes it from the single-account sibling bulk_create_campaigns without needing to open 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 Guidelines4/5

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

Gives concrete operational bounds ('up to 5 accounts; chain calls for more') and signals a live write. It does not explicitly say when to prefer estimate_bulk_create or validate_campaigns first, so routing is implied rather than stated.

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