google-ads-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP port (default 8080). | 8080 |
| BASE_URL | No | Public URL of this service. Used for OAuth metadata and as the canonical resource URI tokens are bound to. Required for remote HTTP mode. | |
| LOG_LEVEL | No | Python log level (default INFO). | INFO |
| GCP_PROJECT_ID | No | GCP project hosting Firestore. Required for remote HTTP mode. | |
| MCP_USER_EMAIL | No | Your email — set in Claude Desktop config. Required for local STDIO mode. | |
| ALLOWED_DOMAINS | No | Comma-separated email domain allowlist (e.g. acme.com,beta.com). Empty = no restriction. | |
| GOOGLE_CLIENT_ID | No | Google OAuth client ID. Required if not using OAUTH_CONFIG_PATH. | |
| OAUTH_CONFIG_PATH | No | Alternative to GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET: path to client_secret.json. | |
| GOOGLE_REDIRECT_URI | No | Override the Google callback URL. Defaults to ${BASE_URL}/auth/callback. | |
| GOOGLE_CLIENT_SECRET | No | Google OAuth client secret. Required if not using OAUTH_CONFIG_PATH. | |
| GOOGLE_ADS_DEVELOPER_TOKEN | No | Deprecated. Leave unset — access level now comes from the Cloud project owning the OAuth client. If set, it is sent as the Developer-Token header (legacy setups only). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| run_gaqlC | Execute GAQL using the non-streaming search endpoint for consistent JSON parsing. |
| list_accountsA | List all accessible accounts including nested sub-accounts. |
| run_keyword_plannerB | Generate keyword ideas using Google Ads KeywordPlanIdeaService. This tool allows you to generate keyword ideas based on seed keywords or a page URL. You can specify targeting parameters such as language, location, and network to refine your keyword suggestions. |
| get_campaign_performanceB | Get performance metrics for all campaigns in an account. |
| get_ad_group_performanceB | Get performance metrics broken down by ad group. |
| get_ad_performanceA | Get performance metrics for individual ads/creatives. |
| get_keyword_performanceB | Get performance metrics for keywords including quality scores. |
| get_search_terms_reportA | Get the search terms report — actual searches that triggered your ads. Useful for finding new keyword opportunities and negative keyword candidates. |
| get_budget_reportA | Get campaign budgets and current spend for all active campaigns. |
| get_geographic_performanceC | Get performance metrics broken down by geographic location. |
| get_device_performanceB | Get performance metrics broken down by device type (mobile, desktop, tablet). |
| get_conversion_actionsC | List all conversion actions configured on the account. |
| get_asset_performanceA | Get performance of responsive search ad assets (headlines and descriptions). Shows which headlines and descriptions are performing best, ranked by impressions. Google's performance label (BEST/GOOD/LOW) is no longer available — the Ads API removed it in v23. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| gaql_reference | Google Ads Query Language (GAQL) reference documentation. |
TDQS
Scored across 13 tools
Each tool targets a clearly distinct resource or dimension: GAQL queries, account listing, conversion actions, keyword planning, and separate performance reports for geography, device, campaign, ad group, ad, keyword, asset, search terms, and budget. Overlap between performance tools is minimal and easily distinguished by their target entity.
All tool names follow a consistent snake_case verb_noun pattern: run_gaql, list_accounts, get_geographic_performance, get_budget_report, etc. The naming style is uniform and predictable across the entire set.
With 13 tools, the server is well-scoped for a Google Ads analytics and keyword research surface. Every tool covers a meaningful function, and the count is within the ideal range for a domain-specific MCP server.
The server provides thorough read-only coverage: reporting across all key entities, account listing, conversion actions, and keyword planning. However, it lacks any mutation tools for campaign management (create, update, pause, delete), which is a notable gap for a server named 'google-ads-mcp' if full lifecycle control is expected.