{
  "markdown": "# mcp-google-ads\n\nMulti-account Google Ads MCP server for operators who need one MCP surface across multiple client\nor in-house ad accounts without restarting the server.\n\nRelease posture: beta package, version `0.1.0` from [`pyproject.toml`](pyproject.toml).\n\n## Choose your path\n\n| You are... | Start here | Then |\n|---|---|---|\n| Connecting the server to your MCP client | [docs/start-here.md](docs/start-here.md) | Quick start below |\n| Auditing account switching and retries | [docs/architecture.md](docs/architecture.md) | [`gads/server.py`](gads/server.py) |\n| Reviewing packaging metadata | [`pyproject.toml`](pyproject.toml) | [`accounts.example.json`](accounts.example.json) |\n\n## Architecture\n\n```mermaid\nflowchart TD\n  U[AI operator] --> C[MCP client]\n  C --> S[FastMCP server]\n  S --> M[Account manager]\n  M --> F[Accounts config]\n  S --> Q[GAQL query helpers]\n  Q --> R[Retry wrapper]\n  R --> A[Google Ads API]\n  A --> R --> S\n```\n\n## Request flow\n\n```mermaid\nflowchart TD\n  P[Operator asks for account or campaign data] --> T[Selected MCP tool]\n  T --> A[Resolve named or default account]\n  A --> B[Build Google Ads client]\n  B --> C[Run GAQL query]\n  C --> D{API call succeeds?}\n  D -- yes --> E[Normalize rows and return]\n  D -- retryable --> F[Backoff and retry]\n  F --> D\n  D -- no --> G[Return error payload]\n```\n\n## Quick start\n\n1. Install the package.\n\n```bash\npython -m pip install mcp-google-ads-multi\n```\n\n2. Copy the accounts config template and add your accounts.\n\n```bash\nmkdir -p ~/.config/mcp-google-ads\ncp accounts.example.json ~/.config/mcp-google-ads/accounts.json\n```\n\n3. Register it in your MCP client.\n\n```json\n{\n  \"mcpServers\": {\n    \"google-ads\": {\n      \"command\": \"uvx\",\n      \"args\": [\"mcp-google-ads-multi\"],\n      \"env\": {\n        \"GOOGLE_ADS_DEVELOPER_TOKEN\": \"your-developer-token\",\n        \"GOOGLE_ADS_ACCOUNTS_CONFIG\": \"/Users/you/.config/mcp-google-ads/accounts.json\"\n      }\n    }\n  }\n}\n```\n\n## Available tools\n\n| Tool group | Tools | Purpose |\n|---|---|---|\n| Account selection | `list_accounts`, `set_default_account`, `list_customers` | Manage account routing and discover accessible customers |\n| Spend summary | `get_account_summary`, `compare_periods` | Period-over-period account reporting |\n| Campaign analysis | `list_campaigns`, `get_campaign_performance` | Campaign inventory and range-based metrics |\n| Query-level detail | `get_keyword_performance`, `search_terms_report`, `get_ad_performance` | Keyword, search-term, and ad reporting |\n\n## Runtime proof\n\n| Claim | Proof |\n|---|---|\n| Package entry point is stable | `mcp-google-ads-multi = \"gads.server:main\"` in [`pyproject.toml`](pyproject.toml) |\n| Multi-account routing is first-class | `AccountManager()` and `set_default_account()` in [`gads/server.py`](gads/server.py) |\n| Queries go through reusable helpers | [`gads/query.py`](gads/query.py) and [`gads/retry.py`](gads/retry.py) |\n| Config is file-driven | [`accounts.example.json`](accounts.example.json) documents the accounts shape |\n\n## Repo map\n\n| Path | Purpose |\n|---|---|\n| [`gads/server.py`](gads/server.py) | FastMCP tool surface |\n| [`gads/accounts.py`](gads/accounts.py) | Account config, OAuth/service-account loading |\n| [`gads/query.py`](gads/query.py) | GAQL execution helpers |\n| [`gads/retry.py`](gads/retry.py) | Retry behavior for API calls |\n| [`docs/start-here.md`](docs/start-here.md) | Setup, validation, common failures |\n| [`docs/architecture.md`](docs/architecture.md) | Component map and request lifecycle |\n\n## Validation\n\n| Check | Command |\n|---|---|\n| Import compiles | `python -m compileall gads` |\n| Package builds | `python -m build` |\n| README/docs links are local | `rg '\\\\]\\\\(([^)]+\\\\.md)\\\\)' README.md docs/` |\n\n## License\n\nMIT\n\n<!-- mcp-name: io.github.Ayo-Fam/mcp-google-ads -->\n",
  "bytes": 3793,
  "sha": "5091b0a5eee65f66aa16fddfca979717f131e439547ceb08ab15a4024d8cdc5a",
  "repo_slug": "apexradius/mcp-google-ads",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_ayo_fam_mcp_google_ads_b7818e56/readme"
}