google-ads-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GOOGLE_ADS_CLIENT_ID | No | OAuth 2.0 client ID from Google Cloud Console. | |
| GOOGLE_ADS_CLIENT_SECRET | No | OAuth 2.0 client secret from Google Cloud Console. | |
| GOOGLE_ADS_REFRESH_TOKEN | No | OAuth 2.0 refresh token for Google Ads API access. | |
| GOOGLE_ADS_DEVELOPER_TOKEN | No | Your Google Ads developer token. Required for API access. | |
| GOOGLE_ADS_LOGIN_CUSTOMER_ID | No | Your manager account (MCC) ID as the login customer ID, digits only. | |
| GOOGLE_ADS_CONFIGURATION_FILE_PATH | No | Path to a google-ads.yaml configuration file, as an alternative to individual environment variables. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ads_whoamiA | Show how this server is configured (login customer id, developer-token presence — masked) and list the Google Ads accounts it can access. Use this first to verify credentials and access. |
| list_accessible_customersA | List the resource names of the Google Ads customers this login can access. Each looks like 'customers/1234567890'; the digits are the customer id. |
| searchA | Run a GAQL (Google Ads Query Language) query and return the rows. This is the general-purpose read tool — anything reportable in Google Ads can be fetched here. Example query: "SELECT campaign.id, campaign.name, campaign.status, metrics.impressions, metrics.clicks, metrics.cost_micros FROM campaign WHERE segments.date DURING LAST_30_DAYS ORDER BY metrics.cost_micros DESC". |
| list_campaignsC | List campaigns with id, name, status, channel type, and budget id. |
| list_ad_groupsA | List ad groups (optionally filtered to one campaign) with id, name, status, type, and CPC bid. |
| list_adsA | List ads (optionally filtered to one ad group) with id, type, and status. |
| list_campaign_budgetsB | List campaign budgets with id, name, amount (micros), and delivery method. |
| list_keywordsA | List keyword criteria (optionally filtered to one ad group) with text, match type, status, and the criterion id. |
| campaign_performanceA | Report per-campaign performance (impressions, clicks, cost, conversions) between two dates (YYYY-MM-DD), highest spend first. |
| create_campaign_budgetA | Create a campaign budget. amount_micros is the daily amount in micros (1_000_000 micros = 1 unit of the account currency, e.g. $5/day = 5000000). delivery_method is 'STANDARD' or 'ACCELERATED'. Dry run unless confirm=True. |
| update_campaign_budgetA | Change a campaign budget's daily amount (in micros). Dry run unless confirm=True. |
| create_campaignA | Create a campaign attached to an existing budget. Defaults to a PAUSED Search campaign with Manual CPC bidding and Google Search + search partners enabled (content network off). Created PAUSED by default so it never starts spending unexpectedly — enable it later with update_campaign_status. Dry run unless confirm=True. |
| update_campaign_statusA | Set a campaign's status: 'ENABLED' (start/resume serving), 'PAUSED' (stop serving), or 'REMOVED' (delete). Dry run unless confirm=True. |
| create_ad_groupA | Create a standard Search ad group under a campaign. cpc_bid_micros is an optional default max CPC bid in micros. Dry run unless confirm=True. |
| update_ad_group_statusA | Set an ad group's status: 'ENABLED', 'PAUSED', or 'REMOVED'. Dry run unless confirm=True. |
| update_ad_group_bidA | Change an ad group's default max CPC bid (in micros). Dry run unless confirm=True. |
| add_keywordA | Add a keyword to an ad group. match_type is 'EXACT', 'PHRASE', or 'BROAD'. Dry run unless confirm=True. |
| update_keyword_statusA | Set a keyword's status: 'ENABLED', 'PAUSED', or 'REMOVED'. criterion_id is the keyword's criterion id (from list_keywords). Dry run unless confirm=True. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/burhan29ee/google-ads-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server