Skip to main content
Glama

Set, clear or preview a tracker's focus

set_tracker_focus
Idempotent

Use when telling one creator, hashtag, sound or keyword Tracker which videos are relevant (plain language, exclusions, optional must_mention), or previewing a focus. Not for pausing or analysis: set_tracker_state or set_tracker_intelligence; act_on_collection has no focus action. Price: +3 credits per video judged, +1 credit per must_mention rejection; nothing for one already judged; clearing is free. Setting judges the latest sample now, so get_tracker hides off-focus videos. focus null clears it. preview=true returns verdicts without saving; saving after costs nothing more.

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": {
      "focus": "<focus>"
    },
    "name": "set_tracker_focus"
  }
}

Input Schema

NameRequiredDescriptionDefault
kindNoIf the target is tracked as several kinds.
focusYesThe new focus: which Videos are relevant to you, in plain language with any exclusions, plus optional must_mention terms. null clears it (free).
targetNoCreator handle (@ optional), or an Advertiser's id or URL.
previewNotrue judges the latest sample and returns each video's verdict and reason without saving; saving after costs nothing more.
estimateNoQuote the price in Credits: no Run, no charge
platformNoWith target. Needed unless kind=advertiser (meta or none).
tracker_idNoTracker id; wins over target.
max_creditsNo
idempotency_keyNoReuse on a retry: replays the original Run, not charged again

Output Schema

NameRequiredDescriptionDefault
runNoThe Run judging the latest Sample under the new Focus, charged per judgment.
focusNoThe Focus previewed, as it would be stored.
cachedNo
sampleNoOnly on a Tracker with a Focus: its latest Sample through the Focus.
videosNo
trackerNo
to_judgeNo
recent_videosNoOnly on a Creator Tracker with a Focus: its newest Videos through the Focus.
estimate_creditsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / platform / enum
      Previous value: -[
      -  "tiktok",
      -  "instagram",
      -  "youtube",
      -  "facebook",
      -  "meta"
      -]New value: +[
      +  "tiktok",
      +  "instagram",
      +  "youtube",
      +  "facebook",
      +  "meta",
      +  "google"
      +]
    • changedInput schema / properties / target / description
      Previous value: -"Creator handle (@ optional), or an Advertiser's Page id or URL."New value: +"Creator handle (@ optional), or an Advertiser's id or URL."
  2. Changed4 schema fields changed
    • changedInput schema / properties / kind / description
      Previous value: -"Only if the target is tracked as several kinds."New value: +"If the target is tracked as several kinds."
    • changedInput schema / properties / platform / description
      Previous value: -"With target, finds the Tracker. Needed unless kind=advertiser (an Advertiser takes meta or none)."New value: +"With target. Needed unless kind=advertiser (meta or none)."
    • changedInput schema / properties / target / description
      Previous value: -"Creator handle (@ optional), or an Advertiser's Facebook Page id or URL."New value: +"Creator handle (@ optional), or an Advertiser's Page id or URL."
    • changedInput schema / properties / tracker_id / description
      Previous value: -"The Tracker's id. Wins over platform and target."New value: +"Tracker id; wins over target."
  3. Changed12 schema fields changed
    • changedInput schema / properties / estimate / description
      Previous value: -"Return the price, in Credits, without running the operation or creating a Run"New value: +"Quote the price in Credits: no Run, no charge"
    • changedInput schema / properties / idempotency_key / description
      Previous value: -"Reuse the same key when retrying: a repeat returns the original Run and is not charged again"New value: +"Reuse on a retry: replays the original Run, not charged again"
    • changedInput schema / properties / kind / description
      Previous value: -"Only when the same target is tracked as more than one kind."New value: +"Only if the target is tracked as several kinds."
    • changedInput schema / properties / platform / description
      Previous value: -"With target, finds the Tracker. Needed unless kind=advertiser: for an Advertiser pass meta, or omit it and set kind=advertiser."New value: +"With target, finds the Tracker. Needed unless kind=advertiser (an Advertiser takes meta or none)."
    • changedInput schema / properties / preview / description
      Previous value: -"true judges the focus on the latest sample and returns every video's verdict and reason without saving it; saving it then costs nothing more."New value: +"true judges the latest sample and returns each video's verdict and reason without saving; saving after costs nothing more."
    • changedInput schema / properties / target / description
      Previous value: -"Creator handle (with or without @), or an Advertiser's Facebook Page id or Page URL."New value: +"Creator handle (@ optional), or an Advertiser's Facebook Page id or URL."
    • addedOutput schema / properties / recent_videos / $ref
      Added value: +"#/properties/tracker"
    • removedOutput schema / properties / recent_videos / anyOf
      Removed value: -[
      -  {
      -    "anyOf": [
      -      {
      -        "not": {}
      -      },
      -      {
      -        "$ref": "#/properties/tracker"
      -      }
      -    ]
      -  },
      -  {
      -    "anyOf": [
      -      {
      -        "not": {}
      -      },
      -      {
      -        "$ref": "#/properties/tracker"
      -      }
      -    ]
      -  }
      -]
    • changedOutput schema / properties / run / anyOf
      Previous value: -[
      -  {
      -    "anyOf": [
      -      {
      -        "$ref": "#/properties/tracker"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ]
      -  },
      -  {
      -    "$ref": "#/properties/tracker"
      -  }
      -]New value: +[
      +  {
      +    "$ref": "#/properties/tracker"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / sample / anyOf
      Previous value: -[
      -  {
      -    "anyOf": [
      -      {
      -        "not": {}
      -      },
      -      {
      -        "$ref": "#/properties/tracker"
      -      }
      -    ]
      -  },
      -  {
      -    "anyOf": [
      -      {
      -        "$ref": "#/properties/tracker"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "$ref": "#/properties/tracker"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / tracker / additionalProperties
      Previous value: -trueNew value: +{}
    • removedOutput schema / properties / tracker / properties
      Removed value: -{}
  4. Changed2 schema fields changed
    • addedInput schema / properties / max_credits
      Added value: +{
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedInput schema / properties / preview / description
      Previous value: -"true judges the focus on the latest sample and returns every video's verdict and reason without saving it; saving it afterwards costs nothing more."New value: +"true judges the focus on the latest sample and returns every video's verdict and reason without saving it; saving it then costs nothing more."
  5. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": true,
      +  "properties": {
      +    "cached": {
      +      "type": "boolean"
      +    },
      +    "estimate_credits": {
      +      "type": "integer"
      +    },
      +    "focus": {
      +      "$ref": "#/properties/tracker",
      +      "description": "The Focus previewed, as it would be stored."
      +    },
      +    "recent_videos": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "$ref": "#/properties/tracker"
      +            }
      +          ]
      +        },
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "$ref": "#/properties/tracker"
      +            }
      +          ]
      +        }
      +      ],
      +      "description": "Only on a Creator Tracker with a Focus: its newest Videos through the Focus."
      +    },
      +    "run": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "$ref": "#/properties/tracker"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        {
      +          "$ref": "#/properties/tracker"
      +        }
      +      ],
      +      "description": "The Run judging the latest Sample under the new Focus, charged per judgment."
      +    },
      +    "sample": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "$ref": "#/properties/tracker"
      +            }
      +          ]
      +        },
      +        {
      +          "anyOf": [
      +            {
      +              "$ref": "#/properties/tracker"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      ],
      +      "description": "Only on a Tracker with a Focus: its latest Sample through the Focus."
      +    },
      +    "to_judge": {
      +      "type": "number"
      +    },
      +    "tracker": {
      +      "additionalProperties": true,
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "videos": {
      +      "type": "number"
      +    }
      +  },
      +  "type": "object"
      +}
  6. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false), it discloses concrete costs (+3 credits per video judged, +1 per rejection, free clearing), the side effect that off-focus videos become hidden from get_tracker, and preview-not-saved semantics with no extra charge on subsequent save.

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?

Three tight sentences with usage and exclusions front-loaded, then price, then mechanics. Some fragments ("Price: +3 credits ...") are compressed, but nothing is wasted and the ordering serves a caller scanning for a go/no-go decision.

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?

An output schema exists, so return values need no explanation here, and the description covers cost, immediate judgement, preview and clearing for a 9-parameter tool. The one real gap is max_credits and idempotency_key budget/retry interaction, which the description never mentions.

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 89%, so the schema carries most parameter meaning. The description still adds value the schema lacks: the credit consequence of must_mention rejections and that setting judges the latest sample immediately. The exception is max_credits, which has no description in either place.

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?

"Use when telling one creator, hashtag, sound or keyword Tracker which videos are relevant ... or previewing a focus" gives a specific verb, resource and scope, and the title reinforces set/clear/preview. An agent can distinguish it from tracker state and intelligence tools 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?

It names the excluded siblings explicitly: "Not for pausing or analysis: set_tracker_state or set_tracker_intelligence; act_on_collection has no focus action." That is a direct when-not-use plus alternatives, leaving little to inference.

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