What This Connection Does—and Does Not Do
Google describes the Google Ads MCP server as a bridge between an agent or LLM and the Google Ads API for natural-language campaign-data analysis and retrieval. In Claude Code, the useful operator pattern is simple: connect the local MCP server, ask focused questions about account data, inspect what the server returns, and keep every account decision in human hands.
The important boundary: Google labels the current Google Ads MCP server release read-only. That makes it useful for analysis and retrieval, not for changing campaigns through this server.
| Capability | What Morgan verified |
|---|---|
| Account discovery | The server exposes list_accessible_customers. |
| Reporting and analysis | The server exposes search for GAQL reporting. |
| Resource lookup | The server exposes get_resource_metadata. |
| Transport | Google lists stdio transport. |
| Runtime | Google lists Python as a key specification. |
| Auth options | Google lists OAuth 2.0 or service-account authentication. |
| Write access | Google labels the current release read-only. |
Use this connection when an operator needs faster read-only analysis. Do not describe it as an autonomous media buyer, a campaign editor, or a replacement for review.
The Operator Workflow: Analyze, Verify, Decide, Then Change Manually
A clean workflow keeps Claude Code in the analysis lane:
- Analyze: ask Claude Code targeted Google Ads questions through the connected MCP server.
- Verify: review the returned account data and the reasoning before taking action.
- Decide: have a human decide what, if anything, should change.
- Change manually: make approved edits through the appropriate human-controlled workflow, not through this read-only MCP server.
This matters because read-only access is not the same thing as zero risk. Google’s official repository says the MCP server exposes connected Google Ads data to the agent or LLM. The server may not write to the account, but the connected system can still receive account data.
Prerequisites to Confirm Before Setup
Before configuring Claude Code, confirm that the operator has the Google Ads and Google Cloud requirements ready.
| Requirement | Why it matters |
|---|---|
| Google Ads developer token | Google states that a developer token is required for Google Ads API calls. |
| Google Cloud project ID | Google lists this as a prerequisite for the MCP server. |
| OAuth2 Client ID and client secret, or application default credentials | Google lists either OAuth credentials or application default credentials as supported prerequisites. |
Google’s developer-token documentation also states that Explorer Access can make calls against production accounts, subject to restrictions. Do not assume a token is unrestricted just because it exists.
Configure the Official Google Ads MCP Server in Claude Code
Claude Code supports local stdio MCP servers. Anthropic describes these as local processes running on the user’s machine.
Use Google’s official configuration template below as the server entry in the Claude Code MCP configuration method selected for the operator’s scope. Copy the structure exactly, then replace only the placeholder values with the operator’s approved credential path, project ID, and developer token.
json{
"mcpServers": {
"google-ads-mcp": {
"command": "pipx",
"args": [
"run",
"--spec",
"git+https://github.com/googleads/google-ads-mcp.git",
"google-ads-mcp"
],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "PATH_TO_CREDENTIALS_JSON",
"GOOGLE_PROJECT_ID": "YOUR_PROJECT_ID",
"GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_DEVELOPER_TOKEN"
}
}
}
}
Operator notes:
- Keep the server name clear:
google-ads-mcpis explicit and matches the template. - Treat
GOOGLE_APPLICATION_CREDENTIALSas a pointer to the credentials JSON path, not a place to paste secret contents. - Do not put credentials into prompts, chat history, tickets, or screenshots.
- Match the configuration scope to the operator’s intended use of Claude Code.
Verify the Local Connection and Start With Read-Only Questions
After setup, use Claude Code’s documented MCP inspection command:
bashclaude mcp list
That command confirms which MCP servers Claude Code sees as configured.
Once the server is available, start with a small read-only question. Google’s official sample prompt is:
textHow is my campaign performance this week?
For operator work, keep the first questions narrow and reviewable:
- Ask for account or customer discovery before deeper analysis.
- Ask for specific performance windows rather than broad audits.
- Ask for the metrics, budgets, status, or resource metadata needed for the decision in front of you.
- Keep the next action separate from the analysis. The connected server is for retrieval and analysis; the human owns the change decision.
Handling Manager-Account Access and Multiple Customers
Because the server exposes list_accessible_customers, begin multi-account work by identifying which customers are accessible. That is especially important when an operator works from a manager-account context or has access to more than one customer.
A practical review pattern:
| Step | Operator check |
|---|---|
| 1 | Use customer discovery before asking for performance analysis. |
| 2 | Confirm the customer being analyzed before interpreting results. |
| 3 | Keep notes tied to the customer context used for the query. |
| 4 | If the accessible-customer list is not what the operator expects, stop and resolve access before analysis. |
Do not infer missing access details from the model’s response. If an account is not available through the server, treat that as an access or configuration issue to resolve, not as a performance conclusion.
Data Exposure, Human Review, and Decision Controls
Read-only is a strong operational boundary, but it is not a complete governance model.
The verified facts support three controls:
- Data exposure review: Google’s repository says connected Google Ads data is exposed to the agent or LLM.
- Human decision ownership: the current server release is read-only, so any account change should happen through an approved human workflow.
- Prompt discipline: ask for the minimum account data needed to answer the operator question.
Use a simple control table before giving access:
| Control | Operator standard |
|---|---|
| Credential handling | Store credentials through the approved local configuration path; do not paste secrets into prompts. |
| Query scope | Ask for the smallest useful analysis window and customer context. |
| Decision rights | Claude Code can assist analysis; a human decides changes. |
| Change execution | Make changes outside this read-only server through the approved workflow. |
| Review | Verify retrieved data and recommendations before action. |
Setup Timing: The Official Requirements vs. a Planning Estimate
Google’s MCP setup guide lists the requirements and configuration steps, but Morgan verified that it does not publish a setup-duration guarantee.
So the honest planning language is:
- Official: Google documents prerequisites and setup requirements.
- Planning estimate: roughly 30 minutes may be a reasonable internal planning estimate for a prepared operator.
- Not official: do not present 30 minutes as a promise from Google, Anthropic, or the MCP server project.
If the developer token, Google Cloud project, or credential path is not ready, the setup can take longer. Treat missing prerequisites as blockers, not as implementation details to guess around.
Troubleshooting: Developer Token and Credential Access
When the connection does not work, stay inside the verified surface area and check the basics first.
| Symptom | Check |
|---|---|
| Claude Code does not show the server | Run claude mcp list and confirm the configured MCP server appears. |
| The server cannot authenticate | Confirm the selected OAuth credentials or application default credentials are available through the configured path or environment. |
| Google Ads API calls fail | Confirm the developer token exists and is usable for the intended account access. |
| Expected customers are missing | Use account discovery and verify access before analysis. |
| Analysis asks for changes | Keep the server in the analysis lane. The current release is read-only. |
Do not solve credential issues by pasting secrets into Claude Code prompts. Fix the local configuration and rerun the connection check.