Labsco
apexradius logo

MCP Google Ads

from apexradius

Multi-account Google Ads MCP: campaign metrics, keywords, search terms, and ad performance analytics.

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedAccount requiredAdvanced setup

mcp-google-ads

Multi-account Google Ads MCP server for operators who need one MCP surface across multiple client or in-house ad accounts without restarting the server.

Release posture: beta package, version 0.1.0 from pyproject.toml.

Choose your path

You are...Start hereThen
Connecting the server to your MCP clientdocs/start-here.mdQuick start below
Auditing account switching and retriesdocs/architecture.mdgads/server.py
Reviewing packaging metadatapyproject.tomlaccounts.example.json

Architecture

flowchart TD
  U[AI operator] --> C[MCP client]
  C --> S[FastMCP server]
  S --> M[Account manager]
  M --> F[Accounts config]
  S --> Q[GAQL query helpers]
  Q --> R[Retry wrapper]
  R --> A[Google Ads API]
  A --> R --> S

Request flow

flowchart TD
  P[Operator asks for account or campaign data] --> T[Selected MCP tool]
  T --> A[Resolve named or default account]
  A --> B[Build Google Ads client]
  B --> C[Run GAQL query]
  C --> D{API call succeeds?}
  D -- yes --> E[Normalize rows and return]
  D -- retryable --> F[Backoff and retry]
  F --> D
  D -- no --> G[Return error payload]

Available tools

Tool groupToolsPurpose
Account selectionlist_accounts, set_default_account, list_customersManage account routing and discover accessible customers
Spend summaryget_account_summary, compare_periodsPeriod-over-period account reporting
Campaign analysislist_campaigns, get_campaign_performanceCampaign inventory and range-based metrics
Query-level detailget_keyword_performance, search_terms_report, get_ad_performanceKeyword, search-term, and ad reporting

Runtime proof

ClaimProof
Package entry point is stablemcp-google-ads-multi = "gads.server:main" in pyproject.toml
Multi-account routing is first-classAccountManager() and set_default_account() in gads/server.py
Queries go through reusable helpersgads/query.py and gads/retry.py
Config is file-drivenaccounts.example.json documents the accounts shape

Repo map

PathPurpose
gads/server.pyFastMCP tool surface
gads/accounts.pyAccount config, OAuth/service-account loading
gads/query.pyGAQL execution helpers
gads/retry.pyRetry behavior for API calls
docs/start-here.mdSetup, validation, common failures
docs/architecture.mdComponent map and request lifecycle

Validation

CheckCommand
Import compilespython -m compileall gads
Package buildspython -m build
README/docs links are localrg '\\]\\(([^)]+\\.md)\\)' README.md docs/

License

MIT

<!-- mcp-name: io.github.Ayo-Fam/mcp-google-ads -->