Skip to main content
Glama

Google Ads MCP Server

An MCP (Model Context Protocol) server for managing Google Ads campaigns through Claude Desktop, featuring a three-layer architecture for intelligent campaign management.

Architecture

This MCP server uses a three-layer architecture:

1. Knowledge Layer (Resources)

Provides context and insights to Claude:

  • App Context: Product information, value propositions, target audiences

  • User Archetypes: Persona definitions, pain points, motivations

  • Keyword Research: Keyword lists, search volumes, competition data

2. Action Layer (Tools)

Executes operations in Google Ads:

  • Campaigns: List, create, update, pause campaigns

  • Ad Groups: Manage ad groups within campaigns

  • Ads: Create and manage responsive search ads

  • Keywords: Add, update bids, pause keywords

  • Reports: Generate performance reports

3. Memory Layer (Persistence)

Tracks history and learnings:

  • Change Log: All modifications made to the account

  • Report History: Past performance reports for comparison

  • Decisions: Why certain choices were made

  • Learnings: What worked, what didn't, insights gained

Setup

Prerequisites

  • Python 3.10+

  • Google Ads API credentials

  • Claude Desktop

Installation

  1. Clone or download this repository

  2. Create a virtual environment and install dependencies:

    # Using uv (recommended) uv venv uv sync # Or using pip python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate pip install -e .
  3. Configure your Google Ads credentials:

    cp .env.example .env # Edit .env with your credentials

Google Ads API Credentials

You'll need the following credentials from the Google Ads API:

  1. Client ID & Secret: Create OAuth 2.0 credentials in Google Cloud Console

  2. Developer Token: Apply for one in your Google Ads account (Tools > API Center)

  3. Refresh Token: Generate using the OAuth flow

  4. Customer ID: Your Google Ads account ID (without dashes)

See the Google Ads API documentation for detailed setup instructions.

Claude Desktop Configuration

Add this server to your Claude Desktop configuration file:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{ "mcpServers": { "google-ads": { "command": "uv", "args": [ "--directory", "C:/dev/mcps/google-ads", "run", "google-ads-mcp" ] } } }

Or with environment variables in the config:

{ "mcpServers": { "google-ads": { "command": "python", "args": ["C:/dev/mcps/google-ads/src/server.py"], "env": { "GOOGLE_ADS_CLIENT_ID": "your_client_id", "GOOGLE_ADS_CLIENT_SECRET": "your_client_secret", "GOOGLE_ADS_DEVELOPER_TOKEN": "your_developer_token", "GOOGLE_ADS_REFRESH_TOKEN": "your_refresh_token", "GOOGLE_ADS_CUSTOMER_ID": "your_customer_id" } } } }

Knowledge Configuration

Setting Up App Context

Copy and customize the example file:

cp data/knowledge/app_context.example.json data/knowledge/app_context.json

Edit app_context.json with your product/service information.

Setting Up User Archetypes

Copy and customize the example file:

cp data/knowledge/archetypes.example.json data/knowledge/archetypes.json

Edit archetypes.json with your target audience personas.

Available Tools

Campaign Management

  • list_campaigns - List all campaigns

  • get_campaign - Get campaign details

  • create_campaign - Create a new campaign

  • update_campaign - Update campaign settings

  • set_campaign_status - Pause/enable campaigns

Ad Group Management

  • list_ad_groups - List ad groups

  • create_ad_group - Create an ad group

  • update_ad_group - Update ad group settings

Ad Management

  • list_ads - List ads

  • create_responsive_search_ad - Create an RSA

  • update_ad_status - Change ad status

Keyword Management

  • list_keywords - List keywords

  • add_keywords - Add new keywords

  • update_keyword_bid - Adjust bids

  • pause_keyword - Pause keywords

Reporting

  • get_campaign_report - Campaign performance

  • get_keyword_report - Keyword performance

  • get_search_terms_report - Search query data

  • get_performance_metrics - Account summary

Memory Tools

  • get_change_history - View change log

  • save_report_snapshot - Store reports

  • get_historical_reports - Compare over time

  • log_decision - Record decisions

  • get_decision_history - View decisions

  • record_learning - Store insights

  • get_insights - Retrieve learnings

Development

Project Structure

google-ads/ ├── src/ │ ├── server.py # Main MCP server │ ├── config.py # Configuration │ ├── google_ads_client.py # API wrapper │ ├── knowledge/ # Knowledge layer │ ├── actions/ # Action layer (tools) │ └── memory/ # Memory layer ├── data/ │ └── knowledge/ # Knowledge files ├── pyproject.toml └── README.md

Running Locally

# Run the server directly python src/server.py # Or using the entry point google-ads-mcp

License

MIT

-
security - not tested
A
license - permissive license
-
quality - not tested

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/bradenpan/mcp-google-ads'

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