Skip to main content
Glama
google-ads-mcp-write

google-ads-mcp-write

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GOOGLE_CLOUD_PROJECTNoQuota project, if your credentials do not carry one.
GOOGLE_ADS_API_VERSIONNoGoogle Ads REST API version.v25
GOOGLE_ADS_MCP_AUDIT_LOGNoWhere the audit log is written.~/.local/share/google-ads-mcp-write/audit.jsonl
GOOGLE_ADS_DEVELOPER_TOKENYesYour Google Ads developer token with Basic or Standard access.
GOOGLE_ADS_LOGIN_CUSTOMER_IDNoManager (MCC) id to act through, when using a manager account.
GOOGLE_ADS_MCP_WRITE_ENABLEDNoSet to 0 to block every write without uninstalling anything.1
GOOGLE_ADS_MCP_WRITE_CUSTOMERSYesComma-separated Google Ads customer ids the server is allowed to change, e.g. 1234567890,9876543210. With this empty, every write is refused.
GOOGLE_ADS_MCP_DEFAULT_LANGUAGESNoDefault language ids for new campaigns, e.g. 1000 (English), 1014 (Portuguese).
GOOGLE_ADS_MCP_MAX_BUDGET_MICROSNoHighest daily budget allowed, in micros. 200000000 = 200.00.200000000
GOOGLE_ADS_MCP_DEFAULT_GEO_TARGETSNoDefault location ids for new campaigns, e.g. 2840 (United States), 2076 (Brazil).
GOOGLE_ADS_MCP_MAX_BUDGET_INCREASE_PCTNoLargest increase allowed in one budget change, in percent.50

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
}
logging
{}
prompts
{
  "listChanged": true
}
resources
{
  "subscribe": false,
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
write_statusA

Show the active guardrails: allowed accounts, budget limits and kill switch.

list_campaignsB

List campaigns with id, status and budget. Read-only, to build plans.

set_campaign_statusA

Pause or resume a campaign. Without confirm_token returns the plan; with it, executes.

set_ad_group_statusC

Pause or resume an ad group.

set_keyword_statusC

Pause or resume several keywords of the same ad group in one operation.

set_campaign_budgetC

Change a campaign's daily budget (account currency), within the cap and max increase.

set_campaign_manual_cpcC

Switch campaigns to manual CPC (no enhanced CPC); ad group bids apply again.

pause_auto_apply_recommendationsC

Turn off auto-applied recommendations (every active subscription).

create_search_campaignA

Create a PAUSED Search campaign with a budget, location/language targeting and one ad group.

Amounts are in the account currency. It is created paused on purpose: nothing spends until you resume it explicitly. geo_target_ids and language_ids are Google criterion ids (e.g. 2076 = Brazil, 1014 = Portuguese); when omitted they come from GOOGLE_ADS_MCP_DEFAULT_GEO_TARGETS / GOOGLE_ADS_MCP_DEFAULT_LANGUAGES. budget_id reuses an existing budget instead of creating one, which helps to resume a sequence that failed after the budget was already created.

create_ad_groupC

Create an ad group in an existing campaign (CPC in the account currency).

create_keywordC

Create several keywords in an ad group. match_type: EXACT, PHRASE or BROAD.

add_negative_keywordC

Add several campaign-level negative keywords, blocking unwanted searches.

create_responsive_search_adC

Create a responsive search ad. Needs 3-15 headlines (30 chars) and 2-4 descriptions (90).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 13 tools

Disambiguation4/5

Tools cleanly partition by resource+action: campaign vs ad group vs keyword status setters, plus distinct budget, CPC, and creation tools. Minor friction comes from set_campaign_status having a plan/confirm_token execute mode while other mutators don't state one, and write_status sounding like a write operation when it is a read-only guardrail view.

Naming Consistency4/5

Nearly all names follow verb_noun (set_campaign_status, create_ad_group, add_negative_keyword, list_campaigns). Deviations are small: write_status is a noun-ish outlier for a read tool, and set_campaign_manual_cpc swaps the noun slot compared to the set_X_status pattern.

Tool Count5/5

13 tools is well within the sweet spot and every tool maps to a concrete write operation or safety check. Nothing looks redundant or padded for the stated write-focused scope.

Completeness3/5

Creation (campaign, ad group, keyword, RSA, negative keyword), pausing, budgets, and guardrails are covered, but there are notable gaps: only list_campaigns exists (no list_ad_groups/keywords/ads), no delete/remove operations, and no tool to set ad group or keyword bids even though manual CPC defers to 'ad group bids'.

Maintenance

ActivityMaintained
ResponsivenessSyncing