Skip to content
All blogs

Product

Automating Weekly Ad Reports With an MCP-Connected Assistant

Marxx · 2026-09-28 · 11 min read

Friday afternoon, someone on the team exports four CSVs, pastes them into a deck, writes "spend was up 12% week on week" under a chart, and sends it. It takes three hours. Nobody replies.

An MCP-connected assistant can do the export-and-summarise part in about ninety seconds. That's the smaller half of the win. The bigger half is that once the data is in the conversation, the report can be asked questions — and a report that answers questions turns into decisions, which is the only reason to write one.

Here's how to set it up, what to ask, and where it stops.

What "automated report" should actually mean

The old automation What's worth building
Scheduled PDF of the same six charts A written read of what changed and why
Account totals Creative-level performance, named
"Spend up 12%" "Ad C is carrying 38% of spend and fading — replace it Monday"
One direction: data out A conversation: ask the follow-up in the same thread
Sent to a folder Posted where the team already is

The test for any reporting workflow is the same as for an agency's weekly: count the decisions in it. Zero decisions means you automated the wrong thing faster.

Setting it up

The Marxx MCP server puts your Meta and Google Ads accounts inside Claude or ChatGPT. It works with any client that supports remote MCP servers — Claude, ChatGPT, Cursor, VS Code.

  1. Connect your ad accounts to your Marxx workspace.
  2. Add the server as a custom connector: https://api.marxx.ai/mcp
  3. Approve the OAuth connection in Marxx.
  4. Select the workspace you want the assistant to read.
  5. Ask in plain language. No query syntax, no field names.

One thing to know before you hand it to a team: it's read-only. Every tool on the server is a read. It cannot pause a campaign, move a budget or edit an ad. Publishing happens in the Marxx app, behind approvals. That's what makes it safe to give a junior or a client.

The prompt that writes the report

Don't ask for "a report". Ask for the shape you want:

Write this week's paid social report for [client].

Structure it as:
1. What changed, in one line
2. Creative-level read — winners, faders, and the diagnosis for each
3. What competitors shipped that matters
4. Three decisions for next week, each with the number behind it

No account totals without a creative behind them. If something
declined, name the failure mode rather than saying "CPA is up".

That last sentence is the one that changes the output. Without it you get description; with it you get "offer fatigue on the top spender" and a different next step.

What comes back

A week's report, in three paragraphs, each with a number and a decision attached:

Spend flat. Two creative decisions, one competitor response, one tracking check.

What The evidence The decision
The proof ad is now the account's engine Live 88 days, still the lowest cost per result of anything running Two more concepts off the same promise, briefed Monday
The welcome-offer static is fading Day 19, CTR down three weeks, 31% of spend. Diagnosis: offer fatigue Change the offer's job, not the image. Off Tuesday if flat
A competitor moved into hiring ads Thirteen recruitment creatives, the longest at 32 days, in two of our cities Watch, don't react. Flag if they open a location

Three decisions, every claim with a number behind it. That is a week's reporting, and it took one prompt.

The four questions worth asking every week

The report is the starting point. These are the follow-ups that earn their keep — and what each one surfaces in practice.

1. "What have we kept running longest, and why is it working?"

Foreplay Meta ad: "Peace of mind? Knowing your ads are built to win" with a seven-day free trial

Eighty-eight days on an ad that sells reassurance rather than a feature. Peace of mind? Knowing your ads are built to win — no feature list, no screenshot of the product doing something clever, just the feeling of not being behind. Your longest runner is the closest thing you have to a statement of what your market actually responds to, and almost nobody reads their account this way, because Ads Manager sorts by spend rather than by survival.

Contrast it with a launch ad from the same category, built on a price comparison:

Atria AI Meta ad: a direct price comparison against the cost of the alternative, with a seven-day free trial

Ran 22 days — a quarter of the reassurance ad's run, on a sharper and more rational argument. Both are fine ads. But if you only ever read the account by spend, the 22-day comparison ad and the 88-day reassurance ad look like peers, and the single most useful fact about your market stays invisible.

2. "What's the offer doing in each of our ads?"

IM8 Health Meta ad: "$54 in welcome gifts — on us" for monthly subscribers

A welcome-gift offer is a hesitation-reducer pretending to be a hook, or the reverse — and the answer changes what you do when it fades. This one is unambiguous: the dollar figure is the headline, so the offer is the hook. It ran 5 days.

That is the whole lesson in one number. When the offer is the hook, the creative's life is the offer's life, and no new image will extend it. Ask the question of every ad in the account and you get a map of which ones you can refresh and which ones need a new argument entirely.

3. "What did competitors ship, and how hard are they backing it?"

Two different signals come out of this question, and the second is the one teams miss. The first is easy — a rival's offer tells you what their retention maths can stand:

Blue Apron Meta ad: 50% off your first three orders with the code DISCOVER50

Half off the first three orders, 12 days in market. A brand that can discount three consecutive orders is a brand confident people stay past the third. Read that as a statement about their lifetime value, not about their generosity.

The second signal is depth, and it needs more than one ad to see. A restaurant chain running recruitment creative looks like a footnote until you count the family:

CAVA recruitment Meta ad: "Spice up your career!" with an apply-now call to action

Spice up your career! — 32 days. On its own, a single HR campaign nobody needs to care about.

CAVA recruitment Meta ad: "Food lovers wanted!"

Food lovers wanted! — also 32 days, a different hook on the same brief.

CAVA recruitment Meta ad: "A career full of flavor!"

A career full of flavor! — 32 days again, and there are a dozen more behind these three, running 31, 27, 22, 20, 17 and 8 days. That is not an HR footnote. A chain putting that much paid budget and that many creative variants behind recruitment is a chain staffing up for locations it has not opened yet — which matters months before it shows up in your auction.

One ad is an experiment. Thirteen ads on one brief, three of them past a month, is a commitment, and you can only see the difference if something is counting.

And a still-live one is a live experiment you get to watch for free:

Kansas City Steak Company Meta ad: "Now hiring" seasonal customer service roles at $18 an hour and up

Still running — live 22 days, at the time of writing. Save it, ask again in three weeks, and the answer tells you whether the approach held. No report will give you that; only looking twice will.

4. "What's in the category that we've never tried?"

The gap question is the one a spreadsheet can't answer, because it needs data from outside your account. Ask it monthly rather than weekly; the answer changes slowly, and it is usually a format or an audience rather than a headline.

One Park Financial Meta ad in Spanish: unlimited commissions for referring businesses in Miami

A US lender running Spanish-language ads recruiting referral partners, city by city — gana comisiones sin límite refiriendo negocios en Miami. Ran 92 days, which makes it one of the longest-running creatives in this entire post. Two things are being done here that most advertisers in that category never try: paying a network to bring deals rather than buying the deals directly, and doing it in the buyer's first language.

Neither is a clever headline. Both are structural, and both would have stayed invisible to a team that only reads its own account.

sweetgreen Meta ad: "A new way to pick up" — the sweetlane pickup lane opens 8/20

The opposite case, for balance. A new pickup lane, announced with a date — ran 8 days, because a launch announcement is finished the moment the thing has launched. The gap question is not "what's running longest"; it's "what are they doing that we have no version of". Sometimes the answer is a short-lived ad about a permanent change to the business.

Put it where the team already is

A report that lands in a doc gets read once. Two cadences work:

Cadence Where What
Monday morning Slack channel, per client Last week's read, three decisions
Ad hoc, in the thread Same channel The follow-up questions above
Monthly Doc or deck Structure, measurement, the gap question

The thread matters more than the report. Someone replies "why is that one fading?", the assistant answers from live data in the same place, and the brief for next week starts as a message rather than a meeting.

One more reason the thread beats the document: scale is visible in a conversation and invisible in a chart. A B2B tool running its own recruitment ad looks identical to the restaurant chain's at the creative level —

Motion Meta ad: "We're hiring" for the customer success team

— and ran 12 days as a single flight, against a dozen-plus creatives and 32-day runs on the other. Same tactic, a fraction of the conviction. "How hard are they backing it?" is a question you ask in a follow-up, not something a weekly PDF would ever volunteer.

Where it stops

Worth saying plainly, because the category oversells:

  • Read-only. No pausing, no budget moves, no edits. If a tool offers those inside a chat window, ask who approves them.
  • No competitor spend. Nobody has it. Longevity and copy counts are the honest public signals; treat any tool quoting a rival's budget with suspicion.
  • Charts get compacted. Totals, shares, trends and outliers reach the model rather than every raw row. Better answers, but ask for the underlying number when a decision rests on it.
  • It won't decide for you. It will name the diagnosis and propose the move. Someone still has to choose, and that's correct.

Add the Marxx MCP server to Claude or ChatGPT

Connect your ad accounts, add https://api.marxx.ai/mcp as a custom connector, approve it, pick your workspace, and ask for this week's report in plain language. Read-only by design, so it's safe to hand to the whole team.

Book a demo and we'll write your first report live on the call, or see how the MCP server works. If you want the layer underneath it, creative intelligence explains how each ad gets decoded and how fatigue is scored.

FAQs

Can AI write my Facebook ads report automatically?

Yes, if it can reach your account data. An MCP-connected assistant reads spend, creative performance and campaign structure directly, so it writes from live numbers rather than a pasted export — and you can ask follow-ups in the same thread.

What is an MCP server for ads?

Model Context Protocol is a standard way for assistants to connect to external data. An ads MCP server exposes your ad accounts and competitor data to Claude or ChatGPT as tools the assistant can call while answering.

Is it safe to connect ad accounts to an AI assistant?

Ask whether it's read-only. The Marxx server is: every tool on it is a read, with no ability to pause campaigns or move budget. Anything that can spend money from a chat window needs an approval step in front of it.

Does this work with ChatGPT as well as Claude?

Yes — and with Cursor, VS Code, or any client supporting remote MCP servers. The connector URL is the same.

What should a weekly ad report contain?

One line on what changed, a creative-level read with a named diagnosis for anything declining, what competitors shipped, and three decisions with the numbers behind them. If it has no decisions, it's a dashboard someone read aloud.

Can it see my competitors' results?

It can see what they run, how long each ad has been live and how many copies of it exist. It cannot see their spend or their conversions, and neither can anyone else.

What's the single most useful follow-up question?

"How hard are they backing it?" One ad running for a month is interesting. A dozen creatives on the same brief, three of them past 30 days, is a competitor telling you where their next quarter is going.

One size fits none. Let’s build your exact setup.

Hop on a call with our founder to see real-world use cases, cut out the noise, and isolate the exact tools that drive results for your business — complete with a personalized pricing plan.