The Google Ads MCP Server
for AI Assistants
Stop copy-pasting from Google Ads into ChatGPT. Jarrah Google Ads MCP Server is a free, open-source tool that connects your Google Ads account directly to Claude, Cursor, or any MCP-compatible AI assistant.
Ask Claude to pull last week's campaign metrics, discover keywords via Keyword Planner, audit Quality Scores, or switch between client accounts — all in conversation. Read-only: your campaigns are never modified.
Capabilities
8 tools, one connection
Every tool call is read-only. Your account data flows directly from Google to your AI session — nothing is stored server-side.
Campaign Metrics
get_campaign_metricsPull spend, impressions, clicks, CTR, CPC, and impression share by date range, device, and channel type.
Keyword Quality Scores
get_quality_scoresRetrieve Quality Scores (1–10) for every keyword with component breakdowns: expected CTR, ad relevance, and landing page experience.
Keyword Planner — Ideas
generate_keyword_ideasGenerate keyword ideas from seed keywords or a landing page URL. Returns search volume, competition level, and bid estimates.
Keyword Historical Metrics
get_keyword_historical_metricsGet monthly search volume trends and competition data for any list of keywords — without opening the Google Ads UI.
Ad Creative
get_ad_creativeRetrieve RSA headlines, descriptions, and final URLs for all active ads — ready for creative analysis or competitive review.
Conversion Tracking
get_conversion_actionsList all enabled conversion actions with 90-day volume. Spot missing or broken conversion tracking instantly.
Multi-Account Navigation
list_accounts / switch_accountList all accounts accessible under your MCC, then switch context between client accounts in a single session.
Custom GAQL Queries
run_gaqlRun any Google Ads Query Language query directly. Full access to the reporting API for custom metrics not covered by the named tools.
Use Cases
What PPC teams use it for
Agency reporting
Ask Claude to pull last week's campaign performance for every client account and summarise in a single message. No CSV exports, no dashboard logins.
Keyword research
Feed competitor URLs or seed terms to Keyword Planner and have Claude identify gaps, cluster by intent, and estimate monthly volume — all in conversation.
Account audits
Ask Claude to flag every keyword with a Quality Score under 5, list campaigns with no conversion actions, or identify ads missing RSA headline pinning.
Multi-account management
Switch between client accounts in a single Claude session. Pull data, compare performance across accounts, and draft client-ready summaries without touching the UI.
Setup
Connect in three steps
Works with Claude Desktop, Claude Code (CLI), and Cursor. Any client that supports remote Streamable HTTP MCP servers.
Authorise with Google
Visit the authorisation URL. You'll be redirected to Google's consent screen to grant read-only access to your Google Ads account.
jarrah-gads-mcp.fly.dev/authorizeCopy your MCP token
After authorising, you'll receive a bearer token. Copy it — you'll add it to your MCP client config in the next step. Tokens expire after 1 hour.
Add to your MCP client
Add the server URL and your token to your Claude Desktop, Claude Code, or Cursor config. See the config block below.
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"google-ads": {
"url": "https://jarrah-gads-mcp.fly.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}Claude Code (CLI) — .claude/settings.json
{
"mcpServers": {
"google-ads": {
"type": "http",
"url": "https://jarrah-gads-mcp.fly.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}Privacy & Security
Read-only. Your data, your credentials.
The server holds the Google Ads read scope only — it cannot create, modify, or delete anything in your account. OAuth 2.0 means your Google password never touches our server.
- Read-only access — No create, modify, or delete permissions. Ever.
- Individual OAuth — Each user authenticates with their own Google account. Credentials are never shared.
- No data retention — Campaign metrics, keyword lists, and ad creative are never stored server-side. They flow directly to your AI session.
- Encrypted token storage — Only your OAuth refresh token is stored — encrypted at rest using Fernet symmetric encryption.
- 1-hour token expiry — MCP bearer tokens expire after 60 minutes, limiting the blast radius of any credential exposure.
Technical stack
- Language
- Python 3.12
- Framework
- FastMCP + Uvicorn / Starlette
- Deployment
- Fly.io — Sydney region
- Google Ads client
- google-ads Python SDK
- Auth
- OAuth 2.0 Authorization Code Flow
- Storage
- SQLite on encrypted persistent volume (tokens only)
- Licence
- MIT — self-host from GitHub
FAQ
Common questions
Which AI assistants does this work with?
Will this make any changes to my Google Ads account?
Who can see my Google Ads data?
What data does the server store?
Can I use this with an MCC (manager) account?
Is this free to use?
Can I run custom queries beyond the named tools?
Does this support Microsoft Ads (Bing Ads)?
Can ChatGPT access my Google Ads data?
What is the Model Context Protocol (MCP)?
A/B Testing
Statistical Significance Calculator
Know when your Google Ads A/B test results are real, not luck. Free p-value and confidence interval calculator.
A/B Testing
A/B Test Sample Size Calculator
Calculate how many conversions you need before your ad test is conclusive. Set MDE, confidence, and power.
Work with Jarrah
Need a managed Google Ads program?
The MCP server is built from the work we do every day. If you need a full-service performance marketing program — strategy, creative, bidding, attribution — that's what we do.
See our paid media work →