The decision in five lines
- →MCP — conversational analysis in Claude / ChatGPT / Cursor. Default for marketers.
- →CLI — terminal workflows (Claude Code, shell scripts). For technical operators.
- →Raw API — production software. Required when you're building, not analyzing.
- →Claude Skill — standardize a workflow so anyone on your team runs the same audit.
- →Reality: most teams use all four in parallel. They're layers, not competitors.
What each one actually is, the way an operator would describe them
Four different surfaces have shown up in the AI-and-paid-media conversation over the last twelve months, and the marketing press hasn’t done a great job of explaining how they relate. Here’s how a senior media buyer who’s actually used all four would describe them — what each one does, where each one starts to creak, and which workflow each one shows up in.
MCP — Model Context Protocol
An MCP server sits between an AI assistant and your data — ad accounts, Shopify orders, Klaviyo flows, whatever it’s wired into — and exposes a list of tools the assistant can call. You ask Claude (or ChatGPT, or Cursor) a question in plain English; the assistant picks the right tool, runs it, and writes you back an answer that’s grounded in real data instead of best-guess pattern matching. Setup is a custom-connector URL pasted into claude.ai/settings/integrations and one OAuth handshake.
Best for: conversational analysis, exploratory questions, the “why did ROAS drop” investigation, anything where the answer isn’t a fixed report. Starts to creak when: you need the same analysis run on a schedule with no human in the loop, or you need to operate at a volume that doesn’t fit in a chat window.
CLI — Command-Line Interface
A CLI is a binary you install in your terminal (typically npm install -g @meta/ads-cli or similar) that gives you the same data surface as the MCP but accessed by typed commands instead of natural language. It’s also callable from inside Claude Code, which is where most paid media operators encounter it. The transport is different from MCP — the underlying data and capabilities are the same.
Best for: bulk operations (updating 50 ad sets in one command, pulling a year of insights into a CSV, chaining with grep / jq), shell-scripted workflows, terminal-first humans. Starts to creak when: you hand it to a teammate who doesn’t live in a terminal.
Raw API
Every ad platform publishes a raw HTTP/REST API — the Meta Marketing API, the Google Ads API, the TikTok Marketing API, and so on. This is the underlying surface that MCP servers and CLIs are built on top of. Hitting it directly means writing code in Python or Node, managing OAuth tokens, handling rate limits, and deciding which of the 200+ endpoints to call. It’s the most flexible surface and by far the most work to use.
Best for: building production software — internal dashboards, automated alerting systems, the spend-pacing tool your engineering team writes for finance. Starts to creak when: you’re a marketer who just wants to ask a question. The raw API is the wrong tool for analysis.
Claude Skill
A Claude Skill is a packaged prompt-plus-workflow that lives inside Claude. It doesn’t expose new data — it orchestrates whatever data your MCP, CLI, or API already provides — but it locks in how the analysis gets done. The senior media buyer’s 25-point Meta audit becomes a Skill, and anyone on the team can run that same audit by typing a sentence. Same checks, same output format, same edge cases handled, every time.
Best for: standardizing repeated workflows so a junior on the team produces the same output as the head of paid. Audits, scorecards, weekly reports, diagnostic playbooks. Starts to creak when: you need a fresh exploratory question — Skills are for repeatable work, not for “huh, that’s weird, what’s going on here.”
Which one to use for the job you’re actually doing
The cleanest way to pick between MCP, CLI, raw API, and Claude Skill isn’t to ask “which is best” — it’s to ask “what am I trying to do, and how often.” Below is a decision matrix built from how real paid media teams use these surfaces. Read down the column for whichever job matches yours; the check marks are the default choice, and the other columns tell you what’s also workable if you’ve already committed to that surface for other reasons.
| The job you’re actually doing | MCP | CLI | API | Skill |
|---|---|---|---|---|
| Ad-hoc analysis ('why did ROAS drop last week?') | ✓ Default | Workable | Overkill | Optional |
| Cross-channel diagnosis (Meta + Google + Shopify in one question) | ✓ Default | Workable | Heavy lift | ✓ With MCP |
| Scheduled weekly report to Slack or email | Possible via Agent Mode | Workable in cron | ✓ Default for production | ✓ With MCP |
| Bulk one-off campaign update (40 ad sets at once) | Workable | ✓ Faster for batch | Workable | Optional |
| Recurring audit anyone on the team can run | Possible | Workable | Heavy | ✓ Default |
| Building a production internal tool / dashboard | No | No | ✓ Required | No |
| Non-technical teammate runs the analysis themselves | ✓ Default | No | No | ✓ With MCP |
| Pulling a year of historical data into a spreadsheet | Workable | ✓ Faster | Workable | No |
| Standardizing a multi-step diagnostic across the team | Heavy | Heavy | Heavy | ✓ Default |
| Competitor creative research from the Meta Ad Library | ✓ Default | Workable | Workable | ✓ With MCP |
| Investigating a specific ad's emotional drivers / hook | ✓ Default | Workable | Overkill | Optional |
| Daily 3 AM anomaly check (no human in the loop) | No | Workable | ✓ Default | No |
A few patterns are worth calling out. MCP wins anything conversational — ad-hoc questions, cross-channel diagnosis, anything where the answer depends on the question. Claude Skills win anything repeatable — the same analysis run by different people who need the same answer. The raw API wins anything that runs without a human — production dashboards, 3 AM anomaly checks, scheduled jobs at scale. The CLI shows up sideways: it’s rarely the default choice, but it’s often the fastest tool for someone who’s already in a terminal and wants to chain commands together. Most paid media teams discover all of this by accident over six to twelve months. The matrix above is a shortcut.
How real paid media teams actually stack these surfaces
Reading the matrix above, you might think the answer is to pick the surface that wins your most-frequent job and roll with it. In practice, that’s not how teams use these tools. Almost every paid media operation that’s adopted AI assistants for ad ops ends up running multiple surfaces in parallel — usually three of the four, sometimes all four — with different humans defaulting to different ones based on where their day actually happens.
The analysts on the team live in Claude with an MCP connection running. Their day is exploratory: a client meeting raises a question about creative fatigue, a CMO Slack-DMs about a ROAS dip, an experiment finishes and needs an honest write-up. The MCP is the lowest-friction path from “wait, what happened to that campaign?” to an actual answer grounded in real data. They don’t use the CLI because they don’t live in a terminal. They don’t hit the raw API because they’re not building software. They might use a Skill when the question is one they’ve answered the same way fifty times before, but the muscle memory is “ask Claude.”
The engineers on the team — or the agency’s internal tools team — use the raw API for everything that needs to run without a human in the loop. The Monday morning report that lands in #paid-media-ops at 6 AM. The anomaly detector that pings on-call when spend pacing goes sideways at 2 AM. The internal dashboard pulling from Meta, Google, TikTok, and Shopify into the same Looker board. None of that ships through MCP because MCP is built for conversation; production software needs deterministic, scheduled, no-surprise execution. The API is the right surface.
The power users who live in terminals — usually the senior media buyer with a Claude Code addiction, or the data engineer who learned shell before they learned SQL — reach for the CLI when they want to chain commands, pipe output into jq, or run a bulk operation that doesn’t fit in a chat window. Pulling six months of insights into a CSV is a one-liner. Updating naming conventions across 200 ad sets is faster as a scripted CLI call than as 200 separate chat messages. The CLI rarely wins as a default choice, but it’s often the right tool for the specific moment.
And then there are the repeatable workflows. The audit the head of paid media runs on every new account. The weekly creative scorecard. The pre-scaling checklist before a campaign goes from $500/day to $5K/day. These don’t belong in ad-hoc chat conversations because they need to produce the same answer every time, in the same format, with the same edge cases handled. They get wrapped as Claude Skills. The Skill defines the prompt, the checks, the output structure, and the decision rules. Anyone on the team can run that Skill against any account by typing one sentence, and the output looks like the senior buyer wrote it because in a real sense, they did.
The cleanest mental model: Skills sit on top of MCP, CLI, or API — they need an underlying data surface to call. Use a Skill to standardize how the analysis happens. Use an MCP, CLI, or API to actually get the data the Skill operates on. The four surfaces aren’t competing for the same job; they’re layers in a stack that, taken together, cover everything from a non-technical CMO asking a question to a production cron job updating a dashboard.
A real Monday morning, with all four surfaces in play
The fastest way to see how this works in practice is to walk through a single Monday at a mid-sized DTC brand running paid media on Meta, Google, and TikTok with a small in-house team and a Shopify storefront. Pick almost any operator at this scale and the day looks roughly like this:
6:00 AM — the weekend performance report drops into Slack’s #paid-media channel. It was generated by a scheduled job hitting the raw API at 5:45 AM, pulling cross-channel spend, revenue, and ROAS from Meta, Google, and TikTok plus Shopify orders, then formatting it as a Markdown table. Nobody had to be awake for it. The engineering team wrote this script once a year ago; it runs every morning.
9:30 AM — the head of paid notices that Meta ROAS dropped 18% week-over-week in the report. She opens Claude, where her MCP is already configured, and asks the assistant to break down where the drop is coming from. Within ninety seconds she has the answer: three ad sets are responsible for 80% of the decline, all of them are running the same creative angle that was hot two months ago, and frequency capped out above 4.2 last week. The MCP made this a conversation instead of a half-day investigation.
10:45 AM — she decides those three ad sets need their budgets cut by 50% while she briefs a creative refresh. Rather than do this in the Meta Ads Manager UI, she pops into Claude Code and runs the CLI with a one-line command that updates all three ad sets at once: meta-ads update-budget --campaign Q2_Retargeting --pct-change -50. Done in fifteen seconds. The CLI was the right tool for a bulk write that didn’t need a conversation.
2:00 PM — the junior media buyer onboards a new client account and needs to run the standard initial audit. She opens Claude and types “run the new-account audit Skill on account 1234567890.” The Claude Skill — written by the head of paid six months ago and refined every time the team discovered a new edge case — walks through 25 structural checks, flags four issues that need attention, and produces a Notion-ready report. The junior buyer ships exactly the same audit quality the senior buyer would have, in twenty minutes instead of half a day.
Four surfaces, four jobs, one team. None of them replaced any of the others; each one made a specific kind of work radically faster. That’s the actual answer to the “MCP vs CLI vs API vs Skill” question for paid media: it’s not versus, it’s and.
How most paid media teams typically evolve through these surfaces
If you’re early in this and the four-surfaces-at-once picture looks daunting, here’s the honest progression we see most teams follow over the course of six to twelve months. It’s rarely a deliberate roadmap — it’s usually a series of accidents that, looking back, look like a natural path.
Phase one is copy-paste-into-ChatGPT. Someone on the team starts exporting weekly performance from Meta Ads Manager, pasting it into a chat, and asking for analysis. It works. It’s also slow, ungrounded, and the answers drift because the assistant has no idea what your account’s history looks like. This is when teams start looking for something better.
Phase two is adding an MCP. Suddenly Claude can see live ad data instead of stale exports. The first week feels like a step-change in productivity. Most teams stay here for a while — ad-hoc questions are now fast, the team is happy, and there’s no obvious next step. The next step usually arrives in the form of “why is the new hire’s audit different from the senior buyer’s audit?”
Phase three is wrapping the senior buyer’s repeatable workflows as Skills. The team picks the three or four analyses they run weekly — the Monday audit, the creative scorecard, the budget pacing check — and turns them into Skills that anyone can invoke. Now the junior buyer’s output looks like the senior buyer’s. This phase is where teams stop saving hours and start saving entire workflows.
Phase four — usually nine to twelve months in — is when the engineering team gets involved and the raw API starts showing up. The team realizes some of those Skill-wrapped analyses need to run on a schedule without a human, or the data needs to land in an internal dashboard, or anomaly detection needs to page on-call. That’s when the API becomes part of the stack. The MCP and Skills don’t go away — they’re still doing the conversational and standardization jobs — but the API joins them for the production-grade work.
The CLI usually shows up sideways throughout this progression — some senior buyer who lives in a terminal discovers it during phase two and never stops using it. Everyone else on the team might never touch it, and that’s fine. The CLI is a power-user surface that lives or dies on the human, not on the workflow.
The shortcut: GoMarble AI — the platform paid media teams actually want
Here’s the honest read on the four-surface question for most paid media operators: you don’t want to be picking between MCP and CLI. You want a tool that analyzes your paid media, tells you what to do, and does it. That’s the entire job. The protocol wiring is something engineers care about; the analysis-decide-execute loop is something marketers care about. Most teams want the second one without having to think about the first.
That’s GoMarble AI. The AI agent for paid media. You connect your ad accounts in two minutes, and the platform handles cross-channel diagnosis, creative intelligence, and execution across Meta and Google Ads — without you wiring up an MCP, configuring a CLI, writing code against a raw API, or maintaining a Skills library. There’s a real product behind the protocol layer, and for most paid media teams that product is the answer.
Connect — every platform that matters, in two minutes
Sign up at apps.gomarble.ai, OAuth your Meta, Google, TikTok, LinkedIn, and Bing ad accounts, plus Shopify, Klaviyo, GA4, and Google Search Console. One connection per platform; everything joined for you. No connector URLs to paste, no API tokens to manage, no engineering team required.
Analyze — root-cause across the whole paid stack
GoMarble AI runs cross-channel root-cause analysis on what’s actually moving performance — not surface dashboards, not generic AI summaries. Why did ROAS drop, where did spend leak, which creatives drove the result, how does Meta-reported revenue reconcile against Shopify orders. Every video and static gets read the way a senior creative strategist would, identifying hooks, emotional drivers, format strategies, and pattern fits — with the creative analysis tied back to performance instead of scored in isolation.
Decide — Agent Mode proposes specific moves
Agent Mode reads your accounts continuously and proposes specific, account-aware actions — pause these three ad sets, shift this budget to that campaign, refresh this creative cluster before it caps frequency. Not generic recommendations of the “test more creatives” variety; specific moves with the data behind them and the projected impact attached. You can take the recommendation, modify it, or skip it.
Execute — Ad Launch ships changes to your accounts
Ad Launch executes approved changes directly in Meta and Google Ads — pause fatiguing creatives, shift budget, update targeting, launch new campaigns from creatives you point GoMarble at (with copy drafted in your brand voice, based on context from the rest of your account). Human approval is required before anything goes live; the platform proposes, you approve, the changes ship.
Stay informed — scheduled work, no babysitting
Weekly performance reports auto-generated and dropped into Slack or email. Anomaly alerts when spend pacing or CPM breaks an established baseline. Custom client-ready dashboards your team and your clients can read. The work happens whether or not you’re online, with the same depth as the conversational analysis — just scheduled, structured, and shareable.
For paid media teams that prefer the conversational interface inside Claude or ChatGPT, GoMarble’s capabilities are also available as a hosted MCP — same data, same analysis depth, accessed via natural language in your AI assistant of choice. It’s a real path and we maintain it well. But for most operators, the GoMarble AI app is the simpler answer: a real product, a real UI, a real execution layer, no protocol decisions required.
FAQ
What's the actual difference between MCP, CLI, API, and a Claude Skill?
Which one should I use for paid media?
Do I need to pick one of the four, or can I use multiple?
What are the trade-offs between them?
Where does GoMarble fit for paid media teams?
How does GoMarble's hosted MCP differ from Meta's or Google's official MCP?
Can I use the GoMarble Skills repo without using GoMarble's hosted MCP?
What if I just want a copy-paste setup that works in 2 minutes?
Skip the protocol decisions. Use GoMarble AI.
The AI agent for paid media — cross-channel analysis, creative intelligence, Agent Mode recommendations, and Ad Launch execution across Meta and Google. Connect your ad accounts in two minutes. No MCP, CLI, or API wiring required.