Skip to main content
Glama

Follow a competitor

add_competitor
Idempotent

Starts watching a competitor. Pass input (the business name as the owner said it is enough: it is first looked up on the web for its exact name, site and Facebook page, then in the ad libraries; a site or a Facebook page link also works). One clear match is added at once; several come back as candidates (name, site, Facebook page, live ads), and the chosen one is confirmed with candidateId. A name that looks like a competitor already in the list (or one Taseli suggested) is NOT added: the reply says which one, so ask the owner to confirm; for a different business call again with addAnyway true. For "replace X with Y" use replace (one call). A business with no live ads can still be followed. A competitor Taseli suggested is confirmed by passing its id as candidateId. Its ads appear within minutes on the Competitors page, under its card. Owner, admin or manager only; up to the plan's limit (3 or 6); 40 searches a day. Changes no ad account and spends no ad money.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "add_competitor"
  }
}

Input Schema

NameRequiredDescriptionDefault
inputNoFacebook page link, website/domain, or business name, e.g. 'leos.co.il'.
replaceNoSwap instead of add: a followed competitor's name or id to stop following, while `input`/`candidateId` is the one to follow in its place. One operation ("replace X with Y"); if the new one can't be added, X stays.
languageNoAnswer language. The business's language by default.
addAnywayNoOnly after the owner confirmed that `input` is a different business than the similar one already in the list.
candidateIdNoA candidate id from an earlier reply of this tool, or a suggested competitor's id.

Output Schema

NameRequiredDescriptionDefault
noteNoA plain note instead of data (nothing connected yet, not available here).
errorNoWhy nothing was done, as a short code.
truncatedNo
truncatedNoteNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / addAnyway
      Added value: +{
      +  "description": "Only after the owner confirmed that `input` is a different business than the similar one already in the list.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / replace
      Added value: +{
      +  "description": "Swap instead of add: a followed competitor's name or id to stop following, while `input`/`candidateId` is the one to follow in its place. One operation (\"replace X with Y\"); if the new one can't be added, X stays.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only give the generic profile (not read-only, open-world, idempotent, non-destructive); the description goes well beyond them with the lookup order (web name/site/Facebook page, then ad libraries), the candidate-confirmation loop, the refusal-and-confirm behavior on duplicates, the suggested-competitor path, the 3/6 competitor cap, 40 searches a day, and the assurance that no ad account is touched and no ad money is spent. It also sets a user expectation ("ads appear within minutes on the Competitors page").

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 scope-setting sentence is front-loaded and almost every following sentence carries new operational information. It is dense and parenthetical-heavy, and the addAnyway/`replace` semantics are stated twice (once in prose, once in the schema), which costs some scannability.

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 multi-step, high-friction operation with side effects, the description covers permissions, quotas, failure paths, retry conditions and the visible result, so an agent knows how to drive it end to end. With an output schema present it does not need to document return shapes, and its brief account of candidate replies is justified because it drives the follow-up call.

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 the schema already carries the per-parameter definitions and the baseline is 3. The description adds cross-parameter workflow meaning that the schema does not: `input` is resolved through a lookup pipeline before being added, `candidateId` selects from that pipeline's reply or confirms a Taseli suggestion, and `addAnyway`/`replace` are gated on prior outcomes. That is real added meaning, though it largely mirrors what the schema descriptions already say.

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?

"Starts watching a competitor" gives a specific verb and resource, and the rest of the text draws a hard line against list_competitors, remove_competitor, refresh_competitors and get_competitor_ads by describing the follow/add operation itself. An agent can tell exactly what this tool does 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?

The description handles the branches explicitly: single match is added, multiple matches come back as candidates and are confirmed via candidateId, a duplicate-looking name is refused and requires owner confirmation, and a genuine different business is retried with addAnyway true. It also routes the "replace X with Y" case to the `replace` parameter as a single call, and states who may call it (owner, admin or manager) and the plan/search limits.

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