Skip to main content
Glama
LucasSantana-Dev

Google Ads MCP

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GOOGLE_ADS_AUDIT_LOGNoAudit log pathaudit-log.jsonl
GOOGLE_ADS_CLIENT_IDYesOAuth 2.0 Desktop App client ID
GOOGLE_ADS_MAX_RETRIESNoQuota retry attempts3
GOOGLE_ADS_CLIENT_SECRETYesOAuth 2.0 Desktop App client secret
GOOGLE_ADS_REFRESH_TOKENYesLong-lived OAuth refresh token
GOOGLE_ADS_DEVELOPER_TOKENYesYour Google Ads developer token
GOOGLE_ADS_MUTATE_ALLOWLISTNoComma-separated customer IDs that may receive writes
GOOGLE_ADS_LOGIN_CUSTOMER_IDYesMCC account ID (digits only, no hyphens)
GOOGLE_ADS_MAX_BID_CHANGE_PCTNoMax bid change fraction0.25
GOOGLE_ADS_MAX_BUDGET_CHANGE_PCTNoMax budget change fraction0.20

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_accessible_customersA

List the Google Ads customer accounts the credentials can access.

Returns digit-only customer ids to use as customer_id for other tools.

get_ad_groupsB

Get ad groups for a customer, with optional filtering by campaign and status.

get_campaignsB

Get campaigns for a customer, optionally filtered by status.

get_campaign_performanceA

Get campaign performance metrics for a date range, ordered by cost descending.

get_change_eventsA

Retrieve change events for a customer account within a date range.

The change_event resource requires a date filter, an ORDER BY clause, and a LIMIT (hard-capped at 10,000 rows by the API). The Google Ads API typically supports a ~30-day lookback window for change events; queries beyond that range may return empty results.

create_campaignA

Create a new campaign (paused by default).

create_ad_groupA

Create a new ad group (paused by default).

create_keywordC

Create a new keyword (enabled by default).

create_adA

Create a new responsive search ad (paused by default).

get_keywordsC

Retrieve keywords from an ad group, optionally filtered by match type.

get_search_termsA

Retrieve search terms that matched keywords, filtered by date and optional criteria.

Search terms are ordered by clicks (descending) to prioritize high-engagement terms.

get_segments_metadataA

List all available GAQL segments with metadata.

Returns a list of segment field objects with name, category, data_type, selectable, filterable, and sortable attributes.

get_metrics_metadataA

List all available GAQL metrics with metadata.

Returns a list of metric field objects with name, category, data_type, selectable, filterable, and sortable attributes.

get_resource_metadataA

Get all available fields for a specific resource.

get_recommendationsA

Fetch active recommendations for an account or campaign.

apply_recommendationA

Apply a recommendation (e.g. add a keyword, raise a bid).

generate_keyword_ideasB

Generate keyword ideas using Google's Keyword Planner.

get_forecast_metricsC

Fetch forecast metrics and bid simulations for a campaign.

dismiss_recommendationA

Dismiss a recommendation (mark as not applicable).

Note: The Google Ads API does not support validate_only for dismiss, so preview returns the intent without calling the API.

run_gaql_queryA

Run a read-only GAQL query against a customer account.

This is the explicit raw-query escape hatch: the query is passed through as-is, so the caller is responsible for valid GAQL. Use get_segments_metadata / get_metrics_metadata / get_resource_metadata first to discover valid field names. customer_id is validated.

pause_campaignA

Pause a campaign. Previews unless confirm=true; customer must be allowlisted.

enable_campaignA

Enable (resume) a campaign. Previews unless confirm=true.

pause_ad_groupC

Pause an ad group. Previews unless confirm=true.

enable_ad_groupC

Enable an ad group. Previews unless confirm=true.

pause_keywordB

Pause a keyword (ad group criterion). Previews unless confirm=true.

enable_keywordA

Enable a keyword (ad group criterion). Previews unless confirm=true.

pause_adA

Pause an ad (ad group ad). Previews unless confirm=true.

enable_adB

Enable an ad (ad group ad). Previews unless confirm=true.

update_keyword_bidA

Set a keyword's max CPC bid (micros). Previews unless confirm=true; change is capped.

update_ad_group_bidA

Set an ad group's default max CPC bid (micros). Previews unless confirm=true; capped.

update_campaign_budgetA

Set a campaign's daily budget (micros). Previews unless confirm=true; change is capped.

Resolves the campaign's shared budget resource first, then mutates it.

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

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