google_ads_ad_group_create_prepare
Prepare creating a paused ad group.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| campaign_id | Yes | ||
| customer_id | Yes | 10-digit Google Ads customer id. | |
| ad_group_type | No | ||
| cpc_bid_micros | No | ||
| connection_context | No |
Prepare creating a paused ad group.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| campaign_id | Yes | ||
| customer_id | Yes | 10-digit Google Ads customer id. | |
| ad_group_type | No | ||
| cpc_bid_micros | No | ||
| connection_context | No |
Changes observed during successful MCP inspections.
Input schema / properties / connection_contextAdded value: +{
+ "pattern": "^mctx_v1_[0-9a-f]{64}$",
+ "type": "string"
+}Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is partly covered. The description does add one genuinely useful behavioral fact beyond the annotations: the created ad group is paused. It does not, however, explain the prepare/confirm handshake, whether anything is mutated before confirmation, or how long the preparation remains valid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no wasted words, which is structurally fine. But at six words it is under-specified rather than truly concise, omitting information the caller needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter mutation tool with 17% schema coverage, no output schema and no annotations covering the workflow, the description omits the two-step prepare/confirm contract, all non-trivial parameter meaning, and what the caller receives or does after preparing. It leaves too much to be inferred from sibling names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17% (just customer_id), so the description carries the burden of clarifying name, campaign_id, ad_group_type, cpc_bid_micros and connection_context. It adds nothing about any parameter — not the micros unit for cpc_bid_micros, not the allowed ad_group_type values, and not the meaning of connection_context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Prepare creating a paused ad group" names a verb (prepare) and a resource (ad group), and the word "paused" hints at the resulting state. However, the bare verb "prepare" is ambiguous on its own (draft? task? step in a workflow?) and the description never distinguishes this tool from its obvious sibling google_ads_ad_group_create_confirm, so an agent cannot fully route between them from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no statement that this is the first step of a prepare/confirm pair, and no mention of prerequisites such as an existing campaign or the need to later call the confirm tool. The only routing signal comes from the sibling tool names, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.