Skip to main content
Glama
kiarashedraki

google-ads-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GOOGLE_ADS_API_VERSIONNoDefault v24. Bump when Google releases a new version; versions sunset roughly yearlyv24
GOOGLE_ADS_CUSTOMER_IDNoDefault client account when a tool call omits customer_id
GOOGLE_ADS_REFRESH_TOKENYesRefresh token with the adwords scope
GOOGLE_ADS_DEVELOPER_TOKENYesFrom API Center in a manager account
GOOGLE_ADS_OAUTH_CLIENT_IDYesOAuth 2.0 client ID
GOOGLE_ADS_LOGIN_CUSTOMER_IDNoManager (MCC) account to authenticate through; needed when the account is accessed via a manager
GOOGLE_ADS_OAUTH_CLIENT_SECRETYesOAuth 2.0 client secret

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_accessible_customersA

List the Google Ads accounts reachable with the configured credentials: the accounts the OAuth user can access directly, plus the full client tree under GOOGLE_ADS_LOGIN_CUSTOMER_ID when it is a manager (MCC). Use this to find a customer_id.

account_overviewA

Account details (name, currency, time zone, auto-tagging, status) plus account-wide totals for the date range: impressions, clicks, cost, conversions.

list_campaignsA

List campaigns with status, channel type, bidding strategy, daily budget (currency units), schedule and serving status. No metrics; use campaign_performance for those.

list_ad_groupsA

List ad groups (id, name, status, type, default CPC bid) with their campaign. Optionally filter to one campaign.

list_adsA

List ads with type, status, policy approval, ad strength, final URLs and — for responsive search ads — all headlines and descriptions with pinning. Filter by campaign or ad group.

campaign_performanceA

Per-campaign metrics for a date range: impressions, clicks, CTR, avg CPC, cost, conversions, conversion value, cost/conv, plus search impression share. Optionally segment by date/week/month/device/network. Money is in account currency units.

ad_group_performanceA

Per-ad-group metrics for a date range, optionally filtered to a campaign and segmented.

keyword_performanceA

Per-keyword metrics for a date range with match type, status, quality score and effective CPC bid. Filter by campaign or ad group. Sorted by cost.

search_terms_reportA

Actual search queries that triggered your ads, with the matching keyword, status (ADDED/EXCLUDED/NONE) and metrics. The main source for finding negative keywords to add. Sorted by impressions.

geo_performanceA

Metrics by user location for a date range (country/region/city geo target constants). Resolve the constant names with gaql_search on geo_target_constant if needed.

gaql_searchA

Run any Google Ads Query Language (GAQL) query against a customer. Use for anything the specific report tools do not cover (assets, conversion actions, change history, bidding strategies, audiences, geo targets, budgets, recommendations…). Pagination is handled; rows are capped by limit. Money fields are converted from micros unless convert_micros is false. Use gaql_fields to discover selectable fields.

gaql_fieldsA

Look up GAQL fields, resources, segments and metrics: data type, whether selectable/filterable/sortable, enum values, and which resources they can be selected with. Use name_like with SQL wildcards (e.g. 'campaign.%' for every campaign field, 'metrics.%conversion%').

set_campaign_statusA

Set a campaign to ENABLED or PAUSED.

set_campaign_budgetA

Change a campaign's daily budget, given in account currency units (e.g. 5.50). Looks up the campaign's budget resource first. Refuses to change a shared budget unless allow_shared is true, since that affects every campaign using it.

set_ad_group_statusA

Set an ad group to ENABLED or PAUSED.

set_ad_statusA

Set an ad (within its ad group) to ENABLED or PAUSED.

update_keywordA

Change a keyword's status (ENABLED/PAUSED) and/or its max CPC bid (currency units). Identify the keyword by ad_group_id and criterion_id from keyword_performance.

add_keywordsA

Add keywords to an ad group. Each keyword has text, match type and an optional max CPC bid (currency units). Set validate_only to check for policy/duplicate errors without saving.

add_negative_keywordsA

Add negative keywords at campaign level (default) or ad group level. Typical follow-up to search_terms_report. Negatives at campaign level block the term for every ad group in the campaign.

remove_resourceA

Remove (soft-delete) a keyword, negative keyword, ad, ad group or campaign by its resource name (e.g. customers/123/adGroupCriteria/456~789). Removal is permanent in Google Ads; removed entities stay visible in reports with status REMOVED.

mutateA

Advanced: send raw GoogleAdsService.mutate operations using REST field names (camelCase), e.g. [{ campaignOperation: { update: { resourceName, status }, updateMask: 'status' } }]. Supports every resource the API can create/update/remove (campaigns, ads, assets, conversion actions, extensions…). Use validate_only: true first to dry-run. Operations are atomic unless partial_failure is true.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/kiarashedraki/google-ads-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server