Skip to main content
Glama

Set backlink competitors

set_backlink_competitors
DestructiveIdempotent

Replaces the competitor domains of a site’s backlink gap list, the same as saving the competitors on the Backlinks page. Send every domain the list must have; an empty list clears it. Keytomic saves each domain as a hostname without www, removes duplicates and the site’s own domain, and refuses more than 10 domains. get_backlinks returns the current list. The next view of the Backlinks page reads the backlinks of new domains from DataForSEO; until then get_backlinks has no gaps for them. Spends no credits.

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": {
      "projectId": "<projectId>",
      "domains": "<domains>"
    },
    "name": "set_backlink_competitors"
  }
}

Input Schema

NameRequiredDescriptionDefault
domainsYesCompetitor domains or URLs, such as "rival.com" or "https://www.rival.com/".
projectIdYesSite to act on, from list_sites.

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and idempotentHint=true, but the description goes well beyond them: it discloses normalization to hostname without www, dedupe, silent removal of the site's own domain, rejection above 10 domains, that no credits are spent, and that DataForSEO data for new domains only arrives on the next Backlinks page view. Those are exactly the side effects an agent needs before a destructive call.

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 replacement semantics and the get_backlinks pointer are front-loaded, and every remaining sentence carries operational information (normalization, cap, cost, data freshness) rather than filler. It is dense at roughly 90 words, but no sentence could be dropped without losing a distinct constraint.

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 two-parameter destructive setter with no output schema, the definition covers call semantics, mutation side effects, limits, cost, and where to read the resulting state. An agent has everything needed to decide, call, and verify correctly.

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 baseline is 3; the description earns extra by reinterpreting the domains array as a full replacement set rather than an addition, stating that an empty array clears the list, and imposing an undocumented cap of 10 domains. It does not explain how normalization affects the strings the caller passes in, which keeps it from a 5.

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 and resource: "Replaces the competitor domains of a site's backlink gap list." It also anchors the operation to the user-facing equivalent ("the same as saving the competitors on the Backlinks page"), which separates it from the read-only get_backlinks sibling without ambiguity.

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?

"Send every domain the list must have; an empty list clears it" makes the replace-not-append contract explicit, and "get_backlinks returns the current list" names the read path for verification. It lacks an explicit when-not-to-use or note about racing concurrent edits, so it stops just short of a 5.

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