Skip to main content
Glama
lucagalvani

google-ads-agent

by lucagalvani

preview_rsa

Read-only

Dry-run a responsive search ad for an existing ad group: validate it locally, submit with validate_only, and receive a confirm token to apply later.

Instructions

Dry-run a new responsive search ad for an EXISTING ad group: lint it locally, then submit it to the API with validate_only so nothing is written. Returns the plan and, if valid, a confirm_token for add_rsa. Google Ads ads are immutable once created — there is no in-place edit — so this is how you act on an audit_campaign finding like 'RSA has 3 headlines' or 'ad strength is POOR': add a stronger RSA, then pause the old one yourself once the new one is confirmed live.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
specYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, and the description reinforces and expands on this by explaining linting locally, submitting with validate_only so nothing is written, and returning a confirm_token. There is no contradiction; the behavior is transparent and well-matched to the annotation.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the core purpose, and every clause earns its place: dry-run, no-write guarantee, return contract, and workflow guidance. It is dense but not padded.

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

Completeness5/5

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

Given the read-only annotations and the presence of an output schema, the description covers what the tool does, why it exists, when to use it, what it returns, and what the agent should do next. Nothing critical is missing for correct invocation.

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?

The single spec parameter has low reported schema description coverage, and the description does not enumerate the required fields such as customer_id, ad_group_id, final_url, headlines, and descriptions. It does add useful context by emphasizing the ad group must already exist and that the call is a dry-run, but it leaves most parameter meaning to the nested schema.

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?

The description states a specific verb and resource: dry-run a responsive search ad for an EXISTING ad group. It also distinguishes this from add_rsa by mentioning validate_only and no write, and from preview_campaign by scoping to an existing ad group.

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

Usage Guidelines5/5

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

It explicitly says when to use this tool: after an audit_campaign finding, before add_rsa, and as the correct path because Google Ads ads are immutable. It also gives the follow-up action of pausing the old ad separately, which leaves no ambiguity about the intended workflow.

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