MCP server for Google Ads API
Project description
Google Ads MCP Server
A Model Context Protocol (MCP) server for Google Ads, built on the official Python SDK (v23+) with FastMCP.
Overview
32 focused tools for LLM interaction with Google Ads accounts. Uses GAQL (Google Ads Query Language) as the universal read mechanism, dedicated tools for write operations, and 7 workflow analysis tools for campaign intelligence.
Architecture
| Server | Tools | Purpose |
|---|---|---|
| Read | 8 | GAQL execution, account discovery, keyword ideas, geo targets, field metadata, recommendations |
| Write | 16 | Campaign/budget/ad group/ad/keyword CRUD, targeting, recommendations |
| Workflow | 7 | Campaign audit, underspend diagnosis, budget reallocation, creative analysis, fatigue detection, audience analysis, test monitoring |
| Utility | 1 | Connection status check |
Tools
Read Tools (8)
| Tool | Description |
|---|---|
execute_query |
Run any GAQL query with pagination |
execute_query_stream |
Stream large GAQL result sets |
list_accessible_customers |
Discover accounts (no customer ID needed) |
generate_keyword_ideas |
Search volume, competition, bid estimates |
suggest_geo_targets |
Location name to geo target ID resolution |
get_field_metadata |
Field schema for building GAQL queries |
validate_query_fields |
Check field compatibility before querying |
get_recommendations |
Google's optimization suggestions |
Write Tools (16)
| Tool | Description |
|---|---|
create_campaign / update_campaign |
Campaign CRUD |
create_campaign_budget / update_campaign_budget |
Budget management |
create_ad_group / update_ad_group |
Ad group CRUD |
create_ad / update_ad_status |
Ad creation and status changes |
add_keywords / remove_keyword |
Keyword management |
add_negative_keywords |
Campaign-level negative keywords |
add_location_targeting / add_language_targeting |
Geo and language targeting |
remove_campaign_criterion |
Remove targeting criteria |
apply_recommendation / dismiss_recommendation |
Act on Google's suggestions |
Workflow Tools (7)
| Tool | Description |
|---|---|
audit_campaign_structure |
Campaign scoring (0-110) across 6 dimensions |
diagnose_underspend |
5-layer underspend diagnostic |
analyze_budget_reallocation |
Efficiency scoring + constraint checks |
analyze_creatives |
Creative scoring (efficiency, quality, engagement) |
detect_creative_fatigue |
Week-over-week trigger comparison |
analyze_audiences |
Audience efficiency scoring and classification |
monitor_incrementality_test |
Test integrity monitoring with alert tiers |
Installation
Via PyPI (recommended)
uvx bluealpha-google-ads-mcp
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"bluealpha-google-ads": {
"command": "uvx",
"args": ["bluealpha-google-ads-mcp"],
"env": {
"GOOGLE_ADS_DEVELOPER_TOKEN": "your-token",
"GOOGLE_ADS_CLIENT_ID": "your-client-id",
"GOOGLE_ADS_CLIENT_SECRET": "your-client-secret",
"GOOGLE_ADS_REFRESH_TOKEN": "your-refresh-token",
"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "your-mcc-id"
}
}
}
}
Claude Code (CLI)
claude mcp add bluealpha-google-ads -- uvx bluealpha-google-ads-mcp
From source
cd servers/google-ads
uv sync
cp .env.example .env
# Edit .env with your Google Ads API credentials
uv run bluealpha-google-ads-mcp
Development
# Format
uv run ruff format .
# Lint + type check
uv run ruff check --fix .
uv run pyright
# Run tests
uv run pytest tests/ -v
Credentials
Required environment variables (see .env.example):
| Variable | Required | Description |
|---|---|---|
GOOGLE_ADS_DEVELOPER_TOKEN |
Yes | API developer token |
GOOGLE_ADS_CLIENT_ID |
Yes | OAuth client ID |
GOOGLE_ADS_CLIENT_SECRET |
Yes | OAuth client secret |
GOOGLE_ADS_REFRESH_TOKEN |
Yes | OAuth refresh token |
GOOGLE_ADS_LOGIN_CUSTOMER_ID |
No | MCC account ID (for managing multiple accounts) |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bluealpha_google_ads_mcp-0.2.4.tar.gz.
File metadata
- Download URL: bluealpha_google_ads_mcp-0.2.4.tar.gz
- Upload date:
- Size: 199.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
489611438b300630a6edca9c4a1c1448a7d42c8bc0671fc71b110088ce029053
|
|
| MD5 |
b3cb583c6839c58bcde5d63c0f17c21d
|
|
| BLAKE2b-256 |
9e9619008b6364f775dcb7c30084ecb7644586e2a8ef48b6ac4e570bfd3b4e18
|
File details
Details for the file bluealpha_google_ads_mcp-0.2.4-py3-none-any.whl.
File metadata
- Download URL: bluealpha_google_ads_mcp-0.2.4-py3-none-any.whl
- Upload date:
- Size: 90.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
363dd9bf30b48e95e4b4e8c14174dc746272e289fd001db51afc1d3720a19291
|
|
| MD5 |
fccfe423d76d5b47db3c55f8db9f70c0
|
|
| BLAKE2b-256 |
e6f03eed19c8ce0ed8890616deb483082d2d7ce34286685213868f39510e68c6
|