Skip to main content
Glama

Set vendor-monitoring states across a target's journeys

set_target_vendor_states
DestructiveIdempotent

Set vendor-monitoring states across a target's journeys (permission: edit)

Vendor watch-list state is TARGET-scoped: one write fans the named watched/muted states across every journey of the target in one transaction, seeding any never-scanned journey first; vendors not named keep their state. Answers the full vendor list as GET does. A target with no journeys is refused 409 target_has_no_journeys. Any vendor can be switched either way, dataLayer included; switching a vendor on starts its alerts after its next complete runs (watch from now). Journeys watch dataLayer, adobeDataLayer, Google Analytics 4, Adobe Analytics by default (on mobile app targets also the app's own tag container (Google Tag Manager)), each only when present.

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": {
      "id": "<id>",
      "vendors": "<vendors>"
    },
    "name": "set_target_vendor_states"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesSaved test id: from GET /targets or the POST /targets answer.
vendorsYesThe vendors to set, each once; vendors not named keep their state.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / id / description
      Added value: +"Saved test id: from GET /targets or the POST /targets answer."
    • addedInput schema / properties / vendors / description
      Added value: +"The vendors to set, each once; vendors not named keep their state."
    • addedInput schema / properties / vendors / items / properties / vendorName / description
      Added value: +"The vendorName GET /targets/{id}/vendors lists."
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations (destructiveHint=true, idempotentHint=true), the description discloses semantics an agent cannot infer: one write fans out across every journey in a single transaction, never-scanned journeys are seeded first, unnamed vendors keep their state, a target with no journeys is refused with 409, and switching a vendor on delays alerts until after its next complete runs. This is unusually rich behavioral context for a mutation tool.

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?

The key scoping fact ('target-scoped') is front-loaded and sentences are information-dense with little filler. The parenthetical about mobile app tag containers and the default-watch vendor list is somewhat verbose and could be compressed without losing meaning.

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 2-parameter mutation tool with no output schema, the description covers return shape ('answers the full vendor list as GET does'), the error path (409), transactional/partial-update semantics, and alert-timing side effects. Nothing an agent needs in order to call it correctly is missing.

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 description coverage is 100%, so both parameters are already documented, including 'each once; vendors not named keep their state' and the vendorName source endpoint. The description restates these rather than adding new parameter-level meaning (no syntax for vendor names or state values beyond the schema's enum). Baseline 3 applies.

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 opens with a specific verb+resource ('Set vendor-monitoring states across a target's journeys') and immediately disambiguates from the read sibling by noting it 'Answers the full vendor list as GET does.' An agent can distinguish it from get_target_vendors and list_targets without opening either 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?

It implies the write use case versus the GET (get_target_vendors) read path, and flags the 'permission: edit' prerequisite plus the 409 target_has_no_journeys refusal case. It lacks an explicit 'use this instead of X when...' statement, so the routing guidance is clear but not spelled out.

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