Skip to main content
Glama

Enable or disable a campaign link, or attach its network campaign id

update_link_status

Toggle a tracking link between active and disabled, or attach an ad network campaign id so network spend can be matched. Refuses conflicts when a different network id already exists.

Instructions

Change a tracking link between active and disabled, and/or attach the ad network's own campaign id to a link created without one (then pull_network_spend can match its spend). Send status, network_campaign_id, or both. A campaign that already has a different network id is refused with 409 network_campaign_conflict.

Input Schema

NameRequiredDescriptionDefault
statusNo
link_idYes
idempotency_keyNoStable retry key for this exact mutation.
network_campaign_idNoThe ad network's own campaign id (for Meta, the campaign ID in Ads Manager).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.0.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=false), so the description earns credit for adding error semantics: a link that already carries a different network id is refused with 409 network_campaign_conflict. It also clarifies that attaching an id is limited to links 'created without one', which is real behavioral scope not present in annotations. It does not explain retry/idempotency behavior despite idempotentHint=false.

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?

Three sentences, front-loaded with the operation, then the valid input combinations, then the failure mode. No filler and nothing repeated from the title.

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 two-mode mutation with no output schema, the description covers inputs, preconditions, and one notable error. The main gap is that it never says what the call returns (the updated link?) or how partial updates affect unspecified fields, which an agent may need to chain follow-up calls.

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 50%, and the description compensates on the two parameters that matter most: status is framed as an active/disabled toggle and network_campaign_id is given purpose plus a precondition (link created without one) that the schema's one-line description does not convey. idempotency_key is left entirely to the schema, and link_id is undocumented in both, but that is low-risk given its uuid format.

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?

States two concrete verbs on one resource: toggling a tracking link between active and disabled, and attaching a network campaign id. It also names the downstream consumer (pull_network_spend), which lets an agent distinguish this from create_campaign_link or update_app without opening a schema.

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

Usage Guidelines4/5

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

'Send status, network_campaign_id, or both' explicitly defines the three valid call shapes, and the parenthetical '(then pull_network_spend can match its spend)' explains the situation that motivates attaching an id. It stops short of naming exclusions, e.g. that this is not the tool for creating a link or for changing cost models.

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