Skip to main content
Glama

Add keywords to an ad group

add_keywords

Add positive keywords to an ad group. Match type matters: BROAD reaches widest and spends fastest, PHRASE is narrower, EXACT is tightest. Added PAUSED by default.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
statusNoPAUSED
keywordsYes
adGroupIdYes
customerIdNo10-digit Google Ads customer id. Omit only if this connection has exactly one reachable account - with more than one, omitting it errors and lists the available ids to pick from.
extraFieldsNoEscape hatch for a field Google requires that this tool doesn't set yet - use it when a prior call to this same tool failed naming a required field and its valid values (e.g. after adding `contains_eu_political_advertising`, retry with { contains_eu_political_advertising: "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING" }). Keys are the Ads API's own snake_case field names; nest an object to add a field under one this tool already sets (e.g. a new network_settings sub-field). Only ADDS fields not already set by this tool's own arguments - it can never override `status` or any other field already set here, so it cannot be used to bypass validation or a safety default like a campaign's PAUSED-by-default status.
validateOnlyNoDry run. When true the Google Ads API validates the change and reports any errors but applies nothing. Use this first whenever you are unsure - it is free and cannot affect spend.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false) and the description adds a genuinely useful behavioral fact not in the annotations: keywords are created PAUSED by default, so nothing starts spending immediately. It omits idempotency behavior (duplicates on retry) and the 500-keyword batch ceiling, which would have completed the picture for a non-idempotent write tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, all front-loaded: the action first, then the key decision (match type), then the critical default. No filler. It is slightly terse on the operational constraints (limits, validation) rather than bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-object, non-idempotent mutation with no output schema, the description covers the action, match-type trade-off, and the PAUSED default, which is a solid minimum. It leaves out what the call returns, how duplicate keywords are handled, and the 500-item batch limit — gaps an agent would want before issuing a bulk write.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%, and the schema itself already carries defaults for status (PAUSED) and matchType (EXACT) as well as prose for customerId, extraFields, cpcBid, and validateOnly. The description's match-type elaboration adds real meaning to the matchType enum but does not cover the undocumented half, so this sits at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Add positive keywords to an ad group') and the word 'positive' explicitly separates it from the sibling negative-keyword tools (add_negative_keywords, add_ad_group_negative_keywords). An agent can pick the right tool from the name and first sentence alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for choosing between match types (BROAD widest/fastest spend, PHRASE narrower, EXACT tightest), which is the main decision an agent faces here. It does not, however, name the negative-keyword siblings as the alternative when negatives are needed, nor mention validateOnly as a prerequisite step; those are left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources