Google Ads MCP

Google Ads MCP server: GAQL queries, performance reports and campaign management.

Documentation

Google Ads MCP is a free MCP server that gives your AI agent 14 tools for Google Ads: ten for reading accounts, campaigns, keywords, and search terms, and four for making changes. You ask in plain language and the agent pulls the numbers or, with your confirmation, pauses a campaign or changes a budget. It runs on your machine as a VS Code extension and uses your own Google Ads API access.

There is no server to host and no config file to edit. You install the extension, complete the setup wizard, and the tools appear in every agent it finds: VS Code Copilot, Claude Code, Cursor, OpenAI Codex, Google Gemini, Windsurf, Continue.dev, and Cline.

What you can ask

  • “Show me campaign performance for the last 7 days”
  • “What are my top 20 keywords by clicks?”
  • “Which search terms triggered my ads but never converted?”
  • “Show me the ads in the brand campaign”
  • “Pause the campaign with the highest cost per conversion”
  • “Raise the daily budget on the search campaign to 80”

The ten read tools

ToolWhat it does
ads_list_accountsList the customer accounts you can reach, including those under a manager account
ads_account_infoAccount name, currency, time zone, auto-tagging, and manager status
ads_campaignsCampaigns with status, budget, type, and metrics for a date range
ads_ad_groupsAd groups with metrics, for one campaign or all
ads_adsAds with their headlines, descriptions, final URLs, and metrics
ads_keywordsKeyword performance: impressions, clicks, cost per click, conversions, impression share
ads_search_termsThe search terms report: what people typed before your ad showed
ads_performanceAn account total for a date range, or the same broken down by campaign
ads_queryRun any read-only query in the Google Ads Query Language
pingCheck that the server is running

ads_query covers whatever the other tools do not. If you want clicks by device, performance by hour, or conversions by location, the agent writes the query and runs it. Only SELECT queries are accepted, so it cannot change anything.

The four admin tools

ToolActions
ads_campaign_adminCreate a search campaign, rename, pause, enable, remove, change the daily budget
ads_ad_group_adminCreate an ad group, rename it or change its bid, pause, enable, remove
ads_ad_adminCreate a responsive search ad, pause, enable, remove
ads_keyword_adminAdd keywords with a match type, pause, enable, remove, change a bid

Every change needs confirmation, and new things start paused

In the other Google extensions only deletes need a confirmation. Here every admin action does, because every one of them can spend money. Nothing changes unless the call carries confirm: true, and the agent is told to ask you first.

New campaigns, ad groups, and ads are created paused. They cannot spend until you, or the agent on your instruction, enable them. That gives you a chance to look at what was built in the Google Ads interface before it goes live.

Three things people use it for

A search terms clean-up

Ask for search terms from the last 30 days with spend and no conversions. The agent returns the list with the cost of each. You decide which are waste, and add those as negative keywords in Google Ads.

A weekly account check

Ask for this week against last week by campaign. The agent calls ads_performance twice and tells you what moved: which campaigns spent more for fewer conversions, and which improved.

Drafting a campaign you review before launch

Describe the offer and the landing page. The agent creates the campaign, an ad group, the keywords, and a responsive search ad, all paused. You read it through in Google Ads and enable it when it is right.

What you need before installing

Google Ads has a stricter API than the other Google services, so setup has one extra piece.

  1. A Google Ads account. A manager account works too.
  2. A developer token. In Google Ads, open Tools, then API Center, and copy the token. If you do not have one, apply there. A test token only works against test accounts, so you need approved access to read a live account.
  3. OAuth credentials. In the Google Cloud Console, enable the Google Ads API and create an OAuth client ID of type Desktop app.
  4. The setup wizard. It takes the OAuth client, the developer token, and your choice of agents, then verifies the connection.
  5. Your customer ID. Set the 10-digit ID, without dashes, in VS Code settings under gadsMcp.defaultCustomerId, or name it in a request.

Using Google Ads MCP with Claude Code, Cursor and other agents

You do not add a server entry by hand. The extension writes the registration for each agent it finds: ~/.claude.json for Claude Code, ~/.cursor/mcp.json for Cursor, ~/.codex/config.toml for OpenAI Codex, ~/.gemini/settings.json for Gemini, and the matching files for Windsurf, Continue.dev, and Cline. VS Code Copilot picks it up through the VS Code API.

Open a new session in any of them and the tools are in the tool list. To limit which agents get them, switch the others off in VS Code settings under gadsMcp.agents. The command “Google Ads MCP: Remove from All Agents” takes every registration back out.

Amounts are in micros

The Google Ads API counts money in micros, and one unit of your account currency is 1,000,000 micros. The agent converts for you, so “set the budget to 50” becomes 50,000,000. In a raw query result, a cost of 2,340,000 means 2.34.

Limits

  • It creates search campaigns and responsive search ads. It does not create Performance Max, Shopping, Display, or video campaigns, though it reports on them.
  • Negative keywords, audiences, and extensions are read through ads_query. They are not changed through the admin tools.
  • Creating a campaign requires you to state whether it contains EU political advertising, because Google’s API requires that declaration.
  • Google Ads data for the current day is incomplete until the day closes.

Common questions

Is Google Ads MCP free?

Yes. The extension is free and MIT licensed. You pay Google for your ads as usual and nothing for the API.

Is this Google’s official Google Ads MCP server?

No. It is an independent extension that calls the Google Ads API with your own developer token and sign-in.

Does it work with Claude Code and Cursor?

Yes. Both are registered automatically, along with Copilot and five other agents.

Can the agent spend my budget without asking?

Every admin action needs an explicit confirmation, and anything new is created paused. Reports and queries cannot change the account.

Can I use it with a manager account?

Yes. ads_list_accounts lists the accounts under it, and every tool accepts a customer ID so you can move between clients in one session.

Where does my account data go?

Nowhere except Google. The MCP server runs on your own machine and calls Google’s APIs with your credentials. There is no telemetry, and the sign-in token is kept in VS Code’s encrypted secret storage.

Use it without VS Code

Google Ads MCP is also on npm, for Claude Code, Cursor, or any other MCP client. It needs Node.js 22 or newer.

npx -y @renzo.johnson/google-ads-mcp

In Claude Code, one command adds it:

claude mcp add google-ads -- npx -y @renzo.johnson/google-ads-mcp

Outside VS Code there is no setup wizard, so the server takes its sign-in from the environment: your developer token in GOOGLE_ADS_DEVELOPER_TOKEN, and an OAuth client ID, secret, and refresh token in GOOGLE_OAUTH_CLIENT_ID, GOOGLE_OAUTH_CLIENT_SECRET, and GOOGLE_OAUTH_REFRESH_TOKEN. With a manager account, also set GOOGLE_ADS_LOGIN_CUSTOMER_ID. The npm package page has the config block for Claude Code and Cursor.

Install it

Google Ads MCP is free and MIT licensed.

Listed in the official MCP Registry as com.renzojohnson/google-ads-mcp.

Related