Google Ads MCP Server: Run Google Ads From Claude
A Google Ads MCP server turns your ad account into something an AI assistant can actually operate — pull a search terms report, spot the wasted spend, add the negatives, and undo it if you were wrong. This guide covers what these servers do, where they break, how to connect one, and the guardrails to insist on before an AI gets write access to live spend.
On this page
What a Google Ads MCP server actually is
A Google Ads MCP server is a service that exposes the Google Ads API as Model Context Protocol tools, so an AI client can read and change your account by calling those tools. MCP is the open protocol Anthropic published for connecting AI clients to external systems; a server that speaks it can be plugged into Claude, Claude Code, Cursor, or any other MCP-capable client.
The difference from a chatbot that "knows about Google Ads" is that the model is not guessing. It calls run_gaql and gets your actual last-30-day spend by campaign. It calls add_negative_keywords and the keyword lands in your account. The model supplies the reasoning; the server supplies the facts and the hands.
Two shapes exist in the wild:
- Local servers — an npm or Python package you run on your own machine. You bring your own Google Ads API developer token, OAuth client, and refresh token. Full control, roughly an afternoon of setup, and a token application that Google can sit on for days.
- Remote servers — a hosted endpoint you add as a URL and authorize with Google sign-in. Nothing to install, no developer token of your own. Klienta is this shape: one endpoint at
https://klienta.co/mcpover Streamable HTTP with OAuth 2.0.
Why MCP beats scripts, the API, and copy-paste
Every serious advertiser already has three ways to work outside the UI, and each has a hole in it.
| Approach | The hole |
|---|---|
| Google Ads Scripts | Runs on a schedule against rules you wrote in advance. It cannot notice something you did not anticipate. |
| Google Ads API directly | Powerful, but it is a software project: developer token, OAuth plumbing, GAQL, resource names, mutate payloads. |
| Pasting reports into ChatGPT | The model reasons well and then hands you a to-do list. You still do the clicking, and the data is stale the moment you export it. |
MCP closes the loop. The model queries live data, reasons over it, and executes — in one conversation, without you translating between the three. The practical gain is not "AI writes my ads." It is that the twenty-minute audit you keep postponing becomes a question you ask while waiting for coffee.
What you can do with it
Tool coverage varies enormously between servers. Many "Google Ads MCP" projects on GitHub are read-only wrappers around a single reporting query. Klienta currently exposes 104 tools — 83 for Google Ads, 19 for Meta Ads, and 2 report renderers. Broadly, the categories that matter:
| Category | Examples |
|---|---|
| Reporting | Arbitrary GAQL queries, account setup summaries, change history, alerts, rendered dashboards |
| Diagnosis | Campaign diagnostics, disapproved ads, wasted search terms, conversion tracking status, delivery problems |
| Keywords | Add, pause, move, re-bid; negatives at ad group, campaign and shared-list level; bulk operations |
| Campaign builds | Search, Performance Max and Display campaigns, ad groups, asset groups, responsive search and display ads |
| Bidding & budgets | Bid strategies, portfolio strategies, bid modifiers, budget changes, projected-impact estimates |
| Assets & conversions | Sitelinks, callouts, call and structured-snippet assets, conversion actions, offline click conversions |
| Experiments | Create, schedule, end, promote — so a change can be tested rather than argued about |
| Safety | Guardrails, change review, projected impact, undo, changeset rollback |
The line that separates a toy from a tool is whether write operations exist and are safe. Read-only servers are useful for reporting and cannot hurt you. Write-capable servers do the actual work — which is exactly why the next section exists.
Connecting one in two minutes
A remote MCP server is a URL plus an OAuth handshake. Three of the most common clients:
Claude Desktop
Settings → Connectors → Add custom connector, then paste the endpoint:
https://klienta.co/mcp
Claude opens Google's sign-in page, you approve access to your Google Ads account, and the tools appear in the chat.
Claude Code
claude mcp add --transport http klienta https://klienta.co/mcp
Cursor
Cursor Settings → MCP → Add new MCP server, or edit .cursor/mcp.json:
{
"mcpServers": {
"klienta": {
"url": "https://klienta.co/mcp"
}
}
}
Then ask the client to "list my Google Ads accounts". If account IDs come back, you are connected. Full walkthroughs with screenshots are on the setup page.
Prefer not to run a client at all? The same tools are available through the assistant in the Klienta dashboard, where you bring your own AI API key. Same guardrails, no MCP client required.
Guardrails: the part nobody advertises
Handing an AI write access to an account that spends real money is a genuinely risky thing to do, and most write-up posts skip past it. Before you connect any server to a live account, get answers to four questions.
1. What OAuth scope does it request?
Google Ads management needs the adwords scope. That is a broad, powerful grant. Check that the server asks only for what it needs, and that you can revoke it any time from your Google Account permissions page.
2. Are writes bounded?
An AI that misreads a budget field can turn $50/day into $5,000/day with one confident tool call. Bounded means hard ceilings the model cannot argue its way past: maximum budget per change, maximum percentage increase, a cap on entities touched in one operation. Klienta enforces these as configurable guardrails and refuses calls that exceed them.
3. Is there a review step before execution?
The useful pattern is propose → review → apply. You should be able to see the exact diff — this budget from X to Y, these 14 keywords paused — and its projected impact before anything is committed.
4. Can it be undone?
Every batch of changes should be a changeset with an identifier, and there should be a single call that reverses it. "Undo the last change" is the sentence you will want most, at the worst possible moment.
Rule of thumb: give an AI the same access you would give a competent new hire on their first week — real permissions, a spending limit, and someone reviewing the diff.
Prompts that produce real work
Vague prompts get vague answers. These are shaped to force tool calls and end in a decision:
- "Pull search terms from the last 30 days with more than 10 clicks and zero conversions. Group them by theme, show total wasted spend per theme, and propose a negative keyword list. Do not apply anything yet."
- "Compare this month to the previous month by campaign: cost, conversions, CPA. Flag anything where CPA moved more than 25% and tell me what changed in the account around that date."
- "My Performance Max campaign is eating the budget. Show its spend share, asset group performance, and whether it is cannibalizing my brand search campaign."
- "Audit conversion tracking. Which actions are recording, which are stale, and which campaigns are optimizing toward something that has not fired in 30 days?"
- "Draft three responsive search ads for the ad group with the lowest CTR, matching the landing page copy. Show them to me before creating anything."
Note the recurring clause: do not apply anything yet. Read first, write second, on purpose.
Where it still falls short
Honest limits, because you will hit them:
- Strategy is still yours. The model can tell you a campaign has a 3× CPA. It does not know that account is running a loss-leader offer on purpose.
- Long report responses can strain context. Ask for aggregates and filters, not 5,000 raw rows.
- Google's own automation still applies. Smart Bidding will keep doing what it does; an MCP server changes settings, not the auction.
- Confidence is not accuracy. A model will state a wrong number in the same tone as a right one. This is precisely why the review step is non-negotiable.
FAQ
What is a Google Ads MCP server?
A service that exposes the Google Ads API as Model Context Protocol tools, so an AI client such as Claude, Claude Code or Cursor can read reports and make changes in your account by calling those tools instead of you clicking through the interface.
Can an MCP server change my live campaigns?
Only if it exposes write tools and you approve the call. Read-only servers can only report. Klienta exposes write tools, but every write passes through guardrails, an explicit review step, and an undo that reverses a whole changeset.
Do I need to be a developer?
No. A remote server is a connector URL plus Google sign-in — no install, no developer token application, no code.
Does it work with ChatGPT or only Claude?
Any MCP-capable client works. Claude Desktop, Claude Code and Cursor are the most common today; support in other clients is spreading as MCP adoption grows.
Is there a Meta Ads MCP server too?
Yes — Google Ads and Meta Ads tools share the same Klienta endpoint, so one connection covers campaigns, ad sets, ads, insights and delivery diagnostics across both platforms. See the Meta Ads MCP server guide for what that side covers.
What does it cost?
Klienta has a free tier; paid plans start at $29/month at launch pricing. See pricing for limits per plan.
Try it on your own account
Connect in about two minutes, start with read-only questions, and turn on writes when you trust it.
Connect Klienta →