Skip to main content
Glama

Google Ads: attach negative keyword list

attach_negative_keyword_list

Attaches a shared negative keyword list to a campaign.

The campaign stops showing for every word in the list, including words
added to the list later.

There is no matching detach tool: in the Google Ads API a campaign's
link to a list (CampaignSharedSet) has no settable status, so it cannot
be paused, and undoing it means removing the link. This connector does
not remove links; the user can detach a list in Google Ads under Tools >
Shared library > Exclusion lists. Single words can be taken out of the
list with remove_from_negative_keyword_list, which changes every
campaign the list is attached to.

Args:
    customer_id: The Google Ads customer ID (numbers only, no hyphens).
    campaign_id: The ID of the campaign.
    shared_set_id: The ID of the negative keyword list (from
        create_negative_keyword_list, or shared_set.id via search).

Returns:
    Dictionary with the created campaign shared set resource name.

Tools revision: d80f65c0.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "customer_id": "<customer_id>",
      "campaign_id": "<campaign_id>",
      "shared_set_id": "<shared_set_id>"
    },
    "name": "attach_negative_keyword_list"
  }
}

Input Schema

NameRequiredDescriptionDefault
campaign_idYes
customer_idYes
shared_set_idYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare the generic write profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false). The description adds the critical behavior the annotations cannot convey: the campaign stops showing for every word in the list including words added later, and the link cannot be paused or removed through this connector, so the change is effectively irreversible here.

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?

Purpose is front-loaded and the middle paragraph earns its length by explaining irreversibility. Minor waste remains: the Returns section restates what the output schema already declares, and the trailing revision line adds nothing for an agent.

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?

For a three-parameter mutation with an output schema, everything needed to call it safely is present: what it does, the durable effect, why it cannot be undone with this connector, and where each ID comes from.

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 description coverage is 0%, so the description carries the full burden and mostly does: customer_id is constrained to numbers with no hyphens, and shared_set_id is given provenance (from create_negative_keyword_list or shared_set.id via search). campaign_id is only labeled 'The ID of the campaign' with no sourcing hint, which is the one remaining gap.

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 opening sentence names a specific verb and resource ('Attaches a shared negative keyword list to a campaign'), which distinguishes it from the near-name siblings create_negative_keyword_list, add_to_negative_keyword_list, and add_negative_keywords. An agent can pick it correctly without opening the schema.

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?

Explicitly states when this tool cannot be undone, that no detach sibling exists, that the user must detach in the Google Ads UI under Tools > Shared library > Exclusion lists, and routes partial removal to remove_from_negative_keyword_list with the caveat that it affects every attached campaign. When-to-use, when-not, and alternatives are all present.

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