Skip to main content
Glama

PixelFlow

Save blocking rule

save_blocking_rule
DestructiveIdempotent

Save the blocking rule for one event on a site, such as Purchase, or for all events (AllEvents). It replaces the rule already saved for that event, if any. Rules for other events stay. A blocking rule stops matching events from being sent to ad platforms, such as a second Purchase when the confirmation page is refreshed. A rule for one event, such as Purchase, replaces the AllEvents rule for that event, so include any AllEvents conditions it should keep. The current rules are in get_site_status. Returns the saved rule. Repeating an idempotency_key applies the change once. Use it when the user wants to stop duplicate or unwanted events reaching ad platforms, or to save a rule proposed by suggest_triggers.

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": {
      "site_id": "<site_id>",
      "idempotency_key": "<idempotency_key>",
      "rule": "<rule>"
    },
    "name": "save_blocking_rule"
  }
}

Input Schema

NameRequiredDescriptionDefault
ruleYesRule to save. The `rule` of a suggest_triggers blocking_rules line is ready to pass.
site_idYesSite to act on, as returned by list_sites.
idempotency_keyYesUnique string per intended change, such as a UUID. Repeating a key returns the first result instead of writing again.

Output Schema

NameRequiredDescriptionDefault
ruleYesThe saved rule: `target`, `mode`, and `groups`, the shape the rule parameter takes.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds the precise blast radius: only the rule for that event is replaced, rules for other events stay, and an event-specific rule supersedes the AllEvents rule for that event. It also restates idempotency in operational terms ('repeating an idempotency_key applies the change once').

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?

Dense but well front-loaded: save/replace semantics first, then inheritance, then references to sibling tools, then the use case. Every sentence carries content, though the replacement idea is touched twice (generic replace, then AllEvents inheritance) which slows reading slightly.

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 destructive, nested-object mutation this covers what an agent needs: replacement scope, cross-event inheritance, idempotency, where to read current state, and the return value (also covered by an output schema). Nothing important is left to inference.

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 baseline is 3; the description earns a point by explaining the inheritance interaction the schema cannot express — an event-specific rule replaces the AllEvents rule for that event, so AllEvents conditions must be carried over. It still does not add format guidance beyond the schema's own field descriptions.

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 a specific verb and resource ('Save the blocking rule'), the scope (one event on a site, or AllEvents), and gives a concrete example (Purchase). The effect is stated in operational terms: matching events are not sent to ad platforms.

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 names when to use it ('stop duplicate or unwanted events reaching ad platforms, or save a rule proposed by suggest_triggers') and routes the agent to get_site_status for the current rules and suggest_triggers for proposals. The alternative tools are named, not implied.

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.