AgentStack
SKILL verified Apache-2.0 Self-run

Google Ads Mcp

skill-itallstartedwithaidea-google-ads-skills-google-ads-mcp · by itallstartedwithaidea

>

No reviews yet
0 installs
12 views
0.0% view→install

Install

$ agentstack add skill-itallstartedwithaidea-google-ads-skills-google-ads-mcp

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Google Ads Mcp? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Google Ads MCP Server

This skill configures the google-ads-mcp server for live Google Ads API access through Claude Code, Claude Desktop, Cursor, or any MCP client.

Quick Setup

1. Install

pip install git+https://github.com/itallstartedwithaidea/google-ads-mcp.git

2. Configure Credentials

Create a .env file or set environment variables:

GOOGLE_ADS_DEVELOPER_TOKEN=your-developer-token
GOOGLE_ADS_CLIENT_ID=your-oauth-client-id
GOOGLE_ADS_CLIENT_SECRET=your-oauth-client-secret
GOOGLE_ADS_REFRESH_TOKEN=your-refresh-token
GOOGLE_ADS_LOGIN_CUSTOMER_ID=123-456-7890

Or point to an existing google-ads.yaml:

GOOGLE_ADS_CREDENTIALS=/path/to/google-ads.yaml
GOOGLE_ADS_LOGIN_CUSTOMER_ID=123-456-7890

3. Run

python -m ads_mcp.server

Claude Code Configuration

Place .mcp.json in your project root:

{
  "mcpServers": {
    "google-ads": {
      "type": "stdio",
      "command": "python",
      "args": ["-m", "ads_mcp.server"],
      "env": {
        "GOOGLE_ADS_CREDENTIALS": "${GOOGLE_ADS_CREDENTIALS}",
        "GOOGLE_ADS_LOGIN_CUSTOMER_ID": "${GOOGLE_ADS_LOGIN_CUSTOMER_ID}"
      }
    }
  }
}

Claude Code auto-discovers .mcp.json and loads the server on startup.

Claude Desktop Configuration

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "google-ads": {
      "command": "python",
      "args": ["-m", "ads_mcp.server"],
      "env": {
        "GOOGLE_ADS_CREDENTIALS": "/path/to/google-ads.yaml",
        "GOOGLE_ADS_LOGIN_CUSTOMER_ID": "123-456-7890"
      }
    }
  }
}

Available Tools (29)

Read Tools (9)

| Tool | Description | |---|---| | list_accessible_customers | List all accessible customer accounts | | list_accounts | List accounts under an MCC with details | | execute_gaql | Run custom GAQL queries | | get_campaign_performance | Campaign metrics with date range | | get_keyword_performance | Keyword metrics and quality scores | | get_search_terms | Search term report with wasted spend | | get_ad_performance | Ad creative performance | | get_account_budget_summary | Budget utilization analysis | | generate_keyword_ideas | Keyword Planner search volume and CPC |

Audit Tools (7)

| Tool | Description | |---|---| | get_auction_insights | Competitive auction data | | get_change_history | Recent account changes | | get_device_performance | Performance by device type | | get_geo_performance | Performance by location | | get_recommendations | Google's optimization suggestions | | get_pmax_performance | Performance Max campaign data | | get_impression_share | Impression share and lost opportunity |

Write Tools (11) — dry-run by default

| Tool | Description | |---|---| | update_campaign_budget | Change daily budget | | update_campaign_status | Pause or enable a campaign | | update_ad_group_status | Pause or enable an ad group | | update_keyword_bid | Change keyword CPC bid | | add_keywords | Add keywords to an ad group | | add_negative_keywords | Add negative keywords | | remove_negative_keyword | Remove a negative keyword | | create_campaign | Create a new campaign (paused) | | create_ad_group | Create a new ad group | | switch_bidding_strategy | Change bidding strategy | | generic_mutate | Raw Google Ads API mutation |

All write tools use confirm=False by default (dry-run preview). Pass confirm=True only after reviewing the preview.

Doc Tools (2)

| Tool | Description | |---|---| | get_gaql_reference | GAQL syntax and field reference | | get_workflow_guide | Step-by-step workflow instructions |

Credential Sources

| Value | Where to Get It | |---|---| | Developer Token | ads.google.com → Tools & Settings → API Center | | Client ID | console.cloud.google.com → Credentials | | Client Secret | console.cloud.google.com → Credentials | | Refresh Token | OAuth Playground or google-ads Python auth helper | | Login Customer ID | Your MCC account ID (top of Google Ads UI) |

Troubleshooting

| Problem | Fix | |---|---| | UNAUTHENTICATED | Refresh token expired — regenerate via OAuth Playground | | PERMISSION_DENIED | Account not accessible under your MCC | | DEVELOPER_TOKEN_NOT_APPROVED | Apply for Basic Access at ads.google.com → API Center | | Rate limit exceeded | Basic Access: 15K ops/day. Use LIMIT clauses and filters. |

Related

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.