Skip to main content
Glama

Metadata MCP Connector

Create Campaign — Precision Optimization (1×1×1)

create_campaign

Create a draft campaign using Precision Optimization (1x1x1), with a separate experiment for each configured audience, ad, and offer combination. Supports LinkedIn, Facebook, Instagram, Google Ads, Reddit, and Microsoft Ads. Ads are attached individually through ads.list; ads.groups creates named Metadata platform ad groups only when the user asks for them, each with at least two distinct compatible ads (the same ad type on LinkedIn) and a name of at most 50 characters. Returns the draft campaign and channel configuration or validation errors. This tool does not launch it.

Input Schema

NameRequiredDescriptionDefault
campaign_dataYesComplete campaign configuration data

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / campaign_data / properties / linkedin / properties / ads / properties / groups
      Added value: +{
      +  "description": "Named Metadata platform ad groups for Precision/METADATA campaigns, ONLY when explicitly requested. Each group needs at least two distinct compatible LinkedIn ads of the same type. Names are capped at 50 characters. These are not native LinkedIn campaign groups or Channel-First containers. May be combined with list.",
      +  "items": {
      +    "properties": {
      +      "ads": {
      +        "items": {
      +          "type": "integer"
      +        },
      +        "type": "array"
      +      },
      +      "name": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "ads"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / campaign_data / properties / linkedin / properties / ads / properties / list / description
      Previous value: -"Array of ad IDs for LinkedIn, each sent as its own request. This is the default way to attach ads. LinkedIn has no ad-group concept, so all LinkedIn ads go here."New value: +"Array of LinkedIn ad IDs, attached individually. Default unless the user explicitly asks for grouped ads. May be combined with groups."
    • changedInput schema / properties / campaign_data / properties / reddit / properties / ads / properties / list / description
      Previous value: -"Array of Reddit ad IDs (from create_update_image_ad / create_update_video_ad with channels=['REDDIT']), each sent as its own request. Like LinkedIn, Reddit uses list only — no ad groups."New value: +"Array of Reddit ad IDs (from create_update_image_ad / create_update_video_ad with channels=['REDDIT']), attached individually. Reddit uses list only — no ad groups in this tool."
  2. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare that this is a non-read-only, non-destructive, closed-world write. The description adds genuinely new behavior beyond that: the 1x1x1 experiment fan-out (a side effect on campaign structure), how ads attach individually via ads.list versus named groups, and that failures surface as validation errors from the same call. It still leaves the silent-failure traps (channel-locked Lead Gen offers, platform default US location) to the schema rather than the description.

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?

Four sentences, front-loaded with the core behavior, then channel coverage, then the ad-group caveat, then the return/no-launch boundary. No filler, though the ad-group sentence is dense and packs several constraints into one run-on.

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?

Covers purpose, channel breadth, ad-attachment mechanics, return values ('draft campaign and channel configuration or validation errors'), and the launch boundary — which is enough given a very rich 100%-documented schema and no output schema. The gap is workflow ordering: it never says that ads, offers, and the budget group must exist first, nor points at launch_campaign or check_campaign_launch_readiness.

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

Parameters5/5

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

Schema coverage is 100%, so baseline is 3, and the description still adds value on top: it explains that ads are attached individually through ads.list, that ads.groups creates named Metadata platform ad groups rather than native platform groups, and that a group needs at least two distinct compatible ads (same ad type on LinkedIn) with a 50-character name cap. That is placement and constraint semantics, not a restatement of field names.

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+resource and a distinctive structural fact: it creates a draft campaign using Precision Optimization (1x1x1) with one experiment per audience/ad/offer combination, and names the six supported channels. It also draws a hard boundary with 'This tool does not launch it.' It stops short of naming the sibling it competes with for alternative structures (create_native_structure_campaign), so an agent must still infer which structure tool to pick.

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?

There is conditional guidance embedded ('ads.groups ... only when the user asks for them') and an implied two-step workflow because the tool explicitly refuses to launch. But no explicit when-to-use vs when-not statement, no mention of launch_campaign by name, and no routing rule against create_native_structure_campaign or add_and_edit_campaign_elements for existing campaigns.

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