Comparison

Claude or ChatGPT with Meta's ads MCP vs a bulk uploader: what each one leaves switched on

An AI assistant on Meta's ads MCP can now upload media, build creatives and stage a campaign as a draft. The question is no longer whether it can create ads. It is what the ad launches with: an agent sends what the conversation told it, and everything it did not mention stays at Meta's default. Here is what each path leaves switched on, and why Adlio built an MCP of its own.

Adlio team7 min read

The short answer

Meta's ads MCP server has closed most of the mechanical gaps we listed when this article first appeared in August 2026. Since October 6, 2026, Meta says marketers can "upload creative, preview ads as they'll appear on Facebook and Instagram", and "agent-staged work now lands as a draft in Ads Manager, so people and agents can co-author the same campaign and publish from either surface. Every action is gated behind advertiser-set permissions and explicit approval before anything goes live." An earlier version of this article said media was not something you could hand to the agent; that is no longer true and we have corrected it.

So the comparison has moved. It is no longer "can an assistant create ads" (it can) but "what does the ad launch with". An assistant sends what the conversation told it to send. Everything it did not mention is Meta's default: enhancements on, Advantage+ audience on, the ad set's DSA fields filled from the business name, no naming rule, no UTM template. A bulk uploader is the opposite shape: the rules are stored once per ad account and applied to every creative without being asked. That is why Adlio built an MCP of its own on October 24, 2026: the assistant chooses and writes, Adlio enforces and launches, paused.

What Meta's MCP does, from Meta's own pages

Three dated statements:

  • April 29, 2026. Meta ads AI connectors in open beta: "Meta's ads model context protocol (MCP) server and ads command line interface (CLI)" give "a secure, Meta-authenticated connection from their ad account to an AI agent", with "no developer credentials, API setup, or coding required". Capabilities named: reporting, "Create and edit ads, ad sets, and campaigns using natural language", catalog management, signal diagnostics.
  • July 16, 2026. Two additions: connect "any AI application directly to Meta ads using your own developer app", and ads MCP server rules, "giving anyone with full control of a business portfolio the ability to govern what AI agents can do on their ad account, from budget changes to catalog updates". The rules get their own article: Meta's ads MCP server rules.
  • October 6, 2026. Upload, preview, drafts, explicit approval, and a partner list that includes AdManage.ai, Birch, Blip, Perplexity and Triple Whale.

Meta's Business Help page for the connector adds that the agent can create single image, single video, carousel and product media carousel creatives and "upload image or video assets to the library", and that ads are "paused by default until you set them live".

What an agent-built ad launches with

We read the server's tool schemas in Claude on October 24, 2026. This is what the tools expose, which is what the agent can do, whatever the prompt says.

SettingMeta's MCP, as exposed to the agentWhat that means for the ad
Advantage+ creative enhancementsAn advantage_plus_creative master switch and an opt-in list of features; opting out per key only by passing degrees_of_freedom_spec as a JSON-encoded stringKeys the conversation does not mention get Meta's default. Our API read-back (August 2026): unsent keys come back OPT_IN
MusicNot a separate control in the schema we readMeta implements the music opt-out as asset_feed_spec.audios: []; the agent has to know and send it
Ad set defaultsThe ad set tool pushes Advantage+ audience on, Advantage+ placements, campaign budget by defaultFine for a new brand; a surprise for an account with a working manual structure
DSA advertiser and payerAuto-filled from the ad account's business nameFor an agency account that can be the agency's name on a client's ad set
Multi-advertiser adsInline creatives default to contextual_multi_ads OPT_OUTMeta closed this one itself; credit where due
MediaPublic URL, or a local file where the client supports MCP Apps; Google Drive, Dropbox and Canva share links refused; one object per callWorkable for a handful, slow for sixty, and every file needs a public URL
Naming, UTM, per-account memoryNoneThe agent names and tags what it is told, this time
PublishingWork lands as a draft; a publish tool makes objects ACTIVE; Meta's help says paused until you set liveRead the status before you say yes to "publish"

None of this is a flaw in the model. It is what a general-purpose tool over a general-purpose API looks like. The schema even steers the agent toward the master switch: "most callers only need advantage_plus_creative". For an account whose policy is "every enhancement off, every time", that is the wrong default, and it has to be re-stated in every conversation. The full mechanics of the opt-out are in how to turn off Advantage+ creative enhancements.

Where the agent is the right tool

Everything that needs judgment, and Meta's MCP is strong there, with roughly ninety tools on reporting, audiences and catalogs:

  • Drafting. Eight hooks for a cold audience in five minutes.
  • Reading data. Last 30 days through the MCP, "what changed", a fair first answer without a spreadsheet.
  • One-off structure. A campaign with three ad sets and specific targeting, described in plain language, built once.
  • Explaining Meta. Why an ad set is stuck in learning, what an error code means.

A bulk uploader does none of that, and should not.

Where enforcement beats instruction

The weekly batch: sixty finished creatives into sixty ads that are named by the convention, carry the UTM template, have every enhancement off, point at the right ad set in the right client account, and land paused for review. Five reasons a stored rule beats a repeated instruction:

  1. The opt-out is a payload, not a sentence. Sixty-nine keys, each OPT_OUT, on every creative, plus the empty audios list. A tool ships it as code. An agent has to reproduce it, as a JSON string, from an earlier instruction, sixty times.
  2. Verification. A tool can read the creative back and refuse to continue if a key is missing. A conversation cannot.
  3. Identity per account. Agencies run many accounts. Page, Instagram account, pixel, DSA names and naming prefix differ per client; a per-account record applies the right ones. An agent applies what the prompt said, and the prompt was about the last client.
  4. Names and UTMs identical, not similar. "Like last week" produces names that are close. A token pattern produces the same string. The naming guide shows why close breaks reporting.
  5. The failure mode is removed, not managed. A tool that cannot create an active ad does not need a careful prompt. Adlio has no code path that creates an active ad.

Adlio's MCP: the agent fills, Adlio enforces

Since October 24, 2026 Adlio exposes the launch job as an MCP server at https://adlio.ai/api/mcp (paid plans). It is the same draft, the same route handlers and the same guards as the web app; there is no second launch path.

What a connected assistant can do: list the ad accounts the person already reaches in Adlio, read the account's settings and readiness, create and edit the open draft (files, per-ad copy with up to five options per field, per-ad URL, campaign or ad set or a new campaign, CTA, UTM, sender, carousel), add media from public URLs, hand files to Meta, preview the launch, and launch. What it cannot do: see the Facebook token, change Settings, read spend or insights, activate ads, change budgets, or launch without the previewToken of the exact draft the person saw and confirmed: true. Every ad is created paused and shows in the activity feed as "launched 12 ads for <account> via Claude".

The enhancement state is whatever the owner set in Settings, which by default is an explicit OPT_OUT on all 69 keys plus music off; the preview says "all OFF" or "as in Settings", and the MCP has no tool to change it. The point is not that the agent is untrusted. It is that the rule is stored where the agent cannot forget it.

Clients: Claude (custom connector, all plans; Free allows one), ChatGPT (custom MCP servers are Business, Enterprise and Edu only, added by an admin, checked against OpenAI's help center on October 24, 2026), and any MCP client with OAuth. Can ChatGPT run Facebook ads has the per-plan detail.

The workflow that works

  1. Think with the assistant. Angles, hooks, audiences, copy variants.
  2. Produce the files, named by your convention at export time.
  3. Ship through an enforcing layer. Either drop the folder on /upload, or let the assistant fill Adlio's draft through the MCP and confirm the preview. Same rules, same paused batch.
  4. Read the results with the assistant a week later.

Draft and paused are not the same state, and the difference matters for what you can verify; draft vs paused vs in review explains it. For the comparison with other uploaders, see the best bulk ad launchers.

Try the enforcing half

Adlio is free for your first 15 ads, no card, no trial clock. Connect Facebook, save your account settings once (Page, pixel, naming, UTMs, enhancements off), drop a folder or connect your assistant. Your ads land paused in Ads Manager; you set them live. See how bulk upload works and pricing.

Frequently asked questions

Can Claude or ChatGPT create Meta ads directly?+

Yes. Meta's ads MCP server (open beta since April 29, 2026) lets an assistant create campaigns, ad sets, creatives and ads in an account you connect, and since October 6, 2026 Meta says marketers can "upload creative, preview ads as they'll appear on Facebook and Instagram", with agent-staged work landing "as a draft in Ads Manager". Any tool that wraps the Marketing API can do the same through its own MCP; Adlio's went live on October 24, 2026.

Does Meta's MCP turn Advantage+ enhancements off?+

Only if the conversation makes it. From the tool schemas we read on October 24, 2026: the creative tool exposes an advantage_plus_creative master switch and an opt-in list; opting out of individual enhancements is only possible by passing degrees_of_freedom_spec as a JSON-encoded string, and any key not mentioned gets Meta's default. In our August 2026 API read-back, unsent keys came back OPT_IN. So the opt-out exists, but it is prose the person repeats every time.

Is Adlio available as an MCP server?+

Yes, since October 24, 2026, at https://adlio.ai/api/mcp, for paid plans. An assistant connected to it works in the same draft the person sees on /upload, under the same per-account rules: every creative gets the explicit OPT_OUT on all 69 keys, the naming and UTM template apply, and launch_ads only runs with the previewToken of the exact draft the person saw plus confirmed: true. Every ad is created paused.

Which should a solo media buyer pick?+

Both, for different halves of the job. The assistant for judgment: audiences, angles, copy, reading results, one-off structures. An enforcing tool for the repeated part: the batch that has to land in Ads Manager named, opted out and paused, identically every week. With Adlio's MCP the two halves can happen in the same conversation; the assistant fills the draft, Adlio applies the rules and launches.

Sources

Adlio team

Built by media buyers who launch Meta ads in volume. Questions or corrections: support@adlio.ai.

Topic cluster

Agentic ads, safely

Launching Meta ads from Claude or ChatGPT: what an agent leaves switched on, and how to keep control.

Start here

Meta's ads MCP vs a bulk uploader: what each one leaves switched on