Skip to main content
Glama

Ads mutate

ads.mutate
Destructive

Create, update, or remove Google Ads resources via MutateOperation JSON lists, using temporary IDs to link new objects and atomic execution unless partial failure is enabled.

Instructions

Create/update/remove ANY Google Ads resource: MutateOperation JSON list (e.g. {'campaign_operation': {'create': {...}}}), temporary ids (-1) link new objects, atomic unless partial_failure. See ads.mutate.schema.

Input Schema

NameRequiredDescriptionDefault
confirmNo
operationsYes
customer_idYes
partial_failureNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.10.0

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructive, non-idempotent, open-world semantics, so the safety profile is covered. The description does add real value beyond them: atomicity unless partial_failure, and temporary ids (-1) for linking new objects. It says nothing about confirmation requirements, quota/batch size limits, or reversibility.

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?

One dense, front-loaded sentence covering scope, payload shape, id-linking, and atomicity, plus a pointer to the schema tool. Nearly every clause earns its place; only the trailing 'See ads.mutate.schema' is slightly redundant with the tool name.

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?

Output schema and annotations relieve some burden, but for a destructive open-world write tool the description omits the confirmation parameter's purpose and any guidance on batching or limits, leaving meaningful gaps an agent would need to guess at.

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 coverage is 0%, so the description must carry parameter meaning, and it covers only two of four: operations (with a concrete MutateOperation JSON example) and partial_failure (via the atomicity clause). customer_id and, more importantly, 'confirm' — likely the safety gate on a destructive tool — are not explained anywhere.

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

Purpose4/5

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

States a specific verb set (create/update/remove) and resource scope ('ANY Google Ads resource'), which distinguishes it from narrow sibling mutators like ads.campaign.set_status, ads.budget.update and ads.campaign.create_search. The scope is clear but the boundary versus those convenience wrappers is left implicit.

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

Usage Guidelines3/5

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

Usage is only implied: the 'ANY ... resource' phrasing suggests this is the generic fallback when no specialized tool exists, and 'See ads.mutate.schema' routes for payload shape. It never states when NOT to use it, nor how it relates to ads.batch.submit, ads.rollback, or the dedicated campaign/budget mutators.

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

Deploy Server

Other Tools