Skip to main content
Glama
bjorndavidhansen

Google Ads MCP Server

Google Ads MCP Server

Updated on May 22, 2025 - Phase 5 Automated Insights Features Implementation Complete

A Model Context Protocol (MCP) server that provides access to Google Ads data through Claude Desktop.

Features

  • Access Google Ads campaigns, accounts, and performance metrics via Claude

  • Budget Management API Endpoints with visualizations (Project Quantum Pulse Phase 3)

  • Keyword Management API Endpoints with visualizations (Project Quantum Pulse Phase 2)

  • Ad Group Management API Endpoints (Project Quantum Pulse Phase 1)

  • Support for both Manager (MCC) and client account data

  • Built-in caching to improve performance and reduce API calls

  • Claude Artifacts integration for data visualization

  • Multi-environment support (development, testing, production)

  • Containerized deployment with Docker

Project Quantum Pulse Roadmap

This repository implements the Project Quantum Pulse roadmap for enhanced Google Ads management capabilities:

Phase 1: Ad Group Management API Endpoints (COMPLETE) - March 29 to April 4, 2025

  • Get ad groups with filtering capabilities

  • View ad group performance metrics

  • Create new ad groups

  • Update existing ad groups

  • Visualize ad group performance

Phase 2: Keyword Management API Endpoints (COMPLETE) - April 5 to April 18, 2025

  • Browse keywords with filtering capabilities ✅

  • Analyze search terms and find insights ✅

  • Add, update, and remove keywords ✅

  • Visualize keyword performance with tables, charts, and word clouds ✅

Phase 3: Budget Management API Endpoints (COMPLETE) - April 19 to May 2, 2025

  • Retrieve campaign budgets with performance metrics ✅

  • Analyze budget utilization and distribution ✅

  • Generate budget recommendations ✅

  • Visualize budget performance with charts and tables ✅

  • Update budget properties (API call implementation pending)

Phase 4: Enhanced Visualization Templates (COMPLETE) - May 3 to May 16, 2025

  • Implement comprehensive dashboard templates ✅

  • Create comparison visualization templates ✅

  • Build breakdown visualization templates ✅

  • Integration, testing, and documentation ✅

Phase 5: Automated Insights Features (COMPLETE) - May 17 to May 30, 2025

  • Implement performance anomaly detection ✅

  • Generate optimization suggestions ✅

  • Discover growth opportunities ✅

  • Create integrated insights dashboard ✅

Prerequisites

  • Python 3.9 or higher

  • Google Ads API credentials

  • Claude Desktop

Quick Start

Local Development

  1. Clone this repository:

    git clone https://github.com/yourusername/google-ads-mcp.git
    cd google-ads-mcp
  2. Set up a virtual environment:

    python -m venv .venv
    source .venv/bin/activate  # On Windows, use: .venv\Scripts\activate
  3. Install dependencies:

    pip install -r requirements.txt
  4. Create a .env file with your Google Ads credentials:

    cp .env.example .env
    # Edit .env file with your credentials
  5. Run the server:

    python server.py

Docker Deployment

  1. Build the Docker image:

    docker build -t google-ads-mcp:latest .
  2. Run the container:

    docker run -p 8000:8000 --env-file .env google-ads-mcp:latest

Alternatively, use docker-compose:

docker-compose up -d

Configuration

The application supports different environments (dev, test, prod) with environment-specific configurations:

  • Set APP_ENV to dev, test, or prod to specify the environment

  • Configure environment variables as documented in .env.example

  • Feature flags allow enabling/disabling specific functionality

Claude Desktop Integration

  1. Configure Claude Desktop for the MCP server in your Claude Desktop App configuration:

    {
        "mcpServers": {
            "google-ads": {
                "command": "python",
                "args": [
                    "/absolute/path/to/server.py"
                ]
            }
        }
    }
  2. Restart Claude Desktop and look for the tools icon to appear

  3. Use Google Ads data in Claude by asking questions like:

    • "Show me my Google Ads account performance"

    • "What campaigns are performing well in my account?"

    • "Create a visualization of my campaign performance"

    • "List all ad groups in my 123-456-7890 account"

    • "Update the status of ad group 12345678 to PAUSED"

    • "Create a new ad group called 'Summer Products 2025' in campaign 98765432"

Ad Group Management Tools

The following MCP tools are available for ad group management:

Tool

Description

get_ad_groups

Get ad groups for a Google Ads account with optional filtering

get_ad_groups_json

Get ad groups in JSON format for visualization

get_ad_group_performance

Get performance metrics for a specific ad group

get_ad_group_performance_json

Get ad group performance metrics in JSON format for visualization

create_ad_group

Create a new ad group within a campaign

update_ad_group

Update an existing ad group's attributes

Keyword Management Tools

The following MCP tools are available for keyword management:

Tool

Description

get_keywords

Get keywords for a Google Ads account with optional filtering

get_keywords_json

Get keywords in JSON format for visualization

add_keywords

Add a new keyword to an ad group

update_keyword

Update an existing keyword's status or bid

remove_keywords

Remove keywords from an ad group

get_search_terms_report

View search terms that triggered your ads

get_search_terms_report_json

Get search terms in JSON format for visualization

analyze_search_terms

Get insights about your search terms performance

analyze_search_terms_json

Get insights about your search terms performance in JSON format for visualization

Example usage in Claude:

  • "List all keywords in my 123-456-7890 account"

  • "Show me search terms for campaign 12345678"

  • "Add a broad match keyword 'summer shoes' to ad group 87654321"

  • "Pause keyword 12345"

  • "Analyze search terms in my account to find opportunities"

Budget Management Tools

The following MCP tools are available for budget management:

Tool

Description

get_budgets

Get campaign budgets with performance metrics and utilization

get_budgets_json

Get budget information in JSON format with visualizations

analyze_budgets

Analyze budget performance with insights and recommendations

update_budget

Update a budget's amount or delivery method (placeholder implementation)

Example usage in Claude:

  • "Show me all campaign budgets in my account"

  • "Analyze budget utilization across my campaigns"

  • "Visualize budget distribution by campaign"

  • "Which budgets are being depleted too quickly?"

  • "What are the budget recommendations for my account?"

  • "Update the daily budget for campaign 12345678 to $100"

Example response for get_budgets:

Budget Report (3 budgets found)

ID: 123456789
Name: Search Campaign Budget
Amount: 50.00 USD (Daily)
Status: ENABLED
Utilization: 65.4%
Associated Campaigns: Brand Search, Generic Search

ID: 987654321
Name: Display Campaign Budget
Amount: 100.00 USD (Daily)
Status: ENABLED
Utilization: 94.2%
Associated Campaigns: Retargeting Display, Prospecting Display

ID: 456789123
Name: Shopping Campaign Budget
Amount: 75.00 USD (Daily)
Status: ENABLED
Utilization: 32.1%
Associated Campaigns: Product Shopping

Example response for analyze_budgets:

Budget Analysis Report

Budget: Display Campaign Budget (ID: 987654321)
Amount: 100.00 USD (Daily)
Utilization: 94.2%
Associated Campaigns: Retargeting Display, Prospecting Display
Insights:
- High Utilization (94.2%)
- Budget nearly depleted before day end
Recommendations:
- Consider increasing budget to 120.00 USD
- Or reduce bid adjustments during peak hours

Budget: Search Campaign Budget (ID: 123456789)
Amount: 50.00 USD (Daily)
Utilization: 65.4%
Associated Campaigns: Brand Search, Generic Search
Insights:
- Moderate Utilization (65.4%)
- Performing well within budget constraints
Recommendations:
- Monitor performance
- Consider reallocating budget to high-performing campaigns

Budget: Shopping Campaign Budget (ID: 456789123)
Amount: 75.00 USD (Daily)
Utilization: 32.1%
Associated Campaigns: Product Shopping
Insights:
- Low Utilization (32.1%)
- Budget consistently underutilized
Recommendations:
- Consider reducing budget to 50.00 USD
- Or reallocate budget to higher-performing campaigns

Enhanced Visualization Tools

The following MCP tools provide rich data visualization and advanced analysis capabilities:

Dashboard Visualization Tools

Tool

Description

get_account_dashboard_json

Get a comprehensive account dashboard with KPIs, trends, and top performers

get_campaign_dashboard_json

Get a detailed dashboard for a specific campaign

Example usage in Claude:

  • "Show me an account dashboard for the last 30 days"

  • "Create a dashboard for campaign 12345678"

  • "Compare my account performance to the previous month"

  • "Show a dashboard with all my campaign KPIs"

The account dashboard includes:

  • KPI cards with period-over-period comparisons

  • Performance trend charts for key metrics

  • Top campaigns and ad groups by performance

  • Cost distribution visualizations

The campaign dashboard includes:

  • Campaign overview and details

  • KPI cards with period-over-period comparisons

  • Performance trend charts

  • Ad group breakdown

  • Device performance distribution

  • Top keywords

Comparison Visualization Tools

Tool

Description

get_performance_comparison_json

Compare metrics between multiple entities (campaigns, ad groups)

Example usage in Claude:

  • "Compare campaigns 123456 and 789012"

  • "Show me a side-by-side comparison of my top 3 campaigns"

  • "Compare clicks and conversions across my search campaigns"

  • "Which campaign has better performance, 123456 or 789012?"

The comparison visualizations include:

  • Side-by-side bar charts for key metrics

  • Detailed comparison tables with absolute and relative differences

  • Radar charts for multi-metric comparisons (when 3+ metrics are selected)

Breakdown Visualization Tools

Tool

Description

get_performance_breakdown_json

Break down performance by various dimensions (device, geo, time, etc.)

Example usage in Claude:

  • "Break down campaign 123456 performance by device"

  • "Show my account performance by day of week"

  • "What's the geographic distribution of my ad spend?"

  • "Break down campaign 123456 by device and time"

The breakdown visualizations include:

  • Stacked bar charts for categorical dimensions (device, network, geo)

  • Line charts for time dimensions (day, week, month)

  • Treemap charts for hierarchical data visualization

  • Detailed tables with segment metrics and percentage contribution

Example response for get_account_dashboard_json:

{
  "date_range": "LAST 30 DAYS",
  "comparison_range": "PREVIOUS 30 DAYS",
  "visualization": {
    "charts": [
      {
        "type": "line",
        "title": "Cost Trend",
        "data": { ... }
      },
      {
        "type": "line",
        "title": "Engagement Trend",
        "data": { ... }
      },
      {
        "type": "doughnut",
        "title": "Cost Distribution by Campaign",
        "data": { ... }
      }
    ],
    "tables": [
      {
        "title": "Account Performance",
        "type": "kpi_cards",
        "cards": [ ... ]
      },
      {
        "title": "Top Campaigns by Spend",
        "headers": ["Campaign", "Budget", "Status", "Cost"],
        "rows": [ ... ]
      }
    ]
  }
}

Automated Insights Tools

The following MCP tools provide automated insights and recommendations based on account data analysis:

Anomaly Detection Tools

Tool

Description

get_performance_anomalies

Detect significant changes in performance metrics across campaigns, ad groups, or keywords

get_performance_anomalies_json

Get performance anomaly data in JSON format with visualizations

Example usage in Claude:

  • "Find performance anomalies in my account for the last 7 days"

  • "Detect unusual changes in my campaign performance"

  • "Which metrics have significant changes compared to last week?"

  • "Analyze my account for performance issues"

The performance anomaly detection includes:

  • Statistical analysis to identify outliers in key metrics

  • Comparison against previous periods

  • Severity scoring for detected anomalies

  • Visualization of anomalies by metric and entity

  • Ranked list of most significant changes

Optimization Suggestion Tools

Tool

Description

get_optimization_suggestions

Generate actionable optimization suggestions for an account

get_optimization_suggestions_json

Get optimization suggestions in JSON format with visualizations

Example usage in Claude:

  • "What optimizations should I make to my account?"

  • "Suggest ways to improve my campaign performance"

  • "Give me optimization ideas for my keywords"

  • "How can I better allocate my budget?"

The optimization suggestions include:

  • Bid management recommendations (increase/decrease bids)

  • Budget allocation recommendations

  • Negative keyword suggestions

  • Ad copy improvement recommendations

  • Account structure suggestions

Opportunity Discovery Tools

Tool

Description

get_opportunities

Discover growth opportunities in a Google Ads account

get_opportunities_json

Get growth opportunities in JSON format with visualizations

Example usage in Claude:

  • "Find growth opportunities in my account"

  • "What search terms should I add as keywords?"

  • "Where can I expand my advertising reach?"

  • "Discover new keyword opportunities based on search terms"

The opportunity discovery includes:

  • Keyword expansion suggestions based on high-performing search terms

  • Ad variation recommendations for top ad groups

  • Account structure optimization opportunities

  • Prioritized list of actions by potential impact

Integrated Insights Tool

Tool

Description

get_account_insights_json

Get comprehensive account insights combining anomalies, suggestions, and opportunities

Example usage in Claude:

  • "Give me a complete analysis of my account"

  • "What's the overall health of my Google Ads campaigns?"

  • "Show me everything I should know about my account"

  • "Generate a comprehensive insights report"

The integrated insights dashboard includes:

  • Summary statistics and key findings

  • Tabs for anomalies, suggestions, and opportunities

  • Prioritized recommendations

  • Interactive visualizations for each insight type

Example response for get_performance_anomalies:

Google Ads Performance Anomalies
Account ID: 123-456-7890
Entity Type: CAMPAIGN
Date Range: 2025-05-15 to 2025-05-22
Comparison Period: PREVIOUS_PERIOD
Total Anomalies Detected: 3

Entity Name                    Metric          Current      Previous     Change        Severity
----------------------------------------------------------------------------------------------
Search - Brand Terms           clicks          250          180          +38.9%        MEDIUM
Display - Retargeting          cost            $452.18      $325.45      +38.9%        MEDIUM
Shopping - Products            impressions     5,420        8,750        -38.1%        HIGH

Example response for get_optimization_suggestions:

Google Ads Optimization Suggestions
Account ID: 123-456-7890
Date Range: 2025-04-22 to 2025-05-22
Total Suggestions: 5

Budget Allocation Suggestions (2)
--------------------------------------------------
HIGH: Increase budget for campaign 'Search - Generic Terms' which is limited by budget (currently at 98% utilization)
     Action: Consider increasing the budget by 10-20% to allow for growth

MEDIUM: Campaign 'Display - Awareness' is significantly under budget (only 45% utilized)
     Action: Consider decreasing the budget to improve overall account efficiency, or reallocate to better-performing campaigns

Bid Management Suggestions (2)
--------------------------------------------------
HIGH: Keyword 'summer shoes sale' has strong conversion rate (8.5%) at $12.50 per conversion
     Action: Increase bid by 10-15% to capture more traffic for this high-performing keyword

MEDIUM: Keyword 'generic footwear' has high CPC ($2.75) with no conversions after 45 clicks
     Action: Decrease bid by 25-30% or pause if performance doesn't improve

Negative Keywords Suggestions (1)
--------------------------------------------------
MEDIUM: Add 'free shoes' as a negative keyword - spent $45.25 with no conversions
     Action: Add 'free shoes' as a negative exact match keyword to prevent further wasted spend

Example response for get_opportunities:

Google Ads Growth Opportunities
Account ID: 123-456-7890
Date Range: 2025-04-22 to 2025-05-22
Total Opportunities: 4

Keyword Expansion Opportunities (2)
--------------------------------------------------
HIGH: Add 'summer sandals women' as a keyword in ad group 'Women's Footwear'
     Action: Add 'summer sandals women' as an exact match keyword to better control bidding and relevance

MEDIUM: Add 'designer shoes discount' as a keyword in ad group 'Designer Collection'
     Action: Add 'designer shoes discount' as an exact match keyword to better control bidding and relevance

Ad Variation Opportunities (2)
--------------------------------------------------
MEDIUM: Create additional ad variations for ad group 'Men's Dress Shoes'
     Action: Add at least one more responsive search ad to test different headlines and descriptions

MEDIUM: Create additional ad variations for ad group 'Women's Athletic Shoes'
     Action: Add at least one more responsive search ad to test different headlines and descriptions

Deployment

This repository includes Kubernetes manifests for deployment:

  • kubernetes/dev/ - Development environment deployment

  • kubernetes/test/ - Test environment deployment

  • kubernetes/prod/ - Production environment deployment

CI/CD pipelines are configured using GitHub Actions for automated testing, building, and deployment.

Security

  • All credentials are stored in Kubernetes secrets or environment variables, never in code

  • The server uses proper authentication for API access

  • Rate limiting is enabled in production environments

  • Container security best practices are followed

Testing

Run the test suite:

pytest

Run specific tests:

# Test Ad Group functionality
python -m google_ads_mcp_server.tests.unit.test_ad_groups

# Test Keyword functionality
python -m google_ads_mcp_server.tests.unit.test_keywords

# Test Budget functionality
python -m google_ads_mcp_server.tests.unit.test_budgets

# Test MCP Tools
python -m google_ads_mcp_server.tests.unit.test_tools

# Test Visualization formatters
python -m google_ads_mcp_server.tests.unit.test_visualizations

# Test Budget Visualizations
python -m google_ads_mcp_server.tests.unit.test_budget_visualizations

Contributing

  1. Fork the repository

  2. Create a feature branch: git checkout -b feature/my-feature

  3. Commit your changes: git commit -am 'Add new feature'

  4. Push to the branch: git push origin feature/my-feature

  5. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements

  • Google Ads API team for their documentation and support

  • Anthropic for Claude and the Model Context Protocol

F
license - not found
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bjorndavidhansen/google-ads-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server