AdCopilotby Atromx

Google Ads From the Terminal With Claude Code

Add your Google Ads connector to Claude Code in one command, run audits beside your codebase, and script read-only weekly checks with -p mode.

Updated 2026-08-10Atromx IntelligenceGoogle Ads · Search, PMax, Display, YouTube, Demand Gen
The short answer

Add the connector with one command — claude mcp add --transport http adcopilot https://mcp.adcopilot.cloud/c/<your connector key>/mcp — then verify with /mcp and ask your first account question in the REPL. Claude Code adds what chat clients lack: reports written straight to files, a CLAUDE.md carrying your ads conventions into every session, and scripted weekly checks via claude -p with only read tools allowlisted.

Claude Code turns Google Ads work into terminal work: one command adds the connector, /mcp confirms the tools, and from then on your agent reads and runs the account in the same session as your code — audits, budgets, bids, new campaigns, executed on your command in seconds, with output that lands in files instead of chat scroll. Setup for all Claude surfaces is covered in connect Claude to Google Ads; this page is the developer workflow on top.

One command, then verify

claude mcp add --transport http adcopilot https://mcp.adcopilot.cloud/c/<your connector key>/mcp

Start claude, run /mcp, and the adcopilot server should list its tools — reads like search and list_accessible_customers, writes like create_campaign and add_negative_keywords. First prompt:

List the accounts you can see, then give me last 7 days of spend and
conversions for account <account>.

Reads run without ceremony. The first write triggers Claude Code's permission prompt in the terminal — tool name, arguments, allow options — which is the approval loop in its terminal form.

One rule before anything else: the connector address is a credential. Keep the server in local or user scope, never in a committed .mcp.json, and treat a leaked key like a leaked token — kill that connector from your dashboard and mint a new one. The full model is on the security page.

The point of the terminal: output that persists

Chat clients answer; Claude Code produces artefacts. Make that the habit from the first session:

Audit account <account> for the last 30 days — wasted spend, search
terms, disapprovals, structure — and write the findings to
reports/ads-audit-2026-08-10.md with a ranked action list at the top.

Now the audit is a file: commitable, diffable against next month's, greppable. The same pattern covers weekly summaries, change logs, and negative-keyword decisions — an ads paper trail living in git next to the site whose ads it describes. When a finding needs code changes (a landing page, a tracking fix), the same session reads your codebase and makes them; that combination is the workflow no browser tab has.

Put the house rules in CLAUDE.md

Claude Code reads CLAUDE.md at session start — use it so every ads session inherits your conventions instead of relearning them:

## Ads conventions
- Google Ads account: <account> (the only account to touch)
- Currency: INR. Budgets stated per day.
- New campaigns: always created paused, never enabled in the same
  session they are created.
- Negatives: exact match for one-off junk, phrase for patterns.
- Every session that changes anything appends to reports/ads-changelog.md.

Five lines, and prompts shrink from paragraphs to verbs — "run the weekly sweep" now means the same thing every week.

Script the weekly check — read-only by construction

claude -p runs a prompt headless and prints the result, which turns the weekly routine's reporting half into a script:

claude -p "In account <account>: last 7 days vs previous 7 — spend,
conversions, cost per conversion by campaign, then the top 10 search
terms with cost and no conversions. Markdown." \
  --allowedTools "mcp__adcopilot__search,mcp__adcopilot__list_accessible_customers" \
  > reports/weekly-$(date +%F).md

The --allowedTools list is the safety design, not a convenience: headless runs have nobody at the approval prompt, so scripts get read tools only. Built that way, the cron job that drops a Monday report into your repo can never mutate the account — writes stay in interactive sessions where you approve them one by one. Schedule it, then spend your Monday twenty minutes acting on the file instead of gathering it.

Quirks worth knowing

  • Tool names are prefixed — in --allowedTools, MCP tools follow mcp__<server>__<tool>, so the exact strings depend on the server name you chose in claude mcp add (here, adcopilot).
  • Approvals are per tool — allow add_negative_keywords for a session without also allowing update_campaign. Graduate tools the way the approval workflow suggests: harmless writes first, spend writes never.
  • Same address everywhere — the URL you added here also works in Claude Desktop, Gemini CLI and Cursor; one connector, every client, and the full client list shows each config shape.

If you have a terminal open and no connector yet: Start a free pilot — sign in with Google, copy the address, and the claude mcp add line above is the entire setup. Your first audit file can exist ten minutes from now.

Frequently asked questions

Which scope should the connector be added under?

Local or user scope — never project scope. Project scope writes the server config into a .mcp.json that typically gets committed, and your connector address is a credential: whoever holds it can act on your ad account through their own client. Local scope (the default) keeps it to this machine and directory; user scope makes it available in all your projects.

Can a cron job make changes to my ad account?

Only if you explicitly allowlist write tools, so don't. In headless mode there is no human at the approval prompt, which is exactly why scripted runs should pass only read tools in --allowedTools. A script built that way can query and report forever but cannot mutate — the write path stays interactive, where the approval loop exists.

Why use Claude Code for ads instead of Claude Desktop?

Files and repeatability. Claude Code writes audit output to markdown you can commit, diff week over week, and pipe into anything else; a CLAUDE.md carries your account ID and house rules into every session; and -p mode turns any recurring read into a one-line script. Desktop is better for conversational work — the connector address is the same in both.

The offer

Try it on your own account for a week

The full set of tools for the week, so you can see what it actually does — and it still cannot delete anything. No cost, no card, no contract: you connect your own Google account and can withdraw the access whenever you like.

  • Up to 5 accounts
  • One week
  • Full tools
  • No card
Keep reading