Skip to main content
Glama
ibrahimhajjaj

seo-console-mcp

ads_negatives_update

Batch add or remove negative keywords with automatic checks against live keywords so no traffic gets blocked. Dry run by default, then reads back the updated terms.

Instructions

Add or remove negative keywords in a batch, enumerated one by one with no pattern form. Before adding, every proposed negative is checked against the campaign's own live keywords and the batch is refused if one would block traffic, because a wrong negative leaves no evidence anywhere: the traffic just stops. Dry run unless dryRun is false, and the terms are read back afterwards

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
levelNoWhere the negatives live. A campaign-level negative blocks the term everywhere in that campaigncampaign
actionYesAdd negative keywords or remove existing ones. Removal matters as much as adding: a wrong negative shows up as nothing at all
dryRunNoReport what would change, and which proposed negatives would block a live keyword, without changing anything
targetYesThe campaign or ad group name. It must match exactly one or nothing is changed
confirmNoPerform the batch even though a guard tripped. The dry run lists what tripped, so this confirms something already read
keywordsYesThe negative terms, enumerated one by one. There is no pattern or match-all form: a selector is one typo away from blocking a whole campaign
matchTypeNoHow each term blocks. BROAD blocks any query containing all its words, which is the setting that can silently kill a campaignEXACT

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
levelYes
notesYes
actionYes
guardsYes
targetYes
appliedYes
changedYes
skippedYesTerms not sent, because they are already present when adding or absent when removing
matchTypeYes
requestedYes
collisionsYesProposed negatives that would stop one of this campaign's own live keywords from serving. This is the error that otherwise produces no evidence at all

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.18.0

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of disclosure and does so excellently. It reveals the dry-run default, the guard that refuses the batch if a negative would block traffic, the rationale (silent traffic loss), and that terms are read back. It also clarifies the consequence of a wrong negative, which is critical behavioral context beyond the schema.

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 two sentences with no wasted words. It front-loads the core purpose, then immediately provides the most important behavioral guard, and finishes with dry-run and read-back behavior. Every clause earns its place and the density is appropriate for the complexity.

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

Completeness4/5

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

For a complex 7-parameter tool with no annotations and an output schema, the description covers most key behavioral nuances: guard, dry-run, read-back, and the enumerated-list constraint. The notable gap is that it says the batch is 'refused if one would block traffic' without mentioning that confirm can override the guard, which is a significant behavioral path. The schema covers confirm, but the description's narrative is slightly incomplete on that interaction.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, and the description adds meaningful operational meaning to several parameters: keywords are explicitly enumerated with no pattern form, dryRun's default behavior is stated, and the guard logic clarifies action and confirm's context. It does not systematically walk through each parameter but enhances the schema descriptions with non-obvious implications.

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-resource pair ('Add or remove negative keywords in a batch') and adds a distinguishing constraint ('enumerated one by one with no pattern form'). It clearly differentiates from siblings like ads_negatives (which likely reads negatives) and ads_keyword_create (single keyword creation), so an agent can tell it apart without opening schemas.

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?

The description implies usage context (batch operations, no patterns) but never explicitly says when to use this tool over alternatives like ads_update_batch or ads_keyword_create. It does not name any sibling or exclusion condition, leaving the agent to infer the appropriate choice from the name and purpose alone.

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