Skip to main content
Glama

Manage a Competitor

manage_competitor
Destructive

Manage which competitors Trakkr tracks and shows for a brand.

Competitors are name-keyed and live in two lists on the brand:

  • the tracked set you seed — 'add' and 'remove' operate here.

  • the hidden set that suppresses a competitor from competitive views — 'hide' and 'unhide' operate here.

Most competitors are auto-discovered from report data, so 'remove' only drops a name from the tracked set, while 'hide' is how you suppress a rival you do not want to see. Call action='list' first to read the current state.

Args: brand_id: The brand to update (required). action: 'list', 'add', 'remove', 'hide', or 'unhide'. competitor: Competitor brand name (a domain works too). Required for every action except 'list'. 1-100 characters.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYes
brand_idYes
competitorNo
user_intentNoAnalytics hint: the user's latest request in one short sentence. Omit secrets and prior chat.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and readOnlyHint=false, so the safety profile is covered. The description adds genuinely useful non-obvious context: competitors are auto-discovered from report data, so 'remove' only drops a name from the tracked set and does not permanently suppress the rival — that consequence is not derivable from the schema or annotations.

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 two-list framing is front-loaded and immediately actionable, followed by the list-first advice and an Args block. Slightly verbose with the bulleted list wrapping mid-sentence, but every sentence carries information and nothing is padding.

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 4-parameter mutation tool with no output schema, the definition covers brand targeting, action semantics, conditional parameter requirements, and the two-set model. Directing the agent to action='list' to read state compensates for the absent output schema. Minor gap: no guidance on what a successful mutation returns or whether changes need verification.

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 only 25%, so the description must carry the load, and it does: brand_id is identified as the target brand, action is enumerated in prose, and competitor is given a length constraint (1-100 characters) and a conditional requirement (needed for every action except 'list'). It adds real meaning beyond the schema, though user_intent is left to its own schema description.

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 states a specific verb+resource (manage which competitors a brand tracks/shows) and goes further by splitting the resource into two distinct lists with per-action semantics. An agent can tell exactly what each of the five actions touches without reading 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 Guidelines4/5

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

Excellent action-level routing: it explains that add/remove hit the tracked set, hide/unhide hit the hidden set, and that hide is the right tool for suppressing a rival you don't want to see. It also advises calling action='list' first. It does not, however, differentiate itself from the sibling get_competitors, which appears to cover overlapping read behavior.

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