For developers

A Google Ads MCP server you do not have to run

Your AI assistant reads and runs the account from one plain-English sentence. Google's own open-source server only reads, and you run it yourself; this one also writes, on your command, audits the account itself, and is fenced so it cannot delete.

The short answer

Google's open-source Google Ads MCP server is read-only: it can query an account but not change it. AdCopilot's is a hosted application that connects through its own Google Cloud project and adds write tools — building campaigns, moving budgets and bids, adding keywords and negatives — each run on your command in your AI client, under your own Google sign-in, plus audits it computes itself. It builds campaigns paused and never exposes the removal tools that delete an ad, a keyword or an asset.

Is Google's Google Ads MCP server read-only?

Yes. Google publishes an open-source Google Ads MCP server, and its developer integration guide describes it as “strictly read-only”: it can query an account but cannot change bids, pause campaigns or create assets. It exposes three read tools — an account list, a query tool and a field lookup — and you run it yourself, with your own Google Cloud project and OAuth client.

AdCopilot's server is the alternative when you want the account run, not only read. 55 Google Ads tools implemented in our fork of Google's own MCP server as of v2.45.2 (Apache-2.0; not affiliated with or endorsed by Google). With the 18 audit tools AdCopilot runs itself, 69 Google Ads tools are exposed to a hosted connector on the full tier: 27 reads, Google's three among them, and 42 write tools that build campaigns, move budgets and bids, add keywords and negatives, and reshape ad groups, assets and targeting. It is hosted, and it calls Google Ads through AdCopilot's own Google Cloud project, with your Google sign-in. And it is fenced: the 4 removal tools implemented in the fork that delete an ad, a keyword or an asset are never exposed, a change carrying the status REMOVED is refused on our server, and a campaign it builds stays paused until you switch it on.

What is a Google Ads MCP server?

A Google Ads MCP server is a program that sits between an AI client and the Google Ads API and presents the API as a list of tools the model is allowed to call. Ask your assistant “which search terms spent more than fifty dollars last month without a conversion?” and it calls a query tool, gets structured rows back, and answers from them. Ask it to add those terms as negatives and — if the server offers write tools — it calls the negative-keyword tool.

The important word is tools. The model is not screen-scraping your dashboard or guessing at an export. It is calling the same API the Google Ads interface calls, with the same permissions your Google account already has, and getting the same numbers back. Because the model can only call what the list offers, the tool list is also the capability list: how to read one, and what each kind of tool lets the assistant do, is on its own page.

An MCP agent does not replace the scheduled jobs you may already run in the account, either. Google Ads scripts against an AI agent sets out where a script is still the right tool and where the agent answers the question you have today.

What is MCP, in one paragraph?

MCP is the Model Context Protocol, an open standard published by Anthropic in late 2024 and since adopted well beyond it. It standardises how an AI client discovers and calls external tools, so one server can serve many clients. Practically, it means a Google Ads connector written once works in Claude, ChatGPT, Copilot, Gemini CLI, Cursor and anything else that speaks the protocol — and it means the connector is a URL, not software you run yourself; in Claude, the AdCopilot plugin fills that URL in for you.

Self-hosted and free, versus hosted

Free open-source Google Ads MCP servers exist, and if reading is all you need, one of them will do it. They are genuinely free and they are genuinely useful. They are also read-only, and running one is your job: the Cloud project and its API access, the OAuth client, the server, the upgrades. AdCopilot is a different trade: an application that connects through its own Cloud project, adds write tools, audits it computes itself and limits its server enforces, and is run by us. Who runs the server, and who holds the sign-in, is a question of its own: remote against local.

 Free self-hosted serverAdCopilot (hosted)
ToolsThree, all read, on a typical free server69 Google Ads tools exposed to a hosted connector, of 73 the server implements; 126 on the full tier, whichever products are connected, as of v2.45.2
Can it change a campaign?NoYes, on the full tier — which is the default
Who runs itYou — a machine, a Python environment, updatesWe do
Google Ads API accessYour own Google Cloud project, applied for in the Google Cloud consoleAdCopilot's own Google Cloud project, used with your Google sign-in
OAuth clientYours, created in that projectAdCopilot's; you sign in with Google and choose the accounts
Team useOne installation per personA seat and a Google sign-in each
CostFree, plus your time5-day Pro trial for your first workspace, then the Free plan for one account unless you add a card

Which tools does the AdCopilot server expose?

Of the 73 Google Ads tools the server implements, 69 are exposed to a hosted connector, in 10 groups, and your first workspace's trial has all 69. On the read-only tier only the first group is available. The same list carries the Analytics, Search Console and Tag Manager tools too, whichever of them you have connected — 126 tools on the full tier, whichever products are connected, as of v2.45.2 — and the tools page counts every product. Each group below is described by what its tools do rather than what they are called, because several are narrower than their names suggest.

Reading the account
A query tool over every Google Ads report resource, an account list, a field lookup, the audit tools, what changed in the account, why Google Ads and Analytics count different results, keyword ideas with their search volumes and bid ranges and a forecast of clicks and cost (Google's estimates, not promises), and lists of the account's Google Ads Recommendations, audiences, asset links and auto-applied recommendations, the leads its Local Services ads brought, and how fast a landing page loads for real visitors. These are the tools the read-only tier keeps.27 Google Ads tools exposed to a hosted connector on the full tier
Performance Max asset groups
Building and filling asset groups, which is where most PMax work happens. Both link assets that already exist, so the creating comes first.2 Google Ads tools exposed to a hosted connector on the full tier
Assets
Ten asset types, three ways to attach them — to a campaign, to an ad group, or account-wide — and a pause for any attached asset. Images come from a URL you give or are passed in directly.16 Google Ads tools exposed to a hosted connector on the full tier
Campaigns
Create, rename, re-budget, re-date, and switch between enabled and paused — including Performance Max, which most connectors skip.4 Google Ads tools exposed to a hosted connector on the full tier
Targeting
Where, when and on which device the money is spent: locations, day-and-hour windows, and device bid adjustments.3 Google Ads tools exposed to a hosted connector on the full tier
Ad groups and ads
Create and update ad groups, create responsive search ads, and enable or pause one ad. No other ad format is in the list.4 Google Ads tools exposed to a hosted connector on the full tier
Keywords
Add keywords with match types, change a keyword's status or bid, and add negatives — to one campaign, as a shared list, or account-wide, though not at ad-group level.10 Google Ads tools exposed to a hosted connector on the full tier
Google's automatic changes
Pause a recommendation Google applies to the account on its own. The kinds Google only lets you change in its own screens are named, not guessed.1 Google Ads tool exposed to a hosted connector on the full tier
Conversion tracking
Create the conversion that counts a sign-up or a sale, with the ID and label a Tag Manager tag needs to fire it.1 Google Ads tool exposed to a hosted connector on the full tier
Local Services leads
Rate a lead your Local Services ads brought, from how it really went: one lead at a time, final once Google records it, and asked about first.1 Google Ads tool exposed to a hosted connector on the full tier

The same server exposes the other three products of the growth stack, in the list from the day your client connects; until you connect a product, its tools answer with the link to connect it: Google Analytics, 29 tools, usable once Google Analytics is connected, 15 read and 14 write, the writes able to register conversion events and custom dimensions; Search Console, 7 tools, usable once Search Console is connected, 5 read and 2 write, the writes able to send a URL to the Indexing API (job-posting and livestream pages only) and submit a sitemap; Tag Manager, 18 tools, usable once Tag Manager is connected, 9 read and 9 write, the writes able to stage a container version for you to publish. Every write in those three runs the same way the Google Ads writes do — on your instruction, in your AI client — and the total is 126 tools on the full tier, whichever products are connected, as of v2.45.2.

What it deliberately cannot do

4 of the 55 Google Ads tools implemented in our fork as of v2.45.2 delete things — an ad, a keyword, a campaign asset, an asset in an asset group. None of them is exposed to a hosted connector — not gated behind a setting, not available on request. They are filtered out of the tool list before the model ever sees them, and a change carrying the status REMOVED is refused on our server as well, because in the Google Ads API that status is the delete.

The reasoning is that deletion is the one class of change a conversation cannot take back. Pausing an ad is put back in a click; removing it is not. So the agent can pause, adjust, add and negate, and anything that destroys is left to the Google Ads interface, where there is a confirmation dialog and a human hand on it.

Your ad data does travel through this server on its way to your assistant, because that is what a connector is — the security page sets out the request path, what is retained and what is not.

Google Ads MCP server URL

Connector URL
https://mcp.adcopilot.cloud/mcp

The same URL for every client. Your own Google sign-in decides what it can reach.

One address, the same for everyone: there is no key, token or per-user path in it, because your own Google sign-in is what decides which accounts it may reach. It is the one string every client below asks you for.

Google Ads MCP for Claude

In Claude, add the AdCopilot plugin and press Connect: Claude opens its custom-connector form with the URL above already filled in, so you press Continue, then Add, and approve once. The plugin also brings its skills and commands. The same URL still works as a custom connector added by hand, and Claude Code takes the same plugin or one command. The Claude connect page has every click, with screenshots, and the snags peculiar to Claude.

Google Ads MCP for ChatGPT

ChatGPT takes the same URL as an app you create yourself once developer mode is on, under your own sign-in, and what the connector can reach is exactly what it can reach from any other client. It works today as an app you add yourself in developer mode; a directory listing is planned; the ChatGPT connect page has every click, with screenshots, and the plan question.

How to connect it

  1. Add the connector URL above to your AI client as a custom MCP connector, and give it a name of your choosing.
  2. Sign in with Google when the client first uses the connector. AdCopilot uses Google's own sign-in, so it runs under your login with the permissions you already have — no password is shared with us — and you choose which accounts it may reach.
  3. Step-by-step for Claude, ChatGPT and Copilot; every other client is on the MCP clients page.
  4. Ask it something. A good first question is one you already know the answer to.
JSON configuration
{
  "mcpServers": {
    "adcopilot": {
      "url": "https://mcp.adcopilot.cloud/mcp"
    }
  }
}

Where that file lives is your client's own business — check its documentation for the path.

Every client asks for the same two things — a name of your choosing and the URL — so the steps above are the whole of the shared part, whichever assistant you use.

If it does not connect, in any client

Four causes account for nearly all of it, and none of them is client-specific.

  • The address must end in /mcp with no trailing slash.
  • Complete the Google sign-in. If the client never opened Google's sign-in, or you dismissed it, the connector has no authorisation yet — reconnect and finish the Google consent.
  • No accounts listed? The Google login you used probably does not have access to them. Sign in to Google Ads directly with the same account to check.
  • Fewer tools than expected? That is the read-only tier — 27 Google Ads read tools and nothing that writes. A connector is on the full tier unless you asked us for read-only, so if you see only reads and did not ask, tell us.

Anything left after those four is usually the client rather than the connector, and the Claude and ChatGPT pages carry the failure modes peculiar to each.

What you need

  • A Google account with access to the ads account. The connector can reach exactly what Google already lets you reach, and nothing more.
  • An AI client you already pay for. The reasoning happens in your assistant, on your subscription. We add no model of our own.
  • How AdCopilot reaches Google Ads. AdCopilot connects to Google Ads through its own Google Cloud project, with your Google sign-in. If you want programmatic access to Google Ads for your own software, get your own Google Cloud account and apply for Google Ads API access there. What changed with Google's developer token, what applying involves and when you would want your own access are all on the API access page.

Questions

Ten questions developers ask

Whether one exists, read-only or not, what it is, the free ones, self-hosting, writes, safety, Claude, which clients, and cost.

Keep reading

Four more guides

The pages this one leans on, in the order they tend to be needed.

API access and tokens
What the Google Ads developer token was and why Google retired it, the four access levels a Google Cloud project now holds, what self-hosting needs, and how AdCopilot connects through its own project.
GA4 MCP server
What an AI assistant can do in Google Analytics 4 through AdCopilot (reports, key events, data streams, custom definitions, attribution settings and the Google Ads link), what it cannot do, prompts to try, and how to connect.
Tag Manager MCP
What an AI assistant can read and stage in Google Tag Manager through AdCopilot (tags, triggers, variables and folders in a workspace it manages), why it can never publish or delete, prompts to try, and how to connect.
Search Console MCP
What an AI assistant can do in Google Search Console through AdCopilot (search performance, URL inspection, sitemaps), what requesting indexing does and does not do, prompts to try, and how to connect.
Start free