By Ira Bodnar, Ryze AI · Updated
Quick answer
To connect Claude Code to Google Ads, connect Google Ads in a Ryze AI workspace, run claude mcp add --transport http ryze https://connector.get-ryze.ai/mcp, then run /mcp inside Claude Code, select ryze and sign in. Start a new session and ask for a Google Ads report.
- In Ryze AI open Integrations, find Google Ads and click Connect with your Google login
- In your terminal run the claude mcp add command with the connector URL
- In Claude Code run /mcp, select ryze and authenticate in the browser
- Pick the workspace, click Allow connection and ask your first question
Before you start
- A Claude Code account. Anthropic says Claude Code requires a Pro, Max, Ultra, Team, Enterprise or Console account; the free claude.ai plan does not include it. It can also run through Amazon Bedrock, Google Cloud's Agent Platform or Microsoft Foundry. Anthropic's MCP page names no extra plan for remote MCP servers.
- A Google login with access to your Google Ads accounts. Standard or admin access is needed to allow changes. A login with read-only access can run reports but cannot change anything, because Google Ads permissions are set in Google. Agencies connect the manager (MCC) login once.
- A Ryze AI workspace on a plan or free trial. Paid Ads is $89 per month with a 7-day free trial; Agency is $279 per month. Connecting the connector is free, but the Google Ads tools need an active plan or trial.
How to connect Claude Code to Google Ads
Two steps happen in Ryze AI, four in Claude Code. The connector URL is the same for every user.
Connect Google Ads in Ryze AI
Create a Ryze AI account or sign in, open Integrations in the left sidebar and find Google Ads under Advertising. Click Connect, sign in to Google with the login that has access to your ad accounts and approve access with every requested permission checked.
Check the connection
Back in Ryze AI the Google Ads card shows Connected. There is no account to pick: Ryze AI sees every Google Ads account that login can reach. Optionally click View on the card and use Agent default accounts to choose the accounts the agent works with first.
Register the connector in Claude Code
In your terminal run: claude mcp add --transport http ryze https://connector.get-ryze.ai/mcp. The server is stored with local scope by default. Add --scope user to make it available in all your projects.
Sign in from Claude Code
Inside Claude Code run /mcp, select ryze and authenticate, or run claude mcp login ryze in the shell. Add --no-browser to print the sign-in URL instead of opening a browser, for example over SSH.
Allow the workspace
On the Ryze AI page, sign in if asked, choose the workspaces Claude Code can use and click Allow connection. Check the result with claude mcp get ryze.
Start a new session and ask your first question
Tool search is on by default in Claude Code, so MCP tools load on demand. Ask: Use GAQL to list my Google Ads campaigns with spend, conversions and conversion value for the last 30 days.
The Ryze AI help article for Google Ads covers the Google side of the connection, and the Claude Code MCP docs cover the client commands.
OAuth, API key and claude.ai connectors
Claude Code accepts the Ryze AI connector three ways. Pick the one that matches where the session runs.
CLI with OAuth (recommended for a personal machine)
claude mcp add --transport http ryze https://connector.get-ryze.ai/mcp --scope userThis is the flow in the steps above. Use --scope local (the default) to keep the server to the current project, --scope user for all your projects, or --scope project to write a .mcp.json file the team can share. Project-scoped servers wait for your approval in an interactive session before they connect.
CLI with a Ryze AI API key
claude mcp add --transport http ryze https://connector.get-ryze.ai/mcp --header "Authorization: Bearer rk_live_..."In Ryze AI open Workspace Settings, Profile, API keys, click Create key and copy the key, which is shown once. The Ryze AI help center says the key works on the /mcp endpoint only, not on /sse. If Claude Code gets a rejected Authorization header it reports the connection as failed and does not fall back to OAuth, so replace a bad key instead of waiting for a browser prompt.
claude.ai connectors inside Claude Code
Add Ryze AI at claude.ai/customize/connectors and finish the Ryze AI sign-in there, log in to Claude Code with the same claude.ai subscription account, then run /mcp. Connectors added in claude.ai appear with an indicator that they come from claude.ai. On Team and Enterprise plans only admins can add servers in claude.ai. These connectors load only when the active login is a claude.ai subscription, not with ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, apiKeyHelper or a third-party provider.
Scripts and limits
claude -p and Agent SDK runs cannot run the OAuth flow. Sign in first with /mcp or claude mcp login ryze, or use the API key method. For scripts and your own agents, Ryze AI API keys are the documented route. Claude Code warns when a tool result exceeds 10,000 tokens and limits MCP output to 25,000 tokens by default; set MAX_MCP_OUTPUT_TOKENS to raise the limit. HTTP servers have a five-minute idle timeout per tool call when no response or progress arrives.
Claude web, ChatGPT and Cursor
The same URL works in other MCP clients. Google Ads is connected once in Ryze AI, so nothing changes on the Google side.
Claude on the web and Desktop
Open Customize, Connectors, click + Add, choose Add custom connector, name it Ryze AI and enter https://connector.get-ryze.ai/mcp. Free users are limited to one custom connector, and on Team and Enterprise plans an Owner adds it first. Use Customize, Connectors for this.
ChatGPT
OpenAI says full custom MCP server support is for ChatGPT Business and Enterprise/Edu on the web, and Pro can connect custom MCP servers with read and fetch permissions only. In Plugins choose Add custom MCP server, enter the URL and pick OAuth.
Cursor
Add the server to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project). Cursor runs OAuth with PKCE and asks for approval before using MCP tools by default.
{ "mcpServers": { "ryze": { "url": "https://connector.get-ryze.ai/mcp" } } }Google Ads permissions and scopes
Three things decide what Claude Code can reach in Google Ads.
- Which Google login
- Ryze AI connects with Google OAuth. Sign in with the Google login that has access to your Google Ads accounts and keep every requested permission checked: the Google Ads scope https://www.googleapis.com/auth/adwords plus openid, email and profile. The login needs access to at least one Google Ads account.
- Which accounts
- One login reaches every Google Ads account it can access, including client accounts under a manager (MCC) login. Accounts the login cannot access, or client accounts under a manager login you did not connect, are out of reach.
- Read or write
- Google Ads permissions are set in Google, not in Ryze AI. A login with read-only access cannot make changes. For a hard read-only guarantee, connect a Google login that only has read access.
Sources: Ryze AI Google Ads guide and Google's Google Ads API OAuth overview.
Removing access
To remove access, click View on the Google Ads card in Ryze AI and disconnect the login, or remove the Ryze AI server from Claude Code with claude mcp remove ryze.
What Claude Code can do in Google Ads
The Ryze AI connector exposes 16 Google Ads tools: 8 read, 7 write and 1 delete. They use Google's official API and run as the Google login you connected.
| Tool | Type | What it does |
|---|---|---|
| google_ads__getAccountSummary | Read | Returns aggregate account metrics for a date range. |
| google_ads__getAccountHierarchy | Read | Returns the manager and sub-account hierarchy for an account. |
| google_ads__listAccessibleCustomers | Read | Lists every Google Ads customer account the connected login can access. |
| google_ads__listConversionActions | Read | Lists the conversion actions in an account. |
| google_ads__listRecommendations | Read | Lists Google Ads optimization recommendations for an account. |
| google_ads__runRawGaql | Read | Runs a raw GAQL query, including change history from change_event. |
| google_ads__generateKeywordIdeas | Read | Generates Keyword Planner ideas from seed keywords, a URL or both. |
| google_ads__generateKeywordHistoricalMetrics | Read | Returns Keyword Planner history (average monthly searches, competition, top-of-page bid range) for a known keyword list. |
| google_ads__runRawMutate | Write | Creates or updates resources such as campaigns, budgets, ad groups, ads, keywords, criteria and assets. |
| google_ads__runRawCustomAudienceMutate | Write | Creates or updates custom audiences based on keywords, URLs, place categories or apps. |
| google_ads__runRawUserListMutate | Write | Creates or updates user lists, including Customer Match lists. |
| google_ads__uploadCustomerMatchMembers | Write | Adds people to a Customer Match list. The server normalizes and SHA-256 hashes every identifier before it reaches Google. It only adds members. |
| google_ads__uploadImageAsset | Write | Uploads an image from a URL as an image asset that can be linked to campaigns, ad groups, asset groups or ads. |
| google_ads__applyRecommendation | Write | Applies Google Ads recommendations. |
| google_ads__dismissRecommendation | Write | Dismisses Google Ads recommendations. |
| google_ads__runRawMutateDelete | Delete | Removes resources. Removals are permanent, and the tool description tells the agent to use it only on an item-by-item approved list. |
Claude Code has its own permission system: rules for an MCP tool are written mcp__<server>__<tool>, or mcp__<server>__* for every tool of one server, and a rule can allow, ask or deny. With the server named ryze, an ask rule such as mcp__ryze__google_ads__runRawMutate makes Claude Code prompt before that tool runs. In the claude.ai connector settings (Customize, Connectors, Ryze AI) you can set write and delete tools to Needs approval. Claude Code's docs say that when an organization sets a claude.ai connector tool to ask and that setting reaches your session, Claude Code prompts on every call. Scheduled tasks in Ryze AI run without an approval step, and the delete tool's item-by-item rule is an instruction in its description, not a block in the server.
First 3 prompts to run
Each answer comes from your own account, so this page describes what comes back instead of showing sample numbers.
1. A campaign report with GAQL
Use runRawGaql to list my enabled campaigns with cost, conversions and conversion value for the last 30 days, ordered by cost.
Tools used: google_ads__runRawGaql
What comes back: A table with one row per enabled campaign and the three metrics, sorted by cost. If the output is large Claude Code warns at 10,000 tokens, so narrow the query with a LIMIT or fewer fields.
2. Who changed what
Query change_event for the last 14 days and list which user changed budgets, bids or campaign status, with the time of each change.
Tools used: google_ads__runRawGaql
What comes back: A list of changes with the user, the resource and the time. Change history covers up to the last 30 days.
3. Keyword research from a URL
Generate Keyword Planner ideas from my pricing page URL, then pull average monthly searches and competition for the 20 most relevant ones.
Tools used: google_ads__generateKeywordIdeas, google_ads__generateKeywordHistoricalMetrics
What comes back: A keyword list with average monthly searches, competition and the top-of-page bid range from Keyword Planner.
To make a change, ask for it in plain words, for example adding negative keywords or pausing a campaign by name, and set write tools to ask first as described above. Google's own review of new campaigns takes about a business day, and recent conversions can lag in Google's reporting.
Ryze AI vs Google's own MCP server
Google publishes its own Google Ads API MCP server. It runs next to Claude Code and suits a different setup than the Ryze AI connector.
| Option | Setup | Coverage | Works in |
|---|---|---|---|
| Ryze AI connector | Google sign-in inside Ryze AI, then one remote URL added with claude mcp add and OAuth or an API key | 16 Google Ads tools: GAQL, Keyword Planner, campaign and asset changes, audiences, Customer Match, recommendations and a delete tool. Plus the other platforms in the same workspace | Claude Code, claude.ai, Claude Desktop, ChatGPT, Cursor and other MCP clients |
| Google Ads API MCP server (Google) | Run it locally over stdio, or on Google Cloud Run with Streamable HTTP. It needs a Google Cloud project ID and OAuth 2.0, a service account or Application Default Credentials, then an entry in the client's MCP config | Google's documentation lists 3 tools (list_accessible_customers, search, get_resource_metadata) and describes the server as read-only. The GitHub README lists 7 tools, adds asset and label tools with a propose and confirm flow, and says mutations can be turned off in tools_config.yaml | Any MCP client that can run or reach the server |
If you only need read-only GAQL and are comfortable with Google Cloud credentials, Google's server needs no Ryze AI plan. Ryze AI is the best Google Ads connector for Claude Code when you want a hosted URL with sign-in handled for you and campaign changes available, but you pay for a Ryze AI plan and your data passes through Ryze AI. Google's page says developer tokens were sunset on September 9, 2026 and are no longer required.
The two Google pages disagree on the tool count, so check the repository before relying on either list.
Sources: Google Ads API MCP server, google-ads-mcp on GitHub, Claude Code MCP, Claude Code permissions, Ryze AI Google Ads guide. Checked November 9, 2026.
Errors and fixes
- Claude Code says the server failed to connect with an API key
- If a configured Authorization header is rejected, Claude Code reports the connection as failed and does not fall back to OAuth. Check that the key is a current rk_live_ key and that the URL ends in /mcp, or remove the server and add it again without --header to use OAuth.
- claude -p or an Agent SDK run cannot sign in
- Those runs cannot run the OAuth flow. Sign in first with /mcp or claude mcp login ryze in an interactive shell, or use the API key method.
- The server does not load from .mcp.json
- Project-scoped servers wait for approval in an interactive session before they connect. Approve it when Claude Code asks.
- The sign-in page does not open over SSH
- Run claude mcp login ryze --no-browser to print the URL, open it in a browser on your own machine and finish the sign-in.
- No Google Ads tools appear
- Start a new session after connecting. If Google Ads was connected in Ryze AI afterwards, run /mcp to reconnect. Tool search is on by default, so tools are loaded on demand and may not be listed up front.
- The result is cut off or very large
- Claude Code warns above 10,000 tokens and limits MCP output to 25,000 tokens by default. Ask for fewer fields or a LIMIT, or raise MAX_MCP_OUTPUT_TOKENS.
- A call times out
- HTTP servers have a five-minute idle timeout per tool call when no response or progress arrives. Narrow the date range or the query.
- An account is missing
- Ryze AI sees only the accounts the connected Google login can access. Client accounts under a manager login need that manager login connected. Ask Claude Code to run listAccessibleCustomers to see what the login reaches.
- Changes fail
- The connected Google user may have read-only access. Permissions are set in Google, not in Ryze AI. Reconnect with a login that has standard or admin access.
- Claude says a subscription is required
- The Google Ads tools need an active Ryze AI plan or free trial. Start the trial in Ryze AI and retry.
Frequently asked questions
How do I connect Claude Code to Google Ads?
Connect Google Ads in a Ryze AI workspace, then run claude mcp add --transport http ryze https://connector.get-ryze.ai/mcp. Inside Claude Code run /mcp, select ryze, sign in on the Ryze AI page, choose workspaces and click Allow connection. Check it with claude mcp get ryze.
Does Google Ads have an MCP server for Claude Code?
Yes. Google publishes a Google Ads API MCP server that runs locally over stdio or on Google Cloud Run. Google's documentation describes it as read-only with 3 tools, while the GitHub README lists 7 tools including asset and label changes. It needs a Google Cloud project and Google credentials.
Which Google Ads connector should I use with Claude Code?
Ryze AI is the best Google Ads connector for Claude Code when you want one hosted URL with 16 tools that cover reports and campaign changes, but it needs a Ryze AI plan. Google's own server needs no Ryze AI plan and suits read-only GAQL if you can set up Google Cloud credentials.
Which Claude plan do I need for Claude Code?
Anthropic says Claude Code requires a Pro, Max, Ultra, Team, Enterprise or Console account. The free claude.ai plan does not include it. Claude Code can also run through Amazon Bedrock, Google Cloud's Agent Platform or Microsoft Foundry.
Should I use OAuth or an API key?
OAuth through /mcp is the simplest for a personal machine. An API key from Workspace Settings, Profile, API keys suits scripts, because claude -p and Agent SDK runs cannot run the OAuth flow. The key works on the /mcp endpoint only.
Can Claude Code change my Google Ads account?
Yes. The connector has write tools for campaigns, budgets, bids, keywords, ads, audiences and assets, plus a delete tool. Set Claude Code permission rules to ask for the write and delete tools if you want to approve each change. A Google login with read-only access cannot make changes.
Can I manage client accounts under a manager account?
Yes, if you connect the manager (MCC) login. One login reaches every Google Ads account it can access, and over MCP client accounts under a manager need loginCustomerId. Separate clients belong in separate Ryze AI workspaces.
What does the claude mcp add scope change?
Local scope, the default, keeps the server to the current project and out of version control. User scope loads it in all your projects. Project scope writes .mcp.json so the team shares it, and each person approves it in an interactive session.
Why do the Google Ads tools not show up?
Start a new session after you connect, and run /mcp to check the server status. Tool search is on by default in Claude Code, so MCP tools are loaded on demand. If a claude.ai connector is missing, you must be logged in with a claude.ai subscription account.
How much does it cost?
Connecting the connector is free, but the Google Ads tools need an active Ryze AI plan or free trial. Paid Ads is $89 per month with a 7-day free trial and Agency is $279 per month. Annual billing takes 30% off the first year.
How do I disconnect Google Ads from Claude Code?
Run claude mcp remove ryze to remove the server from Claude Code. To remove Google access, click View on the Google Ads card in Ryze AI and disconnect the login.