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 search tool, gets structured rows back, and answers from them. Ask it to add those terms as negatives and — if the server offers write tools and you have enabled them — it calls add_negative_keywords.
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.
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 you paste in, not a plugin you install.
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 token, the cloud project, the OAuth client, the server, the upgrades. AdCopilot is the other trade — thirty-six tools instead of three, and none of the running.
| Free self-hosted server | AdCopilot (hosted) | |
|---|---|---|
| Tools | 3, all read | 32 of 36, reads and writes |
| Can it change a campaign? | No | Yes, once you enable the full tier |
| Who runs it | You — a machine, a Python environment, updates | We do |
| Developer token | Yours to apply for and manage | Ours by default, or bring your own |
| Google Cloud project + OAuth client | Required | Not required — you just sign in with Google |
| Team use | One installation per person | A seat and a login each |
| Cost | Free, plus your time | Free 7-day trial, then Free plan (one account) |
Which tools does the AdCopilot server expose?
Thirty-six tools exist in the underlying server. Thirty-two are exposed to hosted connectors, in seven groups, and a trial connector has all thirty-two. On the read-only tier only the first group is available. Each description below is written from what the tool does rather than what it is called, because several of them are narrower than their names suggest.
Reading the account
The read-only tier is these three and nothing else.
| Tool | What it does |
|---|---|
search | Queries any Google Ads report resource and returns rows. |
list_accessible_customers | Lists the account IDs your Google login reaches directly. |
get_resource_metadata | Lists which fields a resource can select, filter, sort. |
Campaigns
Including Performance Max, which most connectors skip. Every campaign created here gets a new budget of its own — an existing shared budget cannot be attached.
| Tool | What it does |
|---|---|
create_campaign | Creates a campaign together with its own new budget. |
update_campaign | Renames a campaign or changes budget, dates or status. |
set_campaign_status | Switches a single campaign between enabled and paused. |
create_performance_max_campaign | Creates a PMax campaign with budget, logo, business name. |
Ad groups and ads
Responsive search ads only. No other ad format is in the list, so display and video creative stays in the interface.
| Tool | What it does |
|---|---|
create_ad_group | Creates an ad group in a campaign, with a bid. |
update_ad_group | Renames an ad group, or changes status or bid. |
create_responsive_search_ad | Creates one responsive search ad; three headlines minimum. |
update_ad_status | Enables or pauses one ad inside an ad group. |
Keywords
Adding negatives is the single most common fix an audit produces. Note where they land: this tool writes campaign criteria, so it adds campaign-level negatives, not ad group ones and not shared lists.
| Tool | What it does |
|---|---|
add_keywords | Adds keywords to one ad group, with match types. |
update_keyword | Changes one keyword's status or its CPC bid. |
add_negative_keywords | Adds negatives at campaign level only, not shared lists. |
Assets
Ten asset types and three ways to attach them. Images are fetched from a URL you give, because the machine doing the fetching is ours rather than yours — a path on your own computer will not resolve.
| Tool | What it does |
|---|---|
create_text_asset | Creates a reusable line of text — headline or description. |
create_image_asset | Creates an image asset from a URL you supply. |
create_sitelink_asset | Creates a sitelink: link text, URL, optional description lines. |
create_callout_asset | Creates one short callout line, twenty-five characters maximum. |
create_structured_snippet_asset | Creates a structured snippet: one header and its values. |
create_call_asset | Creates a call asset from country code and number. |
create_price_asset | Creates a price table of three to eight offerings. |
create_promotion_asset | Creates a promotion showing a percentage or amount off. |
create_lead_form_asset | Creates a lead form with chosen fields and privacy URL. |
create_youtube_video_asset | Registers an existing YouTube video by its video ID. |
link_asset_to_campaign | Attaches one existing asset to one campaign. |
link_asset_to_ad_group | Attaches one existing asset to one ad group. |
link_assets_to_customer | Attaches assets account-wide, so every campaign inherits them. |
Performance Max asset groups
Building and filling asset groups, which is where most PMax work happens. Both tools link assets that already exist, so the creating comes first.
| Tool | What it does |
|---|---|
create_asset_group | Creates an asset group and links its assets together. |
add_assets_to_asset_group | Adds more existing assets to an asset group. |
Targeting
Where, when and on which device the money is spent. The first two add criteria to whatever is already on the campaign rather than replacing it; the third adjusts a bid that is already there.
| Tool | What it does |
|---|---|
set_geo_targets | Adds locations to a campaign by numeric geo ID. |
set_ad_schedule | Adds day and hour windows when ads run. |
set_device_bid_adjustment | Raises or lowers bids on mobile, desktop or tablet. |
What it deliberately cannot do
Four tools in the underlying server delete things: remove_ad, remove_keyword, remove_campaign_asset and remove_asset_from_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.
The reasoning is that deletion is the one class of change that a conversation cannot undo. Pausing an ad is reversible 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.
How to connect it
- Add
https://mcp.adcopilot.cloud/mcpto your AI client as a custom MCP connector. It is the same URL for everyone — there is no key, token or per-user address to copy. Give it a name of your choosing. - 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.
- Step-by-step for Claude and ChatGPT.
- Ask it something. A good first question is one you already know the answer to.
{"mcpServers": {"adcopilot": {"url": "https://mcp.adcopilot.cloud/mcp"}}}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 doesn't connect, in any client
Four causes account for nearly all of it, and none of them is client-specific.
- The address must end in
/mcpwith 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, which is three tools. A connector is on the full tier unless you asked us for read-only, so if you see three 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. (Included AI credits, for people who would rather not bring one, are on the roadmap.)
- No developer token, Cloud project or OAuth client of your own — those are the parts a hosted server exists to absorb. What a token is, why applications for one get rejected, and when you would still want your own are all on the API access page.
Frequently asked questions
What is a Google Ads MCP server?
A Google Ads MCP server is a program that exposes the Google Ads API to an AI client as a set of callable tools, using the Model Context Protocol. It lets an assistant such as Claude or ChatGPT read a Google Ads account and — if the server offers write tools — run it, building campaigns, adjusting bids and adding negatives, in response to a plain-English request.
Are there free open-source Google Ads MCP servers?
Yes. Free open-source servers exist under permissive licences, and they typically expose three read tools — search, list_accessible_customers and get_resource_metadata. You install and run them yourself. AdCopilot is a hosted connector with thirty-six tools, so an assistant can act on an account rather than only describe it.
Can I self-host a free server instead?
Yes, and if you only ever want to read an account it is a reasonable choice: the licence costs nothing. What it costs instead is a developer token, a Google Cloud project, an OAuth client, a machine to run it on and somebody who notices when an API version is retired. The free servers also have no write tools, so the assistant can look but not act.
Can the AI change my campaigns, or only read them?
It runs them. A hosted connector is on the full tier by default — 32 tools that build campaigns, move budgets and bids, add keywords and negatives and reshape ad groups, assets and targeting, as well as reading — and that is what the trial gets. A read-only tier of three tools is available on any connector if you ask for it. Four destructive tools that exist in the underlying server are never exposed by the hosted one at all, on either tier.
Which AI clients work with it?
Any client that speaks MCP over streamable HTTP. That includes Claude Desktop and claude.ai, ChatGPT, GitHub Copilot, Gemini CLI, Cursor, OpenCode and Claude Code. You paste one address into the client's custom-connector setting; there is nothing to install.
What does a Google Ads MCP server cost?
Open-source servers are free to licence, and the cost is your time running and maintaining them. AdCopilot opens with a free 7-day trial on the full Pro plan, full tools, no card required, then it drops automatically to a permanently free plan for one account — not a lockout — with a paid plan only needed if you want more. You also need a subscription to whichever AI client you connect — the thinking happens there, on your own account.
Try it on your own account for a week
The full set of tools for seven days, so you can see what it actually does — and it still cannot delete anything. No cost, no card: connect your own Google account, and when the week ends it drops to the Free plan automatically rather than locking out.
- 7-day Pro trial
- Then drops to Free
- No card
- Never deletes
- Connect ClaudeStep-by-step instructions for adding a Google Ads MCP connector to Claude Desktop, claude.ai and Claude Code, including what to ask it first and how to revoke access.
- Connect ChatGPTStep-by-step instructions for adding a Google Ads MCP connector to ChatGPT, what it can read and change, and how to withdraw access.
- Connect CopilotHow Microsoft Copilot reaches Google Ads through an MCP connector: what works one-click in Claude and ChatGPT today, the Copilot Studio / M365 Copilot agent path for Copilot, and how to add the connector and revoke access.
- For agencies and teamsHow agencies and in-house teams share a Google Ads AI connector: per-member Google sign-in, seats, per-person switch-off, account scoping and an audit trail.