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. |
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": 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